dimanche 29 mai 2016

[UNOFFICIAL][v85.0][29 May] Systemless Xposed

Many times I wanted to accept OTAs on my phone, but I have to restore the system in order to make it install.
Sometimes I don't want to install custom roms on my devices, I just want to root and get Xposed rockin.
I always wanted to have systemless Xposed since systemless SuperSU is available, and now I have done it by myself :p

Prerequisite
  • Android 6.0 (systemless root is only available on Marshmallow)
  • Rooted with Chainfire's Systemless root
Support Devices
In theory, it should work with all devices that support Chainfire's SuperSU systemless install, I used the same mechanism to patch ramdisk.
I have tested on my HTC One M8 (arm), HTC 10 (arm64) and Nexus 9 (arm64) (yes I'm HTC fanboy).
I don't know if Samsung devices will work, but I used Wanam's Xposed as a base, so if the files loaded correctly, it should work fine :)
I do not own a x86 Android device, so the x86 version is NOT tested, please try and report if it works for you, thanks.

Install Guide
  • (Recommend) Restore your system back to stock, especially if you have Xposed installed on your system
  • Download the correct files in the attachments.
  • Flash SuperSU systemless on your device
  • Flash systemless Xposed
  • Install the systemless Xposed Installer apk and start the fun :D:D
  • To disable systemless Xposed, restore stock boot image and re-flash SuperSU to gain root and disable encryption/verity etc.
    I might create an uninstaller in the future or add some ways to disable Xposed easier.
Bug Report
Please report if Systemless Xposed is:
  • Not loading at all (no effect on your device): Reboot to recovery, backup you boot image and upload to me so I can see what's happening
  • Causing bootloop: Enable logcat before flashing this mod, and use adb logcat > log.txt at boot and send me the logs
Android Pay ?!
After I created this mod I immediately tested Safety Net check, and unfortunately it won't work.
Although no system files are touched, maybe the modified Zygote and ART libs in Xposed tamper too much safety protections (I'm only guessing).
You can disable systemless Xposed, and then Android Pay should be working fine. No system restore is required to disable them.
At least it is going the correct way -- systemless. Maybe in the future the genius developers of Xposed will find a way to bypass the check.

Technical Details
After flashing the zip:
  • Xposed files installed to the su.img created in systemless SuperSU.
  • init.xposed.rc is added to ramdisk. Then import this file in init.rc
  • Script mount_xposed.sh added in kernel ramdisk: it mounts all files from /su to /system, and handles the work launch_daemonsu.sh does (this script is added by SuperSU to start su daemon and do several other things. It won't work correctly with Xposed installed systemless, so I let mount_xposed.sh do the necessary work).
  • The app_process is modified to load XposedBridge.jar and libxposed_art.so from /su
Source ?!
I'm lazy and I didn't build Xposed from source. I hex edited the binaries to load and detect the correct files for systemless.
The arm and arm64 version is modified from Wanam's Xposed. The x86 version is modified from the official Xposed released by rovo89.
For the Xposed Installer, I built Material Design Xposed Installer from source. The only change is entry point to detect the current installed systemless Xposed version.
(The original one and the official one will work too, it just can't show your current installed Xposed version and will complain Xposed is not installed)

Credits
@rovo89 for creating Xposed
@Chainfire for starting the systemless business and his sukernal binaries, which saved me a lot of time patching ramdisk :)
@wanam for his modified Xposed to expand more compatibilities with devices
@DVDandroid for his Material Design Xposed Installer



from xda-developers http://ift.tt/25qo8N7
via IFTTT

Aucun commentaire:

Enregistrer un commentaire