You should fix VINTF entry missing errors, dlopen failures, system app crashes before you proceed.
Otherwise, Google Play system updates will rollbacks all updates or even causing bootloop.
Mostly, rollbacking/bootlooping occurs if you missed adding VINTF entries in Frameworks Compatibility Matrix or Device Manifest (or both)
that is not marked as optional or important to operate on your system,
or dlopen failed due to missing blobs/symbols,
or frequent system app crashes (e.g. MIUI Camera app).
For kernel version < 4.19, you might want to apply upstream bpf patches and spoofing.
First, you need to track prebuilts/modules_sdk in your manifest,
which should replaces repos under prebuilts/module_sdk/*
.
You need to include the config.mk
's path to your device.mk
$(call inherit-product-if-exists, vendor/google/mainline_modules/config.mk)
If your device support Google Pixel's Now Playing feature,
you could enable it by setting TARGET_SUPPORTS_NOW_PLAYING := true
in your device.mk
.
If you don't want to/can't support Google Play system updates,
Set TARGET_SUPPORTS_PREBUILT_UPDATABLE_APEX := false
in your device.mk
.
This will allows you to use AOSP's source build APEX.
TARGET_SUPPORTS_PREBUILT_UPDATABLE_APEX := false
- Install
xmlstarlet
sudo apt install xmlstarlet
,sudo pacman -S xmlstarlet
, etc. depending on your distribution.
- Install
apktool
, make sure its available in PATH- https://ibotpeaches.github.io/Apktool/install/
- Run
apktool if framework-res.apk
,apktool if SystemUIGoogle.apk
to install framework for apktool.
This is necessary for proper extracting.
(generally found in /system/framework/, /system_ext/priv-app/)
Basically the same as regular extract-files
./extract-files.sh /path/to/a/dump
- If certain overlays are not required, you can simply add them to
exclude-tag.txt
, those will be removed from the extracted overlays.
- The main changes here are the addition of
apktool
andxmlstarlet
, to allow us to extract the necessary overlays from some RROs. - Since the process does take a while, to speed it up, all extraction is done in the background.
This might not be suitable for weaker systems if there is a very high number of overlays to be extracted.