0x0 参考源码
https://github.com/tananaev/adblib
https://github.com/tananaev/rootless-logcat
0x1 原理
第一步,最重要的,一切的前提:Adb tcpip 5555。连接手机,执行命令后,adb deamon会监听0.0.0.0:5555,通过自己的app和这个5555端口通信,模拟adb消息让deamon执行相应的命令。
0x2 实现
作者将adb源码里的几个重要的结构用java写了一遍,主要是
1.adb协议的标志头(OKAY,CLSE,OPEN,AUTH等)
2.adb消息的结构(命令、参数、payload长度,payload的checksum、magic以及payload)
3.adb加密方式(RSA加密消息)
大致通信过程如下: