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 版权协议,转载请附上原文出处链接和本声明。