Runtime resource overlays (RROs) can either be pushed to the /vendor/overlays
folder (which is automatically read during boot) or can be installed by running
adb install.
The latter allows faster iteration. However, this can cause the same RRO to reside in two
locations (/vendor/overlays and /data/app).
For pushing and rebooting, run:
$ adb root $ adb remount $ adb shell mkdir /vendor/overlay/<overlay-name> $ adb push <path-to-overlay.apk-file> /vendor/overlay/<overlay-name> $ adb reboot
For installation, run:
$ adb install <path-to-overlay.apk-file>
To confirm the RRO is available, run:
$ adb shell cmd overlay list --user current android [ ] com.android.sample_rro com.android.sample.targetapp [ ] com.android.sample.targetapp_rro
When --- is displayed next to the newly installed RRO, this indicates that the
target APK was either not found (double-check the targetPackage declaration on your
AndroidManifest.xml) or some of the resources defined in the RRO don't match any
resources in the target.
Enable and disable RROs
To enable or disable a RRO, respectively, run the desired command:
-
Enable:
adb shell cmd overlay enable --user current <rro-package-name> -
Disable:
adb shell cmd overlay disable --user current <rro-package-name>