Skip to content

← All documentation

Post-install setup · Y2Reborn

REBORN-RADIO-UI-01 — scan feedback correction

Documentation published by SchulzCode/Y2Reborn.

Instructions published by the project, shown here word for word.

REBORN-RADIO-UI-01 — scan feedback correction

> **Historical record.** The dates, candidate identity, "current" claims, > next steps and permissions below belong to this recorded boundary. See > [current state](../CURRENT_REBORN_STATE.md) for the latest physically observed result.

Built and validated; stop for owner manual installation. The running device still has source 6209f48. This correction has not been installed or physically qualified. It builds on the owner-installed, working splash update and keeps its BOOTIMG, kernel, radio drivers/services, audio path, charging code and Y2DATA.

Built Reborn source: a8ae8b6723311b677662759082c55ad226441669. Y2Linux integration: 640ecb828af1ba48edcc6203701edb89f66eb0ac. Rust 1.90.0, ARMv7 hard-float glibc, existing Buildroot GCC 13.3.0 toolchain. Cargo.lock/dependencies/native ABI and the safe Rust application architecture remain unchanged.

Problem and corrected behavior

The previous SSH inspection proved Wi-Fi scan and Bluetooth adapter/discovery APIs work, but it used separate diagnostic test hooks. The owner subsequently confirmed the actual UI Scan action provided no progress or devices. Source inspection found no scan lifecycle in the UI, scans sent while radios were off, Wi-Fi's disabled state treated as an error, and Bluetooth operation errors not displayed. Wi-Fi errors also overwrote a global notice visible on unrelated screens.

The corrected flow is:

  1. Select Scan networks or Scan devices. That explicit action enables

    the selected radio if necessary and remembers its On preference.

  2. The selected row/footer immediately shows Starting Wi-Fi/Bluetooth…, then

    Scanning…. Repeated activation cannot restart/cancel the current scan.

  3. Wi-Fi waits for the actual supplicant CTRL-EVENT-SCAN-RESULTS event on a

    separate attached control socket, then reads results. Commands and events cannot be confused. Startup and scan each have a 15-second deadline, with bounded native call timeouts. Results are strongest-first and deduplicated by SSID/security. Hidden SSIDs cannot be selected by this baseline UI.

  4. Bluetooth powers through BlueZ, holds its own discovery session for 15 seconds,

    publishes device updates during discovery, then stops that session. Paired and cached BlueZ devices remain in the list; no bonds are deleted.

  5. Completion shows the result count. Empty Wi-Fi results say No networks found;

    empty Bluetooth results ask for pairing mode. Failure is explicit and remains visible until the next operation. Early Bluetooth service startup can still return a visible retry error; it is no longer a silent action.

Wi-Fi Off is now an available, healthy radio state when rfkill and supplicant respond. Radio notices are owned by their respective screens. Held Select/Right activation no longer repeatedly toggles a radio or activates a row; Up/Down and volume repeats remain. No Wi-Fi network is selected or Bluetooth peer paired merely by pressing Scan. Existing platform saved-network behavior when enabling Wi-Fi remains in effect.

Workers keep bounded channels and their existing fixed threads. The main/UI thread remains responsive during activation/discovery. No runtime dependency, unsafe block, shell radio backend, frame animation loop or new network listener. Structured scan start/active/completion/failure logs share an operation correlation ID; Bluetooth operation errors now identify the method. Status JSON exposes wifi.scan and bluetooth.scan, each with a typed state, plus found at completion or message on failure.

SSH validation uses the actual UI workers

New bounded, enumerated commands on the existing protected Unix socket:

rebornctl wifi scan --json
rebornctl bluetooth scan --json
rebornctl wifi on|off --json
rebornctl bluetooth on|off --json
rebornctl status --json

An accepted response means the operation is queued; poll status to observe Starting → Scanning → Complete/Failed. The Scan commands call the same application effects/workers as the buttons. Radio commands reject --follow; they never execute a shell, accept arbitrary operations or expose a password. The existing diagnostic tests remain available; Wi-Fi's scan test now also waits for completion.

The host radio UI qualification script uses pinned owner SSH, verifies the expected source before any operation, refuses to interrupt an active UI scan, retains JSON state samples and checks session continuity, active progress and completion. It restores Off for a radio it enabled from Off. It does not pair peers, choose networks, install software or access key bytes. Empty results are a successful completed scan, not proof of RF peer discovery.

Validation

Receipts: /home/luca/Dokumente/Code/Y2Linux/docs/build/evidence/reborn-radio-ui-01/. Reborn binary: 1,879,004 bytes; rebornctl: 445,356 bytes. Y2ROOT remains 512 MiB; used ext4 space increases by 53,248 bytes (52 KiB).

Exact package and manual installation

Package: /home/luca/Dokumente/Code/Y2Linux/out/REBORN-RADIO-UI-01.

FileSHA256
Y2ROOT.img79b12172645c4755fdf3219fc6f99971d94de62c42f807a3613a43516d1f7df8
fallback/Y2ROOT.img — installed splash rootd40e9337e3a1149d12fdd240a59918b0d2c48e4e6a9974ab5b470685250d900c
Required installed splash BOOTIMG, unchanged8671de2900fd05cc80a9eb7a3541d5bbdab7e5dd96c18f73f44ca1b13beb19a5
  1. Verify on the host:
   cd /home/luca/Dokumente/Code/Y2Linux/out/REBORN-RADIO-UI-01
   sha256sum -c SHA256SUMS
  1. Open the established SP Flash Tool v5.2032 workflow and load this package's

    MT6582_reborn_root_only_scatter.txt. Select Download Only.

  2. Check ANDROID only, pointing to this package's Y2ROOT.img. **BOOTIMG,

    USRDATA and every other partition stay unchecked/NONE.** Do not select Format or Firmware Upgrade. This differs from the preceding two-image splash update.

  3. Use the established owner shutdown/USB entry procedure: select Download,

    connect the powered-off Y2, wait for success, disconnect and boot normally. Y2DATA, saved networks, bonds, settings and music remain in place.

  4. If rollback is required, use fallback/MT6582_reborn_root_only_scatter.txt

    with ANDROID only and its Y2ROOT.img. Keep the installed splash BOOTIMG.

After owner installation

Start with SSH status, health, metrics, and test baseline --json, verifying source a8ae8b6723311b677662759082c55ad226441669. Then run:

cd /home/luca/Dokumente/Code/Y2Reborn
python3 tools/qualification/reborn-radio-ui.py \
  --known-hosts /home/luca/Dokumente/Code/Y2Linux/evidence-private/20260915-m5-entry/known_hosts \
  --expected-build a8ae8b6723311b677662759082c55ad226441669

Retain status/progress/results and any related subsystem logs before further changes. Only then request one visible scan confirmation and, if needed, a peer in pairing mode. Wi-Fi association, pairing/A2DP playback, suspend/charging and full Reborn Baseline 01 acceptance are not established by this fix. Do not start Reborn 02. Stop here for manual installation.

Published by the SchulzCode/Y2Reborn project [1] [3]