当前位置: 代码迷 >> 综合 >> android overlay app,修改字符串资源
  详细解决方案

android overlay app,修改字符串资源

热度:80   发布时间:2024-01-25 17:14:31.0

通过一个例子来了解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 := optionalLOCAL_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"><overlayandroid: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中。
在这里插入图片描述

  相关解决方案