ShizuStore

XGesture

qpst4

1.33.0 · GitHub

Download APK
Customization Android 12+ 9 hours ago AGPL-3.0
231 ShizuStore
4.3k GitHub
91 Stars
68 MB Size

More about this app

All-in-one gesture and one-hand navigation suite with edge panels, floating cursor, offline OCR ball, app freezer and freeform windows via Shizuku.

XGesture

๐Ÿ“ฑ XGesture โ€” The Ultimate Android Gesture & One-Handed Productivity Suite

All-in-One Open-Source Alternative to Samsung One Hand Operation+ (OHO+), Quick Cursor & FooView
Edge Panels ยท Reachability Floating Cursor ยท Floating Ball OCR & Reverse Image Search ยท Shake & Back-Tap Gestures ยท Notification & OTP Manager ยท App Freezer ยท Freeform Window ยท Shizuku & LSPosed

English | ็ฎ€ไฝ“ไธญๆ–‡ | ๆ—ฅๆœฌ่ชž

Release License Platform Kotlin AGP Gradle Compose BOM minSdk targetSdk


XGesture Full Showcase

XGesture is a universal system-level gesture and single-handed productivity suite designed for all Android 12+ devices across all OEMs. Built on Accessibility Services with flexible multi-privilege modes (Shizuku, Root / KernelSU / Magisk, and optional LSPosed integration), it brings desktop-grade control and effortless reachability to modern large-screen phones.

Easily trigger 50+ system actions via customizable multi-angle screen-edge swipes, reachability floating pointers, multi-functional floating ball, device shaking, desk-flipping, or back-tap gestures. Deeply integrates 100% offline on-device OCR, word segmentation (CppJieba), and reverse image search aggregationโ€”delivering high-efficiency overlay launchers, app freezing, OTP verification code extraction, notification management, and OEM freeform windows on top of any app, completely free from ads and cloud trackers.

  • Package Name: com.slideindex.app
  • Current Version: 1.33.0 (versionCode 68)
  • Requirements: Android 12+ (API 31+)
  • License: AGPL-3.0 License

๐Ÿ“ฅ Download & Installation

Download Full APK Download Lite APK

Variant Scenario Description
Full Package (xgesture-*-full.apk) Recommended for new users Out-of-the-box experience with built-in offline OCR, Jieba segmentation, and offline translation native engines
Lite Package (xgesture-*-lite.apk) Compact size / on-demand updates Retains core gestures and fundamental features with smaller package size; download extension engines on demand

Tip

Both packages share the same applicationId (com.slideindex.app), allowing direct overwriting installation without losing configurations.


๐ŸŒŸ Core Features

The app features four main navigation tabs: ๐Ÿ  Home ยท ๐Ÿ“ณ Motion ยท ๐Ÿ”” Notification ยท ๐Ÿงฉ Extensions.

๐Ÿ  Home โ€” Edge Gestures, Floating Ball & Customization

1. Edge Gestures

  • Triggers & Aesthetics: Highly responsive left/right/top/bottom edge triggers, supporting bubble, capsule, wave animations, and haptic feedback.
  • Custom Layout & Landscape Triggers: Freely adjust trigger position, height, thickness, angle, and segments; supports dedicated landscape trigger handles for gaming and media viewing.
  • Smart Anti-Mistouch: Auto-hide in landscape/lock screen/home screen, with per-app exclusion lists and foreground switching blacklists.
  • Corner Radial Menu: Swipe from bottom-left or bottom-right corners to summon a radial menu with real-time Gaussian blur and action grouping.
  • OEM Freeform Integration: Deeply adapts to native Android Freeform, Xiaomi MIUI/HyperOS Small Window, and Meizu Flyme Small Window.

2. 50+ Configurable Gesture Actions

Category Actions Supported
System Navigation Back, Home, Recents, Previous App, Lock Screen, Power Menu, Split Screen
Screenshot & Visual Fullscreen Screenshot, Region Screenshot, Screenshot OCR, Region OCR, Screen Recorder, Flashlight
OCR & Image Search Floating Ball OCR, Reverse Image Search, Live Screen Translation, Universal Screen Copy, Pin Screenshot, QR Code Scanner
Panels & Launchers Quick Launcher, App Index, Circle Launcher (FV Style), Honeycomb Launcher, Holographic Launcher, Task Switcher (OHO Style), App Freezer, Expand Panel (Volume/Brightness), Widget Overlay
Media & Controls Previous/Next Track, Play/Pause, Volume Adjust, Brightness Adjust, Switch IME
Tools & History Floating Pointer, Clipboard History Panel, Quick Tools Panel (OHO Style), Pause Overlay, Pause Gestures
Advanced & Extensions Run Shell Commands (Shizuku / Root), Launch Activity / Shortcut, Direct App Launch, Alarm Reminder in N min, Re-freeze Apps

3. ๐Ÿ”ฎ Floating Ball (OCR, Image Search & Gestures)

Operates independently from the Floating Pointer, combining joystick navigation with screen OCR pointers.

  • Accessibility & Offline Multi-Engine OCR: Extracts text via accessibility nodes first, seamlessly falling back to local offline OCR (ML Kit / Tesseract / PaddleOCR ONNX).
  • Text Selection Panel: One-click search, translate, segmentation (CppJieba), select all, remove spaces, and copy; supports region clipping and shared image OCR history.
  • Search Aggregation: Customizable search engines, grid sorting, search history, prefix aliases, and deep links; supports importing from GestureEVO / SearchEVO.
  • Reverse Image Search: Summon multi-engine reverse search (Google, Yandex, TinEye, SauceNAO, IQDB, 3D-IQDB, ASCII2D, trace.moe, AnimeTrace, Copyseeker) with built-in WebView preview.
  • Pin to Screen: Pin screenshots or text cards as top-level floating windows with pinch-to-zoom and drag support.
  • Appearance & Tuning: Custom themes, images, GIFs, and slideshows; adjustable pointer sensitivity and OCR tolerance.

4. Theme & Appearance

  • Miuix Design System: Comprehensive adoption of Miuix UI (HyperOS style) with collapsible TopAppBar, virtualized grouped cards, overscroll damping, and haptic feedback.
  • Material You Dynamic Coloring: Automatically extracts wallpaper colors via MaterialKolor on Android 12+, generating 9 palette styles injected into MiuixTheme.
  • Blur & Performance: Bottom navigation and floating overlays support Gaussian blur and progressive blur; can be disabled to completely eliminate scroll sampling overhead.

๐Ÿ“ณ Motion & Device Gestures โ€” Shake, Flip & Back-Tap

  • 6-Direction Shake Recognition: Distinguishes left/right flip, forward/backward flip, and quick side shakes; supports per-app custom actions and sensitivities.
  • Desk-Flip Mute: Place face-down on a flat surface while screen is on to trigger lock screen and silent mode.
  • Back-Tap Gestures (BackTap): Accelerometer-based back-cover double-tap recognition supporting 50+ actions, screen on/off/always trigger policies, sensitivity tuning, and charging guard.
  • Scenario Rules: Screen on/locked activation policies, app blacklists/whitelists, independent sensitivity thresholds, and vibration feedback.

๐Ÿ”” Notification โ€” Reminders, History & OTP

  • Multi-Style Reminders: Intercepts notifications with Dynamic Island cards, heads-up popups, side bubbles, or screen danmaku; supports "Open Latest Message on Unlock" (with whitelist and confirm policies).
  • Notification History & Filtering: Categorizes active, history, and hidden notifications with multi-dimensional regex and keyword archiving.
  • OTP Verification Center: Automatically detects verification codes in SMS and app notifications with regex extraction, clipboard auto-copy, and auto-fill; optional LSPosed module for system-level SMS injection.

๐Ÿงฉ Extensions โ€” Utility Tools & Backup

Module Navigation Entry Core Capabilities
App Index Extensions โ†’ App Index Alphabetical Pinyin rail app drawer with adjustable columns and transparency
Quick Launcher Extensions โ†’ Quick Launcher Grid launcher supporting multi-panel switching, pagination, folder grouping, and shortcut library
Circle Launcher Gesture Action "Circle Launcher" FV-style concentric circle layout with customizable tiers, spacing, shapes, and slots
Honeycomb Launcher Extensions โ†’ Honeycomb Launcher Hexagonal honeycomb grid layout with swipe-out direct launching
Holographic Launcher Extensions โ†’ Holographic Launcher Fullscreen 3D holographic sphere launcher; drag to rotate and click to open
Task Switcher Gesture Action "Task Switcher" OHO-style vertical running tasks panel with swipe-to-switch, kill, clear all, and freeform launch
Quick Tools Panel Gesture Action "Quick Tools Panel" OHO-style quick settings panel aggregating system toggles, actions, and shortcuts
App Freezer Extensions โ†’ App Freezer Batch freeze and unfreeze background apps via Shizuku / Root with quick re-freeze gesture
Search Panel Extensions โ†’ Search Panel Unified search for apps, contacts, files, system settings, web queries, and reverse image search
Activity Shortcuts Extensions โ†’ Activity Shortcuts Hidden system settings, non-exported activity launcher, App Shortcuts, and URI deep links
External Invocation Extensions โ†’ External Invocation xgesture:// deeplinks and intent actions for Tasker, MacroDroid, and other automations
Shell Commands Extensions โ†’ Shell Commands Command panels, template variable substitution, and custom icons via Shizuku / Root
Widget Panel Extensions โ†’ Widget Panel Floating desktop widget host with adjustable blur background and multi-selection
Floating Pointer Extensions โ†’ Floating Pointer Virtual joystick-controlled ring pointer with hover selection, radial actions, and gesture macro replay
Clipboard History Gesture Action "Clipboard Panel" Rich clipboard history with search, edge floating window, and Shizuku background listener
Settings Backup Extensions โ†’ Settings Backup Export and import all configurations and assets as encrypted ZIP files

๐Ÿ“ธ Key Interfaces & Interaction Preview

Corner Radial Menu Circle Launcher (FV Style) Quick Launcher (Grid)
Corner Radial Menu Circle Launcher Quick Launcher
Floating Pointer (Joystick) Shell Command Panel (Shizuku) Clipboard History / Stash
Floating Pointer Shell Command Panel Clipboard History
App Index (Pinyin Rail) Widget Floating Panel Pin Screenshot Window
App Index Widget Floating Panel Pin Screenshot

๐Ÿ”— External Invocation

Open XGesture panels from other apps, Tasker, MacroDroid, or adb. In-app reference: Extensions โ†’ Shortcuts & actions โ†’ External Invocation (tap to copy).

Prerequisites: Search panel, stash, and clipboard require the sidebar and accessibility service. Notification hub requires notification listener access.

Deeplinks (recommended)

Format: xgesture://open/<path>?q=<optional query>

Feature URI Notes
Notification hub xgesture://open/notification-history Open notification hub
Notification hub (prefill) xgesture://open/notification-history?q=keyword Open with search prefill
Stash xgesture://open/stash Open stash panel
Stash (prefill) xgesture://open/stash?q=keyword Open with search prefill
Clipboard xgesture://open/clipboard Open clipboard panel
Clipboard (prefill) xgesture://open/clipboard?q=keyword Open with search prefill
Search panel xgesture://open/search-panel Open search panel
Search panel (prefill) xgesture://open/search-panel?q=keyword Open with query prefill

Examples:

# Open search panel
adb shell am start -a android.intent.action.VIEW -d "xgesture://open/search-panel"

# Open search panel with prefill
adb shell am start -a android.intent.action.VIEW -d "xgesture://open/search-panel?q=weather"

Intent actions (advanced)

Use when there is no matching URI, or when you need an explicit component. Package name: com.slideindex.app.

Feature Action Component Optional extra
Notification hub com.slideindex.app.action.OPEN_NOTIFICATION_HISTORY .MainActivity โ€” (use deeplink for search prefill)
Stash com.slideindex.app.action.OPEN_STASH_PANEL .service.StashClipboardTrampolineActivity q
Clipboard com.slideindex.app.action.OPEN_CLIPBOARD_PANEL .service.StashClipboardTrampolineActivity q
Search panel com.slideindex.app.action.OPEN_SEARCH_PANEL .service.SearchPanelTrampolineActivity q
Toggle gestures com.slideindex.app.action.TOGGLE_GESTURE .service.ToggleGestureTrampolineActivity โ€”
Shell panel com.slideindex.app.action.OPEN_SHELL_PANEL .service.ShellCommandPanelTrampolineActivity โ€” (not exported; app shortcuts only)

Examples:

# Open search panel with prefill
adb shell am start -a com.slideindex.app.action.OPEN_SEARCH_PANEL \
  -n com.slideindex.app/.service.SearchPanelTrampolineActivity \
  --es q "weather"

# Toggle edge gesture master switch
adb shell am start -a com.slideindex.app.action.TOGGLE_GESTURE \
  -n com.slideindex.app/.service.ToggleGestureTrampolineActivity

๐Ÿ’ก Design Philosophy & Comparisons

Standing on the Shoulders of Giants

Android has seen legendary tools that shaped mobile navigation and productivity:

  • Samsung One Hand Operation+ (OHO+) perfected multi-angle edge triggers and smooth system gestures.
  • Quick Cursor introduced thumb-friendly screen reachability via intuitive floating cursors.
  • FooView (FV) pioneered floating-ball universal OCR, search aggregation, and floating window shortcuts.

Why XGesture?

While we deeply admire these pioneering tools, modern Android users frequently face fragmentation:

  • Vendor Lock-in: OHO+ is one of the most beloved gesture tools ever created, but it remains exclusive to Samsung One UI. Non-Samsung users on Pixel, Xiaomi, Motorola, Sony, etc., have long sought a genuine alternative.
  • Open Source & Privacy-First: Proprietary utilities often carry cloud-dependent OCR and closed ecosystems. XGesture is 100% AGPL-3.0 open-source, bundling offline on-device OCR (PaddleOCR ONNX / ML Kit) that respects user privacy.
  • Unified Navigation: Rather than running multiple separate tools for edge gestures, single-handed pointers, and floating OCR, XGesture brings them together into a unified, coherent experience with fluid Miuix animations.
Dimension XGesture (This App) Samsung OHO+ Quick Cursor FooView
Open Source & License โœ… AGPL-3.0 (100% FOSS) โŒ Proprietary (Closed) โŒ Proprietary (Closed) โŒ Proprietary (Closed)
Device Compatibility โœ… Universal (Any Android 12+) โš ๏ธ Samsung Galaxy only โœ… Universal โœ… Universal
Pricing & Monetization โœ… 100% Free & No Ads forever โœ… Free (with One UI) โš ๏ธ Free basic + PRO in-app purchases โœ… Free (Ad/sponsor supported)
Edge Navigation Gestures โœ… Full OHO+ style (Multi-angle & Hold) โœ… Native OHO+ gestures โš ๏ธ Edge swipe for cursor only โš ๏ธ Floating / Edge gestures
Single-Hand Reachability โœ… Built-in reachability joystick pointer โš ๏ธ Virtual Touchpad (floating box mode) โœ… Native reachability cursor โš ๏ธ Floating ball crosshair
Screen OCR & Reverse Search โœ… Local offline models (ONNX / ML Kit) โŒ No such feature โŒ No such feature โš ๏ธ Cloud & web-assisted OCR
Deep System Privileges โœ… Shizuku + Root + LSPosed + A11y โœ… Samsung system-signature privileges โš ๏ธ Accessibility Service โš ๏ธ Root + Accessibility Service
Visual Aesthetics & Haptics โœ… Miuix & Real-time Gaussian Blur โœ… One UI native design โš ๏ธ Standard Material โš ๏ธ Classic utility UI

๐Ÿ› ๏ธ Tech Stack

Layer Core Technologies / Components
Languages Kotlin 2.4.0 + C++17 (NDK / CMake)
UI Framework Miuix UI (KMP 0.9.4 / HyperOS style) + Jetpack Compose (BOM 2026.07.01)
Color & Visuals MaterialKolor 5.0.0 (Dynamic Wallpaper Colors) + Haze 1.7.2 (Gaussian Blur)
Architecture & DI MVVM + UDF (Unidirectional Data Flow) + Dagger Hilt 2.60.1
Async & State Kotlin Coroutines 1.11.0 + StateFlow / SharedFlow + DataStore Preferences 1.2.1
OCR & AI ML Kit Text Recognition 16.0.1 + Tesseract4Android 4.9.0 + PaddleOCR (ONNX Runtime 1.28.0 + OpenCV 4.12.0)
NLP & Tokenization CppJieba (JNI Native Tokenizer) + ML Kit Translate / Language ID
Privileged Access Shizuku API 13.1.5 + LibSuperuser 1.1.1 + HiddenApiBypass 6.1 + LibXposed API 102.0.0
Network & Parsing OkHttp 5.4.0 + ZXing Core 3.5.4 + kotlinx.serialization 1.11.0 + Markdown Renderer M3

๐Ÿ“ Architecture

The app adopts a Multi-Module layered architecture following MVVM + UDF patterns:

                              โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
                              โ”‚          :app (Root)        โ”‚
                              โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                                             โ”‚
                      โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
                      โ–ผ                      โ–ผ                      โ–ผ
           โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
           โ”‚   :feature:settings  โ”‚โ”‚     :feature:otp     โ”‚โ”‚   :feature:shake     โ”‚
           โ”‚   :feature:apps      โ”‚โ”‚ :feature:notificationโ”‚โ”‚   :feature:message   โ”‚
           โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                      โ”‚                       โ”‚                       โ”‚
                      โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                                             โ–ผ
           โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
           โ”‚ :core:gesture       :core:ocr          :core:translate  :core:autofillโ”‚
           โ”‚ :core:overlay-layout:core:native-engine:core:monitoring :core:common โ”‚
           โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                                             โ–ผ
                                  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
                                  โ”‚   :vendor:ppocr-sdk   โ”‚
                                  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
  1. Service Coordination & Overlay Rendering: SlideIndexAccessibilityService intercepts global gestures and dispatches system events, while overlays are managed by OverlayLayout and independent WindowManagers.
  2. Dynamic Engine Loading: OCR, translation, and segmentation engines support both Full and Lite packaging modes; native .so libraries and models can be extracted at runtime.
  3. Privileged Pipelines: Shizuku IPC (rootless privilege), Root fallback executor (LibSu), and LSPosed module collaborate to provide seamless background clipboard monitoring and process lifecycle control.

๐Ÿ“‚ Project Structure

.
โ”œโ”€โ”€ app/                                 # Host Application: DI assembly, JNI C++ bridge, and main UI
โ”‚   โ””โ”€โ”€ src/main/
โ”‚       โ”œโ”€โ”€ cpp/                         # C++17 JNI Sources (CppJieba bridge)
โ”‚       โ””โ”€โ”€ java/com/slideindex/app/
โ”‚           โ”œโ”€โ”€ activity/                # Top-level Activities & transparent interaction layers
โ”‚           โ”œโ”€โ”€ backtap/                 # Back-tap gestures
โ”‚           โ”œโ”€โ”€ clipboard/               # Clipboard history & Shizuku background monitor
โ”‚           โ”œโ”€โ”€ gesture/                 # Core gesture service & overlay trigger bars
โ”‚           โ”œโ”€โ”€ overlay/                 # System overlay window managers
โ”‚           โ”œโ”€โ”€ search/                  # Text & reverse image search aggregator
โ”‚           โ”œโ”€โ”€ shell/                   # Shell command executor
โ”‚           โ”œโ”€โ”€ ui/                      # Compose UI, Miuix themes, and dynamic colors
โ”‚           โ””โ”€โ”€ xposed/                  # LSPosed module entry & hooks
โ”œโ”€โ”€ core/                                # Core modules & engines
โ”‚   โ”œโ”€โ”€ autofill/                        # OTP autofill framework
โ”‚   โ”œโ”€โ”€ common/                          # Extensions, shared models, and utilities
โ”‚   โ”œโ”€โ”€ gesture/                         # Gesture recognition algorithms & event bus
โ”‚   โ”œโ”€โ”€ monitoring/                      # Performance tracing & memory monitoring
โ”‚   โ”œโ”€โ”€ native-engine/                   # Offline native engine distribution & asset extraction
โ”‚   โ”œโ”€โ”€ notification/                    # Notification interception & processing
โ”‚   โ”œโ”€โ”€ ocr/                             # Multi-engine OCR dispatcher (ML Kit / Tesseract / ONNX)
โ”‚   โ”œโ”€โ”€ overlay-layout/                  # Overlay layout rendering core
โ”‚   โ””โ”€โ”€ translate/                       # Multi-language translation & language detection
โ”œโ”€โ”€ feature/                             # Business feature modules
โ”‚   โ”œโ”€โ”€ apps/                            # App scanner, icon caching, and launchers
โ”‚   โ”œโ”€โ”€ message/                         # Heads-up notification & danmaku rendering
โ”‚   โ”œโ”€โ”€ notification/                    # Notification history & archiving
โ”‚   โ”œโ”€โ”€ otp/                             # Verification code extraction & statistics
โ”‚   โ”œโ”€โ”€ settings/                        # Settings, preferences backup, and DataStore
โ”‚   โ””โ”€โ”€ shake/                           # Sensor shake & desk-flip algorithms
โ”œโ”€โ”€ vendor/
โ”‚   โ””โ”€โ”€ ppocr-sdk/                       # PaddleOCR SDK binding & ONNX Runtime
โ”œโ”€โ”€ gradle/libs.versions.toml             # Dependency catalog
โ””โ”€โ”€ RELEASE_NOTES.md                     # Release changelog

๐Ÿš€ Building & Compilation

Requirements

  • JDK 25
  • Android Studio (Ladybug or newer recommended)
  • Android SDK (API 37 compileSdk) & NDK 28+

Build Commands

# Clone the repository
git clone https://github.com/qpst4/XGesture.git
cd XGesture

# Build Full Debug APK (with built-in offline engines)
./gradlew assembleFullDebug

# Build Lite Release APK (compact version)
./gradlew assembleLiteRelease

๐ŸŒ Help Translate

Translation status

Contribute in-app UI translations on Weblate โ€” no Git required. See CONTRIBUTING.md.


๐Ÿ’ฌ Community & Feedback

Welcome to join the community discussions and provide feedback or feature requests:

GitHub Discussions GitHub Issues
Telegram Chat QQ Group

Telegram: chat group (XGesture ยท Xๆ‰‹ๅŠฟ) ยท QQ Group: 1042783385


๐Ÿ’– Sponsor & Support

If you find XGesture helpful in your daily workflow, consider buying the developer a cup of coffee โ˜•! Your generous support is the greatest motivation for ongoing development and OEM adaptations.

WeChat Reward Code

๐Ÿ“œ License

This project is licensed under the GNU Affero General Public License v3.0 (AGPLv3).


๐Ÿค Acknowledgements

Special thanks to the following open-source projects for their architecture, inspiration, and code references (see THIRD_PARTY_NOTICES.md for details):

  • SideGesture โ€” Edge gesture and overlay architecture reference
  • EdgeGesture โ€” Expand panel, alarm reminder, screen translation, universal copy, and back-tap gesture reference
  • EdgeX & FanFreeform โ€” Honeycomb launcher and App Freezer architecture reference
  • ClipboardListener & ClipShare โ€” Android 10+ background clipboard listening architecture
  • Root Activity Launcher โ€” Non-exported activity launching scheme
  • Circle To Search โ€” Multi-engine reverse image search strategy
  • Nova Text โ€” Floating ball OCR and word selection interaction
  • XposedSmsCode โ€” OTP SMS Hook and verification code extraction rules
  • Miuix โ€” Elegant Material & Miuix style Compose UI component library

๐Ÿ“ Changelog

For complete release history, see RELEASE_NOTES.md and CHANGELOG.md.

Close

How Shizuku is used

Can freeze apps, run shell commands, manage tasks, open floating windows, launch activities and monitor clipboard via `Shizuku`

This is an AI-assisted analysis of Shizuku-related usages in the app's public source code. It is best effort, so it may not catch every single usage.

How this app uses Shizuku

Shizuku is used to run package, task, window, activity, shortcut, clipboard and log operations with shell identity.

  • Freeze and unfreeze apps: chosen apps are disabled and re-enabled for the current user through the system package service, with a force stop before freezing.
  • Run shell commands: commands typed or saved for gestures and the shell panel are executed with shell identity and the output is shown in the app.
  • Manage recent tasks: the recent task list is read from the system, and you can switch to a task, dismiss a task, see the foreground app and force stop an app through Shizuku.
  • Open floating windows: the current or selected app task is moved into a floating window with chosen bounds through Shizuku.
  • Launch hidden activities: activities that are normally not launchable are started through the system activity service with Shizuku, including an assistant based method that temporarily replaces the assistant and injects the assist key.
  • Monitor clipboard history: clipboard changes are detected in the background by a privileged helper that reads system clipboard logs through Shizuku, so copied text is saved to history.
  • View diagnostic logs: app logs are streamed with a filtered system log read through Shizuku for troubleshooting in the diagnostics screen.
  • Launch shortcuts and assistant: published app shortcuts are started and the voice assistant is shown through Shizuku.
  • Load shortcut icons: icons for published app shortcuts are read for the current user through Shizuku for display in notifications and previews.

Android APIs or commands used

  • IPackageManager.setApplicationEnabledSetting
  • IPackageManager.getApplicationEnabledSetting
  • IPackageManager.grantRuntimePermission
  • IActivityManager.startActivityWithFeature
  • IActivityTaskManager.startActivityFromRecents
  • IActivityTaskManager.setTaskWindowingMode
  • IActivityTaskManager.resizeTask
  • IActivityTaskManager.moveTaskToFront
  • IInputManager.injectInputEvent
  • SearchManager.launchAssist
  • ActivityOptions.setLaunchWindowingMode
  • ILauncherApps.getShortcutIconFd
  • am force-stop
  • am get-current-user
  • am start
  • pm disable
  • pm enable
  • cmd activity task remove
  • cmd activity task resize
  • cmd activity task focus
  • cmd activity task list
  • cmd shortcut start-shortcut
  • cmd voiceinteraction show
  • dumpsys activity activities
  • logcat
  • app_process

Notable details

Clipboard monitoring can also use the standard system clipboard listener without Shizuku, with the privileged log based mode used when that access is limited. App updates install through the normal system installer and unknown sources settings screen.

Close

Changelog

What's new for version 1.33.0

ๆ–ฐๅขž

  • ๆ™บ่ƒฝๆˆชๅ›พๆ‰‹ๅŠฟ๏ผšๆ–ฐๅขž SMART_SCREENSHOT ๅŠจไฝœ๏ผŒๆ”ฏๆŒ้€‰ๅŒบ่ฃๅ‰ชไธŽ็Ÿฉๅฝข / ๆคญๅœ† / 1:1 ๅฝข็Šถๅˆ‡ๆข๏ผ›้กถ้ƒจๆไพ›ๅ†…็ฝฎๅ›พ็‰‡็ผ–่พ‘ๅ™จ๏ผˆ็”ป็ฌ”ๆ ‡ๆณจใ€ๆ’ค้”€๏ผ‰๏ผŒๅบ•้ƒจๆไพ›ไฟๅญ˜็›ธๅ†Œใ€ๅคๅˆถใ€ๅˆ†ไบซใ€ๅŽŸไฝ 1:1 ้’‰ๅ›พไธŽๅ–่ฏ OCR
  • ๆˆชๅ›พ้˜ฒๆฎ‹ๅฝฑ๏ผš่งฆๅ‘ๆ—ถ้™้ป˜ๅŽ‹ๅˆถๅ…จ้ƒจๆตฎๅฑ‚ๅนถ้š่—ๆ‰‹ๅŠฟๅŠจ็”ปๆŒ‡็คบๅ™จ
  • ่พน่ง’่ฝฎ็›˜็ผ–่พ‘ๆŒ‰้’ฎๅผ€ๅ…ณ๏ผšๆ–ฐๅขžใ€Œๆ˜พ็คบๅฟซๆท็ผ–่พ‘ๆŒ‰้’ฎใ€๏ผŒๅ…ณ้—ญๅŽ้š่—่ฝฎ็›˜ๅค–ไพง็š„็ผ–่พ‘ๅ…ฅๅฃ
  • ๅœ†็ŽฏๅฏๅŠจๅ™จ่ฎพ็ฝฎ้กต๏ผšๆ‰ฉๅฑ•้กตๆ–ฐๅขžใ€Œๅœ†็ŽฏๅฏๅŠจๅ™จใ€ๅ…ฅๅฃ๏ผŒๆŒ‰ๆจช / ็ซ–่ฝดๅˆ†ๅˆซ้…็ฝฎๅœˆๆ•ฐใ€ๅŠๅพ„ใ€ๅทฅๅ…ทๆ ไธŽๅ›พๆ ‡ๅฝข็Šถ๏ผŒๆ”ฏๆŒไธค่ฝดๅค–่ง‚ / ๆงฝไฝ่”ๅŠจ๏ผŒๅนถๅฏ็›ดๆŽฅ่ฐƒ่ตทๆ‚ฌๆตฎ็ช—ๅฐฑๅœฐ็ผ–่พ‘
  • ๅœ†็ŽฏๅฏๅŠจๅ™จๅทฅๅ…ทๆ ๅผ€ๅ…ณ๏ผšๆ–ฐๅขžใ€Œๆ˜พ็คบๆ“ไฝœๅทฅๅ…ทๆ ใ€๏ผŒๅ…ณ้—ญๅŽ้š่—ๆ”ถ่ตท / ็งปๅŠจ / ็ผ–่พ‘ / ่ฎพ็ฝฎ / ่พ“ๅ…ฅๆณ•ๆŒ‰้’ฎ

ๅ˜ๆ›ด

  • ่‡ช็”ฑ็ช—ๅฃ้€‚้…๏ผš่‡ช็”ฑ็ช—ๅฃ 3 ๆ›ดๅไธบใ€ŒHarmonyOS / MagicOSใ€ๅนถ่กฅไธ‹ๅ‘ๅฏๅŠจ stackId๏ผ›OriginOS ๆ–ฐๅขžๅˆ†ไบซไปฃ็†ๅฏๅŠจ้€š้“๏ผ›ๆ ‡ๅ‡†ๆจกๅผๅœจๅฐ็ฑณ่ฎพๅค‡ไธŠๆŒ‰ 0.7๏ผˆ็ซ–ๅฑ๏ผ‰/ 0.555๏ผˆๆจชๅฑ๏ผ‰่กฅๅฟๅฏๅŠจ่พน็•Œ
  • ๅฑๅน•็ฟป่ฏ‘ๆ ‡ๆณจไธบๅฎž้ชŒๆ€ง๏ผšๆ ‡้ข˜่ฟฝๅŠ  (experimental)๏ผŒๆ่ฟฐ่กฅๅ……้œ€ๅ…ˆๅฎ‰่ฃ…็ฟป่ฏ‘ๅผ•ๆ“ŽไธŽ่ฏญ่จ€ๆจกๅž‹๏ผˆๅ››่ฏญ่จ€ๅŒๆญฅ๏ผ‰
  • ๅ•ๅ‡ป / ๅŒๅ‡ปไธๆไพ›่งฆๅ‘ๆจกๅผ๏ผš่ฟ™ไธค็ฑปๅ›บๅฎšไธบๆพๆ‰‹่งฆๅ‘๏ผŒๆงฝไฝ้กต็งป้™คใ€Œ่งฆๅ‘ๆจกๅผใ€่กŒ๏ผŒ่งฆ้’ฎๅˆ—่กจไธๅ†ๆ˜พ็คบๆจกๅผๆ ‡็ญพ

ไฟฎๅค

  • ๅŒๅ‡ปๅœจใ€Œๅณๆ—ถ่งฆๅ‘ใ€ไธ‹ๅคฑๆ•ˆ๏ผšIMMEDIATE ๅˆ†ๆ”ฏๅœจๆŠฌๆ‰‹ๆ—ถๆๅ‰่ฟ”ๅ›ž๏ผŒๆ—ฉไบŽๅŒๅ‡ปๅˆคๅฎš๏ผ›ๅ•ๅ‡ป็ฉฟ้€ไบฆ่ขซ้™้ป˜ไธขๅผƒใ€‚็Žฐๅ•ๅ‡ป / ๅŒๅ‡ปๅ›บๅฎš่ตฐๆพๆ‰‹่งฆๅ‘๏ผŒไธ่ฏปๆงฝไฝๆจกๅผไธŽไพง่พน้ป˜่ฎค๏ผŒๆป‘ๅŠจไธŽ้•ฟๆŒ‰่กŒไธบไธๅ˜
  • ๅฟซๆทๅฏๅŠจๅ™จ่ฏฏๅปบๆ–‡ไปถๅคน๏ผšๆ‹–ๆ‹ฝๅˆๅนถๆ‚ฌๅœๆ—ถ้•ฟ 350ms โ†’ 900ms๏ผŒๆŠฝไธบๅ…ฑไบซๅธธ้‡ QuickLauncherDragTiming.FOLDER_MERGE_DWELL_MS
  • ๆ™บ่ƒฝๆˆชๅ›พๅคๅˆถไธŽๅˆ†ไบซๅคฑ่ดฅ๏ผšไฟฎๆญฃ FileProvider ่ทฏๅพ„๏ผˆๆ–ฐๅขž screenshot_cache๏ผ‰ไธŽ Intent ๆŽˆๆƒ
Close

Permissions

31 permissions requested

  • android.permission.INTERNET
  • android.permission.READ_CONTACTS
  • android.permission.ACCESS_NETWORK_STATE
  • android.permission.SYSTEM_ALERT_WINDOW
  • android.permission.FOREGROUND_SERVICE
  • android.permission.FOREGROUND_SERVICE_SPECIAL_USE
  • android.permission.FOREGROUND_SERVICE_MEDIA_PROJECTION
  • android.permission.FOREGROUND_SERVICE_DATA_SYNC
  • android.permission.POST_NOTIFICATIONS
  • android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS
  • android.permission.READ_LOGS
  • android.permission.READ_EXTERNAL_STORAGE
  • android.permission.MANAGE_EXTERNAL_STORAGE
  • android.permission.READ_MEDIA_IMAGES
  • android.permission.READ_MEDIA_VISUAL_USER_SELECTED
  • android.permission.USE_EXACT_ALARM
  • android.permission.MODIFY_AUDIO_SETTINGS
  • android.permission.HIGH_SAMPLING_RATE_SENSORS
  • android.permission.WAKE_LOCK
  • android.permission.RECEIVE_BOOT_COMPLETED
  • android.permission.CAMERA
  • android.permission.WRITE_SETTINGS
  • android.permission.WRITE_SECURE_SETTINGS
  • android.permission.ACCESS_NOTIFICATION_POLICY
  • android.permission.PACKAGE_USAGE_STATS
  • android.permission.QUERY_ALL_PACKAGES
  • android.permission.REQUEST_INSTALL_PACKAGES
  • android.permission.BIND_APPWIDGET
  • android.permission.VIBRATE
  • com.slideindex.app.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION
  • moe.shizuku.manager.permission.API_V23
Close