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.
45 lines
3.2 KiB
Markdown
45 lines
3.2 KiB
Markdown
# RECOVERY — аппаратный EDL и откаты
|
||
|
||
> Перед любыми записями пользователь обязан сделать и **проверить** backup СВОЕГО устройства (QUICKSTART, шаг 5).
|
||
> Не прошивайте наши device-specific разделы (NV/EFS, persist, GPT-бинарники, orig-* копии) — их и нет в репозитории.
|
||
|
||
## Аппаратный EDL (05c6:9008) — проверено 3/3 до и после миграции
|
||
|
||
1. Аккумулятор **подключён**, USB отключён.
|
||
2. Временно замкнуть линию USB **D+ на GND**.
|
||
3. Подключить USB-C к хосту.
|
||
4. Отпустить D+.
|
||
5. На хосте: `lsusb` → `05c6:9008` (Qualcomm HS-USB QDLoader).
|
||
|
||
Вход выполняет stock SBL1 (UART: `SBL1, Start … clock_init, Delta` → тишина) до загрузки TZ/HYP/aboot, поэтому путь
|
||
не зависит от того, что записано в tz/hyp/aboot/boot/cache. Если повреждены GPT/SBL1 — PBL уходит в EDL сам.
|
||
Выход из EDL: полное обесточивание (USB, затем аккумулятор).
|
||
|
||
Не работает как EDL: кнопка RESET (PM8916 RESIN) при включении — проверено, отозвано (NOTES сессия 7c).
|
||
Программно: `adb reboot edl` (stock), `fastboot oem reboot-edl` (lk1st/lk2nd).
|
||
|
||
## fastboot
|
||
|
||
- lk1st autoboot: зажатый RESET (RESIN = KEY_VOLUMEDOWN) при включении → fastboot (по исходнику; на железе не проверялось).
|
||
- `recovery` = lk2nd 23.1: fastboot всегда. Внимание: lk2nd собран с `LK2ND_PARTITION_BASE=boot` — **никогда**
|
||
`fastboot flash lk2nd/boot` через него.
|
||
- `fastboot boot <img>` работает в lk1st и lk2nd (RAM boot, без записи).
|
||
|
||
## Откаты стадий
|
||
|
||
Скрипты откатов (`b5a/A4-rollback.sh`, `b5b/B5b-rollback.sh`, `bootchain-migration/WRITE-PLAN.md` раздел Rollback)
|
||
записывают **сохранённые копии оригинальных разделов этой же платы** (`orig-*`, `backup/`) — в репозитории их нет.
|
||
Для своей платы подставьте свои копии из backup и пересчитайте LBA/размеры.
|
||
|
||
| стадия | что менялось | откат |
|
||
|---|---|---|
|
||
| B5b | cache | записать свой оригинальный cache |
|
||
| B5a | boot, aboot | свой stock boot; aboot = lk1st (forced fastboot) или stock aboot |
|
||
| S3 | tz, hyp | свои stock tz-область (1 MiB) и hyp |
|
||
| S2 | GPT primary/backup, tzbak-промежуток | свои оригинальные GPT (LBA 0..33, последние 33 сектора) и промежуток |
|
||
| S1 | aboot | свой stock aboot |
|
||
|
||
## Безопасное выключение
|
||
|
||
`poweroff -f` из RAM-Linux перезапускает SoC (NOTES 13b). Выключение = ручное обесточивание; это безопасно в любой момент:
|
||
rootfs в RAM, eMMC в Linux read-only, EFS модема в RAM (`rmtfs -r`).
|