Session 18 — 2026-03-27a — TWRP v1.4 First Boot Confirmed; LED Discovery

Session 18 — 2026-03-27a

FieldValue
Date2026-03-27
Phases03a — Custom UEFI ABL, 03b — TWRP
Duration~1.5 h

LED Discovery

The LED indicator is a tiny pinhole in the power button bezel — it had been completely blocked by dust. After cleaning with a needle: blue and red LEDs are clearly visible. Green sysfs write succeeds (value 255 confirmed) but produces no visible light — two-color physical LED only. Prior sessions concluded “LEDs useless and 5-press sequence may not work” — both conclusions were wrong.

LED boot-stage scheme (adopted)

LED stateMeaning
BlueEarly-init reached
DarkInit stage (green invisible)
RedFilesystem mounted
Red + BlueADB ready (FunctionFS BIND)
NothingKernel never started

TWRP v1.4 — First Confirmed Boot

With LED pinhole clean, retested TWRP v1.4. Observed red+blue LED sequence. USB enumerated as 18d1:d001. ADB connected: device ID 6db6dcde recovery. First custom recovery successfully running on this device.

Hardware confirmed initialised in TWRP

  • 8 CPUs online, eMMC accessible
  • Display pipeline: MDSS DSI → tc358762 → EPDC → MAX17135
  • Touch: cyttsp5 | Pen: Wacom EMR | Hall sensor | Frontlight: LM3630A
  • USB / ADB operational

recovery Binary Crash-Loop

The recovery binary starts and immediately exits with status 1, restarting every ~5 s. No /tmp/recovery.log written. Root cause: TWRP’s minui opens /dev/fb0 but this kernel only creates /dev/graphics/fb0. Fix applied in v1.5: symlink /dev/graphics/fb0 /dev/fb0 in init.recovery.qcom.rc on early-init.

Even after the symlink fix, EPDC update counters are zero — no framebuffer updates submitted. Display will likely remain blank; explicit EPDC ioctl/sysfs refresh required. Userdata reads as all zeros in crypto footer — unencrypted post factory-reset.

ABL v1.6 — Buffer Reduction

Reduced total UEFI buffer allocations from 256 MB to 34 MB: gRxBuffer 64→32 MB, gTxBuffer 64→1 MB, FastBootBuffer 128→1 MB. Theory: pool exhaustion caused FastbootPublishVar and CmdDownload DATA response failures. Built and signed -v 5. Ready to flash.

New Tools

  • tools/twrp-build — new script matching abl-build style
  • tools/abl-build — improved: clean subcommand, -j1 auto-retry on parallel build failure, non-interactive mode

More posts