3

我只是解码一个 apk 文件,但问题是我无法获取 R.java 文件。

R.java文件是在应用程序中自动创建的,但是当 apk 文件被解码时,它会给出创建的十六进制值,R.java而不是 @string/abc 或 @color/white 等....

当我们在应用程序中创建字符串或颜色或任何其他资源时,android 平台会为该字符串或颜色分配一些十六进制值R.java,因此当我们解码 apk 文件时,它会给出该十六进制值,那么我们如何确定该特定十六进制值是那个字符串还是颜色?

4

3 回答 3

9

You cannot directly extract r.java file, but the contents of r.java file can be extracted using 'aapt' tool. The following command lists all resources and their respective ID's as present in r.java file:

aapt d resources name_of_apk
于 2014-08-05T07:20:16.810 回答
3

该类R由嵌套类组成,每个嵌套类完全由编译时常量组成。如果 .apk 文件被 ProGuard 混淆(几乎所有已发布的应用程序都是如此),所有这些都将被优化掉。没有办法恢复它。

于 2012-10-30T05:49:30.690 回答
0

下载android-apktool,全部解压到同一目录下运行

apktool d app.apk
于 2012-10-30T05:45:52.493 回答