adb.exe:未知命令 am adb.exe:当我尝试在我的 root android 设备上运行 shell 脚本时,未知命令睡眠错误不断弹出

问题描述

大家好,我是 shell 脚本的新手。请不要介意是否表现得像个菜鸟。

当我尝试在我的 android 设备上运行 shell 脚本时,以下错误不断弹出

    #!/bin/bash
for i in $(seq 100) 
do  
echo "Time: $i"
adb -s $* shell am start com.android.camera/.Camera -W -S
adb -s $* shell sleep 3
adb -s $* shell input tap 540 1994
adb -s $* shell input tap 540 1994
adb -s $* shell input tap 540 1994
count=`adb -s $* shell ls /sdcard/DCIM/Camera/ | wc |awk '{print $1}'`
echo Count: $count
if [[ count -gt 500 ]]; then
break
fi
adb -s $* reboot
adb -s $* wait-for-device
adb -s $* shell sleep 40
adb -s $* shell input tap 500 1200
done

结果: adb.exe:未知命令 am adb.exe:未知命令睡眠

解决方法

你不能在你的安卓设备上运行 adb 命令。相反,必须在主机上安装 adb 二进制文件。该脚本是一个 linux 脚本,不能从 Windows 运行。准备可启动的 USB 闪存驱动器并从任何 Linux 终端运行此脚本

此外,您的某些命令需要 root 权限。因此 sush 必须受到邀请(以及在触摸屏上的超级用户应用上授予的权限)

adb shell su -c "am start com.android.camera/.Camera -W -S"

awk 在 android 上不可用。为了更清楚地说明这些管道实际上是在主机上运行,​​请引用 android 命令(甚至更好地避免使用 awk)

count=$(adb shell "ls -1 /sdcard/DCIM/Camera" | wc | awk '{print $1}')
count=$(adb shell "ls -1 /sdcard/DCIM/Camera | wc -l")

am 实际上是一个指向 am.jar 的 shell 脚本,这需要完全启动的 android。如果您尝试在恢复模式下运行,您至少应该运行框架