Platform: RK3288
OS: Android 6.0
Kernel: 3.10.92
背景:
需要了解RK的OTA机制,但sdk只提供了apk
因此需要反编译解包,要注意的是,如果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
解析出来的AndroidManifest.xml
布局文件:
查看源代码:
先转换成jar文件: ./dex2jar/dex2jar.sh RKUpdateService.apk
用jd-gui查看: [email protected]:~/Downloads/apktool$ ./jd-gui/jd-gui
打开jar包就可以查看了