Android RRO Overlay 应用范例

  • Post author:
  • Post category:其他




Android RRO Overlay应用范例



RRO(Runtime Resource Overlay)

在2014年,索尼把自己的主题引擎RRO(Runtime Resource Overlay) 在安卓7.0中,Google也在原生安卓内置了该引擎



Android 开发中的应用

RRO不仅针对主题 而是所有的 runtime resource. 所有 我们可以利用他来实现资源的替换

预置的app 可以通过反编译 来替换图片资源或者字符串

也算安卓逆向的一个方法 不过本文只对系统开发有效



举例



新增模块

Android.mk

LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE_TAGS := optional

LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR)/overlay

#include files in src directory
LOCAL_SRC_FILES := $(call all-subdir-java-files)

LOCAL_PROPRIETARY_MODULE := true

#include files in res diretory
LOCAL_RESOURCE_DIR := $(LOCAL_PATH)/res
LOCAL_SDK_VERSION = current

#the name of target apk
LOCAL_PACKAGE_NAME := OptInAppOverlay
include $(BUILD_PACKAGE)

AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="example.optinoverlay">
    <overlay
        android:isStatic="true"
        android:priority="1"
        android:targetPackage="example" />
</manifest>

res\value\string.xml

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="foo">bar</string>
</resources>



总结

利用索尼的RRO机制 我们可以在可执行app文件之外 对资源进行定制。 给大法点个赞



版权声明:本文为wnw_jackie原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。