解码apk文件时如何获取R.java文件?

问题描述 投票:2回答:3

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

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

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

android apk
3个回答
8
投票

你不能直接提取r.java文件,但可以使用'aapt'工具提取r.java文件的内容。以下命令列出了r.java文件中存在的所有资源及其各自的ID:

aapt d resources name_of_apk

3
投票

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


0
投票

下载android-apktool,在同一目录中解压缩并运行

apktool d app.apk
© www.soinside.com 2019 - 2024. All rights reserved.