安卓设备中在执行bat脚本时abd shell自动输入密码并执行命令怎么写?

脚本如下adb shell rm -f /system/app/App.apk
在执行脚本时,提时输入密码,但是无法输入密码(备注:只要cmd命令执行adb shell时是需要输入密码),测试过下面两种方式,都不行。
我需要能够自动输入密码执行,或者手动输入密码执行也可以
第一种:直接卡在输入密码界面,不能输入
echo 123456 | adb shell
echo echo su > temp.txt
echo echo rm -f /system/app/App.apk >> temp.txt
echo adb shell < temp.txt
echo del temp.txt
第二种:直接卡在密码输入界面,且不能输入
echo "123456" | adb shell "rm -f /system/app/App.apk"

可以使用 echo 命令和管道符 | 将密码输入到 adb shell 的命令中。假设你的密码为 mypassword,需要执行的命令为 mycommand,那么可以这样写:
echo mypassword | adb shell mycomman
在上面的命令中,echo mypassword 将密码输出到标准输出流,然后通过管道符 | 将标准输出流连接到 adb shell mycommand 命令的标准输入流中,这样就实现了自动输入密码并执行命令的效果。追问

测试过了,不行,会卡在adb shell输入密码界面,并且不能手动输入密码。需要Ctrl c才可以结束

追答

试下这个,使用expect命令自动输入密码
#!/usr/bin/expect -f

set timeout -1

spawn adb shell rm -f /system/app/App.apk

expect {
"*password:" {
send "your_password_here\r"
exp_continue
}
eof
}

将上述脚本保存为remove_app.expect文件,将your_password_here替换为你的设备密码,然后运行以下命令:
chmod +x remove_app.expect
./remove_app.expect

这将自动输入设备密码并执行adb shell rm -f /system/app/App.apk命令。

追问

我是在windows环境下也可以吗?

温馨提示:答案为网友推荐,仅供参考
第1个回答  2023-04-14
由于安全原因和ADB shell的限制,您无法在批处理脚本中自动输入su密码。然而,对于已经root的设备,您可以尝试绕过密码验证,直接以root权限执行命令。
以下是一个在Windows中执行ADB shell命令的简单批处理脚本示例,假设您已经拥有root权限:
@echo off
adb shell "su -c 'rm -f /system/app/App.apk'"
pause
在这个示例中,我们使用了su -c命令来以root权限执行括号内的命令,删除指定的/system/app/App.apk文件。
需要注意的是,在执行涉及系统文件操作的脚本之前,请确保您已了解相关操作,同时也建议先备份相关文件以防止可能的损失。
相似回答
大家正在搜