Custom Edge Canary Build
A debloated browser with the tracking ripped out
Manifest surgery · DEX method stubs · native lib neutralization · URL redirection
# What It Strips
4 tracking permissions (AD_ID, ADSERVICES, RECEIVE_SMS), 4 device-ID vendor queries, 27 Adjust/HMS/Xiaomi/Firebase/Citrix/KOOM components, 29 telemetry meta-data entries
OneAuth token sharing, Intune MAM handlers, OneDS telemetry, Microsoft LogManager (5), Adjust SDK (10), Tencent Matrix tracers — across 3 DEX files
Citrix ctxlog/log4cpp/SSL, KOOM heap dump, Tencent trace-canary, Crashpad, ARCore, OAID, Bing opus (~36MB). Plus 12 System.loadLibrary() calls NOP'd
OneCollector + 9 ARIA collectors, 8 Adjust domains, App Center, ECS flags, Google Analytics, AdMob, OAID, 6 Xiaomi endpoints — all redirected to 127.0.0.1
# Full Tracker Breakdown
Every analytics SDK, push framework, MDM hook and telemetry endpoint the pipeline neutralizes, by vendor.
The exact lists live in edge-fix/config/.
| SDK / Vendor | What it does | How it's neutralized |
|---|---|---|
| Microsoft OneDS / ARIA / OneCollector | Cross-app analytics + telemetry event collection | 11 collector endpoints → 127.0.0.1; LogManager initialize/flush/uploadNow/setTransmitProfile stubbed; OneDS init + native loader stubbed |
| Microsoft OneAuth token sharing | Shares signed-in auth tokens across Microsoft apps | registerTokenSharing() stubbed; token_share_* meta-data removed |
| Microsoft Intune MAM | Mobile app-management / MDM enrolment hooks | 4 background handlers stubbed (onHandleIntent, onStartCommand, onReceive, onCreate); MAMSDKVersion meta-data removed |
| Adjust SDK | Install attribution + ad/marketing analytics | Auto-init content provider dropped; 10 API methods stubbed; 8 .com/.io domains → 127.0.0.1; OAID loader NOP'd |
| Google Firebase / DataTransport | Cloud messaging + analytics transport | 5 components + CctBackendFactory removed; 7 Firebase registrar meta-data removed; google-analytics.com → 127.0.0.1 |
| Google AD_ID / AdServices / AdMob | Advertising identifier + attribution API | AD_ID + ACCESS_ADSERVICES_ATTRIBUTION + install-referrer permissions removed; AdMob gen_204 ping → 127.0.0.1 |
| Huawei HMS / AGConnect | Push + analytics (China region) | 8 components + 7 meta-data removed; com/huawei/hms + agconnect class trees deleted; HMS cert assets stripped |
| Xiaomi Push / MiPush | Push messaging (China region) | 7 components + 4 meta-data removed; xiaomi/push + mipush class trees deleted; 6 endpoints → 127.0.0.1 |
| Tencent Matrix | Performance / ANR trace-canary instrumentation | 3 tracer onAlive() methods stubbed; libtrace-canary.so stripped + loadLibrary NOP'd |
| KOOM (Kuaishou) | Heap monitoring + memory-dump capture | HeapAnalysisService removed; 3 koom .so stripped; loadLibrary NOP'd |
| Citrix MVPN / MAM | MITM proxy + secure-storage providers | 4 components removed; ctxlog/log4cpp/CoreSdkCrypto/fullsslsdk stripped; loadLibrary NOP'd |
| Device-ID probes (MSA/Samsung/Coolpad/OPPO/OAID) | Hardware advertising-ID resolution | 4 <queries> package probes removed; libmsaoaidsec/auth stripped; CertChecker loadLibrary NOP'd |
| App Center + ECS | Crash reporting + remote experiment flags | in.appcenter.ms + config.edge.skype.com → 127.0.0.1 |
| Chromium Crashpad | Native crash-dump upload | libchrome_crashpad_handler + trampoline stripped |
| Misc native code | ARCore, Bing speech (opus), learning-tools, RECEIVE_SMS, GMS revocation, Play-stamp metadata | Libs stripped; permission + RevocationBoundService removed; stamp/split meta-data removed |
Microsoft OneDS / ARIA / OneCollector
Cross-app analytics + telemetry event collection
11 collector endpoints → 127.0.0.1; LogManager initialize/flush/uploadNow/setTransmitProfile stubbed; OneDS init + native loader stubbed
Microsoft OneAuth token sharing
Shares signed-in auth tokens across Microsoft apps
registerTokenSharing() stubbed; token_share_* meta-data removed
Microsoft Intune MAM
Mobile app-management / MDM enrolment hooks
4 background handlers stubbed (onHandleIntent, onStartCommand, onReceive, onCreate); MAMSDKVersion meta-data removed
Adjust SDK
Install attribution + ad/marketing analytics
Auto-init content provider dropped; 10 API methods stubbed; 8 .com/.io domains → 127.0.0.1; OAID loader NOP'd
Google Firebase / DataTransport
Cloud messaging + analytics transport
5 components + CctBackendFactory removed; 7 Firebase registrar meta-data removed; google-analytics.com → 127.0.0.1
Google AD_ID / AdServices / AdMob
Advertising identifier + attribution API
AD_ID + ACCESS_ADSERVICES_ATTRIBUTION + install-referrer permissions removed; AdMob gen_204 ping → 127.0.0.1
Huawei HMS / AGConnect
Push + analytics (China region)
8 components + 7 meta-data removed; com/huawei/hms + agconnect class trees deleted; HMS cert assets stripped
Xiaomi Push / MiPush
Push messaging (China region)
7 components + 4 meta-data removed; xiaomi/push + mipush class trees deleted; 6 endpoints → 127.0.0.1
Tencent Matrix
Performance / ANR trace-canary instrumentation
3 tracer onAlive() methods stubbed; libtrace-canary.so stripped + loadLibrary NOP'd
KOOM (Kuaishou)
Heap monitoring + memory-dump capture
HeapAnalysisService removed; 3 koom .so stripped; loadLibrary NOP'd
Citrix MVPN / MAM
MITM proxy + secure-storage providers
4 components removed; ctxlog/log4cpp/CoreSdkCrypto/fullsslsdk stripped; loadLibrary NOP'd
Device-ID probes (MSA/Samsung/Coolpad/OPPO/OAID)
Hardware advertising-ID resolution
4 <queries> package probes removed; libmsaoaidsec/auth stripped; CertChecker loadLibrary NOP'd
App Center + ECS
Crash reporting + remote experiment flags
in.appcenter.ms + config.edge.skype.com → 127.0.0.1
Chromium Crashpad
Native crash-dump upload
libchrome_crashpad_handler + trampoline stripped
Misc native code
ARCore, Bing speech (opus), learning-tools, RECEIVE_SMS, GMS revocation, Play-stamp metadata
Libs stripped; permission + RevocationBoundService removed; stamp/split meta-data removed
# The Pipeline
A 6-step orchestrator copies the original APK and replaces only the patched files (DEX + manifest), preserving every resource, native lib and unmodified DEX byte-for-byte.
patch-manifest.py XML-based manifest surgery — drops tracking permissions and analytics components
stub-method.py Replaces 23 telemetry method bodies with safe return defaults via smali
neutralize-loadlibrary.py NOPs System.loadLibrary() calls in 5 native-backed classes
replace-strings.py Rewrites 30+ telemetry endpoint URLs to 127.0.0.1, strips tracker class trees + unused native libs
zipalign + apksigner Re-aligns and re-signs the split APK bundle with a stable keystore
APKEditor.jar Merges base + splits into a single installable APK and re-signs it
# Patch Your Own — From the Canary You Already Have
No APKMirror download, no AppManager export. build-from-device.sh pulls
the split APKs from the Edge Canary already installed on your phone over ADB, runs the full pipeline, and
(optionally) installs the result back in place.
First switch from the Play Store build still needs an uninstall (its
signature differs from yours, so Android wipes data). After that, every rebuild updates in place because it's
signed with your stable edge-fix.keystore. Needs ADB + the same
build prerequisites below.
# Build From Source
Needs apktool 2.10+, zipalign +
apksigner, python3,
JDK 11+, and the baksmali/smali 3.0.9 fat jars.
A signing keystore auto-generates on first run — keep it stable for in-place updates.
# Install
The build produces a single merged APK (easiest — installs with any installer) and the 4-part split bundle. The first install from your keystore requires uninstalling the Play Store version (signature mismatch wipes Edge data). No ADB? Use SAI or Quick Share.
In-place update — no data wipe
Already on a build signed with the same keystore? Android accepts the update because the signatures match —
bookmarks, logins and settings are preserved. Don't uninstall first; keep edge-fix.keystore stable.
# Known Limitations
classes4.dex is unpatched
Interfaces with static methods cause IncompatibleClassChangeError after a baksmali/smali round-trip. Three URLs remain active (variations seed, an already-invalid crash domain, rewards API).
Chromium UMA metrics
Baked into native .so libs with no Java entry point to stub.
User-configurable telemetry
Account sync, search suggestions and Copilot features are runtime Edge settings — disable them in-app.