设置环境变量
export ADB_TRACE=adb
可以取的值包括 all, adb, sockets, packets, rwx, usb, sync, sysdeps, transport, jdwp, services, auth, fdevent, shell
取多个值用空格分割
但是adb 内部限制了输出的字数,导致最重要的writex输出(即最总发送给adb server的数据)长度只有16字节。为此,必须修改代码:
system/core/adb_utils.cpp文件,找到
std::string dump_hex(const void* data, size_t byte_count) {
- byte_count = std::min(byte_count, size_t(16));
+ //byte_count = std::min(byte_count, size_t(16));
重新编译adb
make adb
adb发送的协议是 4字节16进制数+命令。
比如 adb devices
发送的命令就是 000chost:devices
返回: ‘OKAY0010d9dbe061\tdevice\n’
adb shell 命令:
需要先发送: 0012host:transport-any
收到 ‘OKAY’
继续发送’0029s

本文介绍了如何设置ADB环境变量,以及如何通过ADB协议与手机进行交互,包括修改ADB源码以扩展输出长度,使用adb forward将手机UNIX套接字映射到本地端口,以及如何通过adb shell发送命令。同时,讨论了如何直接连接远程UNIX套接字的技巧,并提到了使用Python模拟发送的实现。
最低0.47元/天 解锁文章
6537

被折叠的 条评论
为什么被折叠?



