Hide ads and sponsored content in the Amazon Shopping Android app.
com.amazon.mShop.android.shopping)Grab the APK:
Enable the module in LSPosed and scope it to com.amazon.mShop.android.shopping.
Open the AmznKiller app to confirm the module is active and refresh selectors.
Force-stop Amazon Shopping and relaunch.
Search query: “macbook air m1 16gb 512”
| Stock (2 real results, rest are ads) | Patched |
|---|---|
| Force Dark | Price History |
|---|---|
| Dashboard | Selectors | Settings | Settings (bottom) |
|---|---|---|---|
Amazon disables Android force dark via forceDarkAllowed=false in its theme. The module hooks ViewRootImpl.determineForceDarkType and forces the return to FORCE_DARK_ALWAYS, triggering GPU-level darkening across native views and WebViews. Extra hooks paint window backgrounds dark and block white-flash on WebView load. DarkModeInjector ships CSS overrides for elements the algorithm gets wrong.
determineForceDarkType was introduced in Android 15 (API 35). On Android 10-14 the primary hook does not apply. A fallback on HardwareRenderer.setForceDark is attempted but Amazon’s theme opt-out blocks darkening on those versions.
Disabled by default. Enable in settings if on Android 15+.
This is cosmetic blocking only. Network requests still happen. Pair with DNS-based blockers (AdGuard, NextDNS, Pi-hole) for full coverage.
git clone https://github.com/hxreborn/amznkiller.git
cd amznkiller
./gradlew :app:assembleDebug
Requires JDK 21 and Android SDK. Configure local.properties:
sdk.dir=/path/to/android/sdk
# Optional: release signing
RELEASE_STORE_FILE=<path/to/keystore.jks>
RELEASE_STORE_PASSWORD=<store_password>
RELEASE_KEY_ALIAS=<key_alias>
RELEASE_KEY_PASSWORD=<key_password>
See CONTRIBUTING.md. For bugs or feature requests, open an issue.
GPL v3.0. See LICENSE.
eu.hxreborn.amznkiller
Release Type: Stable
4/25/2026, 5:08:47 PM
ab6c401 - (hooks) Gate setSystemBarsAppearance on API 30+ by @hxreborn
82c38b1 - (manifest) Set fullBackupContent for pre-Android 12 by @hxreborn
725317a - (ui) Add monochrome adaptive icon layer by @hxreborn
472b555 - (selectors) Drop unused error field on MergeResult.Partial by @hxreborn
1ff31fb - (strings) Convert count strings to plurals by @hxreborn
5577f58 - (theme) Make EXPANDED_TITLE_MAX_LINES const by @hxreborn
b054615 - (ui) Drop redundant guards in UpdatesCard status when by @hxreborn
1783c4c - (ui) Use LocalResources for tagline lookup by @hxreborn