Skip to content

HiBig Zero v1.5.0

Choose a tag to compare

@right9code right9code released this 21 Sep 13:41
· 5 commits to main since this release

HiBig Zero v1.5.0

πŸ†• New managed app: Obtainium

Obtainium joins the APPS tab β€” install and update apps straight from GitHub releases, with no Play Store and no account.

  • Uses the plain release asset (app-arm64-v8a-release.apk), not the F-Droid flavour. They are different packages (dev.imranr.obtainium vs dev.imranr.obtainium.fdroid) signed by different keys, so mixing them would install a second app or fail the signature check on update. Verified against the published asset.
  • REQUEST_INSTALL_PACKAGES is granted on install, so Obtainium can actually install what it downloads instead of sitting behind a system "Allow from this source" prompt.

πŸ”‹ Sleep clamp measured β€” results published

The screen-off CPU clamp was finally measured on hardware. Full write-up in docs/SLEEP_CLAMP_TEST.md:

  • The clamp works β€” identical work takes 2.44Γ— longer, verified across 8 legs with CPU frequencies recorded in every sample.
  • It only matters while the device is awake with the screen off, where it saves ~10–17 mA (the wake profile pins the little cores at a 900 MHz minimum). While the device is genuinely suspended it saves nothing β€” the firmware powers the cores down regardless of governor.
  • The total-energy figure cannot be measured on this hardware: the battery gauge is unusable below ~10 mA (charge_counter frozen, positive current reported while discharging) and the timing and current instruments contradict each other by ~6Γ—. This is stated rather than papered over.
  • Recommendation: the upside is small and bounded while the failure mode is a crippled device, so SLEEP_GOVERNOR_ENABLED=0 is the safer default. Shipped default is unchanged (1), and the failure mode is fully contained by the recovery machinery below.

πŸ› οΈ Reliability and hardening (since v1.4.0)

  • Self-updater trust boundaries β€” downloads are restricted to GitHub hosts with every redirect hop re-checked, and the APK must be signed by the same certificate as the running app. A tampered or failed download now fails loudly.
  • execRoot liveness β€” stdout and stderr are read on separate threads (the old sequential read could deadlock permanently when a command filled the stderr pipe), with waitFor(timeout) plus destroyForcibly() so a wedged su can never freeze a caller forever.
  • Screen-state durability, three tiers β€” dynamic receiver for the hot path, reconciliation on every process start, and a non-wakeup ELAPSED_REALTIME watchdog that repairs a stuck clamp within ~2 s of the screen coming on. Previously a process killed while clamped left the device at 400–900 MHz with 4 cores dead permanently; that state was reproduced on-device before being fixed.
  • Boot-loop guard β€” after 3 fast boots the rule pass suspends itself and the header offers RESUME RULES, so a bad rule can't make the device unbootable.
  • Boot rule table β€” the 19 numbered blocks in BootReceiver are now tables plus explicit steps, with behaviour proven identical by diffing 24 real boot commands against the pre-refactor binary. Kills the ON/OFF drift class that had already caused two bugs.
  • Config hardening β€” a package name read from a world-writable file was interpolated into root shell commands at every boot. Closed with 0600 owner-only files plus package-name validation; the injection was demonstrated not to execute afterwards.
  • Persistent log β€” the log is now a real rotating file (/data/local/tmp/hibreak.log) instead of a memory-only list, written by a single batched thread.
  • Charge ceiling β€” the MTK current_cmd switch, with every failure path resuming normal charging.

πŸ“₯ Install

adb install -r HiBigZero-v1.5.0-release.apk

Same signing key as previous releases, so this upgrades in place. HiBigZero-v1.5.0-release.apk.sha256 is attached for verification.