13.7.0.r3257
What's new
✨ Features
- Choose what Service Doctor fixes — "Adaptive Auto-Repair" now lists the repairs it would run, each with a checkbox. Repairs you uncheck are remembered, and background self-healing skips them too.
- Service Doctor repairs the most common start failures — when port discovery keeps timing out, it offers to turn on TCP mode. When the ADB key can't be read, or the "Allow USB debugging" prompt keeps going unanswered, it offers a fresh ADB key (#656).
🛠 Fixes
- Settings category icon consistency & pairing dialog polish —
CollapsiblePreferenceCategorynow respectsOUTLINEDicon mode by tinting header icons withcolorOnSurfaceVariantinstead of defaulting to accent blue (#641).AdbPairDialogFragmentresolves overlapping instructional text between single and multi-window modes, properly hides the multi-window note once a port is found, migrates off deprecatedonActivityCreatedtoonStart, and adds immediate 6-digit numeric validation for pairing codes. - Prevent Activity leak in FloatingNavBar —
FloatingNavBarnow holds aWeakReference<Activity>rather than a strong reference in its singleton state, safely clearing on activity paused and destroyed callbacks to prevent Activity leaks during configuration changes and background transitions. - Robust Watchdog and boot recovery on Android 15+ —
BootCompleteReceivernow routes Watchdog starts throughWatchdogWorker.scheduleOneTimeHealon Android 15+ (API 35+) to avoidForegroundServiceStartNotAllowedExceptionwhile the device is booting locked, and re-checks/re-arms Watchdog immediately uponACTION_USER_PRESENTunlock. - Respect manual USB Debugging toggle and improve network independence —
AdbStartWorkerno longer overwritesSettings.Global.ADB_ENABLEDto 1 in the background, strictly respecting the user's manual USB debugging toggle in Developer Options (#656), and relaxes the worker network constraint fromUNMETEREDtoCONNECTEDso metered Wi-Fi, hotspots, and loopback connections are never indefinitely stalled on boot. - Settings UI & toggle polish —
PlusFeaturePreferencehelp bottom sheets retain native rounded corners without hardcoded rectangular background overrides, and its embedded switch checkscallChangeListenerbefore updating state (reverting properly if rejected).DeveloperOptionsFragmentsafely casts two-state preferences, and Personalization settings adds thefloating_nav_tabsmulti-select preference alongside floating navigation controls with dynamic summary descriptions. - Fix release notes loading and fallback rendering in What's New — release notes no longer fail with empty headers or "No release notes available" on maintenance/housekeeping updates.
ChangelogDialogFragmentandChangelogParsernow prune orphaned section headers, unwrap<details><summary>markup cleanly, support Unicode bullet points (•,+), and gracefully surface recent release highlights and rollups when primary commits contain only internal documentation edits. Furthermore,UpdateCheckeradds Atom feed fallback parsing (releases.atom) to bypass GitHub API 60 req/hr rate limiting, andMainActivityavoids burning the last seen version code on failed network checks so release notes reliably display once connectivity is restored. - More seamless boot auto-start and unlock recovery —
BootCompleteReceivernow registers forACTION_USER_PRESENT, seamlessly starting Shizuku+ when the user unlocks their phone if boot was deferred due to direct boot encryption lock or OEM battery delays.ShizukuReceiverStarteradds smart launch-mode fallbacks for uninitialized/restored states,AdbStartWorkeradds exponential probe back-off for persistent TCP port binding on boot, andReconnectTriggerallows seamless TCP loopback recovery even when secure settings permissions are pending. - User opt-in for ADB TCP persistence & adaptive disconnect suggestions —
libshizukuandShizukuServicenow only configureservice.adb.tcp.portandpersist.adb.tcp.portif TCP mode is explicitly enabled by the user in settings or requested via--tcp. When starting via USB or viewing the starter command, Shizuku+ provides an interactive toggle and adaptive recommendation ("Keep Shizuku+ alive after unplugging USB?") before disconnecting, ensuring TCP mode is never forced on users who prefer USB-only debugging. - Respect manual USB Debugging toggle in Developer Options —
ShizukuServiceno longer unconditionally overwritesSettings.Global.ADB_ENABLEDto 1 on server start, allowing users to manually disable USB debugging (e.g. to run apps that check and block debugging like RailOne or banking apps) without Shizuku+ force-enabling it in the background (#656). - Persist ADB TCP mode and isolate server process across USB / OTG disconnect — starting Shizuku+ via USB (e.g., from a PC or using a secondary device with aShell You over USB-OTG) previously caused
shizuku_plus_serverto terminate as soon as the cable was unplugged, preventing local reconnection without re-attaching USB. The native starter (starter.cpp) now isolates the server child process into an independent session and cgroup (setsid(),switch_cgroup(), and ignoresSIGHUP), preventing process killing whenadbdis torn down. Furthermore,starter.cpp,ShizukuService.java, and the copied starter command (Starter.kt) now automatically bind and persist ADB TCP port 5555 (service.adb.tcp.portandpersist.adb.tcp.port) and disable the ADB authorization timeout (adb_allowed_connection_time 0), allowing Shizuku+ to maintain execution and reconnect over local loopback (127.0.0.1:5555) indefinitely. - Settings like TCP Mode and Local ADB Proxy apply automatically on service start — settings such as TCP Mode (port 5555), On-Device ADB TCP, and the Local ADB Proxy previously required manually toggling the switch in Behavior settings after a device reboot or service restart to take effect. They now activate automatically whenever Shizuku+ starts or transitions to RUNNING, and persistent ADB TCP properties are ensured so Wireless ADB remains reachable offline or on cellular without Wi-Fi.
- Expanded Shizuku app & file manager knowledgebase (Revision 2) — updated
app_context_db.jsonand documentation with 34+ verified Shizuku apps and file managers (including Material Files, Cx File Explorer, FV File Explorer, MiXplorer, Solid Explorer, App Manager, Canta, Install with Options, Inure, LinkSheet, ColorBlendr, SystemUI Tuner, and ShizuStore), providing rootless storage proxy, shell interceptor, and overlay guidance. appops set … defaultresets an app op again — through Shizuku+, it set the op to "errored" instead of back to default, and "foreground" did the same. Op names likeSYSTEM_ALERT_WINDOWnow work the same asandroid:system_alert_window(#648).- Not being rooted is no longer a Service Doctor problem — root shows as information ("Not needed: ADB mode works without it") instead of an issue to fix.
All commits in this release
Security
- Resolve Dependabot alerts with BouncyCastle 1.86, dependency graph scoping, and TLS fallback (64420ec)
Added
- Customizable floating navbar, 48dp touch targets, edge-to-edge insets, and M3E polish (6ff948d)
- Implement flagship multi-tier haptics engine for S26 Ultra and modern LRAs (c2f0848)
- Update onboarding, numerical pairing keypad, home card shape isolation, and swipe gestures toggle (928a810)
- Enhance boot auto-start resilience with USER_PRESENT trigger and TCP probe retry (5a43c0a)
- Opt-in TCP mode persistence with adaptive USB disconnect suggestions (89ba811)
- Bump app context db to rev 2 with 34+ Shizuku apps and file managers (d0cec4c)
- Pick which repairs run; start-failure repairs; root is info (73c9052)
Fixed
- Resolve missing compose imports, reified type parameter, and fix manual wireless adb port persistence (2723d28)
- Use appcompat colorError and outline arrow downward drawable (fa8c239)
- Smooth in-place icon morphing, settings scroll stability, and card padding symmetry (8033070)
- Fix appcompat colorPrimary attribute and resolve ic_nav_home drawable reference (9081fea)
- Fix invalid secrets context in step condition for Crowdin action (d7400d5)
- Eliminate conflicting fallbacks and preserve user toggle state (493f728)
- Resolve native pairing JNI linkage and throttle adaptive recommendations (385b385)
- Harden resource resolution against null IDs and resolve One UI 7 wireless pairing discovery drops (97a6f7e)
- Unify home card side padding, responsive grid margins, and lock dependency resolution (e66949d)
- Ensure TCP persistence on USB disconnect and eliminate settings scroll jump (b638e91)
- Harmonize category icon tint in outlined mode, polish pairing dialog, and scope compose lifecycle (6040d97)
- Prevent FloatingNavBar leak, improve boot Watchdog heal, respect USB toggle, and polish settings (5fcb70d)
- Prevent false up-to-date headline and pass current version code (b978b38)
- Ensure release notes render cleanly and prevent empty fallbacks (f441a55)
- Use %android_code% path mapping for accurate regional locales (61a98a0)
- Ignore doc updates in workflows and preserve user usb debugging toggle (33e1cad)
- Persist ADB TCP mode and isolate server process across USB disconnect (7b2659f)
- Auto-apply TCP mode and start ADB proxy on service start without re-toggling (a6e5b3d)
- Appops set shortcut maps modes and op names correctly (ba913d3)
- No user services while any API scope is off (#648) (1c8922c)
Other
- Lifecycle reliability, manager APK re-arming, dead binder exception safety, and sister fork adaptations (d1aec17)
- Architectural quality overhaul across haptics, motion, and concurrency (a2b0077)
- Enable bidirectional sync and grant PR write permissions (695873c)
- Stop the two checks that fail for reasons outside the code (b791b13)
2 distinct GitHub issue(s) referenced in this release.
📦 Recent Releases
🚀 This is a major release.
Choose what Service Doctor fixes; Service Doctor repairs the most common start failures; Security: per-app API scopes are harder to get around; Fix release notes loading and fallback rendering in What's New
Full changelog
| Release | Highlight |
|---|---|
| 13.7.0.r3257 🚀 major (this release) | Choose what Service Doctor fixes (+15 more) |
| 13.7.0.r3216 | fix: crashes and noise found in old Sentry data |
| 13.7.0.r3215 | fix: crashes and noise found in old Sentry data |
| 13.7.0.r3214 | fix: crashes and noise found in old Sentry data |
| 13.7.0.r3213 | Fewer crashes from old crash reports (+1 more) |
| 13.7.0.r3210 | Quick safety check when an app asks for access (+39 more) |
| 13.7.0.r3159 | fixing bottom navigation bar (#644) |
| 13.7.0.r3158 | In-app updates no longer end in "There was a problem parsing the package" (+37 more) |
| 13.7.0.r3116 | Add new strings for Plus features in Azerbaijani |
| 13.7.0.r3102 | Unified Material 3 Expressive Screen Navigation (+31 more) |