技术解析

shell 脚本中执行 adb 命令,如果每个命令之间不加入 sleep 2 这个,就会失败
0
2021-06-29 05:51:31
idczone

先贴出来成功的脚本吧

for i in `cat ip.txt`
do
  adb disconnect
  adb connect ${i}
  sleep 2
  adb root
  sleep 2
  adb connect ${i}
  sleep 2
  adb remount
  sleep 2
  adb push librk_vpuapi.so /system/lib/
  sleep 2
  adb push libvpu.so /system/lib/
  sleep 2
  echo "start reboot ${i}"
  curl -X POST "http://${i}:9001/v1/system/reboot"
done

如果我把脚本中的sleep 2去掉的话,运行就会是这样的

connected to 10.20.18.148:5555
error: device offline
10.20.18.30

>connected to 10.20.18.30:5555
error: device offline
10.20.18.144

>connected to 10.20.18.144:5555
error: device offline
10.20.18.40

给一点反应时间嘛

试试 adb -s SERIAL wait-for-device

adb 什么版本的

adb root 会重起手机的 adb 进程,会导致 adb offline,再 adb 后面加一句 adb wait-xxx 可破

我是网络连接 adb 的,adb root 之后,就断开了,并不是 offline 啊,需要重新 adb connect,不重新 connect,直接 adb wait-device 没效果啊

需要一个反应和认证时间,你自己先执行下 adb kill-server && adb start-server 看看这玩意启动要耗多长时间,尤其是版本不够高的情况耗时更长

root 后先 disconnect

数据地带为您的网站提供全球顶级IDC资源
在线咨询
专属客服