Сборка Android прошивки из исходников
Когда у нас есть сервер и установлены все нужные пакеты пора качать исходники.
Для начала перейдём на диск, где будем собирать прошивку и создадим папку
mkdir "название папки"
cd "название папки"
Теперь найдем нужную нам прошивку на GitHub'e
И перейдём в стартовый репозиторий, который обычно называется android или manifest. Внизу мы сможем найти команду для загрузки исходников. Например я буду объяснять на примере Evolution X.
Стартовый репозиторий этой прошивки: https://github.com/Evolution-X/platform_manifest
Команда для загрузки исходников: repo init -u https://github.com/Evolution-X/platform_manifest -b pie
Когда мы ввели эту команду мы инициализировали исходников нашей прошивки и для начала загрузки нужно написать команду: repo sync
После этого пойдет загрузка исходников которая будет длиться 30-60мин.
Адаптация исходников под устройство:
Для сборки прошивки нужно иметь дерево которое используется для адаптации прошивки под устройство.
Если имеется готовое дерево, то рекомендую использовать его, но его нужно адаптировать под саму прошивку. Этот процесс я распишу в следующий раз.
Когда есть готовое дерево адаптированное под прошивку то нужно его загрузить в папку в исходниках device/производитель/кодовое_имя_устройства
Также нужен вендор который нужно загрузить в папку vendor/производитель/кодовое_имя_устройства
И ещё нужно ядро которое нужно загрузить в папку kernel/производитель/кодовое_имя_устройства
После переходим обратно в корень папки и начинаем сборку. Для этого пишем команды:
. build/envsetup.sh
После пишем:
lunch специальное_название_прошивки_кодовое_имя_устройства_eng(или userdebug)
В моём случае команда выглядит так:
lunch aosp_onclite-eng(или как я ранее говорил userdebug)
Про eng и userdebug:
eng используется для тестовых сборок
userdebug используется для стабильных сборок для пользования ими.
Также существует просто user, но его я не рекомендую использовать т.к. нужно больше заморачиваться с настройкой.
Когда вы прописали эти две команды остаётся написать одну последнюю:
mka <имя_сборки>
Эта команда начнёт сборку, но нужно разобраться с именем сборки. Имя сборки обычно написано вместе с этой командой внизу стартового репозитория прошивки
Например в моём случае команда выглядит так: mka bacon
Когда эта команда будет выполнена начнётся сборка прошивки которая бывает от полтора часа до двух с половиной часов и более. Во время сборки могут появляться разные ошибки которые могут быть как в дереве так и в исходниках. Если вы не знаете как исправить ошибку, то копируете ошибку начиная от слова FAILED: и до конца, и вставляете ошибку на сайт del.dog после сохраняете и копируете ссылку, а потом отправляете любому знающему человеку, который может помочь. Когда сборка будет окончена, то в папке out/target/product/кодовое_название_устройства/
Появится прошивка в zip архиве которую нужно выгрузить с сервера через терминал или если вы с android устройства, то можно скачать программу termux и через неё будет тоже самое
Выгрузка прошивки с сервера
В терминале или термуксе пишете команду sftp логин_сервера@хост_или_айпи_адрес_сервера и отправляете команду. Обычно после этого нужно писать yes, а потом пароль. Пароль не будет отображаться, но не думайте, что ничего не пишется, а продолжайте писать. Потом когда таким образом зашли на сервер переходите в ту директорию где прошивка в zip архиве и пишите команду get название_архива_с_прошивкой
Может написать когда вы будете заходить на сервер, что нет такой команды sftp. Тогда если в терминале, то пишите команду sudo apt-get install openssh, а если в термуксе, то pkg install openssh
Всё теперь можете прошивать прошивку и проверять работает или нет.