通过ADB以root身份启动脚本

ErG*_*404 25 shell android root adb

我已经创建了一个脚本来安装分区并在我的Android系统中执行一些操作.我将脚本保存为Android的/ bin文件夹中的install.sh.

我想从ADB调用脚本,它本身是从Windows上的批处理文件调用的,但它需要以root身份执行.

我尝试的第一个解决方案是使用调用脚本

adb shell "su -c sh /bin/script.sh"
Run Code Online (Sandbox Code Playgroud)

但它不起作用,因为它给我一个shell访问权限(具有root权限),但没有执行任何操作.我也试着打电话

adb root "sh /bin/script.sh"
Run Code Online (Sandbox Code Playgroud)

但我得到以下错误

adbd cannot run as root in production builds
Run Code Online (Sandbox Code Playgroud)

然后我试着写

su -c "command"
Run Code Online (Sandbox Code Playgroud)

对于我的脚本中需要root访问权限的所有命令,但我遇到了同样的问题.当我运行脚本时,我只获得了一个root shell,并且没有执行任何操作.

如果我手动使用第一个解决方案(例如我调用adb shell su,然后是我的脚本),它就可以了.但是,重点是自动化该过程,以便可以从另一个脚本调用adb shell.

你知道我怎么能做到这一点吗?

谢谢 !

And*_*nie 57

这对我有用:

创建myscript.bat并放入其中(注意要在超级用户模式下执行的命令的单引号):

adb shell "su -c 'command1; command2; command3'"
Run Code Online (Sandbox Code Playgroud)

然后从DOS shell运行myscript.bat.

注意:似乎DOS行继续符(^)在这种情况下不起作用.换句话说,以下内容对我不起作用:

adb shell "su -c '^
command1; ^
command2; ^
command3'"
Run Code Online (Sandbox Code Playgroud)

这导致"语法错误:未终止引用的字符串"