A fork of JingMatrix's LSPosed/Vector, aiming to make GKMSPatch work
Go to file
C3C0 f8aa9d0e11 Optimized preference file changes detection mechanism
Optimizations on top of original idea by @XspeedPL.

- introduced new manifest parameter: xposedsharedprefswatcher
- file watcher daemon starts only in case there is at least one module in the hooked process that requested file watcher feature either by specification in the
manifest or using new constructor XSharedPreferences(file, enableWatcher)
- XSharedPreferences instance registers watcher events only when it has support for watcher enabled so even if watcher daemon is already running
due to request by other module, it won't watch for events on files that belong to XSharedPreferences instance that has watcher disabled
- reduced log ouput in case of release builds
2021-01-15 21:27:58 +08:00
.github Update bug_report.md 2020-12-20 16:55:35 +08:00
art Fix typo 2019-12-19 17:55:44 +08:00
dalvikdx Fix build bug 2020-11-24 23:25:01 +08:00
dexmaker Sync with dexmaker 2020-12-23 14:15:20 +08:00
edxp-common Opt-in automatic preferences file migration 2021-01-07 20:31:13 +08:00
edxp-core fix new function signature 2021-01-11 20:37:56 +08:00
edxp-sandhook Move sandhook cache to /data/misc 2020-12-24 21:36:54 +08:00
edxp-service fix edxp service and close #799 2021-01-11 20:30:53 +08:00
edxp-yahfa Move sandhook cache to /data/misc 2020-12-24 21:36:54 +08:00
gradle/wrapper Better Hidden 2020-11-24 23:25:01 +08:00
hiddenapi-stubs Add EdXposed Service to update module path 2020-12-06 21:13:52 +08:00
sandhook-annotation Add SandHook-hooklib to source tree 2020-12-11 03:31:56 +08:00
sandhook-hooklib CastCompilerOptions should be initialized before calling initHideApi 2020-12-23 19:51:32 +08:00
xposed-bridge Optimized preference file changes detection mechanism 2021-01-15 21:27:58 +08:00
.gitattributes Migrate to new EdXposedManager installer app 2019-02-04 03:27:46 +08:00
.gitignore fix: replace whale so file to fix crash on x86_64 2019-11-04 14:48:13 +08:00
.gitmodules Use AXML instead of Apkparser 2020-12-20 15:36:27 +08:00
LICENSE.md Create LICENSE.md 2019-01-21 02:44:11 +08:00
README.md Prepare for alpha release 2020-12-21 23:07:28 +08:00
README_CN.md Change README_CN.md update version 2021-01-14 12:29:28 +08:00
appveyor.yml Bump version 2020-12-29 23:36:57 +08:00
build.gradle Fix SandHook build 2020-12-11 17:14:54 +08:00
gradle.properties Upgrade ndk to 22.0.7026061 2020-12-18 01:14:37 +08:00
gradlew Refactor project structure 2019-03-19 14:32:44 +08:00
gradlew.bat Migrate to GitHub 2019-01-19 01:54:14 +08:00
settings.gradle Use AXML instead of Apkparser 2020-12-20 15:36:27 +08:00

README.md

EdXposed Framework

Latest builds Android CI 中文说明文档

Introduction

A Riru module trying to provide an ART hooking framework (initially for Android Pie) which delivers consistent APIs with the OG Xposed, leveraging YAHFA (or SandHook) hooking framework, supports Android 8.0 ~ 11.

Xposed is a framework for modules that can change the behavior of the system and apps without touching any APKs. That's great because it means that modules can work for different versions and even ROMs without any changes (as long as the original code was not changed too much). It's also easy to undo. As all changes are done in the memory, you just need to deactivate the module and reboot to get your original system back. There are many other advantages, but here is just one more: Multiple modules can do changes to the same part of the system or app. With modified APKs, you to decide for one. No way to combine them, unless the author builds multiple APKs with different combinations.

Supported Versions

Wiki: Available Android versions

Build

Wiki: Build

Install

  1. Install Magisk v21+
  2. Install Riru v23+ from Magisk repo.
  3. Download and install EdXposed in Magisk Manager or recovery.
  4. Install EdXposed Manager.
  5. Reboot.
  6. Have fun! :)

Download

Edxposed has three different builds

  • StableStable version after passing the test, suitable for general users, update slowly. Download Stable version in Magisk Manager's [Downloads] tab

  • Alpha: Test version with multiple commits. Download Alpha version in [Github Releases]

  • Canary: Debug version. Automatically build by CI. Download Canary version in [EdXposed Manager]

Known Issues

See Issues

Get Help

  • GitHub issues: Issues

  • Notice(for Chinese): In view of the low quality of issues submitted, please read the Chinese user report firstEdXposedIssuesReport_cn(If you don't read the instructions, the submitted issue is likely to be closed)

For Developers

Developers are welcomed to write Xposed modules with hooks based on EdXposed Framework. Module written based on EdXposed framework is fully compatible with the original Xposed Framework, so contrary a Xposed Framework-based module will work well with the EdXposed framework too.

We use the module repository of the original Xposed, so you simply upload the module to repository, then you can download your module in EdXposed.

Community Discussion

Notice: These community group don't accept any bug report, please use Get help to report.

Contribute

  • Apparently this framework is far from stable and all kinds of PRs are welcome. :)
  • Buy me a coffee if you like my work.

Credits

  • YAHFA: the core ART hooking framework
  • Magisk: makes all these possible
  • Riru: provides a way to inject codes into zygote process
  • XposedBridge: the OG xposed framework APIs
  • dexmaker and dalvikdx: to dynamiclly generate YAHFA hooker classes
  • SandHook: ART hooking framework for SandHook variant
  • Dobby: used for inline hooking