210 lines
24 KiB
Markdown
210 lines
24 KiB
Markdown
# 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-10-07)
|
||
|
||
| Подсистема | Статус |
|
||
|---|---|
|
||
| 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** (см. ниже) |
|
||
| Индикация (LED = подсветка дисплея), кнопки POWER/RESET; аудио n/a — B11/B12A | **CLOSED** |
|
||
| Alpine Linux как основной root на userdata (OpenRC), откат в initramfs-rescue — B12P/B12Q | **PASS / persistent** |
|
||
| Router stack: NAT/firewall (nftables) + dnsmasq для Wi-Fi LAN — B12R | **PASS / persistent** |
|
||
| Wayland (Cage/Sway/wayvnc) и UI на экране 128×128 (aurora-ui, SDL2), кнопка POWER — B13/B14/B16 | **PASS** |
|
||
| VPN для LAN: WireGuard через TURN-relay (fail-closed) — B15; прямой WG с откатом на relay — B22 | **PASS** |
|
||
| Автономная работа без хоста, SSH (OpenSSH, X11 forwarding) — B17/B19 | **PASS** |
|
||
| USB host / OTG (role switch, HID, накопители через хаб с питанием) — B18 | **PASS / persistent** |
|
||
| Сторож LTE-bearer (netwatch) и журнал blackbox — B20 | **PASS** |
|
||
| Дисплей ST7735S 128×128 (SPI): DRM/fbcon tty1, подсветка, автозапуск из flash — B9 | **PASS / CLOSED** (см. ниже) |
|
||
| Батарея / зарядка: супервизор CHARGE → HOLD → батарея, FAULT safe clamp, автозапуск из flash — B10 | **PASS / CLOSED** (см. ниже) |
|
||
| Ускоренная зарядка: ток CC 450 → 720 mA (только DTB) — B23 | **PASS / persistent** (см. ниже) |
|
||
|
||
## Рабочая цепочка загрузки (baseline B5)
|
||
|
||
```
|
||
Power → stock SBL1 → DB410c TZ (TZ.BF.3.0) → qhypstub → lk1st (aboot, autoboot, splash на ST7735S через ~0.4 с)
|
||
→ cache: ext2 + extlinux/extlinux.conf → B23 (ядро b18 + DTB b23 + initramfs B12Q) → stage0 → switch_root в Alpine на userdata (p27, OpenRC)
|
||
→ модем, время, Wi-Fi AP + роутер + VPN, дисплей + aurora-ui, зарядка 720 mA, USB OTG (rescue: initramfs B9C-init при сбое Alpine)
|
||
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 + B23 (ядро 7.2.7-aurora-b18, DTB b23, initramfs B12Q → Alpine) | `01bfe522` (откат: B18 `ac82811a` → B15 `212e0ca9` → B12R `e85d862e` → B12Q `59272cd3` → B12P `98d061ef` → B10B-5 `c3732515` → B9C `b9ce13c9` → …) |
|
||
| recovery | lk2nd 23.1 (fastboot) | `0dfa60a0` |
|
||
| userdata (p27) | ext4 `aurora-alpine`: Alpine 3.24 root (B12P+), единственный RW-раздел | — (изменяемый) |
|
||
| modem, NV/EFS, persist, system | не менялись (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).
|
||
|
||
## B11–B22 — Alpine, роутер, VPN, UI, USB host (2026-10-04…06)
|
||
|
||
Подробно — NOTES.md (сессии 39–49) и отчёты в `logs/b11`…`logs/b15`.
|
||
|
||
- **B11** (`logs/b11/`): индикаторных LED на плате нет — «LED» это подсветка дисплея (MPP4); кнопки POWER = KPDPWR, RESET = RESIN. **B12A**: аудио n/a (нет динамика/микрофона).
|
||
- **B12P/Q/R** (`b12/`, `logs/b12/`): Alpine 3.24 на userdata p27; initramfs stage0 делает switch_root в Alpine (OpenRC), откат в прежний init при сбое проверок или ≥3 неподтверждённых загрузках; роутер nftables + dnsmasq для Wi-Fi LAN, изоляция управляющей сети.
|
||
- **B13/B14/B16/B21** (`b13/`, `b14/`, `b16/`): wlroots (Pixman, без GPU): Cage для UI, Sway+wayvnc для отладки; `aurora-ui` (C, SDL2) — LTE/IP/Wi-Fi/трафик/VBAT/PMIC/NAT/VPN на 128×128, страницы по кнопке POWER, гашение подсветки, игра.
|
||
- **B15/B22** (`b15/`, `b22/`): VPN только для LAN: policy routing (table 51820), fail-closed; WireGuard через TURN-relay, с B22 — прямой WG, если доступен (оператор в режиме белого списка его режет), индикатор белого списка.
|
||
- **B17/B19**: работа без хоста; SSH (OpenSSH, X11 forwarding) по Wi-Fi.
|
||
- **B18** (`b18/`): USB OTG с переключением роли (`aurora-usb`), ядро b18; VBUS платой не выдаётся.
|
||
- **B20** (`b20/`): `aurora-netwatch` (восстановление bearer после detach) и `aurora-blackbox` (`/var/log/aurora`).
|
||
|
||
## B23 status — ускоренная зарядка 720 mA: PASS, persistent (2026-10-07)
|
||
|
||
Отчёт: [`logs/b23/B23-RESULT.md`](logs/b23/B23-RESULT.md), DTS: [`linux/dts/msm8916-jz08-aurora-b23.dts`](linux/dts/msm8916-jz08-aurora-b23.dts).
|
||
|
||
- Изменено одно свойство DT: `qcom,fast-charge-safe-current` 500000 → 720000 → супервизор B10 пишет IBAT_MAX/IBAT_SAFE `0x04` (450 mA) → `0x07` (720 mA). Ядро и initramfs не менялись.
|
||
- RAM-тест на USB-порту ноутбука: USB-тестер 0.724 A, без просадки VBUS, CC 55+ мин без срывов, PMIC максимум 55.7 °C.
|
||
- Записано в cache (`b23/B23-write.sh`, HW EDL, readback + сверка разделов, `01bfe522`), холодная загрузка с eMMC: `IBAT_MAX 07`. Откат: `b23/B23-rollback.sh`.
|
||
- Фаза CC (до ≈4.1 V) примерно в 1.6 раза быстрее; хвост CV не меняется. Нагрузка платы (CPU, подсветка) идёт из того же входного тока.
|
||
- Базовый образ B23 — B18 (ядро `7.2.7-aurora-b18`, initramfs B12Q с Alpine); промежуточные этапы B11–B22 (Alpine-root, роутер, VPN, UI, USB host) в этом репозитории пока не опубликованы.
|
||
|
||
## B10 status — батарея и зарядка: CLOSED, persistent validated (2026-10-04)
|
||
|
||
Production-профиль (Li-ion 3.8 V / 3000 mAh): потолок заряда **4.20 V**, ток **450 mA**, HOLD **4.05 V**, full-min **4.15 V**,
|
||
CV-квалификация **60 min**, safety timer запрограммирован на **512 min**, FAULT safe clamp **4.00 V**.
|
||
Финальная проверка постоянной установки (cache `c3732515`): автономная class-A загрузка с eMMC; хеш живого cache перечитан и совпал;
|
||
CHARGING / FAST; USB off → NO_USB (работа от батареи без сброса) → USB on → новый цикл; LTE / Wi-Fi / NCM / дисплей PASS; 15 min стабильности PASS.
|
||
Отчёт: [`logs/b10/b10b5/B10-RESULT.md`](logs/b10/b10b5/B10-RESULT.md), дизайн: `logs/b10/b10b3/B10B3-DESIGN.md`, исходник драйвера: `b10/b10b3/pm8916_lbc-v4.c`.
|
||
|
||
|
||
- Зарядник PM8916 **LBC** (линейный) + VADC VBAT + BMS-VM: свой супервизор поверх upstream `pm8916_lbc` (`linux/patches/b10b3-lbc-supervisor-v3.patch`
|
||
+ `b10/b10b3/lbc-v3-to-v4-fault-clamp.diff` = **v4**). Состояния NO_USB → CHARGING (4.20 V / 450 mA, safety timer 512 min) → **HOLD**
|
||
(после 60 min CV при VBAT ≥ 4.15 V VDD_MAX опускается до 4.05 V: батарея стекает до полки, дальше плату питает USB) → USB вынут → батарея → USB → новый цикл.
|
||
**FAULT** (VBAT > 4.25 V или CHG_FAILED): единственная запись — **FAULT safe clamp to 4.00 V** (VDD_MAX = 0x00), защёлка до извлечения USB/перезагрузки.
|
||
- Проверено в RAM: CC/CV → HOLD, полка 4.03–4.06 V ~6 ч, USB 0.1 A на полке, HOLD → USB off → батарея без сброса, USB insert → новый цикл,
|
||
warm reboot (программный вход в lk1st fastboot через PON reboot reason), FAULT-инъекция (тестовое ядро) → USB 0.000 A; затем production smoke.
|
||
- Записано в cache (`b10/b10b5/B10-write.sh`, HW EDL, readback + сверка всех разделов) и проверено class-A загрузкой с eMMC без ввода.
|
||
- Факты о железе (подробно в `logs/b10/b10b3/B10B3-DESIGN.md`, отчётах `B10B3-*`/`B10B4-*`/`B10B5-*`, `logs/b10/b10b5/B10-RESULT.md`):
|
||
CHG_STATUS `00` + USB path `01` — защёлка, а не «заряжено»; CHG_EN = 0 заряд **не** останавливает; safety timer (TCHG = min/4 − 1) работает только
|
||
в fast-charge (FAST_CHG_ON, path `02`) и по истечении лишь выводит из него — ток идёт, CHG_FAILED не ставится; USB_SUSP (`0x1347` bit0) вход не отключает;
|
||
рабочий рычаг — VDD_MAX = 4.00 V (при VBAT > 4.00 V ток со входа → 0); после warm reboot SBL частично переинициализирует зарядник.
|
||
- Ограничения (production):
|
||
1. FAULT clamp не является гарантированным отключением заряда при VBAT < 4.00 V (зарядник может дозарядить до 4.00 V).
|
||
2. Safety timer PM8916 сам физически заряд не прекращает (по истечении только выход из fast-charge).
|
||
3. Снижение тока по температуре (thermal derating) не реализовано (PMIC до 58 °C при заряде + нагрузке CPU).
|
||
4. Контакт батареи на этой плате аппаратно ненадёжен.
|
||
Время CV 60 min — первое значение, не подбиралось.
|
||
|
||
## 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, MADCTL `0xc8`, смещение 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 → `fbcon` 6x8 (21×16) на tty1,
|
||
`getty` на tty1, UART-консоль сохранена (`console=tty0` стоит **до** `console=ttyMSM0`). Подсветка: pinctrl MPP `function "sink"`, `drive-strength 7`
|
||
+ `gpio-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** (lk1st `15208dbb`, сборка воспроизводима, запись с 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_wcnss` remoteproc: штатный `wcnss.mdt` из RO-FAT `modem`, `wcnss_mem` фиксирован 0x8b600000/6 MiB,
|
||
Iris `qcom,wcn3620` (XO 19.2 MHz подтверждён прошивкой); штатный NV `WCNSS_qcom_wlan_nv.bin` из `persist` своего устройства (не публикуется).
|
||
Без NV Pronto падает по `Watchdog startup timeout` каждые ~46 с.
|
||
- Ядро: `QCOM_WCNSS_PIL`, `CFG80211`, `MAC80211`, `WCN36XX` built-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 (world `00`), MAC `02:…` из 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`, в lk1st `target_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](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/` | первый 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) |
|
||
| `b10/` | B10: батарея/зарядка — аудит, супервизор v1–v4 (патчи/diff), тестовые DTB/сборки/скрипты, хуки B10B-4/5 (только тест), cache B10B-5 (запись/откат/эмулятор) |
|
||
| `b11/`…`b22/` | B11 LED/кнопки; B12 Alpine (rootfs, overlay, cache B12P/Q/R, роутер); B13 Wayland; B14/B16 aurora-ui (исходники); B15 VPN; B17 standalone; B18 USB OTG + cache; B20 netwatch/blackbox; B22 выбор VPN-пути |
|
||
| `b23/` | B23: ток зарядки 720 mA — сборка RAM-образа, монитор, cache B23 (сборка/эмулятор/запись/откат) |
|
||
| `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/B10 initramfs/cache/RAM-образы), логотип из stock LK.
|
||
С B12: `wifi.conf` (SSID/PSK), конфиги и ключи WireGuard/relay, адрес VPN-сервера, сторонний relay-клиент и его исходники, учётные данные и TLS-ключ wayvnc, `authorized_keys`, образы rootfs/cache (B12–B23).
|
||
Начиная с B10 сырые логи прогонов (мониторы, dmesg, snapshot, UART, журналы действий, дампы регистров, выводы эмулятора) не публикуются —
|
||
только отчёты `*.md` и компактные таблицы `*-diff.txt` (правила в `tools/publish-sanitize.py` и `.gitignore`).
|
||
Идентификаторы (IMEI, IMSI, ICCID, eMMC CID/serial, Sahara serial, MAC, номера сот, cookies) заменены на `<PLACEHOLDER>`.
|
||
Как это сделано — `tools/publish-sanitize.py`; значения идентификаторов в репозиторий не попадают.
|