The Magic Mask for Android

Overview

Downloads

Introduction

Magisk is a suite of open source software for customizing Android, supporting devices higher than Android 5.0.
Here are some feature highlights:

  • MagiskSU: Provide root access for applications
  • Magisk Modules: Modify read-only partitions by installing modules
  • MagiskHide: Hide Magisk from root detections / system integrity checks
  • MagiskBoot: The most complete tool for unpacking and repacking Android boot images

Downloads

Github is the only source where you can get official Magisk information and downloads.

Useful Links

Bug Reports

Only bug reports from Canary builds will be accepted.

For installation issues, upload both boot image and install logs.
For Magisk issues, upload boot logcat or dmesg.
For Magisk app crashes, record and upload the logcat when the crash occurs.

Building and Development

  • Magisk builds on any OS Android Studio supports. Install Android Studio and do the initial setups.
  • Clone sources: git clone --recurse-submodules https://github.com/topjohnwu/Magisk.git
  • Install Python 3.6+
    (Windows only: select 'Add Python to PATH' in installer, and run pip install colorama after install)
  • Configure to use the JDK bundled in Android Studio:
    • macOS: export JAVA_HOME="/Applications/Android Studio.app/Contents/jre/jdk/Contents/Home"
    • Linux: export PATH="/path/to/androidstudio/jre/bin:$PATH"
    • Windows: Add C:\Path\To\Android Studio\jre\bin to environment variable PATH
  • Set environment variable ANDROID_SDK_ROOT to the Android SDK folder (can be found in Android Studio settings)
  • Run ./build.py ndk to let the script download and install NDK for you
  • To start building, run build.py to see your options.
    For each action, use -h to access help (e.g. ./build.py all -h)
  • To start development, open the project with Android Studio. The IDE can be used for both app (Kotlin/Java) and native (C++/C) sources.
  • Optionally, set custom configs with config.prop. A sample config.prop.sample is provided.
  • To sign APKs and zips with your own private keys, set signing configs in config.prop. For more info, check Google's Documentation.

Translation Contributions

Default string resources for the Magisk app and its stub APK are located here:

  • app/src/main/res/values/strings.xml
  • stub/src/main/res/values/strings.xml

Translate each and place them in the respective locations ([module]/src/main/res/values-[lang]/strings.xml).

License

Magisk, including all git submodules are free software:
you can redistribute it and/or modify it under the terms of the
GNU General Public License as published by the Free Software Foundation,
either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program.  If not, see .
Comments
  • Magisk 22101 (22.+) not detected by Manager (

    Magisk 22101 (22.+) not detected by Manager ("N/A"), but SU still working on Android 6.0 (+) Marshmallow with Samsung Note 4 SM-N910F TouchWiz, armeabi-v7a and other devices

    Device: Samsung Note 4, SM-N910F, armeabi-v7a Android version: Android 6.0, Marshmallow Magisk version name: f623b988 Magisk version code: 22101

    Full Magisk Version Information: f623b988 (22101) (20), (all 22+) UI: TouchWiz Recovery: TWRP

    Issue 1: Magisk (Manager) does not install/patch within the app, creating that signature error Issue 2: Magisk (Manager) does not detect patched Magisk, shows only n/a Issue 3: Magisk (Manager) wants to install current Manager though it is installed Issue 4: Magisk (Manager) does not offer all features to control SU, hide, etc., though Magisk is patched and SU requests working

    Done so far without solving the problem:

    uninstalled/reinstalled Manager
    unpatched/repatched stock boot via TWRP
    repatched Magisk boot-image via TWRP (no self-patched boot.img - ask, if I shall try to retrieve it)
    

    The terminal-emulator can run magisk -v (f623b988) or magisk -V (22101) correctly.

    Last Version without these Issues: Magisk 8.0.7 (pre 22)

    Please let me know, what additional infromation is needed and how to access, if necessary, before closing the threat.

    PS: I followed for the logs this guide https://didgeridoohan.com/magisk/MagiskHelp

    Logs:

    1. Excerpt of attached Magisk_install_log (/download): magisk_install_log_2021-04-09T164405Z.log
    • Target image: /dev/block/
    • Device platform: armeabi-v7a
    • Installing: f623b988 (22101) ! Unable to check signature ! Installation failed
    1. Excerpt of attached magisk.log (/cache): magisk.log
    02-06 22:26:21.519   373   373 I : Magisk f623b988(22101) daemon started
     02-06 22:26:21.526   373   373 I : * Device API level: 23
     02-06 22:26:21.531   373   375 D : resetprop: getprop [ro.crypto.state]: [unencrypted]
     02-06 22:26:21.532   373   375 I : ** post-fs-data mode running
     02-06 22:26:21.533   373   375 I : * Mounting mirrors
     02-06 22:26:21.534   373   375 I : mount: /sbin/.magisk/mirror/system
     02-06 22:26:21.534   373   375 I : mount: /sbin/.magisk/mirror/data
     02-06 22:26:21.534   373   375 I : link: /sbin/.magisk/mirror/cache
     02-06 22:26:21.534   373   375 I : link: /sbin/.magisk/mirror/persist
     02-06 22:26:21.534   373   375 I : link: /sbin/.magisk/mirror/vendor
     02-06 22:26:21.534   373   375 I : * Initializing Magisk environment
     02-06 22:26:21.747   373   375 D : resetprop: prop [persist.sys.safemode] does not exist
     02-06 22:26:25.069   373   375 I : * Running post-fs-data.d scripts
     02-06 22:26:25.075   373   375 D : bind_mnt: /sbin/.magisk/modules <- /sbin/.magisk/mirror/data/adb/modules
     02-06 22:26:25.077   373   375 I : * Running module post-fs-data scripts
     02-06 22:26:25.077   373   375 I : * Loading modules
     02-06 23:26:27.343   373   734 I : ** late_start service mode running
     02-06 23:26:27.379   373   734 I : * Running service.d scripts
     02-06 23:26:27.379   373   734 I : * Running module service scripts
     04-09 16:39:18.193   373  5364 I : ** boot_complete triggered
     04-09 16:43:43.161   373 11689 D : su: request from pid=[11685], client=[16]
     04-09 16:43:43.165   373 11689 D : su: request from uid=[10269]
     04-09 16:43:43.165   373 11689 D : su: waiting child pid=[11690]
     04-09 16:43:43.165 11690 11690 D : su: fork handler
     04-09 16:43:43.166 11690 11690 D : su: use global namespace
     04-09 16:45:35.416   373 12539 D : su: request from pid=[12534], client=[17]
     04-09 16:45:35.417   373 12539 D : su: request from uid=[10295]
     04-09 16:45:39.651   373 12539 D : su: waiting child pid=[12566]
     04-09 16:45:39.651 12566 12566 D : su: fork handler
     04-09 16:45:39.653 12566 12566 D : su: use namespace of pid=[12534]
     04-09 16:45:53.548   373 12848 D : su: request from pid=[12845], client=[18]
     04-09 16:45:53.548   373 12848 D : su: request from uid=[10295]
     04-09 16:45:57.262   373 12848 D : su: waiting child pid=[12896]
     04-09 16:45:57.262 12896 12896 D : su: fork handler
     04-09 16:45:57.263 12896 12896 D : su: use namespace of pid=[12845]
    
    1. Excerpt of TWRP Recovery last.log (cache/recovery): last_log.log
    I:Set page: 'install'
    I:Set page: 'flash_confirm'
    I:Set page: 'flash_zip'
    I:operation_start: 'Flashing'
    Installiere Zip '/sdcard/Download/magisk/Magisk-f623b988(22101).zip'
    Suche nach Digest-Datei...
    Digest-Prüfung übersprungen: keine Digest-Datei gefunden
    I:Update binary zip
    I:Zip does not contain SELinux file_contexts file in its root.
    I:Legacy property environment not used in updater.
    Archive:  /sdcard/Download/magisk/Magisk-f623b988(22101).zip
      inflating: lib/x86/libbusybox.so
      inflating: lib/armeabi-v7a/libbusybox.so
    unzip: short read
    Archive:  /sdcard/Download/magisk/Magisk-f623b988(22101).zip
      inflating: lib/x86/libmagisk64.so
      inflating: assets/chromeos/futility
      inflating: assets/chromeos/kernel_data_key.vbprivk
      inflating: lib/armeabi-v7a/libmagiskboot.so
      inflating: assets/uninstaller.sh
      inflating: lib/armeabi-v7a/libmagiskinit.so
      inflating: META-INF/com/google/android/update-binary
      inflating: lib/x86/libmagiskboot.so
      inflating: lib/armeabi-v7a/libmagisk64.so
      inflating: assets/addon.d.sh
      inflating: lib/x86/libmagiskinit.so
      inflating: lib/armeabi-v7a/libmagisk32.so
      inflating: assets/boot_patch.sh
      inflating: assets/chromeos/kernel.keyblock
      inflating: assets/util_functions.sh
      inflating: META-INF/com/google/android/updater-script
      inflating: lib/x86/libmagisk32.so
    **********************************
     Magisk f623b988(22101) Installer 
    **********************************
    - Mounting /system
    - Target image: /dev/block/mmcblk0p17
    - Device platform: arm
    - Constructing environment
    java.io.IOException: ioctl failed: EINVAL (Invalid argument)
    	at libcore.io.IoBridge.available(IoBridge.java:74)
    	at java.io.FileInputStream.available(FileInputStream.java:108)
    	at java.io.BufferedInputStream.read(BufferedInputStream.java:274)
    	at com.topjohnwu.signing.SignBoot.fullRead(SignBoot.java:100)
    	at com.topjohnwu.signing.SignBoot.verifySignature(SignBoot.java:155)
    	at com.topjohnwu.signing.SignBoot.main(SignBoot.java:350)
    Caused by: android.system.ErrnoException: ioctl failed: EINVAL (Invalid argument)
    	at libcore.io.Posix.ioctlInt(Native Method)
    	at libcore.io.ForwardingOs.ioctlInt(ForwardingOs.java:103)
    	at libcore.io.IoBridge.available(IoBridge.java:58)
    	... 5 more
    - Unpacking boot image
    Parsing boot image: [/dev/block/mmcblk0p17]
    HEADER_VER      [0]
    KERNEL_SZ       [9879096]
    RAMDISK_SZ      [2886352]
    SECOND_SZ       [0]
    EXTRA_SZ        [3407872]
    PAGESIZE        [4096]
    NAME            [SYSMAGIC000KU]
    CMDLINE         [console=null androidboot.hardware=qcom user_debug=23 msm_rtb.filter=0x3b7 dwc3_msm.cpu_to_affin=1]
    CHECKSUM        [7c2318906ff8666f1c9df3b993922944aa9c6850000000000000000000000000]
    KERNEL_FMT      [raw]
    RAMDISK_FMT     [gzip]
    EXTRA_FMT       [raw]
    SAMSUNG_SEANDROID
    - Checking ramdisk status
    Loading cpio: [ramdisk.cpio]
    - Magisk patched boot image detected
    Loading cpio: [ramdisk.cpio]
    Remove [overlay.d]
    Remove [overlay.d/sbin]
    Remove [overlay.d/sbin/magisk32.xz]
    Remove [.backup/.rmlist]
    Remove [.backup]
    Remove [.backup/.magisk]
    Move [.backup/fstab.qcom] -> [fstab.qcom]
    Move [.backup/init] -> [init]
    Dump cpio: [ramdisk.cpio]
    - Patching ramdisk
    Loading cpio: [ramdisk.cpio]
    Add entry [init] (0750)
    Create directory [overlay.d] (0750)
    Create directory [overlay.d/sbin] (0750)
    Add entry [overlay.d/sbin/magisk32.xz] (0644)
    Patch with flag KEEPVERITY=[false] KEEPFORCEENCRYPT=[false]
    Found fstab file [fstab.qcom]
    Remove pattern [,verify]
    Loading cpio: [ramdisk.cpio.orig]
    Backup mismatch entry: [fstab.qcom] -> [.backup/fstab.qcom]
    Backup mismatch entry: [init] -> [.backup/init]
    Record new entry: [overlay.d] -> [.backup/.rmlist]
    Record new entry: [overlay.d/sbin] -> [.backup/.rmlist]
    Record new entry: [overlay.d/sbin/magisk32.xz] -> [.backup/.rmlist]
    Create directory [.backup] (0000)
    Add entry [.backup/.magisk] (0000)
    Dump cpio: [ramdisk.cpio]
    Loading dtbs from [extra]
    - Repacking boot image
    Parsing boot image: [/dev/block/mmcblk0p17]
    HEADER_VER      [0]
    KERNEL_SZ       [9879096]
    RAMDISK_SZ      [2886352]
    SECOND_SZ       [0]
    EXTRA_SZ        [3407872]
    PAGESIZE        [4096]
    NAME            [SYSMAGIC000KU]
    CMDLINE         [console=null androidboot.hardware=qcom user_debug=23 msm_rtb.filter=0x3b7 dwc3_msm.cpu_to_affin=1]
    CHECKSUM        [7c2318906ff8666f1c9df3b993922944aa9c6850000000000000000000000000]
    KERNEL_FMT      [raw]
    RAMDISK_FMT     [gzip]
    EXTRA_FMT       [raw]
    SAMSUNG_SEANDROID
    Repack to boot image: [new-boot.img]
    HEADER_VER      [0]
    KERNEL_SZ       [9879096]
    RAMDISK_SZ      [2886630]
    SECOND_SZ       [0]
    EXTRA_SZ        [3407872]
    PAGESIZE        [4096]
    NAME            [SYSMAGIC000KU]
    CMDLINE         [console=null androidboot.hardware=qcom user_debug=23 msm_rtb.filter=0x3b7 dwc3_msm.cpu_to_affin=1]
    CHECKSUM        [905c567083e0de8531c8df6ceb83dd46a13c6ce6000000000000000000000000]
    - Flashing new boot image
    Cleaning up...
    - Unmounting partitions
    - Done
    I:Updater process ended with RC=0
    I:Install took 9 second(s).
    Partitions-Informationen werden aktualisiert...
    I:Data backup size is 14699MB, free: 498MB.
    I:Unable to mount '/usbstorage'
    I:Actual block device: '', current file system: 'vfat'
    ...Fertig
    I:Set page: 'flash_done'
    I:operation_end - status=0
    I:Set page: 'confirm_action'
    I:Set page: 'action_page'
    I:operation_start: 'Format'
    Formatiere Cache mit make_ext4fs...
    Creating filesystem with parameters:
        Size: 209715200
        Block size: 4096
        Blocks per group: 32768
        Inodes per group: 6400
        Inode size: 256
        Journal blocks: 1024
        Label: 
        Blocks: 51200
        Block groups: 2
        Reserved block group size: 15
    Created filesystem with 11/12800 inodes and 1865/51200 blocks
    warning: wipe_block_device: Wipe via secure discard failed, used discard instead
    
    I:Recreating /cache/recovery folder.
    I:Copying file /etc/recovery.fstab to /cache/recovery/recovery.fstab
    I:Version number saved to '/cache/recovery/.version'
    Partitions-Informationen werden aktualisiert...
    I:Data backup size is 14699MB, free: 498MB.
    I:Unable to mount '/usbstorage'
    I:Actual block device: '', current file system: 'vfat'
    ...Fertig
    I:Set page: 'action_complete'
    I:operation_end - status=0
    I:operation_start: 'Format'
    Dalvik Cache-Verzeichnisse bereinigen...
    Bereinigt: /data/dalvik-cache...
    -- Dalvik Cache-Verzeichnisse bereinigt!
    Partitions-Informationen werden aktualisiert...
    I:Set page: 'clear_vars'
    I:Set page: 'flash_done'
    I:Data backup size is 13777MB, free: 1421MB.
    I:Unable to mount '/usbstorage'
    I:Actual block device: '', current file system: 'vfat'
    ...Fertig
    I:operation_end - status=0
    I:Set page: 'clear_vars'
    I:Set page: 'install'
    I:Set page: 'main'
    I:Set page: 'clear_vars'
    I:Set page: 'main2'
    I:Set page: 'advanced'
    I:Set page: 'copylog'
    I:Set page: 'action_page'
    I:operation_start: 'Copy Log'
    I:Copying file /tmp/recovery.log to /data/media/0/recovery.log
    Kernel-Log wurde nach /data/media/0/dmesg.log kopiert
    Recovery-Log wurde nach /data/media/0/recovery.log kopiert.
    I:Set page: 'action_complete'
    I:operation_end - status=0
    I:Set page: 'reboot_system_routine'
    I:Set page: 'rebootcheck'
    I:Set page: 'appcheck'
    I:operation_start: 'Check for TWRP App'
    I:App found at '/data/app/me.twrp.twrpapp-2'
    I:operation_end - status=0
    I:Copying file /cache/recovery/log to /cache/recovery/last_log
    Neustart...
    

    Related issues:

    #4107 (closed - not enough info) #4169 (closed - by bot) #4173 (closed - incorrect assigned version code)

    regression 
    opened by leppit 248
  • vbmeta error no sign info (samsung A51 exynos 9611)

    vbmeta error no sign info (samsung A51 exynos 9611)

    Hi When using AP magisk patched tar it makes vbmeta error with dowload screen: ODIN MODE (AVB Fail), vbmeta: error verifying vbmeta image: OK_NOT_SIGNED, VERIFICATION_DISABLED bit is set, custom vbmeta No sign info, vbmeta . magisk_install_log_KEEPON.log magisk_install_log_KEEPOFF.log

    SM-A515F with A515FXXU1ASKJ firmware Android 10 has 2 vbmeta: vbmeta.img and vbmeta_samsung.img in AP. vbmeta_stock_imgs.zip

    Only flashing boot.img makes bootloop. Magisk versions tested from 19.3, 20.3 to latest canary build.

    TWRP is not available. The error appears after flashing and changing vbmeta.img. Bootloader is unlocked, KG is checking. With original vbmeta magisk recovery is not accepted.

    What should be done to work?

    confirmed 
    opened by testz-99 219
  • com.starfinanz.mobile.android.pushtan detects root with enabled Magisk Hide

    com.starfinanz.mobile.android.pushtan detects root with enabled Magisk Hide

    The mentioned app (https://play.google.com/store/apps/details?id=com.starfinanz.mobile.android.pushtan) here is able to detect root on your device while Magisk Hide is enabled. It immediatly stop all functionality and force close itself, once I run Magisk-unistaller.zip the app works as expected.

    Is there any chance you can provide an updated Magisk Hide :)

    That would be awesome, in general i can live with the short uninstall but since I loos all my settings and modules it is some kind of stupid workaround.

    I'm not sure it helps but this is the logcat output of the app

    |: adb logcat| grep 10976 02-15 15:56:54.021 10976 10976 W main : type=1400 audit(0.0:24525): avc: denied { create } for name="cgroup.procs" scontext=u:r:zygote:s0 tcontext=u:object_r:cgroup:s0 tclass=file permissive=0 02-15 15:56:54.021 10976 10976 W main : type=1400 audit(0.0:24526): avc: denied { read } for name="u:object_r:bg_boot_complete_prop:s0" dev="tmpfs" ino=22568 scontext=u:r:untrusted_app_27:s0:c512,c768 tcontext=u:object_r:bg_boot_complete_prop:s0 tclass=file permissive=0 02-15 15:56:54.021 10976 10976 W main : type=1400 audit(0.0:24527): avc: denied { read } for name="u:object_r:bg_daemon_prop:s0" dev="tmpfs" ino=22569 scontext=u:r:untrusted_app_27:s0:c512,c768 tcontext=u:object_r:bg_daemon_prop:s0 tclass=file permissive=0 02-15 15:56:54.021 10976 10976 W main : type=1400 audit(0.0:24528): avc: denied { read } for name="u:object_r:bluetooth_a2dp_offload_prop:s0" dev="tmpfs" ino=22570 scontext=u:r:untrusted_app_27:s0:c512,c768 tcontext=u:object_r:bluetooth_a2dp_offload_prop:s0 tclass=file permissive=0 02-15 15:56:54.021 10976 10976 W main : type=1400 audit(0.0:24529): avc: denied { read } for name="u:object_r:bluetooth_prop:s0" dev="tmpfs" ino=22571 scontext=u:r:untrusted_app_27:s0:c512,c768 tcontext=u:object_r:bluetooth_prop:s0 tclass=file permissive=0 02-15 15:56:54.021 10976 10976 W main : type=1400 audit(0.0:24530): avc: denied { read } for name="u:object_r:bootloader_boot_reason_prop:s0" dev="tmpfs" ino=22572 scontext=u:r:untrusted_app_27:s0:c512,c768 tcontext=u:object_r:bootloader_boot_reason_prop:s0 tclass=file permissive=0 02-15 15:56:54.021 10976 10976 W main : type=1400 audit(0.0:24531): avc: denied { read } for name="u:object_r:boottime_prop:s0" dev="tmpfs" ino=22573 scontext=u:r:untrusted_app_27:s0:c512,c768 tcontext=u:object_r:boottime_prop:s0 tclass=file permissive=0 02-15 15:56:54.026 907 1037 I ActivityManager: Start proc 10976:com.starfinanz.mobile.android.pushtan/u0a120 for activity com.starfinanz.mobile.android.pushtan/com.starfinanz.mobile.android.spushtan.SPushTan 02-15 15:56:54.027 630 652 I Magisk : proc_monitor: com.starfinanz.mobile.android.pushtan/com.starfinanz.mobile.android.spushtan.SPushTan PID=[10976] ns=[4026534514] 02-15 15:56:54.034 10976 10976 E android.pushta: Not starting debugger since process cannot load the jdwp agent. 02-15 15:56:54.038 907 1726 D OnePlusSmartBoostManager: writeHotCount com.starfinanz.mobile.android.pushtan, pid=10976 02-15 15:56:54.041 10976 10991 I android.pushta: The ClassLoaderContext is a special shared library. 02-15 15:56:54.050 10976 10976 I android.pushta: The ClassLoaderContext is a special shared library. 02-15 15:56:54.103 10976 10976 I Perf : Connecting to perf service. 02-15 15:56:54.104 10976 10976 E libc : Access denied finding property "vendor.perf.iop_v3.enable" 02-15 15:56:54.104 10976 10976 E libc : Access denied finding property "vendor.perf.iop_v3.enable.debug" 02-15 15:56:54.255 10976 10976 E Report : Exiting: 02-15 15:56:54.255 10976 10976 E Report : tcxhbytu.ztt0LKgE: 00 02-15 15:56:54.255 10976 10976 E Report : at tcxhbytu.m3enVAIE.tX4sAa6m(Unknown Source:62) 02-15 15:56:54.255 10976 10976 E Report : at tcxhbytu.m3enVAIE.bkcAFLQ7(Unknown Source:0) 02-15 15:56:54.255 10976 10976 E Report : at java.lang.Runtime.nativeLoad(Native Method) 02-15 15:56:54.255 10976 10976 E Report : at java.lang.Runtime.loadLibrary0(Runtime.java:1014) 02-15 15:56:54.255 10976 10976 E Report : at java.lang.System.loadLibrary(System.java:1669) 02-15 15:56:54.255 10976 10976 E Report : at tcxhbytu.QxNeaVUy.M4BXOCgN(Unknown Source:43) 02-15 15:56:54.255 10976 10976 E Report : at tcxhbytu.dSJFB3li.s690a1e3(Unknown Source:13) 02-15 15:56:54.255 10976 10976 E Report : at tcxhbytu.dSJFB3li.MqwVss_j(Unknown Source:24) 02-15 15:56:54.255 10976 10976 E Report : at tcxhbytu.dSJFB3li.eJbRTX8R(Unknown Source:6) 02-15 15:56:54.255 10976 10976 E Report : at akm.(Unknown Source:0) 02-15 15:56:54.255 10976 10976 E Report : at java.lang.Class.newInstance(Native Method) 02-15 15:56:54.255 10976 10976 E Report : at android.app.AppComponentFactory.instantiateApplication(AppComponentFactory.java:50) 02-15 15:56:54.255 10976 10976 E Report : at android.app.Instrumentation.newApplication(Instrumentation.java:1124) 02-15 15:56:54.255 10976 10976 E Report : at android.app.LoadedApk.makeApplication(LoadedApk.java:1087) 02-15 15:56:54.255 10976 10976 E Report : at android.app.ActivityThread.handleBindApplication(ActivityThread.java:6010) 02-15 15:56:54.255 10976 10976 E Report : at android.app.ActivityThread.access$1300(ActivityThread.java:207) 02-15 15:56:54.255 10976 10976 E Report : at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1748) 02-15 15:56:54.255 10976 10976 E Report : at android.os.Handler.dispatchMessage(Handler.java:106) 02-15 15:56:54.255 10976 10976 E Report : at android.os.Looper.loop(Looper.java:193) 02-15 15:56:54.255 10976 10976 E Report : at android.app.ActivityThread.main(ActivityThread.java:6863) 02-15 15:56:54.255 10976 10976 E Report : at java.lang.reflect.Method.invoke(Native Method) 02-15 15:56:54.255 10976 10976 E Report : at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:537) 02-15 15:56:54.255 10976 10976 E Report : at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858) 02-15 15:56:54.255 10976 10976 E AndroidRuntime: FATAL EXCEPTION: main 02-15 15:56:54.255 10976 10976 E AndroidRuntime: Process: com.starfinanz.mobile.android.pushtan, PID: 10976 02-15 15:56:54.255 10976 10976 E AndroidRuntime: tcxhbytu.ztt0LKgE: 00 02-15 15:56:54.255 10976 10976 E AndroidRuntime: at tcxhbytu.m3enVAIE.tX4sAa6m(Unknown Source:62) 02-15 15:56:54.255 10976 10976 E AndroidRuntime: at tcxhbytu.m3enVAIE.bkcAFLQ7(Unknown Source:0) 02-15 15:56:54.255 10976 10976 E AndroidRuntime: at java.lang.Runtime.nativeLoad(Native Method) 02-15 15:56:54.255 10976 10976 E AndroidRuntime: at java.lang.Runtime.loadLibrary0(Runtime.java:1014) 02-15 15:56:54.255 10976 10976 E AndroidRuntime: at java.lang.System.loadLibrary(System.java:1669) 02-15 15:56:54.255 10976 10976 E AndroidRuntime: at tcxhbytu.QxNeaVUy.M4BXOCgN(Unknown Source:43) 02-15 15:56:54.255 10976 10976 E AndroidRuntime: at tcxhbytu.dSJFB3li.s690a1e3(Unknown Source:13) 02-15 15:56:54.255 10976 10976 E AndroidRuntime: at tcxhbytu.dSJFB3li.MqwVss_j(Unknown Source:24) 02-15 15:56:54.255 10976 10976 E AndroidRuntime: at tcxhbytu.dSJFB3li.eJbRTX8R(Unknown Source:6) 02-15 15:56:54.255 10976 10976 E AndroidRuntime: at akm.(Unknown Source:0) 02-15 15:56:54.255 10976 10976 E AndroidRuntime: at java.lang.Class.newInstance(Native Method) 02-15 15:56:54.255 10976 10976 E AndroidRuntime: at android.app.AppComponentFactory.instantiateApplication(AppComponentFactory.java:50) 02-15 15:56:54.255 10976 10976 E AndroidRuntime: at android.app.Instrumentation.newApplication(Instrumentation.java:1124) 02-15 15:56:54.255 10976 10976 E AndroidRuntime: at android.app.LoadedApk.makeApplication(LoadedApk.java:1087) 02-15 15:56:54.255 10976 10976 E AndroidRuntime: at android.app.ActivityThread.handleBindApplication(ActivityThread.java:6010) 02-15 15:56:54.255 10976 10976 E AndroidRuntime: at android.app.ActivityThread.access$1300(ActivityThread.java:207) 02-15 15:56:54.255 10976 10976 E AndroidRuntime: at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1748) 02-15 15:56:54.255 10976 10976 E AndroidRuntime: at android.os.Handler.dispatchMessage(Handler.java:106) 02-15 15:56:54.255 10976 10976 E AndroidRuntime: at android.os.Looper.loop(Looper.java:193) 02-15 15:56:54.255 10976 10976 E AndroidRuntime: at android.app.ActivityThread.main(ActivityThread.java:6863) 02-15 15:56:54.255 10976 10976 E AndroidRuntime: at java.lang.reflect.Method.invoke(Native Method) 02-15 15:56:54.255 10976 10976 E AndroidRuntime: at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:537) 02-15 15:56:54.255 10976 10976 E AndroidRuntime: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858) 02-15 15:56:54.255 10976 10976 E AndroidRuntime: Attempt to invoke virtual method 'android.content.Context android.app.Application.getApplicationContext()' on a null object reference 02-15 15:56:54.262 10976 10976 I Process : Sending signal. PID: 10976 SIG: 9 02-15 15:56:54.277 658 658 I Zygote : Process 10976 exited due to signal (9) 02-15 15:56:54.870 907 1035 E ActivityManager: Handle untracked process die start : com.starfinanz.mobile.android.pushtan, pid : 10976 02-15 15:56:54.870 907 1035 I ActivityManager: Process com.starfinanz.mobile.android.pushtan (pid 10976) has died: vis +99TOP 02-15 15:56:54.870 907 1042 W libprocessgroup: kill(-10976, 9) failed: No such process 02-15 15:56:54.915 907 1042 W libprocessgroup: kill(-10976, 9) failed: No such process 02-15 15:56:54.915 907 1042 I libprocessgroup: Successfully killed process cgroup uid 10120 pid 10976 in 45ms

    opened by 0xCCD 180
  • Systemless hosts may result in system freezes (F2FS driver bug)

    Systemless hosts may result in system freezes (F2FS driver bug)

    topjohnwu EDIT:

    This is caused by an F2FS driver issue that unfortunately Magisk is unable to fix. The only way around it is to use a custom kernel with the required fix. For more technical details, please check the reply by @freak07: https://github.com/topjohnwu/Magisk/issues/3171#issuecomment-729814931

    Original message:

    Using current canary (MM299, Magisk 20425) enabling the systemless hosts feature results in freezing all of the system. Can only hard rebooted. Without hosts it works good so far.

    wontfix 
    opened by supachris 162
  • Bootloop after installing the patched boot image on Android 11 on Sony Xperia 5 II (needed system_ext removed from fstab)

    Bootloop after installing the patched boot image on Android 11 on Sony Xperia 5 II (needed system_ext removed from fstab)

    ISSUE DESCRIPTION

    After trying to install Magisk with the patched magisk_boot.img from the latest Canary (and Beta) version of the Manager, the device is unable to boot and goes into the bootloop.

    The reboot occurs right after the SONY logo shows up, hence ADB is not able to connect to the device (previously enabled on the working unrooted system). So logcat and dmesg seem unable to be acquired.

    fastboot boot also fails to execute (was trying to do what was suggested in https://github.com/topjohnwu/Magisk/issues/3292#issuecomment-707997803, but it seems that it doesn't work with the unmodified version of the boot image as well):

    ❯ fastboot boot .\magisk_patched_boot_X-FLASH-ALL-2389.img
    
    Sending 'boot.img' (98304 KB)                      OKAY [  2.397s]
    Booting                                            FAILED (remote: 'unknown command')
    fastboot: error: Command failed
    

    DEVICE DESCRIPTION

    Model: Sony Xperia 5 II (XQ-AS52) Android version: 11 System build version: 58.1.A.1.178 Security patch version: December 2020 Google Play update version: January 2021

    Boot image from the system: boot_X-FLASH-ALL-2389.img (GDrive)

    /proc/mounts output
    /dev/block/dm-5 / ext4 ro,seclabel,relatime,discard 0 0
    tmpfs /dev tmpfs rw,seclabel,nosuid,relatime,size=3927372k,nr_inodes=981843,mode=755 0 0
    devpts /dev/pts devpts rw,seclabel,relatime,mode=600,ptmxmode=000 0 0
    proc /proc proc rw,relatime,gid=3009,hidepid=2 0 0
    sysfs /sys sysfs rw,seclabel,relatime 0 0
    selinuxfs /sys/fs/selinux selinuxfs rw,relatime 0 0
    tmpfs /mnt tmpfs rw,seclabel,nosuid,nodev,noexec,relatime,size=3927372k,nr_inodes=981843,mode=755,gid=1000 0 0
    tmpfs /mnt/installer tmpfs rw,seclabel,nosuid,nodev,noexec,relatime,size=3927372k,nr_inodes=981843,mode=755,gid=1000 0 0
    tmpfs /mnt/androidwritable tmpfs rw,seclabel,nosuid,nodev,noexec,relatime,size=3927372k,nr_inodes=981843,mode=755,gid=1000 0 0
    /dev/block/by-name/metadata /metadata ext4 rw,seclabel,nosuid,nodev,noatime,discard 0 0
    /dev/block/dm-6 /product ext4 ro,seclabel,relatime,discard 0 0
    /dev/block/dm-7 /vendor ext4 ro,seclabel,relatime,discard 0 0
    /dev/block/dm-8 /odm ext4 ro,seclabel,relatime,discard 0 0
    tmpfs /apex tmpfs rw,seclabel,nosuid,nodev,noexec,relatime,size=3927372k,nr_inodes=981843,mode=755 0 0
    tmpfs /linkerconfig tmpfs rw,seclabel,nosuid,nodev,noexec,relatime,size=3927372k,nr_inodes=981843,mode=755 0 0
    none /dev/blkio cgroup rw,nosuid,nodev,noexec,relatime,blkio 0 0
    none /dev/cg2_bpf cgroup2 rw,nosuid,nodev,noexec,relatime 0 0
    none /dev/cpuctl cgroup rw,nosuid,nodev,noexec,relatime,cpu 0 0
    none /acct cgroup rw,nosuid,nodev,noexec,relatime,cpuacct 0 0
    none /dev/cpuset cgroup rw,nosuid,nodev,noexec,relatime,cpuset,noprefix,release_agent=/sbin/cpuset_release_agent 0 0
    none /dev/freezer cgroup rw,nosuid,nodev,noexec,relatime,freezer 0 0
    none /dev/memcg cgroup rw,nosuid,nodev,noexec,relatime,memory 0 0
    none /dev/stune cgroup rw,nosuid,nodev,noexec,relatime,schedtune 0 0
    tracefs /sys/kernel/tracing tracefs rw,seclabel,relatime 0 0
    none /config configfs rw,nosuid,nodev,noexec,relatime 0 0
    binder /dev/binderfs binder rw,relatime,max=1048576,stats=global 0 0
    none /sys/fs/fuse/connections fusectl rw,relatime 0 0
    bpf /sys/fs/bpf bpf rw,nosuid,nodev,noexec,relatime 0 0
    pstore /sys/fs/pstore pstore rw,seclabel,nosuid,nodev,noexec,relatime 0 0
    /dev/block/bootdevice/by-name/persist /mnt/vendor/persist ext4 rw,seclabel,nosuid,nodev,noatime,discard 0 0
    /dev/block/bootdevice/by-name/spunvm /mnt/vendor/spunvm vfat rw,context=u:object_r:vendor_spunvm_file:s0,noatime,uid=1000,gid=1000,fmask=0007,dmask=0007,allow_utime=0020,codepage=437,iocharset=iso8859-1,shortname=lower,errors=remount-ro 0 0
    /dev/block/bootdevice/by-name/modem_a /vendor/firmware_mnt vfat ro,context=u:object_r:firmware_file:s0,relatime,uid=1000,gid=1000,fmask=0337,dmask=0227,codepage=437,iocharset=iso8859-1,shortname=lower,errors=remount-ro 0 0
    /dev/block/bootdevice/by-name/dsp_a /vendor/dsp ext4 ro,seclabel,nosuid,nodev,relatime 0 0
    /dev/block/bootdevice/by-name/bluetooth_a /vendor/bt_firmware vfat ro,context=u:object_r:bt_firmware_file:s0,relatime,uid=1002,gid=3002,fmask=0337,dmask=0227,codepage=437,iocharset=iso8859-1,shortname=lower,errors=remount-ro 0 0
    /dev/block/dm-9 /oem ext4 ro,seclabel,relatime 0 0
    /dev/block/bootdevice/by-name/appslog /mnt/rca ext4 rw,seclabel,nosuid,nodev,noexec,noatime,discard 0 0
    /dev/block/bootdevice/by-name/diag /mnt/idd ext4 rw,seclabel,nosuid,nodev,noexec,noatime,discard 0 0
    /dev/block/bootdevice/by-name/userdata /data f2fs rw,lazytime,seclabel,nosuid,nodev,noatime,background_gc=on,discard,no_heap,user_xattr,inline_xattr,acl,inline_data,inline_dentry,flush_merge,extent_cache,mode=adaptive,active_logs=6,reserve_root=32768,resuid=0,resgid=1065,inlinecrypt,alloc_mode=default,fsync_mode=nobarrier 0 0
    tmpfs /linkerconfig tmpfs rw,seclabel,nosuid,nodev,noexec,relatime,size=3927372k,nr_inodes=981843,mode=755 0 0
    /dev/block/bootdevice/by-name/userdata /data/user/0 f2fs rw,lazytime,seclabel,nosuid,nodev,noatime,background_gc=on,discard,no_heap,user_xattr,inline_xattr,acl,inline_data,inline_dentry,flush_merge,extent_cache,mode=adaptive,active_logs=6,reserve_root=32768,resuid=0,resgid=1065,inlinecrypt,alloc_mode=default,fsync_mode=nobarrier 0 0
    tmpfs /data_mirror tmpfs rw,seclabel,nosuid,nodev,noexec,relatime,size=3927372k,nr_inodes=981843,mode=700,gid=1000 0 0
    /dev/block/bootdevice/by-name/userdata /data_mirror/data_ce/null f2fs rw,lazytime,seclabel,nosuid,nodev,noatime,background_gc=on,discard,no_heap,user_xattr,inline_xattr,acl,inline_data,inline_dentry,flush_merge,extent_cache,mode=adaptive,active_logs=6,reserve_root=32768,resuid=0,resgid=1065,inlinecrypt,alloc_mode=default,fsync_mode=nobarrier 0 0
    /dev/block/bootdevice/by-name/userdata /data_mirror/data_ce/null/0 f2fs rw,lazytime,seclabel,nosuid,nodev,noatime,background_gc=on,discard,no_heap,user_xattr,inline_xattr,acl,inline_data,inline_dentry,flush_merge,extent_cache,mode=adaptive,active_logs=6,reserve_root=32768,resuid=0,resgid=1065,inlinecrypt,alloc_mode=default,fsync_mode=nobarrier 0 0
    /dev/block/bootdevice/by-name/userdata /data_mirror/data_de/null f2fs rw,lazytime,seclabel,nosuid,nodev,noatime,background_gc=on,discard,no_heap,user_xattr,inline_xattr,acl,inline_data,inline_dentry,flush_merge,extent_cache,mode=adaptive,active_logs=6,reserve_root=32768,resuid=0,resgid=1065,inlinecrypt,alloc_mode=default,fsync_mode=nobarrier 0 0
    /dev/block/bootdevice/by-name/userdata /data_mirror/cur_profiles f2fs rw,lazytime,seclabel,nosuid,nodev,noatime,background_gc=on,discard,no_heap,user_xattr,inline_xattr,acl,inline_data,inline_dentry,flush_merge,extent_cache,mode=adaptive,active_logs=6,reserve_root=32768,resuid=0,resgid=1065,inlinecrypt,alloc_mode=default,fsync_mode=nobarrier 0 0
    /dev/block/dm-10 /apex/com.android.neuralnetworks@300901600 ext4 ro,dirsync,seclabel,nodev,noatime 0 0
    /dev/block/dm-10 /apex/com.android.neuralnetworks ext4 ro,dirsync,seclabel,nodev,noatime 0 0
    /dev/block/dm-11 /apex/com.android.conscrypt@301300300 ext4 ro,dirsync,seclabel,nodev,noatime 0 0
    /dev/block/dm-11 /apex/com.android.conscrypt ext4 ro,dirsync,seclabel,nodev,noatime 0 0
    /dev/block/dm-12 /apex/com.android.ipsec@301500700 ext4 ro,dirsync,seclabel,nodev,noatime 0 0
    /dev/block/dm-12 /apex/com.android.ipsec ext4 ro,dirsync,seclabel,nodev,noatime 0 0
    /dev/block/dm-13 /apex/com.android.wifi@301500700 ext4 ro,dirsync,seclabel,nodev,noatime 0 0
    /dev/block/dm-13 /apex/com.android.wifi ext4 ro,dirsync,seclabel,nodev,noatime 0 0
    /dev/block/dm-14 /apex/com.android.resolv@301500700 ext4 ro,dirsync,seclabel,nodev,noatime 0 0
    /dev/block/dm-14 /apex/com.android.resolv ext4 ro,dirsync,seclabel,nodev,noatime 0 0
    /dev/block/dm-15 /apex/com.android.extservices@301500700 ext4 ro,dirsync,seclabel,nodev,noatime 0 0
    /dev/block/dm-15 /apex/com.android.extservices ext4 ro,dirsync,seclabel,nodev,noatime 0 0
    /dev/block/dm-16 /apex/com.android.tzdata@301500700 ext4 ro,dirsync,seclabel,nodev,noatime 0 0
    /dev/block/dm-16 /apex/com.android.tzdata ext4 ro,dirsync,seclabel,nodev,noatime 0 0
    /dev/block/dm-17 /apex/com.android.media@301500800 ext4 ro,dirsync,seclabel,nodev,noatime 0 0
    /dev/block/dm-17 /apex/com.android.media ext4 ro,dirsync,seclabel,nodev,noatime 0 0
    /dev/block/dm-18 /apex/com.android.mediaprovider@301501400 ext4 ro,dirsync,seclabel,nodev,noatime 0 0
    /dev/block/dm-18 /apex/com.android.mediaprovider ext4 ro,dirsync,seclabel,nodev,noatime 0 0
    /dev/block/dm-19 /apex/com.android.tethering@301400200 ext4 ro,dirsync,seclabel,nodev,noatime 0 0
    /dev/block/dm-19 /apex/com.android.tethering ext4 ro,dirsync,seclabel,nodev,noatime 0 0
    /dev/block/dm-20 /apex/com.android.cellbroadcast@301501400 ext4 ro,dirsync,seclabel,nodev,noatime 0 0
    /dev/block/dm-20 /apex/com.android.cellbroadcast ext4 ro,dirsync,seclabel,nodev,noatime 0 0
    /dev/block/dm-21 /apex/com.android.sdkext@300901600 ext4 ro,dirsync,seclabel,nodev,noatime 0 0
    /dev/block/dm-21 /apex/com.android.sdkext ext4 ro,dirsync,seclabel,nodev,noatime 0 0
    /dev/block/dm-22 /apex/com.android.media.swcodec@301500900 ext4 ro,dirsync,seclabel,nodev,noatime 0 0
    /dev/block/dm-22 /apex/com.android.media.swcodec ext4 ro,dirsync,seclabel,nodev,noatime 0 0
    /dev/block/dm-23 /apex/com.android.permission@301501400 ext4 ro,dirsync,seclabel,nodev,noatime 0 0
    /dev/block/dm-23 /apex/com.android.permission ext4 ro,dirsync,seclabel,nodev,noatime 0 0
    /dev/block/dm-24 /apex/com.android.adbd@301400200 ext4 ro,dirsync,seclabel,nodev,noatime 0 0
    /dev/block/dm-24 /apex/com.android.adbd ext4 ro,dirsync,seclabel,nodev,noatime 0 0
    /dev/block/dm-25 /apex/com.android.os.statsd@301400200 ext4 ro,dirsync,seclabel,nodev,noatime 0 0
    /dev/block/dm-25 /apex/com.android.os.statsd ext4 ro,dirsync,seclabel,nodev,noatime 0 0
    /dev/block/loop22 /apex/com.android.vndk.v30@1 ext4 ro,dirsync,seclabel,nodev,noatime 0 0
    /dev/block/loop22 /apex/com.android.vndk.v30 ext4 ro,dirsync,seclabel,nodev,noatime 0 0
    /dev/block/loop23 /apex/com.android.art@1 ext4 ro,dirsync,seclabel,nodev,noatime 0 0
    /dev/block/loop23 /apex/com.android.art ext4 ro,dirsync,seclabel,nodev,noatime 0 0
    /dev/block/loop24 /apex/com.android.runtime@1 ext4 ro,dirsync,seclabel,nodev,noatime 0 0
    /dev/block/loop24 /apex/com.android.runtime ext4 ro,dirsync,seclabel,nodev,noatime 0 0
    /dev/block/loop25 /apex/com.android.i18n@1 ext4 ro,dirsync,seclabel,nodev,noatime 0 0
    /dev/block/loop25 /apex/com.android.i18n ext4 ro,dirsync,seclabel,nodev,noatime 0 0
    /dev/block/loop26 /apex/com.android.apex.cts.shim@1 ext4 ro,dirsync,seclabel,nodev,noatime 0 0
    /dev/block/loop26 /apex/com.android.apex.cts.shim ext4 ro,dirsync,seclabel,nodev,noatime 0 0
    /dev/block/bootdevice/by-name/LTALabel /mnt/lta-label ext4 rw,seclabel,nosuid,nodev,noexec,noatime,nobarrier 0 0
    tmpfs /storage tmpfs rw,seclabel,nosuid,nodev,noexec,relatime,size=3927372k,nr_inodes=981843,mode=755,gid=1000 0 0
    adb /dev/usb-ffs/adb functionfs rw,relatime 0 0
    diag /dev/ffs-diag functionfs rw,relatime 0 0
    diag_mdm /dev/ffs-diag-1 functionfs rw,relatime 0 0
    diag_mdm2 /dev/ffs-diag-2 functionfs rw,relatime 0 0
    /data/media /mnt/runtime/default/emulated sdcardfs rw,nosuid,nodev,noexec,noatime,fsuid=1023,fsgid=1023,gid=1015,multiuser,mask=6,derive_gid,default_normal,unshared_obb 0 0
    /data/media /mnt/runtime/read/emulated sdcardfs rw,nosuid,nodev,noexec,noatime,fsuid=1023,fsgid=1023,gid=9997,multiuser,mask=23,derive_gid,default_normal,unshared_obb 0 0
    /data/media /mnt/runtime/write/emulated sdcardfs rw,nosuid,nodev,noexec,noatime,fsuid=1023,fsgid=1023,gid=9997,multiuser,mask=7,derive_gid,default_normal,unshared_obb 0 0
    /data/media /mnt/runtime/full/emulated sdcardfs rw,nosuid,nodev,noexec,noatime,fsuid=1023,fsgid=1023,gid=9997,multiuser,mask=7,derive_gid,default_normal,unshared_obb 0 0
    /dev/fuse /storage/emulated fuse rw,lazytime,nosuid,nodev,noexec,noatime,user_id=0,group_id=0,allow_other 0 0
    /dev/fuse /mnt/installer/0/emulated fuse rw,lazytime,nosuid,nodev,noexec,noatime,user_id=0,group_id=0,allow_other 0 0
    /dev/fuse /mnt/androidwritable/0/emulated fuse rw,lazytime,nosuid,nodev,noexec,noatime,user_id=0,group_id=0,allow_other 0 0
    /dev/fuse /mnt/user/0/emulated fuse rw,lazytime,nosuid,nodev,noexec,noatime,user_id=0,group_id=0,allow_other 0 0
    /data/media /mnt/pass_through/0/emulated sdcardfs rw,nosuid,nodev,noexec,noatime,fsuid=1023,fsgid=1023,gid=9997,multiuser,mask=7,derive_gid,default_normal,unshared_obb 0 0
    /data/media /mnt/androidwritable/0/emulated/0/Android/data sdcardfs rw,nosuid,nodev,noexec,noatime,fsuid=1023,fsgid=1023,gid=1015,multiuser,mask=6,derive_gid,default_normal,unshared_obb 0 0
    /data/media /mnt/installer/0/emulated/0/Android/data sdcardfs rw,nosuid,nodev,noexec,noatime,fsuid=1023,fsgid=1023,gid=1015,multiuser,mask=6,derive_gid,default_normal,unshared_obb 0 0
    /data/media /storage/emulated/0/Android/data sdcardfs rw,nosuid,nodev,noexec,noatime,fsuid=1023,fsgid=1023,gid=1015,multiuser,mask=6,derive_gid,default_normal,unshared_obb 0 0
    /data/media /mnt/user/0/emulated/0/Android/data sdcardfs rw,nosuid,nodev,noexec,noatime,fsuid=1023,fsgid=1023,gid=1015,multiuser,mask=6,derive_gid,default_normal,unshared_obb 0 0
    /data/media /mnt/androidwritable/0/emulated/0/Android/obb sdcardfs rw,nosuid,nodev,noexec,noatime,fsuid=1023,fsgid=1023,gid=1015,multiuser,mask=6,derive_gid,default_normal,unshared_obb 0 0
    /data/media /storage/emulated/0/Android/obb sdcardfs rw,nosuid,nodev,noexec,noatime,fsuid=1023,fsgid=1023,gid=1015,multiuser,mask=6,derive_gid,default_normal,unshared_obb 0 0
    /data/media /mnt/user/0/emulated/0/Android/obb sdcardfs rw,nosuid,nodev,noexec,noatime,fsuid=1023,fsgid=1023,gid=1015,multiuser,mask=6,derive_gid,default_normal,unshared_obb 0 0
    /data/media /mnt/installer/0/emulated/0/Android/obb sdcardfs rw,nosuid,nodev,noexec,noatime,fsuid=1023,fsgid=1023,gid=9997,multiuser,mask=7,derive_gid,default_normal,unshared_obb 0 0
    /dev/block/vold/public:179,1 /mnt/media_rw/3931-3334 texfat rw,dirsync,nosuid,nodev,noexec,noatime,uid=1023,gid=1023,umask=0007,allow_utime=0020,codepage=437,iocharset=utf8,min_prealloc_size=64k,max_prealloc_size=375560k,writeback_boundary=4M,readahead=4M,fail_safe,inode64,hidden=show,errors=continue 0 0
    /mnt/media_rw/3931-3334 /mnt/runtime/default/3931-3334 sdcardfs rw,nosuid,nodev,noexec,noatime,fsuid=1023,fsgid=1023,gid=1015,mask=6,nocache 0 0
    /mnt/media_rw/3931-3334 /mnt/runtime/read/3931-3334 sdcardfs rw,nosuid,nodev,noexec,noatime,fsuid=1023,fsgid=1023,gid=9997,mask=18,nocache 0 0
    /mnt/media_rw/3931-3334 /mnt/runtime/write/3931-3334 sdcardfs rw,nosuid,nodev,noexec,noatime,fsuid=1023,fsgid=1023,gid=9997,mask=18,nocache 0 0
    /mnt/media_rw/3931-3334 /mnt/runtime/full/3931-3334 sdcardfs rw,nosuid,nodev,noexec,noatime,fsuid=1023,fsgid=1023,gid=9997,mask=7,nocache 0 0
    /dev/fuse /storage/3931-3334 fuse rw,lazytime,nosuid,nodev,noexec,noatime,user_id=0,group_id=0,allow_other 0 0
    /dev/fuse /mnt/installer/0/3931-3334 fuse rw,lazytime,nosuid,nodev,noexec,noatime,user_id=0,group_id=0,allow_other 0 0
    /dev/fuse /mnt/androidwritable/0/3931-3334 fuse rw,lazytime,nosuid,nodev,noexec,noatime,user_id=0,group_id=0,allow_other 0 0
    /dev/fuse /mnt/user/0/3931-3334 fuse rw,lazytime,nosuid,nodev,noexec,noatime,user_id=0,group_id=0,allow_other 0 0
    /mnt/media_rw/3931-3334 /mnt/pass_through/0/3931-3334 sdcardfs rw,nosuid,nodev,noexec,noatime,fsuid=1023,fsgid=1023,gid=9997,mask=7,nocache 0 0
    

    MAGISK SETUP DESCRIPTION

    Manager version: latest Canary (https://github.com/topjohnwu/magisk_files/commit/f595d0624b70289ed273f933a33075fee986b533) Installation method: patching boot image

    confirmed 
    opened by nezorflame 115
  • Do Not Submit MagiskHide Requests

    Do Not Submit MagiskHide Requests

    Any further "MagiskHide" and related root hiding development will no longer be in the official Magisk repo and will not be done by topjohnwu, so all Issues along these lines will be immediately closed.

    See: https://topjohnwu.medium.com/state-of-magisk-2021-fe29fdaee458 And: https://twitter.com/osm0sis/status/1431948577627119618


    You may check this unofficial off-site documentation for any updates going forward: https://www.didgeridoohan.com/magisk/MagiskHide

    wontfix 
    opened by topjohnwu 109
  • Android 12 failed to load/verify boot images

    Android 12 failed to load/verify boot images

    When I try to flash magisk patched img on my pixel 4a 5g device with the code below,

    "fastboot flash boot magisk_patched.img && fastboot reboot"

    device shows an error "failed to load/verify boot images" and unable to boot

    Device: Google Pixel 4a 5g Android version: 12 (developer beta 3) Magisk version name: 6b34ec3 Magisk version code: 22105

    confirmed 
    opened by jihoy79 89
  • Galaxy A8/A8+ incompatibility

    Galaxy A8/A8+ incompatibility

    Hello everyone. Galaxy A8/A8+ users are reporting that flashing Magisk on their phone with Samsung Experience 9.0 (Android 8.0.0) up breaks their baseband, preventing them to use all its related features; after some tries we actually found it's related to the patched "init" file in ramdisk. Here there are the various logs to look closer this issue: https://drive.google.com/open?id=1F0kBmFjG45Zh1-yvDYHVCKip7XEZ8SGo Hope those will be helpful for the possible future fix of the issue, let me know if you need more infos/file to look at. Greetings!

    confirmed 
    opened by BlackMesa123 87
  • Failed to update in recovery patch mode

    Failed to update in recovery patch mode

    Device: Galaxy S10 Android version: 12 One UI 4.1 Magisk version name: canary https://github.com/topjohnwu/Magisk/commit/704f91545e8433c382af25c136d06bee07684d7e Magisk version code: 24305

    First the installer is not detecting that is installed in recovery mode and not marking the check box

    photo_2022-03-31_23-32-24

    So I'm marking it and selecting direct install here are the logs

    magisk_install_log_2022-03-31T23_35_19.log

    After reboot the device stills in same old version and shows the following prompt

    photo_2022-03-31_23-32-15

    Wich gets me to the first screenshoot screen after accepting

    Here are the current flashed boot.img and recovery,img, extracted from AP.tar patched file using canary 24304 cause stable 24.3 was giving me vmbeta download mode error.

    recovery.img-boot.img-magisk_patched-24304.zip

    regression 
    opened by NULL0B 84
  • magiskboot can't dump /dev/bootimg (NAND device)

    magiskboot can't dump /dev/bootimg (NAND device)

    Hi, I want to install magisk to my older tablet, but the installation of the zip fails with something like it does no know how to patch my boot.img, and I could provide you with my boot.img. So here I am. Dev: Lenovo A7-40 (Lenovo a3500-fl), running stock Android Kit-Kat 4.4.2.

    boot.img: https://drive.google.com/open?id=1xtBvCOUIJIMnGav6I09jT__92IlObSu9

    Thank you!

    confirmed 
    opened by Msprg 83
  • Android 11 MIUI devices need enabled verification in boot.img AVBv2 signature

    Android 11 MIUI devices need enabled verification in boot.img AVBv2 signature

    The Xiaomi device using MT6893 cannot start. After patching the boot, it shows infinite restart. I have disabled the vbmeta test. The models are RedmiNote10Pro and RedmiK40Gaming. I have used magiskboot extra cpio to prompt me that it failed. When I use Android_image_kitchen, the window flashes and nothing is unpacked. I think his boot has been specially encrypted. If you need it, I will upload the boot file for the study... Device: RedmiNote10Pro Android version:11 Magisk version name: V23 Magisk version code: 23001

    regression 
    opened by qianmo-xw 81
  • Can't hide root

    Can't hide root

    Can't hide root Techcombank Mobile app, Zygisk and Denylist ✓, Magisk app name changed but no success. only when flashing boot image with non-root ram disk will the application open even custom image without original signature. Added all apps include system app to prevent spying, let the bank app know my phone was root to Denylist but failed, knox faked 0x0. Proves that Zygisk has vulnerabilities.

    Device: Samsung Galaxy J5 (2016) Android version: 7.1.1 Magisk version name: 831a398b Magisk version code: 25206

    opened by maingocvinh 0
  • Unable to hide magisk manager by renaming package ID!

    Unable to hide magisk manager by renaming package ID!

    Please help me, unable to rename the package of magisk. After hiding magisk the renamed app gets crashed when tried to open but after uninstalling it, the main magisk app still works. What's the reason behind the crash of renamed package ID app? How can it be fixed now? Attached screenshot of error while opening after renaming. I am using OnePlus 9RT device with Android 13. Build number of my device is MT2111_11_F.13 Also attached the magisk log

    Screenshot_2022-12-28-09-08-45-91_b783bf344239542886fee7b48fa4b892

    Device: OnePlus 9RT Android version: Android 13 Magisk version name: 831a398b (25206) (D) Magisk version code: 831a398b (25206) (D) magisk_log_2022-12-28T12.35.13.log

    confirmed 
    opened by RamuSriram 25
  • Refactor sepolicy.rules resolve

    Refactor sepolicy.rules resolve

    We resolve available partitions for sepolicy.rules when patching boot and bind mount the partition by magiskinit.

    For older devices, the previous logic won't work because the part name is never readable.

    opened by yujincheng08 0
Releases(v25.2)
  • v25.2(Jul 21, 2022)

  • v25.1(Jun 19, 2022)

    v25.1 fixes some minor bugs over v25.0. The following are the same as v25.0 release notes.

    Another major release! A lot of the changes aren't visible at the surface, but v25 is actually a really substantial upgrade!

    MagiskInit Rewrite

    A significant portion of magiskinit (the critical software that runs before your device boots up) is completely rewritten from scratch. Ever since Android introduced Project Treble in Android 8.0, Magisk has been constantly fighting against the increasingly complex partitioning and early mount setups of all kinds of devices, sometimes with weird OEM specific implementations. It got to a point that magiskinit had become so complicated that few people (including myself!) were aware of every detail, and maintaining this piece of software like this was clearly not sustainable. After many months of planning (yes, this whole re-architecture has been in my head for a long time) and some help from external contributors, a whole new sepolicy injection mechanism is introduced into Magisk, solving the "SELinux Problem" once and for all.

    Since this is a full paradigm shift on how Magisk hot-patch the device at boot, several behaviors that many developers implicitly relied on might not exist. For example, Magisk no longer patches fstabs in most scenarios, which means AVB will remain intact; some custom kernels rely on AVB being stripped out for them by Magisk.

    MagiskSU Security Enhancements

    The superuser functionality of Magisk has not seen much changes ever since its introduction. v25 focuses on making root permission management more accurate and secure:

    • Add a whole new package tracking system to ensure malicious UID reuse attack cannot be performed
    • Properly support and implement the UX in the Magisk app for packages using sharedUserId
    • Enforce root manager APK signature verification to combat the rampant unofficial Magisk app "mods"

    Many might not realize, but using a trusted, unmodified Magisk app is really important. Magisk's root daemon treats the Magisk app differently and gives it blanket root access without any restrictions. A modded Magisk app can potentially backdoor your device.

    And in case some of you are about to put on your tin foil hats, this is not designed to "vendor lock-in"; the goal is to make sure your root management app comes from the same developer of the underlying root implementation. Magisk's build system allows custom distributors to use its own signing keys, and in addition, I am also providing official debug builds which skips any signature verification for development.

    Full Changelog: here

    Source code(tar.gz)
    Source code(zip)
    Magisk-v25.1.apk(10.70 MB)
    stub-release.apk(56.35 KB)
  • v25.0(Jun 7, 2022)

    Another major release! A lot of the changes aren't visible at the surface, but v25 is actually a really substantial upgrade!

    MagiskInit Rewrite

    A significant portion of magiskinit (the critical software that runs before your device boots up) is completely rewritten from scratch. Ever since Android introduced Project Treble in Android 8.0, Magisk has been constantly fighting against the increasingly complex partitioning and early mount setups of all kinds of devices, sometimes with weird OEM specific implementations. It got to a point that magiskinit had become so complicated that few people (including myself!) were aware of every detail, and maintaining this piece of software like this was clearly not sustainable. After many months of planning (yes, this whole re-architecture has been in my head for a long time) and some help from external contributors, a whole new sepolicy injection mechanism is introduced into Magisk, solving the "SELinux Problem" once and for all.

    Since this is a full paradigm shift on how Magisk hot-patch the device at boot, several behaviors that many developers implicitly relied on might not exist. For example, Magisk no longer patches fstabs in most scenarios, which means AVB will remain intact; some custom kernels rely on AVB being stripped out for them by Magisk.

    MagiskSU Security Enhancements

    The superuser functionality of Magisk has not seen much changes ever since its introduction. v25 focuses on making root permission management more accurate and secure:

    • Add a whole new package tracking system to ensure malicious UID reuse attack cannot be performed
    • Properly support and implement the UX in the Magisk app for packages using sharedUserId
    • Enforce root manager APK signature verification to combat the rampant unofficial Magisk app "mods"

    Many might not realize, but using a trusted, unmodified Magisk app is really important. Magisk's root daemon treats the Magisk app differently and gives it blanket root access without any restrictions. A modded Magisk app can potentially backdoor your device.

    And in case some of you are about to put on your tin foil hats, this is not designed to "vendor lock-in"; the goal is to make sure your root management app comes from the same developer of the underlying root implementation. Magisk's build system allows custom distributors to use its own signing keys, and in addition, I am also providing official debug builds which skips any signature verification for development.

    Full Changelog: here

    Source code(tar.gz)
    Source code(zip)
    Magisk-v25.0.apk(10.59 MB)
    stub-release.apk(29.33 KB)
  • v24.3(Mar 10, 2022)

  • v24.2(Mar 2, 2022)

    Maintenance release fixing various issues.

    • [MagiskSU] Fix buffer overflow
    • [MagiskSU] Fix owner managed multiuser superuser settings
    • [MagiskSU] Fix command logging when using su -c <cmd>
    • [MagiskSU] Prevent su request indefinite blocking
    • [MagiskBoot] Support lz4_legacy archive with multiple magic
    • [MagiskBoot] Fix lz4_lg compression
    • [DenyList] Allow targeting processes running as system UID
    • [Zygisk] Workaround Samsung's "early zygote"
    • [Zygisk] Improved Zygisk loading mechanism
    • [Zygisk] Fix application UID tracking
    • [Zygisk] Fix improper umask being set in zygote
    • [App] Fix BusyBox execution test
    • [App] Improve stub loading mechanism
    • [App] Major app upgrade flow improvements
    • [General] Improve commandline error handling and messaging

    Full Changelog: here

    Source code(tar.gz)
    Source code(zip)
    Magisk-v24.2.apk(10.36 MB)
    stub-release.apk(26.51 KB)
  • v24.1(Jan 28, 2022)

    For those coming from v24.0, v24.1 only has some minor app improvements. The following are copied from v24.0 release notes.

    It has been a while since the last public release, long time no see! A personal update for those unaware: I am now working at Google on the Android Platform Security team. Without further ado, let's jump right into it!

    MagiskHide Removal

    I have lost interest in fighting this battle for quite a while; plus, the existing MagiskHide implementation is flawed in so many ways. Decoupling Magisk from root hiding is, in my opinion, beneficial to the community. Ever since my announcement on Twitter months ago, highly effective "root hiding" modules (much MUCH better than MagiskHide) has been flourishing, which again shows that people are way more capable than I am on this subject. So why not give those determined their time to shine, and let me focus on improving Magisk instead of drowning in the everlasting cat-and-mouse game 😉.

    Sunsetting Magisk-Modules-Repo

    Due to lack of time and maintenance, the centralized Magisk-Modules-Repo was frozen, and the functionality to download modules from the repo is removed in v24.0. As a supplement, module developers can now specify an updateJson URL in their modules. The Magisk app will use that to check, download, and install module updates.

    Introducing Zygisk

    Zygisk is Magisk in Zygote, the next big thing for Magisk! When this feature is enabled, a part of Magisk will run in the Zygote daemon process, allowing module developers to run code directly in every Android apps' processes. If you've heard of Riru, then Zygisk is inspired by that project and is functionally similar, though the implementation is quite different internally. I cannot wait to see what module developers can achieve using Zygisk!

    Documentation

    For developers, details about updateJson and building Zygisk modules can all be found in the updated documentation.

    Full Changelog: here

    Source code(tar.gz)
    Source code(zip)
    Magisk-v24.1.apk(10.14 MB)
    stub-release.apk(26.27 KB)
  • v24.0(Jan 26, 2022)

    It has been a while since the last public release, long time no see! A personal update for those unaware: I am now working at Google on the Android Platform Security team. Without further ado, let's jump right into it!

    MagiskHide Removal

    I have lost interest in fighting this battle for quite a while; plus, the existing MagiskHide implementation is flawed in so many ways. Decoupling Magisk from root hiding is, in my opinion, beneficial to the community. Ever since my announcement on Twitter months ago, highly effective "root hiding" modules (much MUCH better than MagiskHide) has been flourishing, which again shows that people are way more capable than I am on this subject. So why not give those determined their time to shine, and let me focus on improving Magisk instead of drowning in the everlasting cat-and-mouse game 😉.

    Sunsetting Magisk-Modules-Repo

    Due to lack of time and maintenance, the centralized Magisk-Modules-Repo was frozen, and the functionality to download modules from the repo is removed in v24.0. As a supplement, module developers can now specify an updateJson URL in their modules. The Magisk app will use that to check, download, and install module updates.

    Introducing Zygisk

    Zygisk is Magisk in Zygote, the next big thing for Magisk! When this feature is enabled, a part of Magisk will run in the Zygote daemon process, allowing module developers to run code directly in every Android apps' processes. If you've heard of Riru, then Zygisk is inspired by that project and is functionally similar, though the implementation is quite different internally. I cannot wait to see what module developers can achieve using Zygisk!

    Documentation

    For developers, details about updateJson and building Zygisk modules can all be found in the updated documentation.

    Full Changelog: here

    Source code(tar.gz)
    Source code(zip)
    Magisk-v24.0.apk(9.95 MB)
    stub-release.apk(26.08 KB)
  • v23.0(May 12, 2021)

    This release is focused on fixing regressions and bugs.

    Note: Magisk v22 is the last major version to support Jellybean and Kitkat. Magisk v23 only supports Android 5.0 and higher.

    Bug Fixes

    • [App] Update snet extension. This fixes SafetyNet API errors.
    • [App] Fix a bug in the stub app that causes APK installation to fail
    • [App] Hide annoying errors in logs when hidden as stub
    • [App] Fix issues when patching ODIN tar files when the app is hidden
    • [General] Remove all pre Android 5.0 support
    • [General] Update BusyBox to use proper libc
    • [General] Fix C++ undefined behaviors
    • [General] Several sepolicy.rule copy/installation fixes
    • [MagiskPolicy] Remove unnecessary sepolicy rules
    • [MagiskHide] Update package and process name validation logic
    • [MagiskHide] Some changes that prevents zygote deadlock

    Full Changelog: here

    Source code(tar.gz)
    Source code(zip)
    Magisk-v23.0.apk(6.55 MB)
    snet.jar(56.37 KB)
    stub-release.apk(28.42 KB)
  • v22.1(Apr 9, 2021)

    This release is focused on fixing regressions and bugs. Check the v22.0 release notes if coming from older releases.

    Note: Magisk v22 is the last major version to support Jellybean and Kitkat. Magisk v23 will only support Android 5.0 and higher.

    Bug Fixes

    • [App] Prevent multiple installation sessions running in parallel
    • [App] Prevent OutOfMemory crashes when checking boot signature on PXA boot images
    • [General] Proper cgroup migration implementation
    • [General] Rewrite log writer from scratch, should resolve any crashes and deadlocks
    • [General] Many scripts updates fixing regressions
    • [MagiskHide] Prevent possible deadlock when signal arrives
    • [MagiskHide] Partial match process names if necessary
    • [MagiskBoot] Preserve and patch AVB 2.0 structures/headers in boot images
    • [MagiskBoot] Properly strip out data encryption flags
    • [MagiskBoot] Prevent possible integer overflow
    • [MagiskInit] Fix sepolicy.rule mounting strategy
    • [resetprop] Always delete existing ro. props before updating. This will fix bootloops that could be caused by modifying device fingerprint properties.

    Full Changelog: here

    Source code(tar.gz)
    Source code(zip)
    Magisk-v22.1.apk(6.40 MB)
    stub-release.apk(28.32 KB)
  • v22.0(Feb 23, 2021)

    RESTORE THE EXISTING MAGISK MANAGER BACK TO NORMAL BEFORE UPGRADING IF HIDDEN!

    Another major Magisk release! This time our focus is not the core Magisk implementation, but rather on improving the whole Magisk user experience.

    Magisk Manager is dead.
    Long live the Magisk app!

    Ever since the first Magisk release, Magisk (the core components) and Magisk Manager (the companion app) are released separately and isn't necessarily always in sync. This leads to some confusion and a lot of complexity when downloading/installing Magisk through the app. Starting from v22.0, the Magisk app (renamed from Magisk Manager) includes everything it needs within the APK itself, making installation a 100% offline process.

    Custom recovery lovers, no worries! The Magisk app APK itself is a custom recovery flashable zip, just like MAGIC™🌈. Check out the updated installation guide for more info.

    App Hiding

    Another major breakthrough in this release is that devices lower than Android 9.0 can now also use the advanced app hiding technique to hide the Magisk app. Due to this incompatible change, RESTORE THE EXISTING MAGISK MANAGER BACK TO NORMAL BEFORE UPGRADING IF HIDDEN!

    Bug Fixes

    • [MagiskHide] Fix a bug when stopping MagiskHide does not take effect
    • [MagiskBoot] Fix bug when unpacking lz4_lg compressed boot images
    • [MagiskInit] Support Galaxy S21 series
    • [MagiskSU] Fix incorrect APEX paths that caused libsqlite.so fail to load

    Full Changelog: here

    Source code(tar.gz)
    Source code(zip)
    Magisk-v22.0.apk(7.16 MB)
    stub-release.apk(28.32 KB)
  • v21.4(Jan 17, 2021)

    Update: v21.4 adds more regression hot fixes.

    Happy 2021! v21.3 adds a workaround for devices with buggy F2FS Linux kernel drivers. This F2FS bug may cause bootloops on many devices. Checkout the full v21.0 release notes if coming from older releases.

    v21.4

    • [MagiskSU] Fix su -c behavior that broke many root apps
    • [General] Properly handle read/write over sockets (the broken pipe issue)

    v21.3

    • [MagiskInit] Avoid mounting f2fs userdata as it may result in kernel crashes. This shall fix a lot of bootloops
    • [MagiskBoot] Fix a minor header checksum bug for DHTB header and ASUS blob image formats
    • [MagiskHide] Allowing hiding isolated processes if the mount namespace is separated

    Full Changelog: here

    Source code(tar.gz)
    Source code(zip)
    Magisk-uninstaller-20210117.zip(2.54 MB)
    Magisk-v21.4.zip(5.88 MB)
  • v21.3(Jan 16, 2021)

    Happy 2021! v21.3 adds a workaround for devices with buggy F2FS Linux kernel drivers. This F2FS bug may cause bootloops on many devices. Checkout the full v21.0 release notes if coming from older releases.

    v21.3

    • [MagiskInit] Avoid mounting f2fs userdata as it may result in kernel crashes. This shall fix a lot of bootloops
    • [MagiskBoot] Fix a minor header checksum bug for DHTB header and ASUS blob image formats
    • [MagiskHide] Allowing hiding isolated processes if the mount namespace is separated

    Full Changelog: here

    Source code(tar.gz)
    Source code(zip)
    Magisk-uninstaller-20210116.zip(2.54 MB)
    Magisk-v21.3.zip(5.88 MB)
  • v21.2(Dec 28, 2020)

    v21.2 is a maintenance update, mostly addressing bugs, and expanding device compatibility. Checkout the full v21.0 release notes if coming from older releases.

    v21.2

    • [MagiskInit] Detect 2SI after mounting system_root on legacy SAR devices
    • [General] Make sure post-fs-data scripts cannot block more than 35 seconds
    • [General] Fix the magisk --install-module command
    • [General] Trim Windows newline when reading files
    • [General] Directly log to file to prevent logcat weirdness
    • [MagiskBoot] Fix header dump/load for header v3 images

    Full Changelog: here

    Source code(tar.gz)
    Source code(zip)
    Magisk-uninstaller-20201228.zip(2.54 MB)
    Magisk-v21.2.zip(5.86 MB)
  • v21.1(Nov 13, 2020)

  • v21.0(Oct 3, 2020)

    Long time no see! v21.0 is the largest release in Magisk's history. It comes with full Android 11 support (tons of stuff had to be rewritten from scratch!), and a completely redesigned Magisk Manager. These are the reasons why this particular public release took me over half a year to wrap up.

    To the end user, not much has changed other than the fact that Magisk Manager has completely changed its appearance. However developers should pay attention to some changes due to adjustments for Android 11. Full changelogs are too massive to fit, so here I'll point out the main changes and links to updated documentations.

    Highlights

    • Android 11 support 🎉
    • Completely redesigned Magisk Manager
    • Safe Mode detection: if you installed a module that bootloops your device, reboot into Safe Mode and all modules will be disabled. More instructions on how to deal with broken modules is linked here.

    The following are for advanced users/developer:

    • On Android 8.0+, Magisk now uses a new SELinux setup that keeps Android sandbox less compromised. This provides better security to rooted users, and also separates Magisk rules from original rules. Details here.
    • On Android 11, /sbin may no longer exist. For developers, this means the Magisk's internal tmpfs directory is no longer always /sbin, and instead randomly created every boot. To get the tmpfs path, use the command magisk --path (more details here). For custom kernel developers that uses overlay.d, updated docs are here.
    • magiskpolicy gained more features and some minor syntax changes, details here.

    Full Changelog: here

    Source code(tar.gz)
    Source code(zip)
    Magisk-uninstaller-20201003.zip(2.53 MB)
    Magisk-v21.0.zip(5.90 MB)
  • v20.4(Mar 23, 2020)

    Miscellaneous

    This release is mainly focused on stability and bug squashing. Please be aware that MagiskHide is no longer enabled by default. Since Google has enabled hardware-based key attestation in SafetyNet (FAQ), there is no effective way to pass full CTS SafetyNet anymore (although Google seems to have temporarily reverted the change).

    I decided that the fully redesigned Magisk Manager isn't fully ready for prime time yet, so this time around no Magisk Manager update is released. The WIP manager will continue to be improved and is available for testing on the canary channel.

    BusyBox Standalone Mode

    Starting with Magisk v20.4, all Magisk related scripts, including boot scripts and module installation scripts, will run on BusyBox's shell (ash) in standalone mode. In BusyBox ash standalone mode, every single command will be forced to use the one that is in Magisk's BusyBox (if available). For instance, no matter how you change the environment variable PATH, the rm command will always use the one in BusyBox, not the one in system, external BusyBox, vendor, or included in custom recovery.

    The reason behind this change is that all scripts will be guaranteed to have 100% consistent results no matter how the environment is setup. The internal BusyBox is significantly beefed up with patches from @osm0sis, and also with SELinux features enabled. It shall offer a very complete, reliable, and consistent scripting environment. If in any case you require to use a command outside of BusyBox, please call it with the full path (e.g. /system/bin/nslookup)

    Magisk Changelog

    • [MagiskInit] Fix potential bootloop in A-only 2SI devices
    • [MagiskInit] Properly support Tegra partition naming
    • [General] Load libsqlite.so dynamically, which removes the need to use wrapper scripts on Android 10+
    • [General] Detect API level with a fallback method on some devices
    • [General] Workaround possible bug in x86 kernel readlinkat system call
    • [BusyBox] Enable SELinux features. Add chcon/runcon etc., and '-Z' option to many applets
    • [BusyBox] Introduce standalone mode. More details in release notes
    • [MagiskHide] Disable MagiskHide by default
    • [MagiskHide] Add more potential detectable system properties
    • [MagiskHide] Add workaround for Xiaomi devices bootloop when MagiskHide is enabled on cross region ROMs
    • [MagiskBoot] Support patching special Motorolla DTB format
    • [MagiskPolicy] Support 'genfscon' sepolicy rules
    • [Scripts] Support NAND based boot images (character nodes in /dev/block)
    • [Scripts] Better addon.d (both v1 and v2) support
    • [Scripts] Support Lineage Recovery for Android 10+
    Source code(tar.gz)
    Source code(zip)
    Magisk-uninstaller-20200323.zip(2.56 MB)
    Magisk-v20.4.zip(5.66 MB)
  • v20.3(Jan 9, 2020)

  • v20.2(Jan 2, 2020)

    Happy New Year! Let's start 2020 with a new Magisk release :)

    Pre-Init sepolicy Patches for Modules

    Magisk v20.2 add support for modules to include its own custom sepolicy patches. Developers used to use boot scripts along with the magiskpolicy tool to do live sepolicy patches; however, this method leads to numerous issues as Android is no longer designed to allow live sepolicy patches, and on some devices (e.g. Huawei) this method is outright inapplicable.

    To address this issue, Magisk allow module devs to create a new file called sepolicy.rule in their modules. The module installer script and Magisk daemon will make sure this file is stored in somewhere accessible pre-init to allow magiskinit to do its job every time your device boots up.

    New Module Installer Format

    The old template is actually pretty convoluted: developers are expected to implement specific callback functions in their install.sh, and the zip file structure does not directly represent how modules are actually stored on your device. The new module installer format makes creating new modules very easy, but still give experienced developers tons of freedom to do anything they want in the installation process.

    For details regarding sepolicy.rule and the new module installer format, please read the updated Developer Guides. Note that the old "Module Installer Template" is obsolete; creating a Magisk module no longer requires a "template" as it is now a straightforward process.

    Full Changelog: here

    Source code(tar.gz)
    Source code(zip)
    Magisk-uninstaller-20200102.zip(2.18 MB)
    Magisk-v20.2.zip(5.27 MB)
  • v20.1(Nov 2, 2019)

    Lots of bug fixes from v20.0, and some cool new features!

    Updated Magisk Manager Hiding

    Starting with Magisk v20.1 paired with Magisk Manager v7.4.0, a new hiding mode is introduced for Android 9.0+. On supported devices, Magisk Manager will download and customize a heavily obfuscated stub APK and use it as a replacement. The stub app will then download the full app into its private internal data, then dynamically load and run the actual full Magisk Manager.

    Note, not all Android 9.0+ devices will be able to use this feature. To use an obfuscated stub as Magisk Manager, the Magisk daemon will have to rely on a special way to communicate with the app, and some OEMs (most likely Chinese manufacturers) block certain broadcasts, breaking the communication channel.

    Magisk Manager will verify compatibility before it uses stubs to hide itself on Android 9.0+. The verification relies on Magisk v20.1+, which means you have to fully upgrade and reboot in order to opt in this feature. If you are already running a hidden Magisk Manager, restore and upgrade Magisk Manager, upgrade Magisk and reboot, then re-hide the app.

    For those incompatible with the hiding-with-stub feature, there are also a few updates that everyone, regardless whether using stubs or not, can enjoy:

    • You can now customize the app name of the repackaged Magisk Manager
    • Magisk Manager will generate new keys to sign the repackaged APK to prevent signature detection

    Full Changelog: here

    Source code(tar.gz)
    Source code(zip)
    Magisk-uninstaller-20191102.zip(2.18 MB)
    Magisk-v20.1.zip(5.22 MB)
Owner
John Wu
John Wu
Opencv Android SDK application for Deep Neural Networks to run on Android.

This application allows you to deploy deep nets in Android environment using OpenCV Android SDK. With OpenCV, images are taken from the camera on your phone, and then these images are passed through the neural network and visualized on the front side. In this application, we will search for faces in the images taken and draw the found faces on the screen.

Ahmet Furkan DEMIR 10 Nov 1, 2022
Android filters based on OpenGL (idea from GPUImage for iOS)

GPUImage for Android Idea from: iOS GPUImage framework Goal is to have something as similar to GPUImage as possible. Vertex and fragment shaders are e

CATS Open Source Softwares 8.6k Dec 28, 2022
Android library project for cropping images

I guess people are just cropping out all the sadness An Android library project that provides a simple image cropping Activity, based on code from AOS

Jamie McDonald 4.5k Jan 7, 2023
Custom view for circular images in Android while maintaining the best draw performance

CircularImageView Custom view for circular images in Android while maintaining the best draw performance Usage To make a circular ImageView, add this

Pkmmte Xeleon 1.2k Dec 28, 2022
some android image filters

android-image-filter some android image filters in some filter, I use NDK to implement to make it more efficient Setup Install Android NDK and properl

RagnarokStack 643 Dec 27, 2022
An android image compression library.

Compressor Compressor is a lightweight and powerful android image compression library. Compressor will allow you to compress large photos into smaller

Zetra 6.7k Dec 31, 2022
Custom shaped android imageview components

Shape Image View Provides a set of custom shaped android imageview components, and a framework to define more shapes. Implements both shader and bitma

Siyamed SINIR 2.6k Jan 3, 2023
Android widget for cropping and rotating an image.

Cropper The Cropper is an image cropping tool. It provides a way to set an image in XML and programmatically, and displays a resizable crop window on

Edmodo 2.9k Nov 14, 2022
A simple image cropping library for Android.

SimpleCropView The SimpleCropView is an image cropping library for Android. It simplifies your code for cropping image and provides an easily customiz

Issei Aoki 2.5k Dec 28, 2022
Customizable Android full screen image viewer for Fresco library supporting "pinch to zoom" and "swipe to dismiss" gestures. Made by Stfalcon

This project is no longer supported. If you're able to switch from Fresco to any other library that works with the Android's ImageView, please migrate

Stfalcon LLC 1.8k Dec 19, 2022
Dali is an image blur library for Android. It contains several modules for static blurring, live blurring and animations.

Dali Dali is an image blur library for Android. It is easy to use, fast and extensible. Dali contains several modules for either static blurring, live

Patrick Favre-Bulle 1k Dec 1, 2022
An image resizing library for Android

Resizer Inspired by zetbaitsu's Compressor, Resizer is a lightweight and easy-to-use Android library for image scaling. It allows you to resize an ima

Kakit Ho 426 Dec 22, 2022
Photo picker library for android. Let's you pick photos directly from files, or navigate to camera or gallery.

ChiliPhotoPicker Made with ❤️ by Chili Labs. Library made without DataBinding, RxJava and image loading libraries, to give you opportunity to use it w

Chili Labs 394 Nov 29, 2022
Simple android image popup Library

Android Image Popup Show image as a popup on a click event or any event. Simply set the image as drawable and thats it!!!. And also you can set width,

Chathura Lakmal 64 Nov 15, 2022
Image loading library for Android

Image Loader Image loader library for Android. Deprecated. See Glide. Features Image transformations Automatic memory and storage caching Ability to l

Yuriy Budiyev 19 May 28, 2022
SVG to Android VectorDrawable XML resource file

svg2android [Deprecated - use official Vector Asset Studio directly from Android Studio] Convert SVG to Android VectorDrawable XML resource file. Extr

INLOOPX 1.7k Dec 29, 2022
SVG rendering library for Android

AndroidSVG AndroidSVG is a SVG parser and renderer for Android. It has almost complete support for the static visual elements of the SVG 1.1 and SVG 1

Paul LeBeau 1.1k Dec 28, 2022
Use a jar executable to create a Drawable class to display a SVG on Android.

SVG2Drawable Use a jar executable to create a Drawable class to display a SVG on Android. This is a standalone library, not a Runtime Android library.

Stan Kocken 202 Nov 28, 2022
[Android] Screenshot detection while user using your app

[Android] Screenshot detection while user using your app

Akexorcist 137 Dec 30, 2022