如何在三方apk中添加log
环境:Linux & java openjdk 9
工具:apktools(进入官网下载最新版本)
资源:apktools.zip 这里是自己打包的相关文件,下载可以直接使用
1. 反编译apk
首先下载最新版本的apktools ,它是一个jar文件和一个脚本文件,然后将要反编译的apk 和apktools复制到linux环境里。
(下面的示例它们在同一目录里)
justart@ubuntu:~/bin/apktools$ ./apktool d pixeldebug.apk
I: Using Apktool 2.4.0 on pixeldebug.apk
I: Loading resource table...
I: Decoding AndroidManifest.xml with resources...
S: WARNING: Could not write to (/home/user4/.local/share/apktool/framework), using /tmp instead...
S: Please be aware this is a volatile directory and frameworks could go missing, please utilize --frame-path if the default storage directory is unavailable
I: Loading resource table from file: /tmp/1.apk
I: Regular manifest package...
I: Decoding file-resources...
I: Decoding values */* XMLs...
I: Baksmaling classes.dex...
I: Baksmaling classes2.dex...
I: Copying assets and libs...
I: Copying unknown files...
I: Copying original files...
会在当前目录下生成一个以apk名字命名的文件夹内容如下:
justart@ubuntu:~/bin/apktools/pixeldebug$ ls
AndroidManifest.xml apktool.yml original res smali smali_classes2
这里的smali文件就是apk源代码src编译生成的汇编文件,其他目录同源码相同。
2.添加log
添加log不用特别懂汇编就可以,比如我们知道apk中有一个字符串输出,或者一句apk自身的log打印,我们可以搜到它的位置。比如在 Activity的onCreate方法。
justart@ubuntu:~/bin/apktools/pixeldebug$ grep -r -n "protected onCreate(