Сборка TWRP Recovery

Ponfertato

Кирилл, просто 1.kirill
16.12.2018
234
57
116
В данной теме обсуждается сборка из исходных кодов,
одного из самых распространенных recovery для смартфонов на базе Android OS - TWRP Recovery.


 
Последнее редактирование модератором:
  • Спасибо
Благодарности: Lord_X, Beatboxer, Vasilich и 8 других

hyperion70

#include <calmness.h>
16.12.2018
142
436
120
53
github.com
Ещё пару слов по флагам.
Пришлось собирать TWRP на чудо китайской техники с соотношением сторн 21:9. Стандартная тема 800х480 выводилась с коэффициентом 1.0 при рзрешении 340 по горизонтали, т.е. на экране боковинки шириной в 70 пикселей уходили за края.
340.jpg
В BoardConfig.mk добавил флаги:
TW_X_OFFSET := 70
TW_W_OFFSET := -140
480.jpg

TW_X_OFFSET - смешени по оси X
TW_Y_OFFSET - смещение по оси Y
TW_W_OFFSET - изменение размера по ширине
TW_H_OFFSET - изменение размера по высоте
Начало отсчёта - левый верхний угол.
 
  • Спасибо
Благодарности: Bodya-Kolibass и Ratimir

Ponfertato

Кирилл, просто 1.kirill
16.12.2018
234
57
116
Инструкция по сборке TWRP из исходников
Самое главное! Убедитесь, что вы находитесь в домашнем катологе, а не в какой либо папке.
Заходим в терминал и вводим
Код:
cd ~ && sudo apt install git -y && git clone https://github.com/akhilnarang/scripts && cd scripts && sudo bash setup/android_build_env.sh && sudo bash setup/install_android_sdk.bash && cd && echo "done!"
Эти исходники для сборки подходят только для сборки TWRP. Чтобы собирать прошивки вам надо будет качать полные.
Создаём папку Omni
Код:
mkdir ~/omni
Заходим в неё
Код:
cd ~/omni
Инициализируем репозиторий исходников.
Для себя я скачиваю исходники андроид 8.1, т.к. моё дерево рекавери для устройства это позволяет. Прежде чем скачивать посмотрите на версию андроида вашего дерева устройства и качайте нужные вам. Взять дерево вы можете какое хотите. В зависимости от версии андроид вы меняете последние слова на нужные.
Доступные версии :
  • twrp-4.4
  • twrp-5.1
  • twrp-6.0
  • twrp-7.1
  • twrp-8.0
  • twrp-8.1
Код:
repo init -u git://github.com/minimal-manifest-twrp/platform_manifest_twrp_omni.git -b twrp-8.1
Далее синхронизируем репозиторий (скачиваем исходники)
Код:
repo sync
Для ускоренной закачки (качается намного быстрее)
Код:
repo sync --force-sync -j16
Возвращаемся в домашний католог
Код:
cd
Заходим в каталог Omni
Код:
cd ~/omni
Сразу скажу. Мы будем копировать дерево по пути device/фирма устройства/кодовое имя. У меня это будет так :- device/xiaomi/mido . В зависимости от вашего телефона поменяйте последние слова в команде.
Клонируем репозиторий. Тут тоже надо быть внимательным. Ибо когда вы указываете бранч -b , надо посмотреть как он называется в дереве вашего устройства. У меня он называется fox_8.1. Чтобы взять ссылку для правильного клонирования, справа от файлов на гитхабе будет кнопка «Clone or Download», нажимаете на неё и копируете ссылку.
Код:
git clone https://gitlab.com/OrangeFox/Devices/mido.git -b fox_8.1 device/xiaomi/mido
Возвращаемся в домашний католог
Код:
cd
Удаляем папку по пути omni/bootable/recovery
Заходим в папку bootable
Код:
cd ~/omni/bootable
Тут не зависит от того, какой версии дерево ваше устройство, качайте максимальную версию андроида, которая доступна для вашего аппарата. Так же как и в случае с исходниками Omni меняем последние слова, то есть бранч.
Доступные версии :
  • android-4.3
  • android-4.4
  • android-5.0
  • android-5.1
  • android-6.0
  • android-7.0
  • android-7.1
  • android-8.0
  • android-8.1
  • android-9.0
Клонируем репозиторий. Чтобы взять ссылку для правильного клонирования, справа от файлов на гитхабе будет кнопка «Clone or Download», нажимаете на неё и копируете ссылку.
Код:
git clone https://github.com/omnirom/android_bootable_recovery.git -b android-8.1
Получившуюся папку переименовать на recovery либо руками, либо через терминал
Код:
mv android_bootable_recovery recovery
Возвращаемся в домашний каталог
Код:
cd
Заходим в папку device
Код:
cd ~/omni/device
И, как в прошлом этапе тут тоже зависит от макс. версии андроид.
Доступные версии:
  • android-6.0
  • android-7.1
  • android-8.0
В папке device создаём папку qcom и заходим в неё
Код:
mkdir qcom
Код:
cd qcom
Клонируем репозиторий
Код:
git clone https://github.com/TeamWin/android_device_qcom_common.git -b android-8.0
После скачивания переименовать папку на common либо руками, либо через терминал
Код:
mv android_device_qcom_common common
Возвращаемся в домашний католог
Код:
cd
Входим в каталог Omni
Код:
cd ~/omni
Вводим команды
Код:
. build/envsetup.sh
Код:
lunch
После этой команды выдадет список. Нам нужно, чтобы называлось так :- omni_кодовое имя устройства-eng . В моём случае это omni_mido-eng . Пишем номер, под которым стоит нужный нам вариант.
Если вы собираете Oreo, то перед сборкой нужно прописать
Код:
export ALLOW_MISSING_DEPENDENCIES=true
И начинаем собирать
Код:
make -j# recoveryimage
# - количество ядер процессора вашего компьютера
P.s. Во время сборки не обращайте внимание на warning'и.
Если всё собралось без ошибок, и в конце вам написало это :
#### build completed successfully (mm:ss) ####
Значит всё прошло успешно. Получившийся образ находится по пути : omni/out/target/product/кодовое имя вашего устройства.
 

Lens

Linuxoid
16.10.2021
1
0
3
25
Устройство
Xiaomi Redmi 8
Кто знает как в OrangeFox(он же TWRP изменённый), в информации указать Maintainer?
Собрал, пишет
В maintainer
Testing Build Unofficial