B8A audit, B8B Pronto remoteproc (fixed wcnss_mem 0x8b600000), B8C stock NV (fixes Pronto startup watchdog), B8D cfg80211/mac80211/wcn36xx -> phy0/wlan0, B8E wlan0 up + WPA2/CCMP test AP, B8F eMMC cache 857c9c30 with aurora-wifi autostart: 3/3 class-A cold boots, AP up 76-94 s after power-on, LTE unaffected. PSK, NV and PSK-bearing images are not published.
5.3 KiB
B8F — Wi-Fi persistent: eMMC cache + autostart, 3/3 cold boots — PASS (2026-10-03)
What went into the cache (only components proven in B8B–B8E)
cache cache-extlinux-b8f.img 857c9c30… (ext2, exact B7C recipe; label b8f):
Image.gz-dtb50d63488 = B8D kernel (7.2.7-aurora-b8d, be30b1fa: bam1 + QCOM_WCNSS_PIL + WLAN/CFG80211/MAC80211/WCN36XX built-in) + B8B DTB;aurora-b8f.dtbcc74b57d = B8B (wcnss okay, wcnss_mem 0x8b600000/6 MiB, irisqcom,wcn3620);initramfs-b8f.cpio.gzabb3bd67 = B8D initramfs (B7C f219b04d + NV c6b71825 + iw 6.17/libnl 3.11) + overlay b5a6b087:/init= T4 + one autostart line (/etc/init.d/aurora-wifi start, same EMMC_RO/B1 gates as the modem),/usr/sbin/aurora-wifi,/etc/init.d/aurora-wifi,/etc/aurora/wifi.conf(0600),/usr/libexec/aurora/wifi/{hostapd 2.11-r4, libssl/libcrypto 3.5.9, libnl};- cmdline unchanged. No NAT/DHCP/DNS/firewall/VPN.
aurora-wifi: waits for modem START OK/FAIL/rollback (≤ 300 s; proven order B8C–B8E) → checks /firmware/image/wcnss.mdt + NV →
echo start WCNSS → wlan0 (≤ 30 s) → ip link set wlan0 up → hostapd (SSID aurora-b8f, ch 6, HT20, WPA2-PSK/CCMP) → AP ENABLED.
Logs: /run/aurora-wifi/{wifi.log,hostapd.log,service.log}, kmsg [aurora-wifi]. Cmdline aurora.wifi=off disables.
Secrets
- Old B8E test passphrase removed:
b8/b8e/bundle/hostapd-b8e.confredacted; full scan of local mirror, 480s workspace + /tmp, memory → no occurrences. - New temporary passphrase only in
b8/b8f/private/wifi.psk(0600). Repository keepsrootfs/etc/aurora/wifi.conf.inwith@PSK@. - PSK-bearing artifacts (never publish):
b8/b8f/private/,b8/b8f/out/,b8/b8f/cache/cache-extlinux-b8f.img,logs/b8/b8f/W/*.bin. - Text logs scanned for the PSK: 0 hits (hostapd runs without -d/-K).
Before the write
- RAM pre-test (ram1, fastboot, class A) of the identical kernel/DTB/initramfs: START OK 82.2 s → AP ENABLED 86.5 s (no input), phone WPA2 connected, held 204+ s, SNTP +0.37 s, Pronto crash 0, eMMC w=0.
- lk2nd emulator: S5 regression (B7C) == b7c emu; S6 candidate "Trying to boot 'b8f'": kernel be30b1fa 23955464 B (image_size 0x1760000), DTB @DDR+0x20AA000, ramdisk 16077951 B @DDR+0x22AA000 — no overlap; F1/F3/F10 → android boot (emmc1). (Emulator note: kernel hash length is argv[3]; default is the golden 23015432.)
- Backup: live cache read before write = B7C 14fe453a (
logs/b8/b8f/W/pre-cache.bin), plusb7/b7c/cache/cache-extlinux-b7c.img.
Write (HW EDL, b8/b8f/cache/B8F-write.sh = B7C-write.sh with image/hashes/rollback refs/log dir changed)
All gates passed (old cache == B7C 14fe453a, GPT/boot/aboot unchanged) → CACHE_MATCH 857c9c30 → sbl1/rpm/tz/hyp/recovery/modemst1/2/fsg/fsc/persist == A3,
modem/system/userdata == A4pre → B8F_WRITE_VERIFIED. Logs logs/b8/b8f/W/. Rollback: b8/b8f/cache/B8F-rollback.sh (→ B7C 14fe453a, HW EDL).
3 normal cold boots (power off ≥ 90 s, battery → USB, no RESET/fastboot, no manual commands)
| boot | class (RTC) | START OK | AP ENABLED | SNTP vs VNIIFTRI | phone WPA2/CCMP | held | Pronto | LTE | eMMC |
|---|---|---|---|---|---|---|---|---|---|
| cold1 | A (3 s) | 89.2 s (in 79.8) | 93.5 s | +0.403 s | connected, 4-way HS completed, −26 dBm | 188 s, 0 disconnects | crash/wd/fatal 0 | ping OK, BEARER_CONNECTED | w=0 |
| cold2 | A (3 s) | 85.2 s (in 75.8) | 89.8 s | +0.996 s | connected, −25 dBm | 172 s, 0 disconnects | 0 | OK | w=0 |
| cold3 | A (3 s) | 72.2 s (in 62.8) | 76.4 s | +0.029 s | connected, −29 dBm | 168 s, 0 disconnects | 0 | OK | w=0 |
All boots: lk2nd extlinux b8f (model string "JZ08AU Aurora (RAM boot B8B)" = B8B DTB, kernel 7.2.7-aurora-b8d), wcn36xx FW
WCN v2.0 RadioPhy vUnknown with 19.2MHz XO / CRM CNSS-PR-1-4-2-c4-00084, MAC , SSID visible, B7 TIME SET.
B8F = PASS 3/3. B8 closed. Power-on → Wi-Fi AP ≈ 76–94 s (gated by LTE START OK by design).
Open items (not fixed in B8, by decision)
- Delivery to sleeping STAs: AP→client frames for a client in power save are delayed up to ~10 s (B8E: ping 65/120, RTT steps of 1 s).
wcn36xx has no
set_tim/AP_LINK_PS → TIM likely not updated (hypothesis). Client-initiated traffic is fast. JZ02 has the same config. - No regulatory.db → world regdomain
00(ch 12–13 no-IR);CFG80211_REQUIRE_SIGNED_REGDB=y. Needed for RU country setting. - Production MAC: AP uses
<MAC>(lk DT, derived from eMMC serial; stable, locally administered). Stock Android used<MAC>, source unknown. - Iris model: 19.2 MHz XO confirmed by FW,
qcom,wcn3620works and matches JZ02; exact chip not proven (FW saysRadioPhy vUnknown). - B7 residual reached +0.996 s on cold2 (NITZ whole-second granularity; B7C range was 0.04–0.84 s) — at the edge of the "< 1 s" claim; not a B8 regression.
- rmtfs logs one modem EFS write (RAM buffer only, eMMC 0) whenever WCNSS starts;
timeout waiting for ssctl serviceon WCNSS stop.
Files
b8/b8f/: build-b8f.sh, rootfs/ (init, aurora-wifi, init.d, wifi.conf.in), init-t4-vs-b8f.diff, b8f-boot.sh, b8f-phone.sh,
cache/ (mkfs-cache-b8f.sh, extlinux-b8f.conf, B8F-write.sh, B8F-rollback.sh, B8F-PREFLIGHT.md, cache-diff-b7c-vs-b8f.txt, emu/, SHA256SUMS).
logs/b8/b8f/: ram1/, cold1–3/ (host-actions, snapshot, phone-1/2, dmesg.full, uart.log), *.console, W/ (write logs; *.bin private).