我正在开发基于自定义AOSP的ROM,我希望能够通过在system/vendor/overlay中安装一个独立的应用程序来改变一些系统应用程序的外观(颜色和其他资源),而不是重建整个系统应用程序。
我从SystemUI应用程序开始,尝试更改快速设置面板背景以及其他元素,我在frameworks/base/packages/SystemUI/res/values/colors.xml中为这些元素定义了自定义颜色。
我在跟踪本教程。我正在为Pixel (旗鱼)构建AOSP,特别是分支android-8.1.0_r28。
问题是,当我在像素设备的system/vendor/overlay中安装覆盖应用程序时,这是行不通的--我定义、构建和安装的覆盖的system_primary_color和其他颜色,以及system/priv-app/中的SystemUI应用程序(我每次都要重新启动设备以获得效果)。
我观察到,在vendor/overlay/ dir:像素和SysuiDarkTheme中已经有应用程序。我不知道这些程序是如何应用的,它们是否干扰了我的工作,但是看起来RRO框架就在那里,并且正在为其他的系统覆盖应用程序工作。
这是我的覆盖应用程序的AndroidManifest.xml:
<?xml version="1.0" encoding="utf-8"?>
<manifest
xmlns:android="http://schemas.android.com/apk/res/android"
package="my.sample.package">
<application android:label="Overlay App" />
<overlay android:targetPackage="com.android.systemui"
android:priority="1"/>
</manifest>--这是我的覆盖应用程序:的res/value/colors_overridden.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<!-- Colors overriding Android's SystemUI -->
<color name="system_primary_color">#FFBF360C</color>
<color name="keyguard_bouncer_background">#55FF0000</color>
</resources>发布于 2018-09-17 01:45:04
您要做的是将覆盖安装到您的/vendor/overlay文件夹中,然后运行adb shell cmd overlay list。查找应用程序id,然后运行adb shell cmd overlay enable --user 0 application.id.here
发布于 2020-11-30 16:03:01
在使用Q仿真器时,我发现只有当将覆盖apk推送到/system/product/overlay而不是/system/vendor/overlay时,这才适用于我,正如上面链接的教程所描述的那样。
为了能够将apk推送到/system/product/overlay,您需要一个可写的/system分区。这可以通过以下步骤来实现:https://stackoverflow.com/a/65076881/1898527
https://stackoverflow.com/questions/50348669
复制相似问题