О сборке прошивок
Сегодня я расскажу о сборке прошивки на примере Redmi Note 8 Pro.
Соберем мы Arrow OS 12.1, вы можете собирать как на своем компьютере, так и на сервере, но имейте ввиду, вы должны иметь минимум 16 Гб оперативной памяти, 8 ядер процессора и 200 Гб свободного места на диске, а также Linux, в нашем случае используем Ubuntu 20.04.4.
Откроем терминал, для начала установим некоторые пакеты:
sudo apt update sudo apt install unzip sudo apt install jq sudo apt install git sudo apt install snapd sudo wget 'https://storage.googleapis.com/git-repo-downloads/repo' -P /usr/local/sbin/ sudo chmod +x /usr/local/sbin/repo
Теперь мы должны получить исходники Arrow os. Для этого переходим на GitHub по этой ссылке: https://github.com/ArrowOS/android_manifest. Все последующие команды и действия делать в папке предварительно созданной вами:
mkdir rom
repo init -u https://github.com/ArrowOS/android_manifest.git -b arrow-12.1
После введения этой команды, вам буду предлагать ввести имя и почту, вводить любые символы, и на все вопросы отвечаете "y".
Дальше синхронизируем репозиторий:
repo sync
Теперь мы должно поместить исходники нашего устройства в исходники прошивки. Исходники устройства будем использовать от открытого:) репозитория Begonia-dev: https://github.com/begonia-dev.
Нам нужно склонировать с GitHub следующие сурсы: Device Tree, Vendor, Kernel, Ims, Sepolicy. Делаем это используя следующие команды:
git clone https://github.com/begonia-dev/android_device_redmi_begonia.git -b 12.1 device/redmi/begonia git clone https://github.com/begonia-dev/android_vendor_redmi_begonia.git -b 12.1 vendor/redmi/begonia git clone https://github.com/begonia-dev/android_kernel_xiaomi_mt6785.git -b 12.1 kernel/xiaomi/mt6785 --depth=1 git clone https://github.com/begonia-dev/android_vendor_redmi_begonia-ims.git -b 12.1 vendor/redmi/begonia-ims git clone https://github.com/begonia-dev/android_device_mediatek_sepolicy.git -b 12.1 device/mediatek/sepolicy
Теперь мы переходим в директорию с Device Tree:
cd device/redmi/begonia
Мы должны переименовать файл lineage_begonia.mk в arrow_begonia.mk
mv lineage_begonia.mk arrow_begonia.mk
Также нужно отредактировать этот файл, пишем:
nano arrow_begonia.mk
Заменяем все слова "lineage" на "arrow" и ищем строчку:
$(call inherit-product, vendor/lineage/config/common_full_phone.mk)
Изменяем её, чтобы она выглядела вот так:
$(call inherit-product, vendor/arrow/config/common.mk).
Сохраняем и закрываем редактор:
ctrl + x - Y - Enter
Теперь мы должны отредактировать файл AndroidProducts.mk и попутно позаменять "lineage" на "arrow"
nano AndroidProducts.mk
COMMON_LUNCH_CHOICES := \ arrow_begonia-eng \ arrow_begonia-userdebug \ arrow_begonia-user
Чтобы в конечном итоге получилось:
Теперь возвращаемся в главную папку:
cd .. cd .. cd ..
В главной папке прописываем следующие команды:
. build/envsetup.sh lunch arrow_begonia-userdebug m bacon
И ждем окончании сборки. По окончании вы увидите:
Путь до вашей, уже собранной прошивке, как видите отобразится в конце сборки.