"Кратк. сест. тал."
Я описываю свой собственный опыт основанный на тестировании и использовании прошивок с microG в повседневной жизни.
Топик не про то как патчить вашу [название прошивки] прошивку NanoDroid-patcher а про ток как проще всего самому себе сделать прошивку с microG из коробки.
Да разговор именно про сборку из исходников.
Необходимые начальные условия:
- желание
- актуальный дистрибутив GNU/Linux
- минимум 250Gb свободного места
- минимум 16Gb озу
- наличие актуальных для требуемой версии android-а: device tree, kernel sources и vendor blob`s под ваш девайс
- свободное время
Далее нам нужна одна из прошивок с поддержкой signature spoofing
Выбираем любую на свой вкус.
Хозяйке на заметку - не смотря на наличие такого чудовища творения как LineageOS bundled with microG конкретно на LOS применение патчей signature spoofing оказывают крайне негативное влияние на общую стабильность получающейся прошивки. Поэтому если хотите страдать но дальше продолжать есть кактус то успехов вам в этом.
Выбрали себе прошивку? Качаем исходники. Это элементарно даже описывать нет смысла но ладно если вы так хотите то на примере AospExtended
repo init -u git://github.com/AospExtended/manifest.git -b 11.x
repo sync -c -j$(nproc --all) --force-sync --no-clone-bundle --no-tags
Первая команда пролетит мгновенно а вторая растянется на долго в зависимости от скорости вашего канала в интернет. После этого исходники aex вы скачали.
Далее добавляем свои собственные device tree, kernel sources и vendor blob`s к скачанным исходникам aex делается это в файле:
mkdir -p .repo/local_manifests
touch .repo/local_manifests/roomservice.xml
Хозяйке на заметку - дерево устройства device tree не универсально и должно быть адаптировано под конкретную прошивку. Делается это относительно просто но это предмет отдельного разговора. Т.е. да за основу можно брать деревья устройства с любых прошивок под такую-же версию android под конкретно ваш аппарат.
Мы всё ещё не добавили microG и F-Droid! Всё в тот же roomservice.xml
добавляем:
<!-- microG and F-Droid -->
<project name="omnirom/android_prebuilts_prebuiltapks" path="prebuilts/prebuiltapks" remote="github" revision="android-11" />
И по новой синхронизируем repo sync
.
Теперь самое интересное интеграция всего этого счастья в прошивку!
В директории своего дерева устройства…
cd $AOSP/device/VENDOR/NAME
touch microG.mk
И в microG.mk
вставляем буквально следующее:
# microG
PRODUCT_PACKAGES += \
AuroraStore \
FDroid \
additional_repos \
FakeStore \
GmsCore \
GsfProxy \
MozillaNlpBackend \
NominatimNlpBackend \
com.google.android.maps.jar
Далее добавляем в device.mk
# microG
$(call inherit-product, $(LOCAL_PATH)/microG.mk)
И остаётся только собрать и прошить!
source build/envsetup.sh
lunch aosp_device_codename-userdebug
make -j$(nproc --all) | tee build.log
Хозяйке на заметку - там написано make aex -j$(nproc --all) | tee log.txt
но оно не работает.
Удачных вам сборок и прошивок!