ADB shell从.bat文件"run-as"找不到Unix命令

Fer*_*ari 2 shell android dos adb

我正在尝试自动化从我的应用程序中提取数据库然后将更改后的版本推回到设备的过程,但它没有按预期工作.

按照Pilot_51对此主题的回答,Android ADB访问没有root的应用程序数据库,我能够提取手动运行命令的数据库.但是当我把它们放在.bat文件上时,每个执行的Unix命令都会返回一个"未找到"的错误.

这是我得到的错误:

run-as:exec因chmod 666 ./database/mydatabase.db而失败; 退出错误:没有这样的文件或目录

这是.bat脚本代码:

@echo off

:Ask
echo (A) Pull or (B) Push

set INPUT=
set /P INPUT=Input choice: %=%

If /I "%INPUT%"=="a" goto A 
If /I "%INPUT%"=="b" goto B
echo Wrong choice & goto Ask

:A
adb shell "run-as com.example.myapp 'chmod 666 ./databases/mydatabase.db; exit'; exit"
adb pull /data/data/com.example.myapp/databases/mydatabase.db C:/
goto End

:B
adb push C:/mydatabase.db /data/data/com.example.myapp/databases/mydatabase.db
adb shell "run-as com.example.myapp 'chmod 660 ./databases/mydatabase.db; exit'; exit"

:End
pause
Run Code Online (Sandbox Code Playgroud)

如果我尝试仅使用"run-as com.example.myapp'ls'"运行adb shell,它会显示文件夹.为什么ls工作,但chmod没有得到认可?

Ale*_* P. 6

您既不需要单引号也不需要退出命令.做就是了:

adb shell "run-as com.example.myapp chmod 666 databases/mydatabase.db"
Run Code Online (Sandbox Code Playgroud)