首页
社区
课程
招聘
binder-trace:基于内核采集的 Android Binder 调用观测工具
发表于: 2026-7-3 00:29 5349

binder-trace:基于内核采集的 Android Binder 调用观测工具

2026-7-3 00:29
5349

项目地址:5f1K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6Y4K9i4c8Z5N6h3u0Q4x3X3g2U0L8$3#2Q4x3V1k6X3N6i4q4A6N6h3I4#2L8#2)9J5c8X3u0A6L8X3c8W2M7W2)9J5k6s2c8J5j5h3y4W2

最近整理了一个 Android Binder 调用观测工具 binder-trace。它不是在 Java/Native 层做 hook,而是通过内核模块采集 Binder transaction,在用户态提供 WebUI、TUI、JSONL 和 MCP 查询接口,适合排查系统服务调用、接口频率、payload 和 reply 关联关系。

Android 上很多跨进程行为最后都会落到 Binder。平时看 logcat、Frida hook 都能解决一部分问题,但如果想从 Binder transaction 这一层持续观察系统服务调用,常见需求会变成:

binder-trace 的目标就是把这类观察流程收敛成一个工具链:内核侧负责采集,用户态负责控制、解析、存储和展示。

需要一台已 root 的 Android 设备,并准备:

先确认设备信息:

把文件推到设备:

加载内核模块并确认功能:

如果设备已经加载过旧模块,可以先卸载:

这里要注意,rmmod 会等待已经进入 Binder hook 的线程退出。如果设备上存在长时间阻塞的 Binder read / looper 线程,卸载可能需要等一段时间。

日常查看推荐用 WebUI。先转发端口:

在设备侧启动:

电脑浏览器打开:

常见过滤方式:

--no-enable 用于只读取现有事件流,不主动修改内核捕获配置。WebUI 的过滤和分页在后端执行,浏览器只渲染当前窗口,不会因为前端窗口大小丢掉后端已捕获事件。

如果只是临时排查,TUI 更适合直接在终端里看:

也可以按目标缩小范围:

如果要接脚本或后续分析,可以输出 JSONL:

事件外层是统一消息信封,object 表示事件类型,data 是对应载荷。这样后面用 jq、Python 或其他工具处理会比较直接。

MCP 入口适合让 AI assistant 在线查询 Binder trace。先转发端口:

设备侧启动 MCP 服务:

桌面 MCP client 连接本机转发后的地址即可,核心是 Streamable HTTP,并指向 /mcp

默认 MCP 只读取实时事件流,不修改内核捕获配置。如果需要允许 AI 开关 Binder trace,需要显式加 --allow-control,也可以配合 --enable --uid 1000 这类参数启动。

adb shell getprop ro.product.cpu.abi
adb shell uname -r
adb shell su -c id
adb shell mkdir -p /data/local/tmp/binder-trace
adb push binder-trace /data/local/tmp/binder-trace/binder-trace
adb push bt-kmod.ko /data/local/tmp/binder-trace/bt-kmod.ko
adb shell chmod 755 /data/local/tmp/binder-trace/binder-trace
adb shell su -c 'insmod /data/local/tmp/binder-trace/bt-kmod.ko'
adb shell su -c 'lsmod | grep bt_kmod'
adb shell su -c '/data/local/tmp/binder-trace/binder-trace ipc feature'
adb shell su -c 'rmmod bt_kmod'

[招生]科锐逆向工程师培训(2026年7月3日实地,远程教学同时开班, 第56期)!

最后于 2026-7-3 00:43 被fuqiuluo73编辑 ,原因:
收藏
免费 0
打赏
分享
最新回复 (50)
雪    币: 5
活跃值: (1745)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
66666
2026-7-3 04:26
0
雪    币: 0
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
3
6666
2026-7-3 07:56
0
雪    币: 4888
活跃值: (6035)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
6
2026-7-3 08:07
0
雪    币: 6417
活跃值: (11497)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
2026-7-3 09:35
0
雪    币: 109
活跃值: (475)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
666
2026-7-3 10:02
0
雪    币: 601
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
7
222
2026-7-3 10:06
0
雪    币: 4917
活跃值: (5297)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
6666
2026-7-3 10:31
0
雪    币: 0
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
9
6666
2026-7-3 10:47
0
雪    币: 3552
活跃值: (7170)
能力值: ( LV11,RANK:185 )
在线值:
发帖
回帖
粉丝
10
1
2026-7-3 10:52
0
雪    币: 0
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
11
666
2026-7-3 12:08
0
雪    币: 95
活跃值: (3322)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
66666666666666666666
2026-7-3 14:29
0
雪    币: 708
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
13
666
2026-7-3 18:55
0
雪    币: 0
活跃值: (605)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
2026-7-3 19:56
0
雪    币: 4346
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
15
666
2026-7-3 20:16
0
雪    币: 204
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
16
2026-7-3 21:10
0
雪    币: 1088
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
17
666
2026-7-4 01:40
0
雪    币: 758
活跃值: (1810)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
18
666
2026-7-4 04:28
0
雪    币: 196
活跃值: (215)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
19
666
2026-7-4 05:09
0
雪    币: 743
活跃值: (920)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
20
感谢分享
2026-7-4 05:20
0
雪    币: 1
活跃值: (593)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
21
666
2026-7-4 11:26
0
雪    币: 754
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
22
感谢分享
2026-7-5 13:58
0
雪    币: 4
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
23
666
2026-7-6 11:39
0
雪    币: 2679
活跃值: (3750)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
24
666
2026-7-6 13:51
0
雪    币: 0
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
25
666
2026-7-6 14:28
0
游客
登录 | 注册 方可回帖
返回