- Double-tap TextView to enable text selection
- Native Android selection UI
- Toast confirmation: "Select now"
- No Internet permission
- No Accessibility Service
- No clipboard monitoring
- No background service
- Only active in applications selected by LSPosed
- Android / LSPosed
- Modern libxposed API (LSPosed 2.x)
When enabled for an application in LSPosed Manager, the module hooks android.widget.TextView construction and installs a small touch listener. A qualifying double tap causes the module to:
- Enable
TextViewtext selection. - Show the confirmation toast
Select now. - Return
falseso the application's normal touch handling can continue.
The double-tap behavior follows the observed legacy implementation: a second ACTION_DOWN within 300 ms and within 15 dp of the first tap is treated as the double tap.
- Rooted Android device.
- LSPosed with modern libxposed API support.
- Android 8.0+ (
minSdk 26).
gradle :app:assembleReleaseThe release build is intentionally not configured with a repository signing key. Public releases are signed in GitHub Actions with the maintainer's private release keystore and Uber APK Signer.
Release tags use the format required by the Xposed Modules Repository:
VersionCode-VersionName
For example, the first release is:
1-1.0.0
Later releases can use the same format, for example 2-1.1.0. The workflow derives the APK version and filename from the tag.
The release workflow:
- Builds the release APK.
- Downloads the pinned Uber APK Signer release.
- Reconstructs the PKCS#12 release keystore from GitHub Actions secrets.
- Signs and zip-aligns the APK.
- Verifies the APK signature against the expected certificate SHA-256 fingerprint.
- Produces a SHA-256 checksum for the final APK.
- Renames the APK to
hamedsbt.xposed.textselect.<version>.apk. - Creates the GitHub Release and uploads the APK and checksum.
The signing keystore and passwords are never committed to the repository.
Configure these GitHub Actions repository Secrets:
RELEASE_KEYSTORE_BASE64— base64-encodedtextselect-release.p12.RELEASE_KEYSTORE_PASSWORD— PKCS#12 keystore password.RELEASE_KEY_ALIAS—textselect.RELEASE_KEY_PASSWORD— private-key password.
The workflow derives the certificate SHA-256 from the restored keystore at release time, so no additional certificate secret is required.
The behavior was reconstructed from the supplied apktool output of com.arjerine.textxposed, particularly the decompiled Xposed and touch-listener implementation. Text Select is a clean-room rewrite of the observed behavior in a modern codebase and is intentionally limited to the double-tap selection feature.
The source code of this rewrite is released under the MIT License.