| android | ||
| b5a | ||
| b5b | ||
| b6 | ||
| b6j | ||
| b6p | ||
| b7 | ||
| b8 | ||
| b9 | ||
| bootchain | ||
| bootchain-migration | ||
| docs | ||
| firehose | ||
| gpt | ||
| linux | ||
| lk2nd-build | ||
| logs | ||
| partitions | ||
| r2 | ||
| r3/r3b | ||
| tools | ||
| .gitignore | ||
| firmware-fat-compare.tsv | ||
| MANIFEST.md | ||
| manifest.tsv | ||
| NOTES.md | ||
| README.md | ||
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). Никогда не прошивайте NV/EFS-разделы (
modemst1,modemst2,fsg,fsc,persist) с другого устройства — там калибровки RF и идентификаторы конкретного модема.
Статус (2026-10-03)
| Подсистема | Статус |
|---|---|
| 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 модема (RAM) | PASS / CLOSED |
| B6P — автозапуск модема из flash (persistent) | PASS / CLOSED |
| B7 — время от сети (DMS/NITZ, без RTC) | PASS / CLOSED |
| Wi-Fi (WCNSS/Pronto + wcn36xx, тестовая AP WPA2, автозапуск из flash) — B8 | PASS / CLOSED (см. ниже) |
| Router stack (NAT/firewall/VPN) | TODO |
| Дисплей ST7735S 128×128 (SPI): DRM/fbcon tty1, подсветка, автозапуск из flash — B9 | PASS / CLOSED (см. ниже) |
| Батарея / зарядка | TODO |
Рабочая цепочка загрузки (baseline B5)
Power → stock SBL1 → DB410c TZ (TZ.BF.3.0) → qhypstub → lk1st (aboot, autoboot, splash на ST7735S через ~0.4 с)
→ cache: ext2 + extlinux/extlinux.conf → B9C (ядро b9c + DTB b9b + initramfs: модем, время, Wi-Fi, дисплей) → ARM64 Linux → LTE + Wi-Fi AP + консоль на экране
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 + патч B9L: SPI-панель ST7735S + splash) autoboot, подписан qtestsign, до 1 MiB | 15208dbb (откат: B5a lk1st 3b8cd266) |
| boot | emmc1 rescue image (+ нули до 16 MiB) | e9579f33 |
| cache | ext2 + extlinux + B9C (ядро 7.2.7-aurora-b9c, DTB b9b, initramfs B8F + дисплей) | b9ce13c9 (откат: B8F 857c9c30 → B7C 14fe453a → T4 9d3bc890 → B6P 9fea693a) |
| 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.
B9 status — дисплей PASS (2026-10-03)
- Встроенный экран — не DSI: 1.44" ST7735S 128×128 на SPI (MIPI-DBI type C), BLSP1 QUP4
spi@78b8000, 16 MHz, mode 3, CS0, D/C GPIO116, RESET GPIO118, RGB565, MADCTL0xc8, смещение GRAM (2,3). Подсветка — PM8916 MPP4 как current sink 40 мА. Питание L17 2.85 V / L6 1.8 V. Всё восстановлено из stock LK (дизассемблер) и stock DTB: 19 init-команд в LK и DT совпадают побайтно. - Linux: upstream
panel-mipi-dbi(firmware-файл со стоковой init-последовательностью,b9/b9b/mk-panel-fw.py), DRM + fbdev →fbcon6x8 (21×16) на tty1,gettyна tty1, UART-консоль сохранена (console=tty0стоит доconsole=ttyMSM0). Подсветка: pinctrl MPPfunction "sink",drive-strength 7gpio-backlight(регистры = стоковые 0x61/0x07/0x80), включается сервисомaurora-displayчерез sysfs.
- Cache B9C: 3 холодных загрузки с eMMC без ввода (2× class A + 1× class B, принято) — консоль ядра на экране, LTE + Wi-Fi AP, время, ошибок дисплея 0.
- B9L: порт SPI-панели в lk2nd/lk1st под msm8916 (CAF
spi_qup, клоки QUP4 16 МГц, модульlk2nd/aurora; L17/L6 на этапе LK уже включены SBL). Сначала проверен в RAM (второй lk2nd черезfastboot boot), затем прошит в aboot (lk1st15208dbb, сборка воспроизводима, запись с readback и сверкой всех разделов). Теперь при включении splash (b9/b9l/splash/swag.png→ RGB565) появляется через ~0.4 с, до Linux; затем fbcon. Патч:b9/b9l/persist/lk2nd-23.1-aurora-b9l-lk1st.patch, запись/откат:b9/b9l/persist/B9L-write.sh/B9L-rollback.sh. - Открыто: UI вместо консоли ядра, регулировка яркости, ~1 с темноты при передаче LK → Linux. Материалы:
b9/,logs/b9/, NOTES.md сессия 37.
B8 status — Wi-Fi PASS (2026-10-03)
- Pronto (WCNSS) через upstream
qcom_wcnssremoteproc: штатныйwcnss.mdtиз RO-FATmodem,wcnss_memфиксирован 0x8b600000/6 MiB, Irisqcom,wcn3620(XO 19.2 MHz подтверждён прошивкой); штатный NVWCNSS_qcom_wlan_nv.binизpersistсвоего устройства (не публикуется). Без NV Pronto падает поWatchdog startup timeoutкаждые ~46 с. - Ядро:
QCOM_WCNSS_PIL,CFG80211,MAC80211,WCN36XXbuilt-in →phy0(2.4 GHz, AP/managed) →wlan0. - Сервис
aurora-wifi: после LTE START OK → WCNSS → wlan0 → hostapd 2.11 (тестовая AP, WPA2-PSK/CCMP, канал 6). PSK в репозитории нет (wifi.conf.in). - 3/3 холодных загрузки с eMMC без ввода: AP через 76–94 с после включения, телефон подключается и держит соединение, LTE не страдает.
- Открыто: задержка кадров к клиенту в power save (у wcn36xx нет
set_tim), нет regulatory.db (world00), MAC02:…из DT lk2nd. - Нет DHCP/NAT/DNS/firewall — это следующий этап (router stack). Материалы:
b8/,logs/b8/, NOTES.md сессия 36.
B6P status — PASS
Implemented:
- extlinux boot from
cache(ext2, lk2nd 23.1 extlinux path; fallback — emmc1 изboot) - custom initramfs overlay поверх точных байтов golden mm1 (заменён только
/init, добавлены контроллер, сервис, конфиг) - modem autostart:
/init→/etc/init.d/aurora-modem start(без OpenRC), конфиг/etc/aurora/modem.conf - контроллер
aurora-modem start|disconnect|stop|status: rmtfs-r -P -s→ MSS → QMI → SIM → online → state machine регистрации (registered + PS attached, до 600 s) → udev/dbus/polkit/ModemManager → bearer → /32-маршруты; reconnect без перезапуска MSS; stop: bearer → routes → wwan down → MM → BAM-DMUX idle → MSS offline → rmtfs последним
Validation:
- RAM (
fastboot bootчерез RESET при включении): 3/3 загрузки, автозапуск, 3/3 reconnect без перезапуска MSS - 3/3 cold boots from flash (закреплённый АКБ): LTE registration 3.6–6.9 s, bearer established, data connectivity verified (DNS/ICMP/HTTP; HTTPS не требуется — часы 1970 до B7), clean shutdown verified
- Работает с часами 1970 (RTC/NTP не трогались)
Safety:
- eMMC writes: 0 (все блочные устройства getro=1, rmtfs
-rдержит EFS в RAM) - NV partitions unchanged (modemst1/2, fsg, fsc, persist — sha256 до/после каждой загрузки)
- единственная запись во flash на этом этапе —
cacheс readback-сверкой; остальные разделы сверены с эталонами
Материалы: b6p/ (дизайн, preflight, сборка, скрипты записи/отката, тестовые скрипты), b6j/ (диагностика B6J–B6N), NOTES.md сессии 29–31.
Known issues
- Early boot hangs before Linux startup (внутри SBL1 DDR-init, после
SBL1, End, в lk1sttarget_init) — до чтенияcache, не связано с B6P - Possible battery/contact instability: один сброс во время остановки модема, PMIC POFF reason = UVLO (under-voltage); с закреплённым АКБ не повторялся
- Fast MSS restart may require investigation: повторная регистрация сразу после stop/start MSS в одном boot может не пройти
- Единичные случаи (не воспроизведены): bearer поднят, но нет входящего трафика; зависание контроллера после online SET
- Сигнал Beeline в месте установки маргинальный (RSRQ −13…−20 dB); регистрация иногда идёт через limited / соседние соты
Структура репозитория
| путь | что |
|---|---|
| NOTES.md | подробный журнал всех сессий (sanitized) |
| docs/QUICKSTART.md | порядок действий для второго устройства |
| docs/RECOVERY.md | аппаратный EDL, откаты |
| docs/BUILD.md | как пересобрать lk1st/lk2nd, ядро, DTB, initramfs, boot image, cache-образ |
| 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/ |
первый RAM-only прототип контроллера (сессия 28) |
b6j/ |
диагностика B6J–B6N: rmtfs-аудит, AT/QMI-снимки, state machine регистрации, харнессы |
b6p/ |
persistent-интеграция: контроллер, сервис, конфиг, сборка initramfs/boot.img/cache, эмулятор, запись/откат, тесты |
b7/ |
B7: время от сети (DMS/NITZ), проверка по NTP, cache B7C |
b8/ |
B8: Wi-Fi — аудит, WCNSS/NV, wcn36xx, hostapd, сервис aurora-wifi, cache B8F (запись/откат/эмулятор) |
b9/ |
B9: дисплей — аудит stock LK/DT, panel-mipi-dbi firmware, fbcon/сервис aurora-display, cache B9C, патч lk2nd (SPI-панель в LK) |
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, собранные бинарники,
Wi-Fi NV (WCNSS_qcom_wlan_nv.bin), PSK тестовой AP и образы с ним (B8F/B9C initramfs/cache), логотип из stock LK.
Идентификаторы (IMEI, IMSI, ICCID, eMMC CID/serial, Sahara serial, MAC, номера сот, cookies) заменены на <PLACEHOLDER>.
Как это сделано — tools/publish-sanitize.py; значения идентификаторов в репозиторий не попадают.