1.通过adb pulll方式获取手机中系统源码:
用手机通过USB连接到电脑,打开开发者模式后,通过adb连接手机
在该文件夹上最顶端输入cmd,打开命令行。为了查看system文件夹下的文件,依次输入以下命令:adb shell
、cd system
、ls -a
,就可以看到对应的文件,最后输入exit
关闭本次操作。效果如下:
这里可以看到system文件夹下,包含了很多的文件,有framwork层源码,有系统app,有字体等等。
接下来,拷贝system中的framework源码,指定电脑存放路径,输入以下命令adb pull system/framework D:/system/sourceodex。这里,存放在d盘中system文件夹下的sourceodex文件中。效果如下图所示
拷贝成功后,打开sourceodex文件夹,可以看到对应的源码,如下图所示:
3. oat2dex反编译系统,jadx查看编译后的系统源码:
oat2dex是一个非常强大系统源码反编译的工具,输入以下命令行可以查看到具体如何使用,如下所示:
这里可以看到,oat2dex工具可以生成odex文件,smali文件,dex文件。
接下来,将boot.oat和service.odex拷贝到oat2dex工具同一个文件下,输入命令进行反编译。
反编译service.odex,获取service层的源码,输入命令行java -jar oat2dex.jar odex services.odex
,如下所示:
通过jadx工具打开对应的dex文件,如下所示: