如何使用RRO框架调整系统应用程序自定义颜色?

问题描述 投票:3回答:1

我正在开发基于定制AOSP的ROM,我希望能够使用RRO框架更改一些系统应用程序外观(颜色和其他资源),通过在system/vendor/overlay中安装独立应用程序,而不是重建整个系统应用程序。

我开始使用SystemUI应用程序,尝试更改快速设置面板背景以及其他元素,我在frameworks/base/packages/SystemUI/res/values/colors.xml中定义了自定义颜色。

我正在关注this tutorial。我正在为Pixel设备(旗鱼)建造AOSP,特别是分支android-8.1.0_r28

问题是,当我在Pixel设备的system/vendor/overlay中安装我的覆盖应用程序时,这不起作用 - 我已经在system_primary_color中使用SystemUI应用程序定义,构建和安装的被覆盖的system/priv-app/或任何其他颜色(我每次都重启设备才能生效)。

我观察到,vendor/overlay/目录中已有应用程序:Pixel和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 / values / 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>
android android-source
1个回答
0
投票

您要做的是将叠加层安装到/vendor/overlay文件夹中,然后运行adb shell cmd overlay list。找到您的应用程序ID,然后运行adb shell cmd overlay enable --user 0 application.id.here

© www.soinside.com 2019 - 2024. All rights reserved.