Elevated Access Backends Hierarchy
On Android 11+, Google restricts direct access to /Android/data/ via Scoped Storage (Storage Access Framework). WuWa Config Patcher bypasses these limitations using elevated IPC backends so you can patch files without needing a PC or a rooted device.
1. ROOT (Native SU)
Managed via topjohnwu libsu Core (v6.0.0). Direct elevated root shell execution (su -c id).
2. SHIZUKU (Wireless ADB)
Managed via ShizukuManager.kt (rikka.shizuku.api). Wireless ADB IPC execution requiring zero root.
3. AXMANAGER (Axeron Daemon)
Managed via AxManagerManager.kt. Axeron community manager service binder execution for non-rooted elevated IPC.
4. SHIZUKU UNAUTHORIZED
Shizuku service binder detected running on device, but app permission prompt is pending approval.
5. NONE
No elevated backend available. Prompts Shizuku setup wizard or falls back to manual file export.
Standard Guide: Setting up Shizuku (Wireless Debugging)
Step-by-Step Wireless Debugging Pairing
- Download and install Shizuku from Google Play or official GitHub releases.
- Connect your device to Wi-Fi (or turn on Portable Wi-Fi Hotspot on your phone).
- Go to Settings > Developer Options on your phone.
- Enable Developer Options (tap Build Number 7 times in About Phone).
- Enable USB Debugging and Wireless Debugging.
- Open Shizuku, tap Pairing > Developer Options, then tap Pair device with pairing code.
- Enter the 6-digit code in the Shizuku notification prompt.
- Return to Shizuku and tap Start until status shows "Shizuku is running".
- Open WuWa Config Patcher and grant Shizuku permission when prompted.
Technical Deep-Dive: Elevation Architecture
// 1. Preferred Backend & Availability Verification
val axAvailable = AxManagerManager.isAvailable()
val axPerm = AxManagerManager.hasPermission()
val shizukuAvailable = ShizukuManager.isAvailable()
val shizukuPerm = ShizukuManager.hasPermission()
val rootGranted = RootChecker.isRootGranted()
val preferred = AppPreferences.getPreferredAccessBackend(context)
activeAccessBackend = when {
preferred == "AXMANAGER" && axAvailable && axPerm -> AccessBackend.AXMANAGER
preferred == "SHIZUKU" && shizukuAvailable && shizukuPerm -> AccessBackend.SHIZUKU
preferred == "ROOT" && rootGranted -> AccessBackend.ROOT
axAvailable && axPerm -> AccessBackend.AXMANAGER // Blue Badge (#38BDF8)
shizukuAvailable && shizukuPerm -> AccessBackend.SHIZUKU // Green Badge (#47D764)
rootGranted -> AccessBackend.ROOT // Red Badge (#E35D6A)
shizukuAvailable -> AccessBackend.SHIZUKU_UNAUTHORIZED // Orange Badge (#FB8C00)
axAvailable -> AccessBackend.AXMANAGER_UNAUTHORIZED // Amber Badge (#FFB74D)
else -> AccessBackend.NONE // Gray Badge (#757575)
}
AppDoctorDialog.kt) to auto-diagnose elevated access, game installation, and storage permissions.
When 1-Click Patch is triggered, the patcher uses the active elevated shell service (Shizuku, AXManager, or Root) to write directly to /storage/emulated/0/Android/data/com.kurogame.wutheringwaves.global/files/UE4Game/Client/Client/Saved/Config/Android/ without touching standard Android SAF document trees.