安卓10源码开发定制(22)使用jadx反编译工具查看aidl文件实现代码

文章首发微信公众号:QDROID88888,如果感兴趣可以关注一下公众号。

一、安卓源码中aidl文件介绍

在 Android系统源码中经常看到很多.aidl后缀的文件。这些aidl文件主要是binder进程间通信的接口描述语言。在源码编译的时候才好会通过工具成基于该 .aidl 文件的 IBinder 接口,并最终打包到系统的jar包中。所以在源码中搜索不到具体的java实现代码。为了查看aidl文件的java实现代码,可以有如下两种方式:
(1) 通过手机设备提取系统jar包。目前高版本的安卓系统中直接提取jar包是获取不到具体的实现代码。由于安卓系统编译发布的时候开启了编译优化,会将dex转为oat文件。所以提取设备的时候就需要提取jar包对应的oat文件,并用专门的工具将oat转化为dex文件。然后反编译工具查看。

(2) 在源码中编译userdebug、eng版本的系统
编译版本userdebug、eng版本情况下,jar包中包含了完整的dex文件,可以使用反编译工具查看。
以下以lineageOs 安卓10系统源码编译环境,查看ILocationManager.aidl文件的实现代码为例说明。

二、jadx查看aidl文件java实现代码

(1)、安卓源码中编译一次usedebug版的系统

(2)、在源码编译输出目录找到framework.jar

ILocationManager.aidl编译之后会打包到framework.jar中。安卓源码中ILocationManager.aidl的文件路径如下:

frameworks/base/location/java/android/location/ILocationManager.aidl

编译之后framework.jar路径如下:

out/target/product/oneplus3/system/framework/framework.jar

(3)、打开jadx反编译工具,将framework.jar拖到工具中

framework.jar反编译成功之后,在工具中打开android/location/ILocationManager就可以看到ILocationManager.aidl在安卓10中的具体实现代码了。如下所示:

在这里插入图片描述
如果需要下载反编译工具jadx,可以关注微信公众号"QDROID88888"发送消息"003"获取下载地址。

安卓系统、安卓ndk开发、安卓应用安全和逆向分析相关等IT知识分享,系统定制、frida、xposed(sandhook、edxposed)系统集成、加固、脱壳、刷机交流等等。微信搜索公众号"QDOIRD88888"或者扫描以下二维码关注公众号。第一时间接收文章更新。

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/xiaomaNo01/article/details/113171431