github thejaustin/ShizukuPlus 13.7.0.r3257

pre-release2 hours ago

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 — CollapsiblePreferenceCategory now respects OUTLINED icon mode by tinting header icons with colorOnSurfaceVariant instead of defaulting to accent blue (#641). AdbPairDialogFragment resolves overlapping instructional text between single and multi-window modes, properly hides the multi-window note once a port is found, migrates off deprecated onActivityCreated to onStart, and adds immediate 6-digit numeric validation for pairing codes.
  • Prevent Activity leak in FloatingNavBar — FloatingNavBar now holds a WeakReference<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+ — BootCompleteReceiver now routes Watchdog starts through WatchdogWorker.scheduleOneTimeHeal on Android 15+ (API 35+) to avoid ForegroundServiceStartNotAllowedException while the device is booting locked, and re-checks/re-arms Watchdog immediately upon ACTION_USER_PRESENT unlock.
  • Respect manual USB Debugging toggle and improve network independence — AdbStartWorker no longer overwrites Settings.Global.ADB_ENABLED to 1 in the background, strictly respecting the user's manual USB debugging toggle in Developer Options (#656), and relaxes the worker network constraint from UNMETERED to CONNECTED so metered Wi-Fi, hotspots, and loopback connections are never indefinitely stalled on boot.
  • Settings UI & toggle polish — PlusFeaturePreference help bottom sheets retain native rounded corners without hardcoded rectangular background overrides, and its embedded switch checks callChangeListener before updating state (reverting properly if rejected). DeveloperOptionsFragment safely casts two-state preferences, and Personalization settings adds the floating_nav_tabs multi-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. ChangelogDialogFragment and ChangelogParser now 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, UpdateChecker adds Atom feed fallback parsing (releases.atom) to bypass GitHub API 60 req/hr rate limiting, and MainActivity avoids 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 — BootCompleteReceiver now registers for ACTION_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. ShizukuReceiverStarter adds smart launch-mode fallbacks for uninitialized/restored states, AdbStartWorker adds exponential probe back-off for persistent TCP port binding on boot, and ReconnectTrigger allows seamless TCP loopback recovery even when secure settings permissions are pending.
  • User opt-in for ADB TCP persistence & adaptive disconnect suggestions — libshizuku and ShizukuService now only configure service.adb.tcp.port and persist.adb.tcp.port if 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 — ShizukuService no longer unconditionally overwrites Settings.Global.ADB_ENABLED to 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_server to 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 ignores SIGHUP), preventing process killing when adbd is 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.port and persist.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.json and 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 … default resets an app op again — through Shizuku+, it set the op to "errored" instead of back to default, and "foreground" did the same. Op names like SYSTEM_ALERT_WINDOW now work the same as android: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)

Changes in this release

Don't miss a new ShizukuPlus release

NewReleases is sending notifications on new releases.