No results found

CleanShare - Xposed Module Repository

CleanShare

CleanShare is an Xposed module that removes Direct Share’s suggested contact/conversation shortcuts from Android’s Share Sheet.

Android CI Kotlin Android

Direct Share targets row removed

About

Direct Share suggests contacts you emailed once five years ago, colleagues from jobs you no longer have, and people you’d rather not be reminded of. The suggestions are rarely useful. I’ve yet to hit a case where they helped. Might as well cut the row and skip the hassle.

CleanShare tricks the Share Sheet into thinking it’s running on a low-RAM device. Android then skips the Direct Share pipeline to save resources, so the row never loads.

On devices with Android System Intelligence, it also blocks backend shortcut queries to prevent share target profiling.

Features

  • Hide Direct Share suggestions from the share sheet
  • Block share target profiling via Android System Intelligence
  • Hide Quick Share / Nearby Share from share sheet results
  • Delete shared screenshots after sharing with configurable delay (root required)
  • Move to trash or permanently delete
  • Built-in settings app with Material 3 UI

Requirements

  • Android 11 (API 30) or higher
  • LSPosed (JingMatrix fork recommended)
  • Pixel or AOSP-based ROM (Other OEMs are untested)

Installation

  1. Download the APK:

    Get it on F-Droid Get it on IzzyOnDroid Get it on GitHub Get it on Obtainium

  2. Install and enable the module in LSPosed.

  3. Configure the scope:

    Android 13+

    • Intent Resolver (com.android.intentresolver)
    • Android System Intelligence (com.google.android.as)

    Android 11-12

    • System Framework (android)
    • Android System Intelligence (com.google.android.as)
  4. Reboot your device.

System Framework is only needed if you use the delete-after-share feature. The module checks your Android version and only applies what’s needed.

FAQ

What does "Move to trash" do?

It uses Android’s standard MediaStore trash. The file gets flagged as trashed but stays on disk for 30 days before Android auto-removes it. You can recover it from the trash in Google Photos, Files by Google, or any gallery app that supports MediaStore trash.

Why doesn't the checkbox appear after editing a screenshot?

When you edit a screenshot, the editor creates a temporary copy with a different filename. The module tries to find the original screenshot by querying MediaStore for recent files in your Screenshots folder, but it depends on the filename matching a configurable pattern. If your device uses a non-standard naming convention, it may not find a match. You can adjust the pattern in settings.

Why is there a delay before deletion?

The receiving app needs time to process the shared file. If the file is deleted immediately, the share may fail. The delay is configurable in settings.

Does Quick Share filtering work on all devices?

It targets the standard AOSP IntentResolver package. Some OEMs (e.g. HyperOS) use heavily modified share sheets with different packages and are currently unsupported.

Quick Share still appears when sharing from app X

Some apps (e.g. Firefox) implement their own custom share sheet instead of using Android’s native one. CleanShare can only hook the system share sheet (com.android.intentresolver). If an app rolls its own, there’s nothing the module can do about it.

Do I need root for all features?

No. Direct Share hiding and Quick Share filtering work without root. Only the delete-after-share feature requires root because it needs to modify MediaStore entries and delete files outside the app’s storage sandbox.

Build

git clone --recurse-submodules https://github.com/hxreborn/cleanshare.git
cd cleanshare
./gradlew buildLibxposed
./gradlew assembleRelease

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

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

# Optional signing
RELEASE_STORE_FILE=<path/to/keystore.jks>
RELEASE_STORE_PASSWORD=<store_password>
RELEASE_KEY_ALIAS=<key_alias>
RELEASE_KEY_PASSWORD=<key_password>

License

GPLv3

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

Package

eu.hxreborn.cleanshare

Authors

rafareborn

Releases

v2.1.0

Release Type: Stable

2/27/2026, 7:03:40 AM

View all releases

Releases

v2.1.0

Release Type: Stable

2/27/2026, 7:03:40 AM

What's Changed

🚀 Added

  • f239675 - (deletion) Add trash as alternative to permanent delete by @hxreborn

    Add new mode to move screenshots to trash alongside permanent delete. Defaults to trash.

  • d22edd1 - (hook) Detect edited screenshots via IPC resolution by @hxreborn

    Add async method to detect recently edited screenshots so they're offered to delete.

🐛 Fixed

  • 47f23df - (hook) Skip trashed files in screenshot detection by @hxreborn

  • 4ad0b1f - (hook) Reset share session state on each chooser open by @hxreborn

    Prevent stale deletion state from leaking into subsequent share sessions.

♻️ Changed

  • 9cfcc45 - (quickshare) Gate debug logs behind BuildConfig.DEBUG by @hxreborn

    Revert verbose diagnostic logging from hook mechanism. All QuickShareFilterHooker logs now use debugLog which only emits in debug builds. Removed unused findMethodsByName and formatMethodSig utilities.

  • a5231d9 - (ui) Improve preference summaries by @hxreborn

  • 21a5d16 - (ui) Replace deletion mode dialog with segmented buttons by @hxreborn

Show older versions

© 2021 - 2026 New Xposed Module Repository