Convert Figma logo to code with AI

ElderDrivers logoEdXposed

Elder driver Xposed Framework.

5,546
636
5,546
48

Top Related Projects

51,615

The Magic Mask for Android

4,988

Inject into zygote process

19,993

LSPosed Framework

The Java part of the Xposed framework.

Quick Overview

EdXposed is a Xposed framework variant that works on Android Pie (9.0) and above. It's designed to be a drop-in replacement for the original Xposed framework, allowing users to run Xposed modules on newer Android versions without modifying the system partition.

Pros

  • Compatible with Android Pie (9.0) and above
  • Does not require system partition modifications
  • Supports both Riru and Zygisk as underlying frameworks
  • Maintains compatibility with most existing Xposed modules

Cons

  • May cause system instability or performance issues
  • Requires root access to install and use
  • Not officially supported by Google or device manufacturers
  • Some modules may not work perfectly due to changes in Android's architecture

Getting Started

  1. Ensure your device is rooted.
  2. Install Magisk Manager on your device.
  3. Install either Riru or Zygisk module through Magisk Manager.
  4. Download the latest EdXposed release from the GitHub repository.
  5. Flash the EdXposed zip file through Magisk Manager or custom recovery.
  6. Install EdXposed Manager app from the repository.
  7. Reboot your device.
  8. Open EdXposed Manager to install and manage Xposed modules.

Note: Specific installation steps may vary depending on your device and Android version. Always backup your data before making system modifications.

Competitor Comparisons

51,615

The Magic Mask for Android

Pros of Magisk

  • Provides root access and system modification without altering the system partition
  • Offers a more comprehensive set of features, including modules and MagiskHide
  • Generally more stable and widely supported across different devices

Cons of Magisk

  • Requires unlocking the bootloader, which may void warranty on some devices
  • Can be more complex to set up for users new to Android customization

Code Comparison

EdXposed:

public class XposedBridge {
    private static final String TAG = "EdXposed";
    // ...
}

Magisk:

object MagiskBoot {
    private const val CHROMEOS_MAGIC = "CHROMEOS"
    // ...
}

Key Differences

  • EdXposed focuses on modifying app behavior through Xposed framework, while Magisk provides broader system-level modifications
  • Magisk has a more active development cycle and larger community support
  • EdXposed requires Magisk or similar root solution to function, whereas Magisk can operate independently

Use Cases

  • EdXposed: Ideal for users who primarily want to modify app behavior without extensive system changes
  • Magisk: Better suited for users seeking comprehensive root access, system modifications, and module support
4,988

Inject into zygote process

Pros of Riru

  • Lighter weight and more efficient than EdXposed
  • Broader compatibility with various Android versions and devices
  • More frequent updates and active development

Cons of Riru

  • Less comprehensive module support compared to EdXposed
  • Requires more technical knowledge for installation and usage
  • May have limited functionality for certain advanced Xposed modules

Code Comparison

EdXposed:

public class EdXposedBridge {
    public static void hookMethod(Member method, XC_MethodHook callback) {
        // Implementation
    }
}

Riru:

static int riru_api_version = 0;
static RiruApiV9 *riru_api = NULL;

static void init(void *handle, int api_version, const RiruApiV9 *api) {
    riru_api_version = api_version;
    riru_api = api;
}

The code snippets show that EdXposed uses Java for its core functionality, while Riru utilizes C, indicating a lower-level approach. EdXposed focuses on method hooking, whereas Riru provides a more general-purpose API for system modifications.

19,993

LSPosed Framework

Pros of LSPosed

  • More active development and frequent updates
  • Better compatibility with newer Android versions
  • Improved stability and performance

Cons of LSPosed

  • May have a steeper learning curve for new users
  • Potentially less compatible with older Android versions

Code Comparison

LSPosed:

@Override
public void handleLoadPackage(XC_LoadPackage.LoadPackageParam lpparam) throws Throwable {
    if (lpparam.packageName.equals("com.example.app")) {
        XposedHelpers.findAndHookMethod("com.example.app.MainActivity", lpparam.classLoader,
                "onCreate", Bundle.class, new XC_MethodHook() {
            @Override
            protected void beforeHookedMethod(MethodHookParam param) throws Throwable {
                XposedBridge.log("App started!");
            }
        });
    }
}

EdXposed:

@Override
public void handleLoadPackage(XC_LoadPackage.LoadPackageParam lpparam) throws Throwable {
    if (lpparam.packageName.equals("com.example.app")) {
        XposedHelpers.findAndHookMethod("com.example.app.MainActivity", lpparam.classLoader,
                "onCreate", Bundle.class, new XC_MethodHook() {
            @Override
            protected void afterHookedMethod(MethodHookParam param) throws Throwable {
                XposedBridge.log("App started!");
            }
        });
    }
}

Both LSPosed and EdXposed use similar hooking mechanisms, but LSPosed often provides more advanced features and optimizations in its implementation.

The Java part of the Xposed framework.

Pros of XposedBridge

  • More established and widely recognized in the Android modding community
  • Extensive documentation and community support
  • Broader compatibility with older Android versions

Cons of XposedBridge

  • Development has slowed down in recent years
  • May not fully support newer Android versions (10+)
  • Requires custom recovery for installation

Code Comparison

XposedBridge:

public class XposedBridge {
    private static final String TAG = "XposedBridge";
    private static final Object[] EMPTY_ARRAY = new Object[0];
    private static final XposedBridge sInstance = new XposedBridge();
    // ...
}

EdXposed:

public class EdXposedBridge {
    public static final String TAG = "EdXposedBridge";
    private static final Object[] EMPTY_ARRAY = new Object[0];
    private static final EdXposedBridge sInstance = new EdXposedBridge();
    // ...
}

The code structure is similar, with EdXposed being based on XposedBridge. The main differences lie in the implementation details and how they interact with the Android system.

EdXposed aims to provide a more modern approach to the Xposed framework, focusing on newer Android versions and utilizing different hooking mechanisms. It offers improved compatibility with Android 10+ and doesn't require custom recovery for installation. However, it may have less extensive documentation and community support compared to the original XposedBridge.

Pros of XposedInstaller

  • More established and widely recognized in the Android modding community
  • Extensive documentation and user guides available
  • Larger user base, potentially leading to more community support and modules

Cons of XposedInstaller

  • No longer actively maintained, with the last update in 2017
  • Limited compatibility with newer Android versions (Android 8.0 and above)
  • Requires custom recovery and system modification, which may void device warranty

Code Comparison

XposedInstaller:

public class XposedApp extends Application {
    public static final String TAG = "XposedInstaller";
    private static XposedApp mInstance = null;
    private static Thread mUiThread;
    private static Handler mMainHandler;
}

EdXposed:

public class EdXposedApp extends Application {
    public static final String TAG = "EdXposedManager";
    private static EdXposedApp instance = null;
    private static SharedPreferences pref;
    private static ClassLoader classLoader;
}

Both projects use similar application class structures, but EdXposed includes additional features like SharedPreferences and ClassLoader management, reflecting its more recent development and focus on newer Android versions.

Convert Figma logo designs to code with AI

Visual Copilot

Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.

Try Visual Copilot

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