Обновить
31
49.1

Пользователь

Отправить сообщение

А почему нет? Работая с такими низкоуровневыми вещами без этого не обойтись.

В смартфонах, то что касается устройств типа: bluetooth, wi-fi или радиомодуль имеет свои закрытые проприетарные части. У этих контроллеров есть даже свои отдельные ОС. В отличие от самоделок, типа модулей подключаемых к ардуино, где все задокументировано, открыто, и все интегрируется на более высокоуровневом интерфейсе.
Честно говоря, я вообще пока понятия не имею как конкретно это можно реализовать, и можно ли вообще.

Не хотел публиковать код первой части, потому что тут все еще хрупкое. Во второй части хотя бы будет поддержка QEMU. Но если хотите, то я выложил на гитхаб. https://github.com/AlexanderShirokih/rustos/

Общее поверхностное понимание архитектуры ОС: Эндрю Таненбаум - Современные операционные системы. Когда-то еще игрался с x86. По этой архикетуре много информации в интернете. Например, известный ресурс https://wiki.osdev.org/. ARM во многом отличается от x86, но общие принципы схожи.
Исследование загрузки ядра - результат реверс-инжиниринга ядра ОС, и TWRP загрузчика. Так же на github есть исходники загрузчика ABL. По нему можно понять требования к формату ядра.
Драйвера устройств и DTB - исходники ядра Linux. Там же есть описание процесса бута Linux aarch64.
Конечно, не обошлось без ИИ. ИИ помог разобраться с нюансами, и отладкой ошибок.

P.S. На самом деле на подготовку этой части и частично второй части по выходным ушло около 4 месяцев

Для современного смартфона это, конечно, базовые функции, но с точки зрения реализации, работа с радио модулем очень сложная задача.

Скорее всего на современном Айфоне такое провернуть будет практически невозможно: заблокированный загрузчик, проверка подписей, отсутствие открытой документации по железу.

В первую очередь для развлечения, а там буду пробовать ковырять дальше, пока сил хватит. Конечно, я не претендую на создания "убийцы андроида"). В теории, этот проект переносим на какие-то одноплатные ПК, например, raspberry pi. Так что, вполне можно придумать какое-то прикладное применение.

Кстати, по поводу выключения железки. Под боком есть исходники загрузчика и ядра. Сам по себе загрузчик реализован не сложно. Значит это должна быть посильная задача.

Благодарю, исправил)

Информация

В рейтинге
164-й
Зарегистрирован
Активность