xposed-framework is de facto dead , the last update being more than two years ago and that too for Oreo and there is no news of further updates.
EdXposed , being open source is a preferred alternative for me and hence this answer. EdXposed officially supports Android 10 (Incidentally,some Xposed modules were working in earlier versions of EdXposed too) .
Pre-requisites (need to be updated from sources or as prompted by EdXPosed manager).
Installation
Obviously you have a rooted device running Android 10, with Magisk installed.
Install Riru-core module first.
YAHFA or Sandhook drivers. YAHFA is relatively slower but stable by most accounts compared to Sandhook. You would need to check XDA for what works best for your device/Android version. For me, it has been YAHFA on my earlier and current device. These can be installed directly if using Magisk 20.2 plus
Note: Prior to 29 February 20,YAHFA /Sandhook modules available on Magisk repo required patched drivers / custom Magisk. This was a little tedious and the process is at the end of the answer, retained for history and not applicable anymore (hence strike through text)
- Reboot, install EdXPosed manager , add Android 10 ready modules and profit!
Does it pass Safety Net?: Yes
Edit: Not anymore. Please see Magisk will fail Safety-Net hereafter. Why?
Notes
Xposed module development isn't what it used to be so there are only a few Android 10 ready Xposed modules. The ones I care for and Android 10 ready are:
* [XPrivacy Lua](https://forum.xda-developers.com/xposed/modules/xprivacylua6-0-android-privacy-manager-t3730663). This works beautifully with the same module that worked on earlier Android versions.
Ill advised as it may be, one may be tempted to try other modules too. If they work, please update here. But if they don't work and create freezes, reboots , system lags (pretty common symptoms), you need to disable those modules without a nuclear factory-reset. To do that you have two methods available:
- Magisk Manager for Recovery Mode (mm). This module can be installed directly from Magisk but it will not work because it hasn't been updated to support Magisk versions beyond 19. You need to boot into TWRP (if TWRP is not permanently installed) and sideload the module. Next,from the recovery terminal run
mm or sh /sdcard/mm
and disable all modules or the offending module and reboot.
- Grant shell privileges to Magisk (this would have security implications, I guess) . Source
The best way is to grant shell su privileges with magisk in advanced by doing adb shell
then su
. Magisk will then ask to grant root to shell and you can use it even while bootlooping.
If you were to bootloop you'd then run adb shell
then touch /data/adb/modules/riru_edxposed_sandhook/disable
(or YAHFA )
There is a tool on XDA that may help (not tried by me).
From Ronan's comments (thanks)
Don't forget that if a module does boot loop you, you can delete the EdXposed module via TWRP. Just go to the file manager and head to data/adb/.magisk/modules
- Other tips as mentioned here may be useful.
Happy Xposing !
Screenshots from OnePlus7 running stock Android 10 (Click to enlarge)
[][1]
[][2]
[][3]
[][4]
[1]: https://i.stack.imgur.com/hNmZ4.jpg
[2]: https://i.stack.imgur.com/BOMNC.jpg
[3]: https://i.stack.imgur.com/EUTtM.jpg
[4]: https://i.stack.imgur.com/seTc8.jpg
Text below is redundant but retained for context
Now, comes the tricky part. As you can see in the official support for 10 release, these drivers cannot be directly installed through Magisk (by going to Magisk downloads, pressing + and flashing the zip). These require some sepolicy changes to be done:
- Through Magisk once the request (PR) is accepted by Magisk developer , in which case the drivers hosted on Magisk modules should work. This was hoped with the latest release of Magisk today , but it didn't happen. Update 15/12/19 likely to be officially supported soon
or
- Custom Magisk build links are hosted here. From Magisk settings , the update channel needs to be changed to "custom" and the link at custom update channel pasted there. This would prompt an update request and once you accept it, you have the custom build installed. I was wary of going this route fearing possible complications and also because PR as mentioned above was not accepted by Magisk developer.
or
- Using drivers that have the sepolicy changes incorporated in the drivers themselves , instead of Magisk side. At the moment, you can find here . This hopefully would be a temporary arrangement and the first option of changes being incorporated in Magisk itself materializes soon (you can add your voice for support in the PR
:)