- 01 Jul, 2019 3 commits
- 30 Jun, 2019 1 commit
-
-
topjohnwu authored
-
- 29 Jun, 2019 2 commits
-
-
topjohnwu authored
-
topjohnwu authored
The way how logical partition, or "Logical Resizable Android Partitions" as they say in AOSP source code, is setup makes it impossible to early mount the partitions from the shared super partition with just a few lines of code; in fact, AOSP has a whole "fs_mgr" folder which consist of multiple complex libraries, with 15K lines of code just to deal with the device mapper shenanigans. In order to keep the already overly complicated MagiskInit more managable, I chose NOT to go the route of including fs_mgr directly into MagiskInit. Luckily, starting from Android Q, Google decided to split init startup into 3 stages, with the first stage doing _only_ early mount. This is great news, because we can simply let the stock init do its own thing for us, and we intercept the bootup sequence. So the workflow can be visualized roughly below: Magisk First Stage --> First Stage Mount --> Magisk Second Stage --+ (MagiskInit) (Original Init) (MagiskInit) + + + ...Rest of the boot... <-- Second Stage <-- Selinux Setup <--+ (__________________ Original Init ____________________) The catch here is that after doing all the first stage mounting, /init will pivot /system as root directory (/), leaving us impossible to regain control after we hand it over. So the solution here is to patch fstab in /first_stage_ramdisk on-the-fly to redirect /system to /system_root, making the original init do all the hard work for us and mount required early mount partitions, but skips the step of switching root directory. It will also conveniently hand over execution back to MagiskInit, which we will reuse the routine for patching root directory in normal system-as-root situations.
-
- 27 Jun, 2019 6 commits
-
-
osm0sis authored
- Magisk "dirty" flashes would remove the /overlay directory which might have been put there by a custom kernel or other mod - this is a leftover from when Magisk itself used /overlay for placing init.magisk.rc, so just remove this file specifically and leave the rest intact
-
Rom authored
-
cristisilaghi authored
-
osm0sis authored
- correct 'booloader' typo breaking bootloader entry - remove extra bootloader entry Shell.su line which is unnecessary since it's covered by reboot() - revert to using `reboot recovery` for recovery entry since `svc power reboot recovery` triggers a very disconcerting "Factory data reset" reboot dialog on many devices - add Reboot to EDL mode option for good measure
-
topjohnwu authored
-
topjohnwu authored
-
- 26 Jun, 2019 3 commits
- 25 Jun, 2019 4 commits
- 24 Jun, 2019 3 commits
- 23 Jun, 2019 3 commits
- 22 Jun, 2019 2 commits
- 21 Jun, 2019 6 commits
-
-
topjohnwu authored
-
JoanVC100 authored
-
topjohnwu authored
-
Viktor De Pasquale authored
Disposing wouldn't help since the shell doesn't appear to handle concurrency well
-
Viktor De Pasquale authored
Now they have their state synced with viewModel to allow continuity
-
Viktor De Pasquale authored
Fix superuser screen encountering inconsistencies when refreshing the data rapidly
-
- 18 Jun, 2019 1 commit
-
-
topjohnwu authored
-
- 16 Jun, 2019 6 commits
-
-
topjohnwu authored
-
topjohnwu authored
-
Viktor De Pasquale authored
The policy (app) is now deleted when found invalid (uninstalled)
-
Viktor De Pasquale authored
-
Viktor De Pasquale authored
-
Viktor De Pasquale authored
-