MCPcopy
hub / github.com/ElderDrivers/EdXposed

github.com/ElderDrivers/EdXposed @v0.5.2.2 sqlite

repository ↗ · DeepWiki ↗ · release v0.5.2.2 ↗
6,750 symbols 20,285 edges 640 files 4,462 documented · 66%
README

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

  • Stable:Stable 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]

Useful Links

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

Extension points exported contracts — how you extend this code

Builder (Interface)
The Builder interface is designed to designate a class as a builder object in the Builder design pattern. B [6 implementers]
xposed-bridge/src/main/apacheCommonsLang/external/org/apache/commons/lang3/builder/Builder.java
TypeBearer (Interface)
Object which has an associated type, possibly itself. [7 implementers]
dalvikdx/src/main/java/external/com/android/dx/rop/type/TypeBearer.java
KeepMembers (Interface)
(no doc) [16 implementers]
edxp-common/src/main/java/com/elderdrivers/riru/common/KeepMembers.java
CallOriginCallBack (Interface)
(no doc) [10 implementers]
edxp-sandhook/src/main/java/com/swift/sandhook/xposedcompat/hookstub/CallOriginCallBack.java
LibLoader (Interface)
(no doc) [2 implementers]
sandhook-hooklib/src/main/java/com/swift/sandhook/SandHookConfig.java
IServiceManager (Interface)
(no doc)
hiddenapi-stubs/src/main/java/android/os/IServiceManager.java
IXposedHookInitPackageResources (Interface)
Get notified when the resources for an app are initialized. In #handleInitPackageResources, resource replacement [2 implementers]
xposed-bridge/src/main/java/de/robv/android/xposed/IXposedHookInitPackageResources.java
AssignIndicesCallback (Interface)
Class used as a callback for #assignIndices. [8 implementers]
dalvikdx/src/main/java/external/com/android/dx/dex/code/DalvCode.java

Core symbols most depended-on inside this repo

get
called by 705
dalvikdx/src/main/java/external/com/android/dx/cf/iface/FieldList.java
getMethodId
called by 484
xposed-bridge/src/main/java/com/elderdrivers/riru/edxp/hook/HookProvider.java
hookBridge
called by 483
edxp-sandhook/src/main/java/com/swift/sandhook/xposedcompat/hookstub/HookStubManager.java
append
called by 478
xposed-bridge/src/main/apacheCommonsLang/external/org/apache/commons/lang3/builder/EqualsBuilder.java
size
called by 425
dalvikdx/src/main/java/external/com/android/dx/rop/type/TypeList.java
put
called by 375
dalvikdx/src/main/java/external/com/android/dx/rop/annotation/Annotation.java
add
called by 328
dalvikdx/src/main/java/external/com/android/dx/util/IntSet.java
getReg
called by 275
dalvikdx/src/main/java/external/com/android/dx/rop/code/RegisterSpec.java

Shape

Method 5,949
Class 703
Interface 66
Enum 18
Function 14

Languages

Java100%
Python1%

Modules by API surface

sandhook-hooklib/src/main/java/com/swift/sandhook/wrapper/StubMethodsFactory.java303 symbols
xposed-bridge/src/main/apacheCommonsLang/external/org/apache/commons/lang3/StringUtils.java109 symbols
dalvikdx/src/main/java/external/com/android/dex/Dex.java95 symbols
hiddenapi-stubs/src/main/java/android/app/ContextImpl.java90 symbols
xposed-bridge/src/main/java/de/robv/android/xposed/XposedHelpers.java85 symbols
xposed-bridge/src/main/apacheCommonsLang/external/org/apache/commons/lang3/builder/ToStringStyle.java83 symbols
xposed-bridge/src/main/java/android/content/res/XResources.java77 symbols
dalvikdx/src/main/java/external/com/android/dx/command/dexer/Main.java75 symbols
dalvikdx/src/main/java/external/com/android/dx/cf/code/Ropper.java60 symbols
dalvikdx/src/main/java/external/com/android/dx/merge/DexMerger.java59 symbols
dexmaker/src/main/java/external/com/android/dx/Code.java53 symbols
dalvikdx/src/main/java/external/com/android/dx/rop/code/Rops.java52 symbols

For agents

$ claude mcp add EdXposed \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact