Wednesday, August 3, 2016

[MOD][2015.8.4] Magisk v1 - The Universal Systemless Interface

Magisk

Magisk Is A Magic Mask to Alter System Systemless-ly.


Table of Contents
  1. General information and Magisk downloads
  2. Example Magisk projects:
    Systemless Xposed and Systemless Root (w/ Android Pay support)
  3. Details for developers


Hello, welcome to the Magisk thread.

Previous limitation of systemless mods is that you can only bind mount things to existing items inside the system. This limited the usage of systemless mods in general. Also, systemless mods used to be complicated and not easy to maintain (as you can see with my Systemless Xposed), and also not always possible (new libs / bins / framework or any other files/folders are required to be added into system), and this is why not all mods on XDA are systemless.

Magisk aims to overcome these difficulties and create a universal interface for everyone to develop and use systemless mods.
Developers can easily create a systemless mod with the help of Magisk without dealing with the complexity. Users will only need to flash Magisk to their device, and they are good to go.

To demonstrate the power and ease to use Magisk, I created some sample projects: "Systemless Root" and "Systemless Xposed" (both with Android Pay working).

Features
  • Magic Mount:
    This feature will not only allow you to replace existing file and directories, but also support adding new files and directories into system!
    What this means is that all existing mods should all be possible to work systemless-ly!
    (Developers please check post #3 for more details.)
  • Multiple Entry Points:
    If "Magic Mount" itself is still not powerful enough to accomplish your goal, Magisk provides several entry points for developers to run scripts at different boot times, making developers to do what ever they want at any time. It reliably blocks the boot process to continue before your scripts are done.
    (Developers please check post #3 for more details.)
  • Remove verity / forceencrypt (both are configurable through .magisk file, same as SuperSU), patches sepolicy (to run scripts and support multiple root methods)
    This means developers won't need to worry about boot image modifications in the future!
  • Important mods like Root, Xposed etc. can all depend on the Magisk interface (post #2)
  • Magisk Manager (included with the patch) lets you manage your root mount status, allowing you to use root with Android Pay support! (post #2)
  • magisk.img (the central place to store all your systemless mods) will resize automatically to support large mods, and reclaim the space after removing contents (Thanks to osm0sis's scripts!!)
Why Not Just Use The New "su.d"
  • A whole new method is now used in Magisk. SuperSU uses exec in post-fs-data, which is originally used in my v85.X Systemless Xposed versions. That command is not available in older Android versions and on many devices
  • Magisk supports all the way down to Android 5.0 (SDK 21+) (thanks to the new method and busybox environment)
  • SuperSU uses a short countdown to run su.d. In some situations (such as PIN on boot data encryption on the HTC 10), it will not be run in the correct time.
  • Magisk supports running scripts before data is available. This gives possiblity to change build.prop, or set ro props with scripts before system loaded the values from /system/build.prop
Possibilities
  • All mods on XDA can be systemless
  • Custom roms without flashing to system (good for stock modded roms)
  • Eventually might lead to universal Muiltirom support for all devices (Concept only, haven't started to work on it yet)
Downloads
Magisk
v1 Link
Example Projects (Please look at post #2 before downloading) :
Magisk Compatible phh's SuperUser
Magisk Compatible SuperSU
Systemless Xposed (External Link)

Developer's Template
Installer Template
Uninstaller Template (Not Available Yet)
Changelog
  • v1
    - Initial release

Special Thanks
  • @Captain_Throwback for testing and finding bugs
  • @phhusson for his root and advice with sepolicy and his sepolicy injection tool
  • @Chainfire for his supolicy patches to make life easier, and many bits of shell script code
  • @osm0sis for his image/zip size detection shell script function
  • @YashdSaraf for his super complete Busybox to obtain a reliable environment

XDA:DevDB Information
Magisk - The Universal Systemless Interface, Tool/Utility for all devices (see above for details)

Contributors
topjohnwu

Version Information
Status: Stable
Current Stable Version: v1
Stable Release Date: 2016-08-04

Created 2016-08-04
Last Updated 2016-08-03


from xda-developers http://ift.tt/2aTnaY5
via IFTTT

No comments:

Post a Comment