How to install EdXposed on Android 10 without triggering safety net


Question

Further to this question What are the alternatives for Xposed framework on Pie? Preferably without triggering Safety Net?



How does one install EdXposed on Android 10?



Notes:




  1. This is a self answered question consolidating information from several threads on XDA / Github and my experience on Oneplus 7 to give a helpful start to that dying breed who like to install modules . Edxposed is still in beta and Android 10 is recently released, so there would be many changes to this answer in future. Since I do not intend to update this answer with developments, others are welcome to add and modify. Moderators are welcome to make this a community wiki if warranted.


  2. Answer is generic in nature and for issues relating to installation / modules you are better off asking in respective device/module threads in XDA.



Answer

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 . To do that you have two methods available:



    1. 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.





  1. 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 )




  1. There is a tool on XDA that may help (not tried by me).



  2. 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)


[IMG: ][1]
[IMG: ][2]
[IMG: ][3]
[IMG: ][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:



  1. 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



  1. 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



  1. 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
    :)




Topics


2D Engines   3D Engines   9-Patch   Action Bars   Activities   ADB   Advertisements   Analytics   Animations   ANR   AOP   API   APK   APT   Architecture   Audio   Autocomplete   Background Processing   Backward Compatibility   Badges   Bar Codes   Benchmarking   Bitmaps   Bluetooth   Blur Effects   Bread Crumbs   BRMS   Browser Extensions   Build Systems   Bundles   Buttons   Caching   Camera   Canvas   Cards   Carousels   Changelog   Checkboxes   Cloud Storages   Color Analysis   Color Pickers   Colors   Comet/Push   Compass Sensors   Conferences   Content Providers   Continuous Integration   Crash Reports   Credit Cards   Credits   CSV   Curl/Flip   Data Binding   Data Generators   Data Structures   Database   Database Browsers   Date &   Debugging   Decompilers   Deep Links   Dependency Injections   Design   Design Patterns   Dex   Dialogs   Distributed Computing   Distribution Platforms   Download Managers   Drawables   Emoji   Emulators   EPUB   Equalizers &   Event Buses   Exception Handling   Face Recognition   Feedback &   File System   File/Directory   Fingerprint   Floating Action   Fonts   Forms   Fragments   FRP   FSM   Functional Programming   Gamepads   Games   Geocaching   Gestures   GIF   Glow Pad   Gradle Plugins   Graphics   Grid Views   Highlighting   HTML   HTTP Mocking   Icons   IDE   IDE Plugins   Image Croppers   Image Loaders   Image Pickers   Image Processing   Image Views   Instrumentation   Intents   Job Schedulers   JSON   Keyboard   Kotlin   Layouts   Library Demos   List View   List Views   Localization   Location   Lock Patterns   Logcat   Logging   Mails   Maps   Markdown   Mathematics   Maven Plugins   MBaaS   Media   Menus   Messaging   MIME   Mobile Web   Native Image   Navigation   NDK   Networking   NFC   NoSQL   Number Pickers   OAuth   Object Mocking   OCR Engines   OpenGL   ORM   Other Pickers   Parallax List   Parcelables   Particle Systems   Password Inputs   PDF   Permissions   Physics Engines   Platforms   Plugin Frameworks   Preferences   Progress Indicators   ProGuard   Properties   Protocol Buffer   Pull To   Purchases   Push/Pull   QR Codes   Quick Return   Radio Buttons   Range Bars   Ratings   Recycler Views   Resources   REST   Ripple Effects   RSS   Screenshots   Scripting   Scroll Views   SDK   Search Inputs   Security   Sensors   Services   Showcase Views   Signatures   Sliding Panels   Snackbars   SOAP   Social Networks   Spannable   Spinners   Splash Screens   SSH   Static Analysis   Status Bars   Styling   SVG   System   Tags   Task Managers   TDD &   Template Engines   Testing   Testing Tools   Text Formatting   Text Views   Text Watchers   Text-to   Toasts   Toolkits For   Tools   Tooltips   Trainings   TV   Twitter   Updaters   USB   User Stories   Utils   Validation   Video   View Adapters   View Pagers   Views   Watch Face   Wearable Data   Wearables   Weather   Web Tools   Web Views   WebRTC   WebSockets   Wheel Widgets   Wi-Fi   Widgets   Windows   Wizards   XML   XMPP   YAML   ZIP Codes