What's New in v1.5.5
1. SHA-256 Package Integrity Verification
- Automated Checksum Verification: Automatically computes and verifies SHA-256 file hashes on downloaded update APKs before launching the installer, preventing corrupted downloads or payload tampering.
- Visual Verification State: Displays a dedicated
Verifying APK integrity...status before handing off to the Android Package Manager.
2. Pre-Download Permission Gating
- Dynamic Permission Check: Evaluates
canInstallPackages()dynamically inside the update dialog. Non-Shizuku users are prompted to enable "Install Unknown Apps" before initiating downloads, eliminating redundant downloads.
3. Local-Only Uncaught Crash Diagnostics
- Zero-Telemetry Exception Handler: Automatically intercepts uncaught runtime crashes and saves formatted stack traces locally to device storage (
100% offline & private). - About Screen Diagnostics Card: Displays a red "Recent Crash Log Detected" card with 1-tap Share Log (via native Android share sheet) and Clear Log options.
4. IPC & System Architecture Hardening
- HTTP Connection Cleanup: Enclosed all updater network calls in
try/finallyblocks to explicitly closeHttpURLConnectionsockets and prevent battery drain on cellular radios. - Immediate Download Cancellation: Registered job cancellation hooks to disconnect sockets instantly when a download is cancelled, deleting partial files and returning the UI state to Idle.
- Shizuku Reconnect Safety: Explicitly clears IPC runner references in
binderDeadListenerto guarantee clean state recovery if the Shizuku daemon dies. - Ping Process Zombie Fix: Wrapped child
pingprocess execution intry/finally { process.destroy() }to prevent hung child processes on network timeout. - FPS Polling Memory Cleanup: Hoisted Regex patterns into companion constants, eliminating per-second object allocations in the FPS polling loop.