1. 20 Jul, 2019 5 commits
  2. 17 Jul, 2019 2 commits
  3. 16 Jul, 2019 3 commits
  4. 15 Jul, 2019 4 commits
  5. 08 Jul, 2019 2 commits
  6. 07 Jul, 2019 8 commits
  7. 05 Jul, 2019 1 commit
  8. 04 Jul, 2019 4 commits
  9. 02 Jul, 2019 1 commit
  10. 01 Jul, 2019 3 commits
  11. 30 Jun, 2019 1 commit
  12. 29 Jun, 2019 2 commits
    • topjohnwu's avatar
      Add separate product partition support · e8b73ba6
      topjohnwu authored
      e8b73ba6
    • topjohnwu's avatar
      Logical Resizable Android Partitions support · f1112fdf
      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.
      f1112fdf
  13. 27 Jun, 2019 4 commits
    • osm0sis's avatar
      magiskboot: don't clobber /overlay with cpio restore anymore · a48c4f9e
      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
      a48c4f9e
    • Rom's avatar
      French translation update · 19a521d2
      Rom authored
      19a521d2
    • cristisilaghi's avatar
      [ro] Add translators · dd6e55ac
      cristisilaghi authored
      dd6e55ac
    • osm0sis's avatar
      Manager: fix ModulesFragment reboot menu · b1e63f0f
      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
      b1e63f0f