Документацію написано англійською.
Установка рядом с Android
HakiOS на POCO X5 Pro (redwood) второй системой: Android остаётся на месте, а при каждом включении меню спрашивает, что запускать. Эта страница для того, кто устанавливает. Как это устроено внутри и как каждый шаг был впервые сделан и проверен — в U-Boot.
| Запуск | U-Boot от HakiOS в boot_a; загрузчик и ядро он берёт из памяти |
| Система | раздел darwin, 20 ГиБ в конце LUN 0 |
| Ваши данные | HFS Plus с журналом, около 12 ГБ, сохраняются между запусками |
| Android | слот b, без изменений |
Перед началом
Нужны разблокированный загрузчик, компьютер с fastboot и adb и кабель USB. Образы системы берутся из вашей копии
прошивки: в репозиториях их нет.
Установка стирает данные Android. darwin вырезается из конца userdata, затем нужен fastboot -w. Сохраните всё
нужное, а копию разделов из шага 1 держите вне телефона.
Установка
Резервная копия разделов. Из Android с root: загрузочные разделы обоих слотов,
vbmeta*,persist,modemst1/2, первые и последние блоки каждого LUN. Без этой копии испорченную таблицу разделов не вернуть.python3 tools/backup-partitions.py --yesРаздел
darwin.userdataукорачивается, в конце LUN 0 создаётсяdarwinна 20 ГиБ, затем данные Android стираются.python3 tools/userdata-carve.py --wipe backups 20 fastboot -wСистемный том. Системный том и два криптекса из вашей прошивки записываются в начало
darwin. Windows-версияfastbootне справляется с образом на 8 ГБ, поэтому он режется на части, которые прошиваются по очереди.python3 tools/sparse-split.py darwin.img pieces fastboot flash darwin pieces/piece-00.simg # и так каждую частьТом для данных. Пустой том HFS Plus в оставшейся части
darwin. Образ весит около 50 КБ и не трогает системный том. Повторная прошивка стирает данные.python3 tools/mkdatavol.py data.simg fastboot flash darwin data.simgЗагрузочный образ. U-Boot, загрузчик и ядро — в
boot_a, слот a становится активным: при следующем включении появится меню.fastboot flash boot_a hakios-install.img fastboot set_active a fastboot reboot
Меню
Меню ждёт 10 секунд. Если ничего не выбрать, запускается Android: под HakiOS телефон не заряжается, и после самопроизвольной перезагрузки ему лучше оказаться в Android. Кнопки громкости — выбор, кнопка питания — подтверждение.
| Пункт | Что делает |
|---|---|
| Android (по умолчанию) | помечает слот a неготовым и перезагружает; ABL делает активным слот Android |
| HakiOS (Darwin) | запускает систему из памяти |
| HakiOS over fastboot | ждёт новое ядро с компьютера (для разработки) |
| Fastboot | загрузчик телефона |
| What is in memory | что загружено и какой слот активен |
| U-Boot shell | командная строка U-Boot |
| Reset | перезагрузка |
После выбора Android активен слот b, и телефон сразу загружается в Android. Чтобы меню вернулось:
fastboot set_active a или, в Android с root, служба hakios-menu.sh (devices/redwood/u-boot/android/), которая
делает это после каждой загрузки.
Ваши данные
/private/var — это том HFS Plus в darwin, сразу за системой: около 12 ГБ, сохраняется между запусками,
восстанавливается по журналу после внезапного отключения. Если он не смонтировался, система запустится на томе в памяти:
он пуст при каждом включении, и в настройках видно около 1 ГБ.
Первый запуск на новом томе самый долгий: система регистрирует приложения и готовит данные. Пока она не закончила, части значков и обоев может не быть.
Что работает
| Часть | Состояние | |
|---|---|---|
| Экран, касания, интерфейс | работает | рисует Adreno 642L через OpenGL ES |
| Том данных | работает | HFS Plus, около 12 ГБ, сохраняется |
| Wi-Fi | частично | включается с wifi=1 |
| Графические эффекты | частично | рендереру не хватает части функций для некоторых эффектов |
| Звук, вибрация | выключено | при запуске через U-Boot роняют телефон |
| Сотовая связь | нет | модем запускается, но им пока ничто не пользуется |
| Зарядка | нет | заряжайте в Android |
Если что-то пошло не так
Чёрный экран или зависание. Зажмите громкость вниз и питание, пока не появится fastboot. Оттуда в Android:
fastboot set_active b, затем fastboot reboot.
«Device Error» при любой загрузке. ABL нашёл, что атрибуты слотов не совпадают с типами разделов. Не прошивайте
таблицу разделов с другого телефона: верните свою из шага 1, затем fastboot set_active на рабочий слот. Всё
восстановление по шагам — в U-Boot.
Что произошло. Загрузчик пишет журнал каждого запуска в раздел logdump; на компьютере его забирает ./xl log.