我正在对一个 android 应用程序进行逆向工程。我已经有一段时间没有研究这个了,但是我在编辑 APK 以处理某些语言区域时遇到了问题。
原始应用程序来自不同的国家。反编译和重新编译时,应用程序会安装,但当您尝试在手机上运行它时会出错。这包括如果我只做 apktool d 然后 apktool b。通过 log cat 我收到此异常:
引起:java.util.MissingResourceException:找不到包“j.bc.l.resources.resources.resources_en_US”的资源,键“”
来自 ResourceBundle.getBundle 调用。通过此页面,我假设这是与解决不同语言的资源相关的问题。
我认为问题在于它默认搜索应用程序中不存在的路径,因此它找不到文件并且应用程序崩溃。我解压了 apk 文件,在 j.bc.l.resources 中有一个 resources.properties 文件,但没有可以搜索的 resources_en_US 目录。
所以在这一点上,因为我需要对应用程序进行更改,所以我假设我需要在该目录中放置一个带有新属性文件的 resources_en_US,但我不知道如何将其修补到应用程序中。我无法解压缩和重新压缩,因为据我所知它弄乱了标题,因此 apktool 和安装将失败。
所以我需要一种方法将 resources.properties 文件放入正确的位置以正确解析。代码中没有对 resources_en_US 的任何引用,所以我假设让它工作的唯一方法是将目录修补到应用程序中并重建它。但如果有更简单的方法来解决这个问题,我也可以接受。