adb通信协议分析以及实现(四):adb shell 命令分析

adb 的shell 命令和普通的命令发送格式有点不一样,需要重新组织一些命令的格式

比如下列命令 -s "abcdefg" shell dumpsys package com.a.b, 需要组织成 shell:dumpsys package com.a.b。 发送给adb 服务进程。

shell 命令在发送给服务进程之前,需要转换一下端口。

int switch_socket_transport(CSyncSocket& socket,const char* pszSerial){

char service[512] = {0};

sprintf(service, "host:transport:%s", pszSerial);

int iLen = strlen(service);

char tmp[5];

sprintf(tmp, "%04x", iLen);

if (socket.SendData((const byte*)tmp,4) != 4){

return -1;

}

if (socket.SendData((const byte*)service,iLen) != iLen){

return -1;

}

std::string result;

if (RecvMessage(socket,result) != 0){

return -1;

}

return 0;

}

adb通信协议分析以及实现(一):www.jianshu.com/p/713c7823d…

adb通信协议分析以及实现(二):www.jianshu.com/p/4bdd315a9…

adb通信协议分析以及实现(三):www.jianshu.com/p/23581d48f…

adb通信协议分析以及实现(四):www.jianshu.com/p/639fd2155…

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值