Руководство
С чего начать
hakios запускает открытое ядро Apple Darwin (XNU) на Android-смартфонах так же, как Android запускает Linux: со своим загрузчиком, своими драйверами и одной конфигурацией на устройство. Это руководство проведёт от нуля до работающего ядра, а дальше — к Metal и к вашему собственному телефону.
Что можно сделать
| Вы хотите… | Читайте | Понадобится |
|---|---|---|
| увидеть загрузку сегодня, ничем не рискуя | Запуск в QEMU | компьютер, 30 минут |
| понять устройство, прежде чем что-то трогать | Как всё устроено | ничего |
| запустить на настоящем телефоне | Запуск на телефоне | POCO X5 Pro 5G с разблокированным загрузчиком |
| работать с GPU через Metal | Metal | телефон, а для тестов — только компьютер |
| перенести hakios на другой телефон | Адаптация под устройство | ARM64-телефон и терпение |
| разобраться, почему запуск не удался | Если что-то пошло не так | лог |
Три вещи, которые важно знать сразу
- По умолчанию ничего не устанавливается. Телефон грузит hakios из оперативной памяти через
fastboot boot. Перезагрузка возвращает Android. Записывается только лог загрузчика — несколько килобайт в разделlogdump. - Открытое ядро — наше, система сверху — ваша. В наших репозиториях порт ядра, загрузчик, драйверы и инструменты. Пользовательское пространство Darwin (экран блокировки, рабочий стол, приложения) берётся из образа восстановления Apple, который приносите вы. Его нет в наших репозиториях, и ничто не скачивает его за вас.
- Сервисы Apple — не цель. Активация, Apple ID, iCloud и App Store не работают и не будут.
Что работает сейчас
| POCO X5 Pro 5G | QEMU | |
|---|---|---|
| Экран блокировки, рабочий стол, штатные приложения | да | да, медленно |
| Тачскрин и кнопки | да | да |
| GPU (OpenGL ES через Mesa) | да | нет (программная отрисовка) |
| Wi-Fi | да | сеть (virtio) |
| Динамики, микрофон, заряд батареи | да | звук |
| Камеры, вибрация | да | нет |
| Metal | начат: буферы, командные буферы, копирование на GPU | начат |
| Сотовая связь | частично: модем загружается и видит сеть | нет |
| Bluetooth | нет | нет |
| Зарядка, пока работает hakios | нет | — |
Полная таблица по каждому устройству строится из его собственного файла статуса: все устройства.
Слова, которые встретятся
- XNU — ядро систем Apple, его исходники открыты. hakios использует тег
xnu-8796.121.2. - Загрузчик (
xnuloader,loader.efi) — наша UEFI-программа: кладёт в память ядро, аргументы загрузки и дерево устройств и запускает XNU. - UEFI — маленькая прошивка, которая запускает загрузчик. На телефоне это HakiOS UEFI (Mu-Silicium) или HakiOS U-Boot, обе стартуют из памяти.
xl— скрипт в основном репозитории, который управляет загрузчиком на телефоне по USB: войти, отправить образ системы, запустить, забрать лог, перезагрузить.- Аргументы загрузки — переключатели в командной строке ядра, например
gpu=1. Ни один драйвер железа ничего не делает, пока не задан его аргумент. .config— один файл, который говорит, какие драйверы встроить в ядро и какие аргументы получит запуск. Его пишетmake redwood_defconfig.- Репозиторий устройства — всё об одном телефоне (конфигурация, статус, скрипт прошивок, платформа UEFI) в отдельном репозитории, например
hakios-sm7325.
Где спросить
В Telegram-канале проекта есть ветка с ИИ для вопросов, и команда её читает: t.me/oosexgangdevs. Прикладывайте logs/last.log и пишите, какую команду запускали.