利用ADB 协议建立PC与手机端本地unix套接字的连接

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

设置环境变量
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’</

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值