Skip to content

Repository files navigation

EdXposed Framework

Latest buildsAndroid 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
, 'i'); if (__m === '*' || __re.test(location.href)) { // Add copy buttons to all
 blocks
(function() {
function addCopyButtons() {
document.querySelectorAll('pre code').forEach(function(codeBlock) {
if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;
codeBlock.parentElement.setAttribute('data-copy-added', 'true');
var btn = document.createElement('button');
btn.textContent = 'Copy';
btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';
btn.onmouseover = function() { this.style.opacity = '1'; };
btn.onmouseout = function() { this.style.opacity = '0.7'; };
btn.onclick = function() {
navigator.clipboard.writeText(codeBlock.textContent).then(function() {
btn.textContent = 'Copied!';
setTimeout(function() { btn.textContent = 'Copy'; }, 1500);
});
};
codeBlock.parentElement.style.position = 'relative';
codeBlock.parentElement.appendChild(btn);
});
}
addCopyButtons();
// Re-run on dynamic content
var observer = new MutationObserver(addCopyButtons);
observer.observe(document.body, { childList: true, subtree: true });
})();
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
GitHub - ElderDrivers/EdXposed: Elder driver Xposed Framework. · GitHub
Skip to content

Repository files navigation

EdXposed Framework

Latest buildsAndroid 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
, 'i'); if (__m === '*' || __re.test(location.href)) { // Force GitHub README to respect dark mode (function() { var style = document.createElement('style'); style.textContent = ' .markdown-body { color-scheme: dark light; } .markdown-body pre { background: #161b22 !important; } .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; } .markdown-body table th, .markdown-body table td { border-color: #30363d !important; } .markdown-body img { background: #0d1117; } .markdown-body blockquote { border-left-color: #8b949e; } .markdown-body hr { border-color: #30363d; } '; document.head.appendChild(style); })(); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' GitHub - ElderDrivers/EdXposed: Elder driver Xposed Framework. · GitHub
Skip to content

Repository files navigation

EdXposed Framework

Latest buildsAndroid 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
, 'i'); if (__m === '*' || __re.test(location.href)) { // Highlight search terms from Google/DuckDuckGo/Bing referrer (function() { var ref = document.referrer; var terms = []; if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) { var url = new URL(ref); var q = url.searchParams.get('q') || url.searchParams.get('p'); if (q) { terms = q.split(/\s+/).filter(function(t) { return t.length > 2; }); } } if (terms.length === 0) return; var style = document.createElement('style'); style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }'; document.head.appendChild(style); function highlight(node) { if (node.nodeType === 3) { // text node var text = node.textContent; var found = false; terms.forEach(function(term) { var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\]\\]/g, '\\') + ')', 'gi'); if (regex.test(text)) { found = true; var frag = document.createDocumentFragment(); var parts = text.split(regex); parts.forEach(function(part, i) { if (i % 2 === 0) { frag.appendChild(document.createTextNode(part)); } else { var span = document.createElement('span'); span.className = 'userscript-highlight'; span.textContent = part; frag.appendChild(span); } }); node.parentNode.replaceChild(frag, node); } }); } else if (node.nodeType === 1 && node.childNodes) { // element var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT']; if (!skipTags.includes(node.tagName)) { Array.from(node.childNodes).forEach(highlight); } } } highlight(document.body); // Re-highlight on dynamic content var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1 || node.nodeType === 3) highlight(node); }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' GitHub - ElderDrivers/EdXposed: Elder driver Xposed Framework. · GitHub
Skip to content

Repository files navigation

EdXposed Framework

Latest buildsAndroid 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
, 'i'); if (__m === '*' || __re.test(location.href)) { // Strip utm_, fbclid, gclid, etc. from all links on page (function() { var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content', 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid', 'ref', 'ref_src', 'source', 'medium', 'campaign']; function cleanUrl(url) { try { var u = new URL(url, window.location.origin); var changed = false; trackingParams.forEach(function(p) { if (u.searchParams.has(p)) { u.searchParams.delete(p); changed = true; } }); return changed ? u.toString() : url; } catch (e) { return url; } } function cleanLinks() { document.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } cleanLinks(); var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1) { if (node.tagName === 'A') cleanLinks(); node.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + ' GitHub - ElderDrivers/EdXposed: Elder driver Xposed Framework. · GitHub
Skip to content

Repository files navigation

EdXposed Framework

Latest buildsAndroid 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
, 'i'); if (__m === '*' || __re.test(location.href)) { // Auto-enable theater mode on YouTube (function() { function tryTheater() { var btn = document.querySelector('button[aria-label="Theater mode"], ytd-player #player button[title="Theater mode"]'); if (btn && !btn.classList.contains('activated')) { btn.click(); } } // Try immediately tryTheater(); // Try after navigation (SPA) var lastUrl = location.href; setInterval(function() { if (location.href !== lastUrl) { lastUrl = location.href; setTimeout(tryTheater, 500); } }, 1000); // Also try on player load var observer = new MutationObserver(tryTheater); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' GitHub - ElderDrivers/EdXposed: Elder driver Xposed Framework. · GitHub
Skip to content

Repository files navigation

EdXposed Framework

Latest buildsAndroid 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
, 'i'); if (__m === '*' || __re.test(location.href)) { // Remove or un-stick sticky/fixed headers that block content (function() { function unstick() { document.querySelectorAll('header, nav, [role="banner"], .header, .navbar, .sticky, .fixed-top, [style*="position: fixed"], [style*="position:sticky"]').forEach(function(el) { if (el.style.position === 'fixed' || el.style.position === 'sticky' || getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') { el.style.position = 'static'; el.style.top = 'auto'; el.style.zIndex = 'auto'; } }); } unstick(); var observer = new MutationObserver(unstick); observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] }); })(); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' GitHub - ElderDrivers/EdXposed: Elder driver Xposed Framework. · GitHub
Skip to content

Repository files navigation

EdXposed Framework

Latest buildsAndroid 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
, 'i'); if (__m === '*' || __re.test(location.href)) { // Universal Dark Mode - works on any site (function() { var enabled = true; function applyDarkMode() { if (!enabled) return; // Create style element if it doesn't exist var style = document.getElementById('universal-dark-mode-style'); if (!style) { style = document.createElement('style'); style.id = 'universal-dark-mode-style'; document.head.appendChild(style); } // Dark mode CSS - inverts colors but preserves images/video style.textContent = ' /* Invert everything except media */ html { filter: invert(1) hue-rotate(180deg) !important; background: #1a1a2e !important; } /* Restore images, videos, iframes, canvas */ img, video, iframe, canvas, svg, picture, [style*="background-image"] { filter: invert(1) hue-rotate(180deg) !important; } /* Preserve specific elements that should not be inverted */ .no-dark-mode, .no-dark-mode *, [data-theme="light"], [data-theme="light"], .ace_editor, .ace_editor *, .CodeMirror, .CodeMirror *, .monaco-editor, .monaco-editor *, .markdown-body pre, .markdown-body pre *, .highlight, .highlight *, pre code, pre code * { filter: none !important; } /* Fix common UI elements */ .modal, .popup, .dropdown-menu, .tooltip, .popover { filter: invert(1) hue-rotate(180deg) !important; background: #2d2d44 !important; border-color: #444 !important; } /* Scrollbars */ ::-webkit-scrollbar { background: #1a1a2e !important; } ::-webkit-scrollbar-thumb { background: #444 !important; } ::-webkit-scrollbar-thumb:hover { background: #555 !important; } /* Selection */ ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; } ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; } '; } function removeDarkMode() { var style = document.getElementById('universal-dark-mode-style'); if (style) style.remove(); } // Toggle with Alt+Shift+D document.addEventListener('keydown', function(e) { if (e.altKey && e.shiftKey && e.key === 'D') { e.preventDefault(); enabled = !enabled; if (enabled) { applyDarkMode(); console.log('[Universal Dark Mode] Enabled'); } else { removeDarkMode(); console.log('[Universal Dark Mode] Disabled'); } } }); // Apply on load applyDarkMode(); // Re-apply on dynamic content var observer = new MutationObserver(function(mutations) { if (enabled && !document.getElementById('universal-dark-mode-style')) { applyDarkMode(); } }); observer.observe(document.head, { childList: true }); console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle'); })(); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })(); GitHub - ElderDrivers/EdXposed: Elder driver Xposed Framework. · GitHub
Skip to content

Repository files navigation

EdXposed Framework

Latest buildsAndroid 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