posts
- HTC Desire Z battery drain in milliamps, straight from sysfs
The battery icon on my HTC Desire Z said 100% all day. A kernel file, smem_text, had the number that moved: device draw in mA, readable without root.
- FiiO X1 bootloader in Ghidra: 94 functions at the wrong base
The FiiO X1's bootloader looked like 94 opaque functions until a re-import at 0x80600000: 237 functions, no integrity check, and its SDK source on GitHub.
- Packing a battery-first kernel into an HTC Desire Z boot.img
My plan put the HTC Desire Z kernel flash in one comment line. The boot image took three partition lookups, abootimg and a module the build never made.
- HTC Desire Z custom kernel killed Wi-Fi: version magic and insmod
A custom kernel left my HTC Desire Z with no Wi-Fi: a stale module the kernel refused, then a firmware path my own insmod got wrong. The fix took a reboot.
- FiiO X1 firmware patcher: everything but the EQ
A Python patcher for the FiiO X1's x1.fw: config switches and a font swap flash fine; the EQ breaks the boot, breaks playback or lands one slot off.
- Desire Z undervolt: a battery kernel next to CONFIG_JESUS_PHONE
An HTC Desire Z battery kernel on CM7: 25-50 mV undervolt, no overclock, power-collapse idle, four build failures and one fastboot flash.
- FiiO X1 firmware: a hidden USB DAC mode and a debug shell
The FiiO X1 shipped as a USB disk only, yet its firmware holds a USB Audio Class 2.0 DAC mode, switched off in its settings, and a hidden debug shell.
- HTC Desire Z browsers: what still loads HTTPS on Android 2.3
Android 2.3 tops out at TLS 1.0. Firefox 47 brings TLS 1.2 but an old root store; Opera Mini hands the handshake to its servers. Only Opera installed.
- Terraria on the HTC Desire Z: a DRM loop and a dead edge
Terraria on an HTC Desire Z with Android 2.3: a license check that called itself, a signing key that broke installs, and an edge that never answers.
- A camera app for the HTC Desire Z, cut from 13,144 lines to 881
MeshCam for the HTC Desire Z on Android 2.3: an AOSP camera fork cut to 881 lines, a location the donor always saved as null, and a two-stage shutter key.