PixelInjector

libxposed API 102 Release Android 14+

A modular Xposed module of Pixel tweaks, each behind its own switch. I built it for my own phone, but if a tweak is useful to you and breaks on your build, I can adapt or fix it on demand.

  • One switch per tweak. Off tweaks change nothing.
  • Applies instantly. Switches take effect live, and updates hot reload through libxposed API 102 with no reboot.

Note

I build and test it on Pixel phones. On other ROMs a tweak can miss its target. For LineageOS and other ROMs with public source, I fix the tweak from that source. A closed ROM like HyperOS, One UI or ColorOS has no source to read, so the fix needs that ROM's own SystemUI or services.jar.

Screenshots
Dashboard Settings Your reports
Report a bug Module log Hot reload

Install

Needs Android 14 or newer, arm64, root and an Xposed framework with libxposed API 102 (LSPosed 2.x or Vector).

  1. Download the APK from Releases or the Xposed Modules Repo.
  2. Enable PixelInjector in your Xposed manager and select the apps of the tweaks you need in its scope.
  3. Reboot once. Later updates install from the app and reload without a reboot.

Tweaks

System UI

  • Warm Tiles: raises the limit of 3 bound tiles in Quick Settings. Same hook as qs-boundless-tiles.
  • PillShot: draws the app name on screenshots. Skips the selected apps or stamps only them. Revived from eXtreames/PillShot after its repo disappeared.
  • Mute screenshot sound: skips the screenshot shutter sound.
  • Empty shade message: replaces the empty shade's trophy and text with your own text and one of 141 icons. Android 17 only.
  • Always expand notifications: opens notifications expanded unless you collapsed one by hand.
  • Pin ongoing notifications: stops swiping away ongoing notifications like media and VPN.
  • Charging details: adds watts, volts, amps and battery temperature under the lock screen charging text.
  • Download chip: shows a download's progress as a chip in the status bar. Ported from Iconify's ongoing action chip.
  • Fingerprint icon: replaces the lock screen fingerprint icon with one of 34 icons from custom ROMs or your own image and can hide the circle behind it. Phones with an under-display fingerprint sensor.
  • Heads-up duration: sets how long a heads-up notification shows, from 1 to 15 seconds.
  • Double tap status bar to sleep: double tap empty status bar space and the phone sleeps.
  • Biometric Bypass: taps confirm on the biometric prompt after a face unlock and plays a system sound of your choice. Same hook as biometric-bypass.

System Framework

  • Force NEW_TASK: adds NEW_TASK to activity starts that match your rules, one source:target per line.
  • Clipboard in background: allows selected apps to read the clipboard in the background.

Launcher

  • Double tap to sleep: double tap empty home screen space and the phone locks and sleeps. Pixel Launcher and Launcher3.
  • Hide gesture pill: makes the navigation handle transparent and keeps a chosen percent of the bottom inset under apps. A percent change restarts the launcher.
  • Hide search bar: hides the search bar above the hotseat and frees the row it reserves. Pixel Launcher and Launcher3.
  • Hide app shortcuts: a long press on an app shows only the system actions. Pixel Launcher and Launcher3.
  • Home menu entry: adds PixelInjector to the home screen long press menu. Pixel Launcher and Launcher3.

Warning

Double tap to sleep runs su from Pixel Launcher. With KernelSU and APatch, grant root to Pixel Launcher by hand in the manager, not only to PixelInjector. On KernelSU it shows up after you turn on Show system apps.

Gboard

  • AMOLED black keyboard: makes the tinted grey keyboard surfaces pure black in dark mode. Stock Gboard and the Morphe build. Toggling restarts Gboard. Same hook as gboard-material-expressive-black.

Phone

  • Remove feedback chip: removes the Help us improve chip from the call list. Same hook as gdialer-dechip.

File picker

  • Force sort by newest first: opens folders newest first in the file picker and the storage browser. Same hook as remember-my-sort.

KDE Connect

  • KDE Connect Quiet: stops KDE Connect from holding the Wi-Fi multicast lock. Toggling restarts KDE Connect.

GitHub

  • GH FastPass: closes the GitHub app's approved 2FA dialog right away. Same hook as gh-fast-pass.

Firefox

  • Material You colors: uses your wallpaper colors in Iceraven and Firefox (stable, Beta and Nightly). Private browsing takes dark red surfaces and the red error accent. Toggling restarts the browser.
  • Material 3 loading indicator: shows pull to refresh as the shape morphing Material 3 indicator in your wallpaper colors. Toggling restarts the browser.

Report a bug

Report from the app or on GitHub, whichever you prefer. App reports are opt-in and end-to-end encrypted. Nothing leaves the phone until you tap Send. On a phone that isn't a Pixel and doesn't run an open source ROM such as LineageOS, a report about a System UI or System Framework tweak also sends that ROM's SystemUI or services.jar code, encrypted with the report.

  1. Open Settings, tap Report a bug, say what happened and send.
  2. Follow it in Your reports. My questions and the GitHub issue show there.
  3. The update that fixes it says Fixes your report.

Or reach me at hxreborn@duck.com or on Telegram.

Full specs
Part Detail
Scheme HPKE RFC 9180 base mode
Key exchange DHKEM X25519 HKDF-SHA256
Cipher AES-256-GCM
Encrypted Message, module log, app versions, ROM code from phones that aren't Pixels
Not encrypted Phone model, build, framework. Bound to the ciphertext as associated data
Developer key 3d76ec6a
Reply key X25519 per report, wrapped by Android Keystore
Server reports.hxreborn.eu holds no private key
Redacted log data Emails, phone numbers, IP and MAC addresses, Wi-Fi names, device and advertising IDs, storage paths, URL and header tokens (Redactor)
Retention 90 days
Update check On by default in Settings. A plain request every 6 hours with no device data

Credits

License

GPL-3.0-only

Releases

v1.20.0

Stable

10/25/2026, 1:08:26 PM

1.20.0 (2026-10-25)

Features

  • tweak: add FirefoxLoadingIndicator for Iceraven (070a66e)

Bug Fixes

  • hook: let hook failures propagate past tweak install catches (d6a7fc5)

Dependencies

  • deps: bump aboutlibraries from 15.2.0 to 15.3.0 (77bb115)
  • deps: bump androidx.compose.material3:material3 (4996bdb)
  • deps: bump gradle-wrapper from 9.8.1 to 9.8.2 (73d42b1)
  • deps: bump org.jetbrains.kotlinx:kotlinx-serialization-core (5abfc48)

Assets

1

v1.16.0

Stable

10/20/2026, 7:52:08 PM

1.16.0 (2026-10-20)

Features

  • ui: animate the update check action swap in settings (fdbf0d3)
  • ui: confirm or reject the manual update check with haptics (629579b)
  • ui: morph the reload result badge between cookie and sunny (1b841f1)
  • ui: morph the remaining buttons on press (613e31f)
  • ui: pick download chip options with a connected button group (233e1c4)
  • ui: resize the reload result chip as its status swaps (3244224)
  • ui: tick haptics when switching the app filter mode (ecdedec)

Bug Fixes

  • ui: keep the report delete confirmation across recreation (2cc0dc8)

Performance Improvements

  • ui: draw the download chip preview progress without recomposing (d260694)

Assets

1

v1.13.0

Stable

10/20/2026, 12:04:41 AM

1.13.0 (2026-10-20)

Features

  • update: group changelog notes by area with commit links (13d5f9b)

Bug Fixes

  • tweak: find any EmptyShade view collector and carry it on reload (0654408)
  • tweak: find the ScreenshotSound lambda by its log string (f3300b4)
  • tweak: install HomeMenuEntry on LineageOS 24 and AOSP launchers (4e813d0)
  • tweak: prefer the exact BiometricBypass onDialogAnimatedIn name (2aa7f6f)
  • tweak: resolve DownloadChip heads-up methods at any arity (d15464c)
  • tweak: resolve PillShot captureDisplay at any arity (82f90ad)
  • tweak: skip an abstract ChargingDetails computePowerIndication (e1794e5)

Assets

1

v1.12.0

Stable

10/18/2026, 8:54:22 PM

1.12.0 (2026-10-18)

Features

  • report: attach ROM code to reports from non-Pixel phones (ecd9307)
  • tweak: add DownloadChip settings sheet (f7ea290)
  • tweak: add DownloadChip side, icon and hide options (189340b)
  • tweak: add DownloadChip status bar progress chip (7432602)

Bug Fixes

  • tweak: add ChargingDetails support for HyperOS 3 (cf66f23), closes #31
  • tweak: add HomeMenuEntry support for Pixel Launcher CP41.260831 (f0e01ed)
  • tweak: find the GhFastPass state enum by its constant (b6e411c)
  • tweak: read the PillShot app from ScreenshotData.topComponent (a7eaa63)

Refactor

  • rename vague and metaphorical identifiers (0b1978d)

Assets

1

v1.11.0

Stable

10/17/2026, 10:53:20 AM

1.11.0 (2026-10-17)

Features

  • log: replace the tweak chip row with a tweak filter menu (7693643)
  • update: collapse the release notes on the update card (089ef66)

Bug Fixes

  • hook: log the class name as member on a missing class (52be9e6)
  • reload: fade the hot reload list under the action buttons (4cbb4da)
  • tweak: add HideAppShortcuts support for Pixel Launcher CP2A (5c1ddc8), closes #25
  • tweak: add HomeMenuEntry support for Pixel Launcher CP2A (7888087), closes #26

Assets

1

v1.10.0

Stable

10/17/2026, 1:13:00 AM

1.10.0 (2026-10-17)

Features

  • app: add a date format setting (120574f)
  • app: add an about screen with changelog and licenses (7cd2c02)
  • app: add button icons and a scrollable log to hot reload (2c161b3)
  • app: expand every release note from the update card (bacc86a)
  • app: offer install anyway for a release-signed update (c53dd43)
  • app: remove hook status sharing (5364cf3)
  • app: show tweak options as compact rows under a divider (1f682f6)
  • hook: add a PixelInjector row to the home long press menu (d2a54d6)
  • hook: block swipe dismissal of ongoing notifications (8a73608)
  • hook: hide app shortcuts in the launcher long press popup (f42c915)
  • hook: replace the lock screen fingerprint icon and circle (6764f5e)
  • hook: set the heads-up notification display time (7137782)
  • hook: show watts volts amps and temperature while charging (ccce19c)

Bug Fixes

  • app: cut a pasted report message at the limit (0c2c7d7)
  • app: hide the report button on the root sleep error (3fdba93)
  • app: ignore a failed log archive write (37cbd4b)
  • app: read the module log under one lock (505807a)
  • app: redact quoted SSIDs and SD card paths (4b0a850)
  • app: reuse the cached GitHub release and back off on rate limits (c2c973e)
  • app: show the group symbol for a section without a package (54ace2d)
  • app: write the hot reload log off the main thread (0a233e3)
  • app: write the newest report list to the ledger (cc78a68)

Refactor

  • app: flatten wrapped conditions and single-branch whens (5d9fbfd)

Assets

1

v1.9.1

Stable

10/16/2026, 9:13:09 AM

1.9.1 (2026-10-16)

Bug Fixes

  • app: ask for root only when su was denied (61ee5d6)
  • app: ignore error lines from processes that died (a213289)
  • app: label scrubbed log data as redacted (c1ffced)
  • app: note that double tap to sleep needs root for the home app (ce6f74a)
  • app: redact phone numbers and advertising IDs from reports (d9efeeb)
  • app: redact phone numbers without a plus prefix (e6b8ce9)
  • app: remove the update check and module log row summaries (c1d765a)
  • app: report tweaks that log runtime errors as error (bd73690)
  • app: scope the redaction disclosure to the module log (c80f698)
  • app: show a tweak's runtime error on its tile (b8a18de)
  • app: show the update snackbar once (dfc2801)
  • app: time out a hot reload that never answers (0fd14c7)
  • hook: log why a root sleep failed (9ea6b4f)
  • hook: resolve the notifyUpdateLayoutParams overload (c016d3e), closes #21

Assets

1

v1.9.0

Stable

10/14/2026, 4:28:33 PM

A full bug report system inside the app, end-to-end encrypted and tied to the release that fixes it.

  • End-to-end encrypted reports. Your message and module log are sealed on the phone with HPKE (X25519 and AES-256-GCM) and only the developer's key opens them. The server holds no private key. Questions and notes from the developer are sealed to a reply key that only your phone holds, wrapped by Android Keystore. Settings, Report a bug lists the full specs with links.
  • Follow your report. Each report shows its status, the latest note, a Reply button while a question is open and a link to the GitHub issue once there is one.
  • Fixes you can see. A report closes only when a release really carries the fix for its issue. That release note line is marked "Fixes your report" in the update card.
  • Opt-in. Nothing leaves the phone until you tap Send encrypted report. Sharing hook status is now off by default, and the automatic update check has its own switch.
  • Settings. Grouped into Updates, Support, Dashboard, Privacy and About. The module log moved to Support.
  • Dashboard. App icons on section headers, tweak icons on rows, option rows nested inside their tweak card and an option to hide tweaks your phone cannot load.
  • Hot reload. Each process shows its app icon and name, and the version chip appears only when a process runs an older build.
  • Motion and layout. Shared axis screen transitions with a scaled predictive back. Sheets open below the status bar and fit short screens.

Requires Android 14 or later.

1.9.0 (2026-10-14)

Features

  • app: add a switch for automatic update checks (657ba68)
  • app: add an option to hide unavailable tweaks (6a635c3)
  • app: encrypt developer notes end to end (af18fce)
  • app: group settings into updates support privacy and about (018ef42)
  • app: hide package names in section headers unless enabled (0839355)
  • app: list encryption specs with spec links in the report sheet (5c08175)
  • app: mark the release note line that fixes your report (8a872d4)
  • app: nest option rows inside their tweak card (86eda61)
  • app: show app and tweak icons on dashboard and settings rows (5559248)
  • app: show app icon and label on hot reload rows (23e5c1b)
  • app: show each report as status, latest note and issue link (9e95a8e)
  • app: stack screens with shared axis and scaled predictive back (ca20e8c)

Bug Fixes

  • app: fit settings and report sheets to landscape (7deb381)
  • app: keep sheets below the status bar (766c617)
  • app: make sharing hook status opt-in (77e8b3a)
  • app: open the update from anywhere on the version row (aed24d4)
  • app: rename Send a report to Report a bug (9174801)
  • app: rewrite report and update copy to say what each screen does (58abd1b)
  • app: scroll the targets list under a transparent action bar (cc22240)
  • app: tighten hierarchy of settings reports and update sheets (8d08017)

Refactor

  • app: remove the module log button from the toolbar (58b0aaf)

Assets

1

v1.7.0

Stable

10/5/2026, 4:04:28 PM

1.7.0 (2026-10-05)

Features

  • app: draw a scrollbar on the dashboard list (b6b82f7)
  • hook: add GH FastPass closing the approved 2FA dialog in the GitHub app (b936f16)

Bug Fixes

  • app: register the prefs listener before sending the first snapshot (3801d51)
  • hook: catch failures inside the posted confirm retries (043d61f)
  • hook: drop the DexKit bridge reference before closing it (d1e9d65)
  • hook: keep the unlock sound while Biometric Bypass is off (ef4d909)

Refactor

  • app: collapse single line lambdas in the prefs sync and log parser (82f2c45)
  • hook: name every bindings value and pending state explicitly (3dfe6d9)
  • util: catch only missing members in the reflection helpers (c28c464)

Assets

1

v1.6.0

Stable

10/5/2026, 12:11:44 PM

1.6.0 (2026-10-05)

Features

  • app: exit the toolbar on scroll and morph buttons, toggles, checkboxes and menu items (c76340b)

Bug Fixes

  • app: shrink the collapsed dashboard title and right align link tile chevrons (2710bc0)

Refactor

  • app: replace the scrollbar gist with the material3 scrollbar modifier (ab0a501)

Assets

1

v1.1.0

Stable

9/7/2026, 8:50:11 PM

1.1.0 (2026-09-07)

Features

  • app: add a confirm sound picker for Biometric Bypass (c51ee18)

Bug Fixes

  • hook: drop the click sound when BiometricBypass taps confirm (2928fd0)
  • hook: press the power key instead of goToSleep in SleepSignal (3dd59c2)

Assets

1