uzbek-plus/docs/QUICKSTART.md
q 105bef466a Project Aurora: mainline ARM64 Linux on JZ08AU (MSM8916) LTE modem
Sanitized research log, build/reproducibility docs, DTS, kernel configs,
patches, initramfs sources, bootchain migration plans and test logs.
B5 direct boot PASS; B6 modem lifecycle in progress.
No dumps, NV/EFS, vendor firmware or device identifiers included.
2026-09-30 17:23:18 +03:00

67 lines
5.5 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# QUICKSTART — второе устройство JZ08AU / MSM8916
Цель: повторить наши шаги на **своём** экземпляре, ничего не сломав и ничего не перенося с нашей платы.
> Одинаковая маркировка платы (JZ08AU-XPA-7J-R3) **не гарантирует** одинаковые:
> панель дисплея, eMMC (производитель/размер/разметка), прошивку модема (mba/modem.* подписываются и меняются между партиями),
> калибровку RF, калибровку Wi-Fi, периферию (GPIO, кнопки, светодиоды, зарядка).
> Любое наше значение (хэш, адрес, LBA, GPIO) — только ориентир для сравнения. Проверяйте на своей плате.
## 0. Что понадобится
- USB-UART 3.3 V (у нас CH340), 115200 8N1. UART консоль: BLSP1 UART2 (`serial@78b0000`), GPIO4 = TX, GPIO5 = RX.
- Linux-хост с `edl` (bkerler/edl), `adb`, `fastboot`, python3.
- Заряженный аккумулятор: плата от одного USB не стартует.
## 1. Проверить ревизию платы
Сфотографируйте обе стороны, запишите маркировку PCB, eMMC, PMIC, наличие дисплея. Сравните с нашей (`README.md`).
В стоковом Android: `getprop` (модель, сборка), `cat /proc/cmdline`, `ls -l /dev/block/platform/*/by-name` — сохраните
(наш снимок для сравнения: `android/`). Ожидаемо: MSM8916, 512 MiB RAM, 27 GPT-разделов, `msm8916_32_512`.
## 2. Подключить UART
Найдите площадки TX/RX/GND (по DT: GPIO4/GPIO5). Подключайте только RX/TX/GND, **не подавайте** 3.3 V с адаптера.
Логгер: `tools/uartlog.py /dev/ttyUSB0 logs/uart/<name>` (пишет `.raw` и `.log` с метками времени хоста).
## 3. Снять stock UART-логи
Холодный старт стокового Android с логгером: должны быть видны `SBL1, Start … SBL1 End`, stock LK, ядро 3.10.
Сравните с `logs/uart/coldboot-*.log` (у нас). Это единственный эталон «как было» — сделайте его до любых изменений.
## 4. Проверить EDL (05c6:9008)
Сначала программно: `adb reboot edl` (на стоке работает). Затем **аппаратно** (нужно для восстановления, когда ничего не грузится):
см. [RECOVERY.md](RECOVERY.md) — D+ → GND. Не продолжайте, пока аппаратный EDL не воспроизводится 3/3.
Проверьте Sahara (`edl` печатает serial/HWID/PK hash). Наш чип unfused (PK hash = Qualcomm test root); ваш может отличаться —
тогда подписи/программер могут не подойти.
## 5. Полный backup
Через Firehose, только чтение: `edl rl <dir> --genxml` (все разделы) и полный образ eMMC. Проверьте:
- sha256 каждого раздела; повторное чтение даёт те же хэши;
- GPT primary/backup валидны (CRC), разделы == `printgpt`;
- копии лежат минимум в двух местах.
Без проверенного backup дальше не идти.
## 6. Проверить GPT
Сравните свою разметку с `MANIFEST.md` / `partitions/rawprogram0.xml`. Все LBA в наших скриптах (tz @270336, tzbak @305184,
hyp @272384, aboot @264192, boot @396384, cache @2133088, …) верны **только** для нашей разметки. Если у вас хоть одно
значение другое — пересчитайте, наши `*-write.sh` не использовать как есть.
## 7. Сохранить NV/EFS своего устройства
`modemst1`, `modemst2`, `fsg`, `fsc`, `persist` (+ `modem` FAT) — отдельно, с sha256, в нескольких местах.
Это калибровки и идентичность **вашего** модема. Чужие NV не прошивать никогда. В Linux мы запускаем `rmtfs -r`
(EFS только в RAM) и держим все блочные устройства read-only — делайте так же, пока нет отдельного решения.
## 8. Только потом — миграция bootchain
По одной стадии, каждая: preflight → запись → readback cmp → загрузка → проверка EDL:
1. Linux в RAM через lk2nd (в `recovery`) — без изменения цепочки (сессии 4–6 в NOTES);
2. aboot → lk1st; 3. GPT (tz 1 MiB); 4. tz → DB410c TZ.BF.3.0 + hyp → qhypstub (только вместе!);
5. ARM64 RAM boot; 6. B5a: lk1st autoboot + boot = rescue image; 7. B5b: cache = ext2/extlinux.
Документы: `bootchain-migration/PREFLIGHT.md`, `bootchain-migration/WRITE-PLAN.md`, NOTES.md сессии 7–27.
Бинарники собирайте сами ([BUILD.md](BUILD.md)); проприетарные файлы берите из своих источников и сверяйте sha256 ([BLOBS.md](BLOBS.md)).