Skip to content

← All documentation

Post-install setup · Y2Reborn

LUNA Software Modernization 01

Documentation published by SchulzCode/Y2Reborn.

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

LUNA Software Modernization 01

> **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.

Date: 2026-09-22 Scope: software stabilization, userspace modernization, reproducible ARMv7 candidate build Hardware scope: unchanged; no flash, boot-mode change, charging experiment, suspend experiment, bond change, credential change, protected-partition access, or Y2DATA replacement

Starting state and audit basis

The full current-system audit (docs/audit/current-system/00...15) and the complete Bluetooth codec audit (docs/architecture/bluetooth-codecs.md plus docs/audit/bluetooth-codecs/2026-09-22-evidence-and-tests.md) were read before source changes.

Starting Y2Linux HEAD: be7e64c5dd5c6bdfe39c35e8fbd70e6b4b2c4717 Starting Y2Reborn HEAD: 011884b7ef13187171225f252c213afeeb6da851 Starting Y2Linux worktree: no tracked modifications. Starting Y2Reborn worktree: reference-only untracked audit inputs under docs/architecture/bluetooth-codecs.md and docs/audit/; preserved throughout.

The standing roadmap boundary was not crossed: this session changed software inputs and validation only. Linux 6.18, the kernel configuration, DT memory reservations, PMIC/charger policy, AFE/I2S architecture, graphics ownership, eMMC layout, protected storage, preloader/LK/NVRAM/PROTECT, calibration, and factory material remained outside the change set.

Focused commits

Y2Reborn:

CommitFinding/packageFiles or boundaryTests/evidenceLimitation
f9856bbF01 media lifetime; seek trimmingcrates/reborn-media/native/media.c and media wrappermedia decode/seek/cancel/fixture tests; workspace testsallocator-aware target long-run remains unqualified
86f9152F02 sink ownership; transition cancellationplayback and ALSA ownership boundaryplayback sink failure, output switch and transition testsno physical exclusive PCM run
e215df1F03/F08 queue authorityqueue entry identity, collection intent, repeat and worker scheduleduplicate/queue-boundary/playback testsno large-library target measurement
db1623bF05/F06/F07 persistence and database commit semanticslibrary worker acknowledgement, scan finalization, bounded schema checkpoint, corrupt DB quarantinelibrary commit, ENOSPC/error, schema and quarantine testsphysical power-loss and full-card qualification remains open
09465bfF20/F21/F24/F25/F26 software truthinput loss/reopen timing, bounded glyph fallback, route/storage/artwork/metric stateplatform, UI, observability and storage testsbroad font coverage and physical storage removal remain open
42dc1f5BlueALSA 5 PCM negotiation and trust seamtyped negotiated PCM observation, final sink conversion, v5 Rate/Format, explicit Pair→TrustedBluetooth platform/audio tests; ARM BlueALSA integration buildno autonomous codec policy, AVRCP, or physical A2DP claim

Y2Linux:

CommitFinding/packageFiles or boundaryTests/evidenceLimitation
a6f3124reproducible dependency inputsBuildroot lock, package versions/hashes, modernization transform, FFmpeg 9.0.2locked source/hash checks; clean Buildroot buildBuildroot remains on the 2025.02 LTS line
b74e2d1obsolete ALSA patch removalmodernization transformfresh ALSA 1.2.16.1/1.2.16 ARM buildno hardware AFE change
cd5bca3BlueALSA 5 shared linkinggenerated v5 patch removes upstream -static link flag onlyfresh bluealsad ARM link and rootfs inspectionpatch remains local because v5 source still carries that flag
b94a671FFmpeg 9.0.2 receiptexact SONAME verifierfresh generated libav* verificationno general encoder/network/video stack enabled
8e5b53bbuild provenance correctiontools/production/build.py derives Y2_BUILD_ID from rootfs versionclean rebuild embeds PREMIUM-03; package validator passespath-dependent old generated output was quarantined, never reused

F01–F32 audit status

FindingStatusEvidence and remaining limit
F01FIXEDAVFrame ownership and adjacent error paths corrected; media workspace tests pass.
F02FIXEDSink planning/reconfiguration is serialized with worker ownership; failure/rollback tests pass.
F03FIXEDStable QueueEntryId and live future schedule preserve duplicate entries and mutations.
F04FIXEDFFmpeg crossfade output is chunked to the sink bound and preserves fallback audio; offered durations are tested.
F05FIXEDBatch and finalization acknowledgements gate scan success and pruning.
F06FIXEDDirty, bounded, schema-versioned checkpoints and restore diagnostics replace periodic whole-session writes.
F07FIXEDCorrupt DB is quarantined before clean recreation; source media is retained.
F08FIXEDAlbum/artist/folder playback carries collection intent through the queue authority.
F09FIXEDAIFF, APE and WavPack discovery is aligned with target FFmpeg demuxers/decoders.
F10BLOCKED_BY_HARDWARE_SCOPENative wired S32/high-rate playback was explicitly excluded; no AFE/I2S/codec hardware policy changed.
F11PARTIALLY_FIXEDCoarse seek trimming, decoder/filter/resampler reset and transition timing were corrected; the full MP3/AAC/Opus/mixed-rate sample-boundary matrix remains.
F12PARTIALLY_FIXEDReplayGain malformed/zero/non-finite/unreasonable values and limiter headroom policy are hardened; the empty EQ path remains deferred/disabled until it has useful configuration.
F13FIXEDBuildroot, FFmpeg and package inputs are pinned by URL/hash/source epoch; paired HEADs and rootfs identity are embedded and checked.
F14BLOCKED_BY_ARCHITECTURE_DECISIONLegacy Y2PlayerNative application fields still require a coordinated manifest/validator/consumer contract decision; changing one producer alone would make old fallback manifests invalid.
F15DEFERREDOptional codec and owner-firmware/asset redistribution requires an explicit legal and distribution decision; no new optional codec was added.
F16BLOCKED_BY_HARDWARE_SCOPECharging/current/thermal and low-battery policy were not changed or experimented with.
F17BLOCKED_BY_HARDWARE_SCOPESuspend/resume and GPU recovery remain physical qualification work.
F18PARTIALLY_FIXEDNative Wi-Fi userspace remains bounded and current; association/IP/DNS/coexistence is not physically qualified here.
F19PARTIALLY_FIXEDBlueZ/BlueALSA/SBC software stack, v5 adapters, format truth and trust seam are updated; pairing, A2DP stability, reconnect and AVRCP remain physical/feature qualification.
F20FIXEDQueued release ordering, timestamp aging, SYN_DROPPED, reopen and screen-off repeat behavior have targeted tests.
F21PARTIALLY_FIXEDStorage/SD identity, route state and bounded Unicode fallback are corrected; broad glyph coverage remains limited.
F22BLOCKED_BY_HARDWARE_SCOPERenderer recovery and suspend/pageflip lifetime were not tested on the device.
F23DEFERREDLarge-library query-backed scaling was outside this stabilization pass.
F24PARTIALLY_FIXEDStable entry-aware artwork state and cache handling were corrected; full sidecar invalidation qualification remains.
F25FIXEDPacket/status/scan completion semantics no longer overstate success or double-count cumulative values.
F26PARTIALLY_FIXEDSoftware error propagation and reporting were improved; hot removal/full filesystem behavior still needs target qualification.
F27PARTIALLY_FIXEDFresh Rust, production, ARM, FFmpeg, rootfs, ELF and package evidence exists; broad historical host discovery still has environment/profile failures documented below.
F28DEFERREDCurrent target CPU/RAM/wakeup budgets were not invented or claimed without measurements.
F29BLOCKED_BY_HARDWARE_SCOPEBoard contracts, reservations, sequencing and thermal assumptions were preserved; no new hardware boundary was crossed.
F30DEFERREDLegacy/reference cleanup was not mixed into the stabilization changes.
F31PARTIALLY_FIXEDA checked preserving BOOTIMG+ANDROID system-update profile and exact fallback are packaged; independent manual installation/recovery remains unperformed.
F32ALREADY_RESOLVEDExisting bounded private diagnostics, redaction, key-only SSH and malformed-input boundaries remain intact.

Dependency inventory and decisions

Versions were checked against official release/tag/download sources and the fresh Buildroot output. UPGRADED means the final shipped input changed in this pass; HELD means the current version was retained deliberately.

DependencyOldNewest stable consideredFinalDecision and reason
Buildroot2025.02.172026.082025.02.18UPGRADED to the latest 2025.02 LTS bugfix; 2026.08 held for broad Buildroot/hardware qualification scope.
Linux6.18 Y2 treecurrent supported stable/LTS line6.18.0-y2linux-gpu-02HELD; vendor board contracts and physical qualification dominate freshness.
Rust toolchain1.90.0 pinned1.98.11.90.0HELD; ARMv7/Buildroot cross-build is clean and replacing the ABI/toolchain is outside this pass.
GCC/binutils/glibcBootlin armv7-eabihf glibc 2024.05-1Bootlin 2026.08-1: GCC 15.3, binutils 2.45.1, glibc 2.44Bootlin 2024.05-1HELD; whole ABI/toolchain replacement requires separate qualification.
FFmpeg9.0.19.0.29.0.2UPGRADED; official stable security/bugfix release, exact audio-only component set and hash verified.
BlueZ5.795.875.87UPGRADED; current stable, local obsolete patches removed after source review.
BlueALSA4.3.15.0.05.0.0UPGRADED; v5 API/source was inspected and Reborn uses bluealsad, Rate, and Format deliberately.
libsbc2.02.22.2UPGRADED; mandatory SBC remains the only enabled A2DP codec.
ALSA lib/utils1.2.131.2.16.1 / 1.2.161.2.16.1 / 1.2.16UPGRADED; obsolete no-MMU/rawmidi patches removed for the MMU Cortex-A7 target.
SQLite3.50.43.53.43.53.4UPGRADED; single writer and schema contract retained.
OpenSSL3.5.73.5.83.5.8UPGRADED through the selected Buildroot LTS bugfix.
expat2.8.32.8.42.8.4UPGRADED through the selected Buildroot LTS bugfix.
Dropbear2026.932026.942026.94UPGRADED; persistent key-only SSH contract retained.
BusyBox1.37.01.37.0 stable (1.38.0 not stable)1.37.0HELD/CURRENT; no unstable release adopted.
D-Bus1.14.101.16.21.14.10HELD; 1.16 is a Meson/package migration with wider service qualification impact.
wpa_supplicant2.122.122.12CURRENT; no newer stable suitable input in the selected Buildroot line.
Mesa24.0.926.1.824.0.9HELD; Lima/Mali400 renderer and KMS/GBM/EGL/GLES2 need a separate physical graphics qualification.
libdrm2.4.1242.4.1342.4.124HELD with Mesa for the same renderer/UAPI qualification boundary.
e2fsprogs1.47.21.47.21.47.2CURRENT.
dosfstools4.24.24.2CURRENT.
util-linux2.40.42.40.x2.40.4HELD; no reason to widen the storage qualification surface for an incremental update.
zlib1.3.21.3.21.3.2CURRENT; actual provider is Buildroot libzlib.
libpng1.6.581.6.581.6.58CURRENT.
libjpeg-turbo2.1.5newer upstream2.1.5HELD; no image-stack migration was required for the current FFmpeg/artwork membrane.
libwebp1.5.01.5.01.5.0CURRENT.
libffi3.4.6newer upstream3.4.6HELD; unrelated ABI migration.
direct Rust cratesserde 1.0.228, serde_json 1.0.145, libc 0.2.177, cc 1.2.41, pkg-config 0.3.32, rusqlite 0.37.0, dbus 0.9.9, flate2 1.1.5, tar 0.4.44current pinned stable releases evaluatedunchanged exact pinsCURRENT; no unconstrained lockfile churn, workspace checks pass.

Official source references used: Buildroot downloads, FFmpeg downloads, BlueZ releases, BlueALSA 5.0.0, BlueALSA migration notes, SQLite changes, ALSA downloads, D-Bus releases, Dropbear releases, Bootlin ARMv7 toolchains, and Rust release announcements.

Bluetooth modernization record

The codec-audit assumptions that remain valid are the one FFmpeg decode/DSP path, one final sink conversion, BlueALSA/BlueZ/HCI ownership, SBC as the compatible fallback, one reconnect owner, no optional-codec auto-enable, and the distinction between requested, negotiated, and physically qualified behavior.

The changed assumptions are version-specific BlueALSA details: v5 ships bluealsad/bluealsactl, uses Rate rather than the audited v4 Sampling property, exposes the negotiated PCM Format with v5 semantics, and required a small shared-link patch because the source build flags still injected -static. BlueZ is 5.87; its current source absorbed the obsolete local patches. No 4.3.1 D-Bus property names were carried forward silently.

The fresh rootfs compiles and installs BlueALSA 5.0.0 with SBC only. AAC, aptX, aptX HD, LDAC, LHDC, LC3plus, FastStream and other optional codecs are disabled. Reborn now decodes the observed BlueALSA format into a typed sink contract: S16, S24 in a 4-byte container, and S32 are represented explicitly; unsupported/packed formats fail closed. The final FFmpeg conversion is selected from the negotiated PCM object, never inferred from the codec label.

The safe foundation is observation, not an autonomous negotiation engine: typed Bluetooth PCM observation and current codec display exist, but no reconnect loop, background codec probing, per-packet policy, adaptive LDAC contract, or per-device codec profile was invented. AVRCP application integration was not added. Pairing only establishes BlueZ Trusted after explicit user confirmation; y2-bt-reconnect remains the sole connection retry owner. No physical A2DP, reconnect, RF coexistence, AVRCP or optional-codec qualification is claimed.

Validation and evidence tiers

Fresh source identities for the candidate are Y2Linux 8e5b53bc9fb934e1f668b9e7e9e34f0fc5e4130e and Y2Reborn 42dc1f562d00439e8edcbb52fc070be28a69378e. The later work-log-only Y2Reborn commit does not change the shipped source.

CheckResultEvidence tier / limitation
cargo fmt --all -- --checkPASSsource, fresh current workspace
cargo check --workspace --lockedPASSsource, locked dependencies
cargo test --workspace --lockedPASSapp 6, control 1, audio 2, control library 5, core 7, library 8, media 15, observability 13, platform 24, UI 10; no device claim
Y2Linux tools/production/tests.sh in locked build environmentPASSproduction/storage/connectivity/power/GPU/ABI suites; no flash
Targeted Y2Linux Python testsPASSconnectivity/power/Wi-Fi/GPU and production/format/storage/handover tests; two documented skips
Fresh ARMv7 BuildrootPASSclean output directory, Buildroot 2025.02.18, current Y2Linux HEAD, owner firmware supplied only as a local build input
FFmpeg component verifierPASSFFmpeg 9.0.2, expected audio decoders/demuxers/filters, exact generated SONAMEs
Rootfs/ELF/package validationPASSARM hard-float ELF checks, rootfs ownership/contracts, BlueZ/BlueALSA/SBC inventory, preserving manifest and rootfs checks
Candidate hash checkPASSSHA256SUMS verifies every packaged file
Broad historical host discoveryLIMITED123-test locked sweep had one failure and 42 errors from environment/profile mismatches (QEMU/fixture/config assumptions); the focused production suite passed and failures were not suppressed
Physical Y2 qualificationNOT RUNexplicitly outside this session

Candidate and update boundary

Candidate package: /home/luca/Dokumente/Code/Y2Linux/out/y2linux-reborn-software-modernization-01/ Fresh build receipt: /home/luca/Dokumente/Code/Y2Linux/out/y2linux-reborn-software-modernization-01-build/ Fallback is retained inside the candidate under fallback/; the candidate contains no Y2DATA.img.

FileSHA-256
BOOTIMG.imge6625ba5a7b3a94e91fa70a41a1b4ea64ae7a68e3228f0213173ee7c2afdf8bd
Y2ROOT.img59548c18d010016e1434f2abe6b972e0d5ebc9ba580e5a08f1e2dde3ef62e524
manifest.json2b577f114ba39f6b9aa4145374116af4548b5305d6f85b084a6fc14b56c3779c
SHA256SUMSd49fc51403c7ce3f2700b21bd429096a788fa36582c3dc9cfb6033b902e0169f

The manifest is system-update, selects only BOOTIMG and ANDROID, retains layout/data schema 1, and records build_git_commit == rootfs_build_git_commit == 8e5b53b.... Kernel source/config architecture stayed at Linux 6.18; BOOTIMG.img was regenerated as the normal fresh candidate container, without kernel policy or hardware changes.

Safe manual update procedure, when separately approved: verify SHA256SUMS and manifest.json offline; retain a copy of the candidate and its fallback/; use only the included MT6582_preserve_data_scatter.txt; in the existing owner-approved SP Flash Tool workflow select BOOTIMG and ANDROID only; leave USRDATA/Y2DATA, preloader, LK, NVRAM, PROTECT, calibration and factory regions unselected; verify readback with the included readback plan and hashes before booting. Do not use the first-install scatter or data image for this candidate. This session performed none of those physical steps.

Remaining blockers

The remaining work is chiefly the coordinated F14 manifest contract, distribution/legal closure for private firmware/assets and optional codecs, physical wired-audio and Bluetooth qualification, graphics/Lima recovery and suspend qualification, target long-run memory/XRUN/input/storage tests, and the broad-test environment/profile cleanup. No kernel/BOOTIMG policy change, charging change, suspend change, memory reservation change, eMMC translation change, or protected-partition operation is part of this candidate.

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