[RK3288][Android6.0] Ubuntu下反编译apk得到源码和xml文件

时间:2024-03-22 08:20:53

Platform: RK3288
OS: Android 6.0
Kernel: 3.10.92

背景:

需要了解RK的OTA机制,但sdk只提供了apk
[RK3288][Android6.0] Ubuntu下反编译apk得到源码和xml文件

因此需要反编译解包,要注意的是,如果apk在编译的时候经过了代码混淆,那么反编译出来的是乱码而无法查看的。


工具:

apktool: 反编译后可以查看res下的资源和布局文件,以及apk的AndroidManifest.xml文件
dex2jar: 要查看源码,需要先将apk转化成Jar文件
JD-GUI: 得到Jar文件之后,使用此工具直接可以查看源代码

jd-gui下载: https://download.csdn.net/download/kris_fei/10375837
apktool和dex2jar下载: https://download.csdn.net/download/kris_fei/10375855

如果apktool和dex2jar太旧,可以直接去apktool网站下载。

注意:
执行apktool 和 JD-GUI可能会遇到error,可参考:
[RK3288][Android6.0] 调试笔记 — 使用apktool出现AndrolibException
[RK3288][Android6.0] 调试笔记 — 执行gd-gui找不到libgtk-x11-2.0.so.0


获取xml文件:

[email protected]:~/Downloads/apktool$ ./apktool d RKUpdateService.apk
[RK3288][Android6.0] Ubuntu下反编译apk得到源码和xml文件

解析出来的AndroidManifest.xml
[RK3288][Android6.0] Ubuntu下反编译apk得到源码和xml文件

布局文件:
[RK3288][Android6.0] Ubuntu下反编译apk得到源码和xml文件


查看源代码:

先转换成jar文件:
./dex2jar/dex2jar.sh RKUpdateService.apk
[RK3288][Android6.0] Ubuntu下反编译apk得到源码和xml文件

用jd-gui查看:
[email protected]:~/Downloads/apktool$ ./jd-gui/jd-gui
打开jar包就可以查看了
[RK3288][Android6.0] Ubuntu下反编译apk得到源码和xml文件


参考:

如何反编译apk文件得到源码和XML文件
Ubuntu(Linux)/Windows下反编译apk