# uzbek-plus — Project Aurora: mainline ARM64 Linux на LTE-модеме JZ08AU (MSM8916) Плата **JZ08AU-XPA-7J-R3** («Aurora»): Qualcomm MSM8916, 512 MiB RAM, eMMC 3.64 GiB, LTE-модем, Wi-Fi, дисплей. Стоковая прошивка — Android 4.4 (ядро 3.10). Здесь — журнал и воспроизводимые материалы перевода платы на **mainline Linux 7.2.7 arm64**, который загружается автономно с eMMC и поднимает LTE через ModemManager. > **Это не прошивка «скачай и залей».** Всё, что касается записи во flash, делалось на одном конкретном экземпляре, > по одной стадии, с backup и readback-сверкой. Перед любой записью сделайте и проверьте **полный backup СВОЕГО устройства** > (см. [docs/QUICKSTART.md](docs/QUICKSTART.md)). Никогда не прошивайте NV/EFS-разделы (`modemst1`, `modemst2`, `fsg`, `fsc`, `persist`) > с другого устройства — там калибровки RF и идентификаторы конкретного модема. ## Статус (2026-09-30) | Подсистема | Статус | |---|---| | ARM64 Linux (7.2.7, PSCI, 4 CPU) | PASS | | eMMC (HS200, строго read-only в Linux) | PASS | | USB NCM (gadget, 172.16.42.1/24) | PASS | | MPSS (modem remoteproc, rmtfs `-r`) | PASS | | QMI (rpmsg wwan ctrl) | PASS | | BAM-DMUX (wwan0) | PASS | | LTE registration | PASS | | LTE Internet (DNS/ICMP/HTTP/HTTPS) | PASS | | Direct boot с eMMC без хоста (B5) | **PASS / CLOSED** | | B6 — автоматический lifecycle модема | **IN PROGRESS** (см. ниже) | | Wi-Fi (WCNSS) | TODO | | Router stack (NAT/firewall/VPN) | TODO | | Дисплей в Linux | TODO | | Батарея / зарядка | TODO | ## Рабочая цепочка загрузки (baseline B5) ``` Power → stock SBL1 → DB410c TZ (TZ.BF.3.0) → qhypstub → lk1st (aboot, autoboot) → cache: ext2 + extlinux/extlinux.conf → golden mm1 (Image.gz + DTB + initramfs) → ARM64 Linux Fallback: extlinux не найден / не парсится / не грузится → Android boot image из раздела boot (emmc1 rescue) ``` Текущее содержимое flash на референсной плате (sha256, первые 8 hex): | раздел | содержимое | sha256 | |---|---|---| | sbl1, rpm, DDR, sec | stock (не менялись) | sbl1 `6a661ec9`, rpm `5a9b857b` | | GPT | stock + tz 512K→1M, tzbak перенесён в свободный промежуток @LBA 305184 | primary `6e850a5d`, backup `795952a1` | | tz | DB410c TZ.BF.3.0-00714, дополнен нулями до 1 MiB | `8481892f` | | hyp | qhypstub, до 512 KiB | `1a963047` | | aboot | lk1st (lk2nd 23.1) autoboot, подписан qtestsign, до 1 MiB | `3b8cd266` | | boot | emmc1 rescue image (+ нули до 16 MiB) | `e9579f33` | | cache | ext2 + extlinux + точный golden mm1 | `409bbb11` | | recovery | lk2nd 23.1 (fastboot) | `0dfa60a0` | | modem, NV/EFS, persist, system, userdata | не менялись (Linux монтирует modem FAT только RO) | — | Golden mm1 (Android boot image, для `fastboot boot`): `aurora-mm1.img` sha256 `38c960ef…`, ядро `7.2.7-aurora-bam1 #5`. Все хэши целиком: `b5a/SHA256SUMS`, `b5b/SHA256SUMS`, `bootchain-migration/SHA256SUMS`, `linux/*/SHA256SUMS`, [docs/BLOBS.md](docs/BLOBS.md). ## B6 — lifecycle модема (IN PROGRESS) RAM-only контроллер `b6/aurora-modem start|stop|status` (rmtfs `-r -P -s` → MPSS → QMI → SIM → online → регистрация → ModemManager → bearer → только /32-маршруты; стоп: disconnect → detach → wwan down → MM stop → BAM-DMUX idle → MPSS stop → rmtfs последним). Полные циклы start→data→stop проходят чисто (0 ошибок BAM-DMUX/remoteproc, 0 записей eMMC, NV не меняются), **но** повторная регистрация в сети после перезапуска MPSS в одном boot чередуется PASS/FAIL (`limited` / `registration-denied`). Гипотеза (не доказана): с `rmtfs -r` модем при каждом старте теряет EFS-контекст NAS. Подробности — NOTES.md, сессия 28. ## Структура репозитория | путь | что | |---|---| | [NOTES.md](NOTES.md) | подробный журнал всех сессий (sanitized) | | [docs/QUICKSTART.md](docs/QUICKSTART.md) | порядок действий для второго устройства | | [docs/RECOVERY.md](docs/RECOVERY.md) | аппаратный EDL, откаты | | [docs/BUILD.md](docs/BUILD.md) | как пересобрать lk1st/lk2nd, ядро, DTB, initramfs, boot image, cache-образ | | [docs/BLOBS.md](docs/BLOBS.md) | проприетарные/device-specific файлы, которых **нет** в репозитории: имя, sha256, назначение, где взять свой | | `linux/` | DTS, фрагменты и полные kernel config, патч, init/скрипты initramfs, списки пакетов + APK sha256 | | `lk2nd-build/`, `b5a/` | запись сборки lk2nd/lk1st, config.h diff, скрипты записи/отката B5a | | `b5b/` | генератор ext2/extlinux-образа cache, эмулятор сканирования lk2nd (исходники + результаты) | | `bootchain-migration/` | preflight, write plan, редактор/валидатор GPT | | `b6/` | контроллер lifecycle модема (RAM-only прототип) и харнесс тестов | | `tools/` | утилиты: UART-логгер, Sahara probe, распаковка boot.img, sanitizer публикации | | `logs/` | sanitized логи: UART, QMI, ModemManager, EDL, результаты тестов | | `android/` | снимок стокового Android (getprop, gpio, input, leds, …), sanitized | ## Что намеренно не опубликовано Полные дампы eMMC и разделов, NV/EFS (`modemst1/2`, `fsg`, `fsc`), `persist`, `userdata`, файлы прошивки модема, стоковые SBL1/RPM/TZ/aboot/boot/recovery/system, Firehose-программер, DB410c TZ, собранные бинарники. Идентификаторы (IMEI, IMSI, ICCID, eMMC CID/serial, Sahara serial, MAC, номера сот, cookies) заменены на ``. Как это сделано — `tools/publish-sanitize.py`; значения идентификаторов в репозиторий не попадают.