AI summary
Xposed module for LSPatch and LSPosed that redirects an app’s storage to custom folders on shared storage. Version 2.15 adds recursive path rules, live configuration reload, NIO interception, and configuration backup and restore; it requires broad storage access.
Generated by AI. May contain inaccuracies.
About this app
Storage Redirect
Xposed module for rootless LSPatch (also works under LSPosed). Redirects the hooked app's storage to a custom folder on shared storage, so data is read and written there from the first millisecond instead of the default paths.
It is generic: it redirects whichever app it is embedded in / scoped to (no hardcoded package). Each redirect has its own fully customizable destination folder (absolute, or relative to /sdcard; {pkg} = package name). Defaults: CustomData/{pkg}/internal, .../external, .../storage. Inside a destination the app keeps its usual sub-folders (files, cache, databases, ...). Don't point internal and external at the same folder: their files/cache would mix (the UI warns).
What's new
- Release v2.15 — Neo Backup Redesign, Path Engine Overhaul & Live Config Reload Compared to the previous build (v2.14, build 16), v2.15 (build 17) brings a complete architectural transformation: a redesigned UI based on Neo Backup, an advanced recursive path engine, a unified configuration directory on shared media storage, zero-restart live configuration reload, and full java.nio.file support.
- ✨ Highlights & What's New 🎨 1. Neo Backup UI & Material 3 Transformation 4-Tab Navigation Suite: Replaced the legacy single-list view with a modern bottom navigation suite featuring Apps, Redirection, Backups, and Settings with animated selection pill indicators. Horizontal Swipe Paging: Full gesture support to swipe left and right between tabs with boundary resistance, inertia, and smooth snapping (SwipePager). Animated TopBar: Collapsible search bar (WideSearchField) with smooth expand/collapse animations, query filtering, and an animated spinning refresh indicator. Card Spacing & Layout Separation: Fixed box interference and overlap issues with generous card margins, 20–28dp rounded container corners, and multi-layered surface hierarchy (surfaceContainerLow, surfaceContainer, surfaceContainerHigh). 100% Phosphor Vector Icons: Crisp vector icons rendered natively in code without heavy raster bitmap assets. Theme Engine: Full support for Light, Dark, AMOLED Black, and Android 12+ Monet / Material You dynamic system colors with persistent theme preference. 📁 2. Unified Configuration Storage & Path Engine Fixed Configuration Directory (Android/media/uninviting): Moved the configuration root to a standardized, universally accessible directory on shared storage: /storage/emulated/0/Android/media/uninviting/config.properties /storage/emulated/0/Android/media/uninviting/redirect.properties /storage/emulated/0/Android/media/uninviting/.config-location /storage/emulated/0/Android/media/uninviting/apps/<package>.properties /storage/emulated/0/Android/media/uninviting/backup/<package>.properties Relative Path Syntax: Whenever specifying a path in the UI: If it starts without a /, it automatically defaults to /storage/emulated/0/<path>. If it starts with a /, the exact absolute path is used. Dual Filename Mirroring: Reads and writes config.properties while keeping redirect.properties synchronized for backwards compatibility. Seamless Migration: On first launch, automatically detects and migrates existing configs from legacy locations (CustomData/.config, Android/data/uninviting, internal data) to the new location. Prevent Startup Freezing: Changed the default internal data redirection switch to false so hooked apps launch instantly without freezing on the startup screen. ⚡ 3. Hook Architecture & Live Configuration Reloading Zero-Restart Live Reloading: A rate-limited freshness check (at most once every 800 ms per process) detects config file modifications and swaps an immutable ActiveState atomically (AtomicReference). Changes made in the UI take effect immediately in running apps without needing to force-stop them. PathEngine Integration: Full recursive folder redirection (e.g. mapping /OldFolder to /NewFolder transparently redirects all nested child files and subdirectories). Exact file mapping and longest-prefix priority matching (more specific rules always override broad rules). Wildcard captures (*, **, {1}, {2}). Safe recursion and cycle termination protection. Modern NIO Interception (NioHooks): Added hooks for Android API 26+ java.nio.file (Path.of, Paths.get, FileChannel.open, FileSystemProvider) so apps using Java NIO channels are intercepted alongside standard java.io.* and libcore.io.Linux. Early Context Capture: Hooked Application.attachBaseContext(Context) for safe, early initialization across separate processes and UIDs under LSPatch and LSPosed. 💾 4. Configuration Backup & Restore Added a dedicated Module Configuration Backup & Restore feature on the Settings screen: Export all settings, per-app rules, and backup schedules to a single portable .zip archive. One-click restore with instant active state validation and live reload. 🧪 5. Testing & Build System Automated Test Suite: Added PathEngineTest.java and run_tests.sh with 58 automated unit tests (100% passing) covering basic mapping, prefix collisions, negative matches, wildcard captures, and filesystem operations. Dual Release Output: Offline build script now automatically synchronizes output files to both release/ and releases/ directories. Version bumped to 2.15 (Version Code: 17).
About this version
- Version
- 2.15 (17)
- Size
- 96.51 KB
- Requires Android
- 5.0
- Target SDK
- 21
- Architecture
- universal
- Downloads
- 14
- Updated
- Nov 10, 2026
- Package
- io.github.expirt.storageredirect
Similar apps
Ratings & reviews
- 51
- 40
- 30
- 20
- 10
Write a review
Recent reviews
Showing 1 of 1- Николай today