No results found

AmznKiller - Xposed Module Repository

AmznKiller

Xposed module built on the modern LSPosed API that hides ads and sponsored content inside the Amazon Android app.

Update Selectors Validate Selectors Kotlin Android

Features

  • Remove sponsored cards, video carousels, and other promotional UI in the Amazon app
  • Maintained built-in selector list with remote updates. Optionally use your own self-hosted selector list via custom URL.
  • Selector sanitization blocks common CSS injection patterns
  • Material 3 Expressive settings UI with Jetpack Compose
  • Recommended alongside Private DNS and hosts-based blocking
  • Free and open source (FOSS)

Requirements

  • Android 9 (API 28) or higher
  • LSPosed (JingMatrix fork recommended)
  • Amazon Shopping app (com.amazon.mShop.android.shopping)

Installation

  1. Download the APK:

    Get it on GitHub Get it on Obtainium

  2. Enable the module in LSPosed and scope it to com.amazon.mShop.android.shopping

  3. Open the AmznKiller companion app to verify the module is active and optionally fetch updated lists (built-in filters work out of the box)

  4. Force-stop the Amazon app and relaunch it. A toast confirms the module is active.

Screenshots

Search query: “macbook air m1 16gb 512”

Stock (2 real results, rest are ads)Patched
Stock Amazon app Patched Amazon app

Settings app

Dashboard Selectors
Settings Settings (bottom)

FAQ

Nothing changes in Amazon

See Troubleshooting. Most common causes: module not scoped correctly, missing force stop on Amazon Shopping, or LSPosed not activated.

Some products or sections are missing (blank lists, missing tiles)
  1. Disable CSS injection in AmznKiller settings to confirm selectors are the cause.
  2. Update selectors from the dashboard (tap refresh).
  3. If it persists, open an issue with: AmznKiller version, Amazon app version, WebView version, selector count.
Sync says "remote failed" or "bundled only"

Bundled selectors are still applied. Check connectivity, reset the selector URL in settings, and refresh again.

Does this block network requests or just hide elements?

Cosmetic only. It injects CSS to hide ad elements. Network requests still happen. Works alongside DNS-based blockers (AdGuard, NextDNS, Private DNS, hosts files).

Does this work on Amazon Lite or other Amazon apps?

No. The module is scoped to com.amazon.mShop.android.shopping only for now.

Do I need to reboot after updating selectors?

No. Updated selectors apply on the next page load inside Amazon Shopping. Force stop Amazon Shopping if changes don’t appear immediately.

Troubleshooting

  1. Confirm the module is enabled in LSPosed and scoped to Amazon Shopping.
  2. Force stop Amazon Shopping, then reopen (or reboot).
  3. Open AmznKiller. Verify Xposed is active and selector count is above 0.
  4. Tap refresh on the dashboard. If it fails, reset the selector URL in settings and retry.
  5. If pages look broken, disable CSS injection temporarily, reopen Amazon Shopping, update selectors, then re-enable.

Build

git clone --recurse-submodules https://github.com/hxreborn/amznkiller.git
cd amznkiller

# Build libxposed and publish to local Maven repo
./gradlew buildLibxposed
./gradlew :app:assembleDebug

Requires JDK 21 and Android SDK. Configure local.properties:

sdk.dir=/path/to/android/sdk

# Optional: release signing for reproducible builds
RELEASE_STORE_FILE=<path/to/keystore.jks>
RELEASE_STORE_PASSWORD=<store_password>
RELEASE_KEY_ALIAS=<key_alias>
RELEASE_KEY_PASSWORD=<key_password>

Contributing

See CONTRIBUTING.md for guidelines on pull requests, code style, and commit conventions.

For bugs or feature requests, open an issue.

License

GPLv3

This project is licensed under the GNU General Public License v3.0 – see the LICENSE file for details.

Package

eu.hxreborn.amznkiller

Authors

rafareborn

Releases

v1.0.0

Release Type: Stable

2/11/2026, 7:42:06 AM

View all releases

Releases

v1.0.0

Release Type: Stable

2/11/2026, 7:42:06 AM

Initial release.

For previous changelog, see pre-releases.

What's Changed

Added

  • 14000ac - (ui) Add animated splash screen by @hxreborn

  • 00bbb8e - Add ghost state to metrics grid when injection is disabled by @hxreborn

    • Left card shows pause icon and "Injection paused"
    • Right card dims and disables click
  • b89fe37 - Persist refresh failure state and use string resources for error messages by @hxreborn

    • Dashboard shows error state after app restart if last sync failed
    • Error messages use string resources instead of hardcoded text

Fixed

  • 0772e25 - (hook) Skip toast when amazon starts in bg by @hxreborn

    process restarts from push/content-provider trigger onPackageLoaded without the app being visible

  • 7e2a51e - (util) Add missing XposedModule import by @hxreborn

  • 6c5e46b - Split Logger into debug and info tiers by @hxreborn

    • Boot and error logs always emit
    • Runtime verbosity respects the debug logs toggle
  • b178a48 - Gate WebView debugging on WEBVIEW_DEBUGGING pref by @hxreborn

    • Toggle in settings now actually controls WebView debugging
    • Requires force stopping Amazon to take effect
  • ac658e9 - Replace report-issue icon with Feedback by @hxreborn

Changed

  • b7192d5 - Simplify toast logic in AmznkillerModule by @hxreborn

    • Flattened nested reflection blocks
    • Removed redundant process check
  • 501b058 - Reduce StyleInjector.inject() complexity by @hxreborn

    • Split into smaller focused methods
    • Clearer field and class names
    • Comments for non-obvious logic
  • 7c2d77c - Improve ShapeUtil readability and TimeFormat granularity by @hxreborn

    • Named corner params instead of positional
    • Finer relative time buckets under 1 minute
    • Day-level relative time before falling back to date
  • 132e7f4 - Simplify dashboard state, remove dead code, reorganize packages by @hxreborn

    • Removed unused frameworkPrivilege field
    • Simplified UpdatesCard with local status enum
    • Moved ViewModel and UiState to shared packages

Other

© 2021 - 2026 New Xposed Module Repository