android overlay app,修改字符串资源

通过一个例子来了解overlay app,修改字符串资源的过程

google messag 是google的应用,如果有字符串在某种语言下显示有问题,是无法通过源码来实现。就要用到overlay来实现。

通过ApkToolkit 工具来反编译message应用

在这里插入图片描述
双击打开ApkToolkit.exe 应用,然后将需要反编译的apk鼠标拖入exe应用界面对应的位置,执行反编译操作。
这里需要反编译的apk是Messages_arm64_xxhdpi.apk

在这里插入图片描述
如果反编译成功,就会在当前目录创建和目标apk相同名称的文件夹,里面就是我们通过工具反编译之后的结果。

在这里插入图片描述
在这里插入图片描述

生成的文件中,我们只需要关注res 和AndroidManifest.xml这两个文件。

AndroidManifest.xml : 主要来获取需要反编译应用的包名,package="com.google.android.apps.messaging"
res:里面是res资源,我们只关注value类型。

编写overlay app

通过上面反编译步骤我们得到了,需要反编译应用的包名和res。下面我们就可以编写对应的overlay app了

在这里插入图片描述
新建文件加GoogleMessageOverlay
创建Android.mk,AndroidManifest.xml,res 等文件。
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 := GoogleMessageOverlay
include $(BUILD_PACKAGE)

AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.google.android.apps.messaging.overlay">
    <overlay
        android:isStatic="true"
        android:priority="1"
        android:targetPackage="com.google.android.apps.messaging" />
</manifest>            

res
在这里插入图片描述

res 目录下就是我们需要overlay修改的字串,此处我们修改中文下的字串。
在这里插入图片描述
将plurals.xml打开找到对应的string id修改就可以了 。

编译overlay app

编译过程忽略。
生成的app在out 下的vendor/overlay中。
在这里插入图片描述

发布了376 篇原创文章 · 获赞 40 · 访问量 46万+

猜你喜欢

转载自blog.csdn.net/wangjicong_215/article/details/104027289
今日推荐