如何在adb shell上使用su命令?

Ale*_*lex 22 linux shell android adb android-ndk

我需要制作一个脚本,在Android设备上执行很多东西,我的设备是root的,当我进入shell时,我可以给命令su,它可以工作,但我需要传递这个命令,如:

adb shell "
su;
mv /sdcard/Download/app_test /data/local;
cd /data/local;
./app_test;
exit;
exit;
"
Run Code Online (Sandbox Code Playgroud)

当我在su之前输入一些命令时,根据我读的su创建了一个立即返回的新shell,但我需要在su shell上发出命令,我该怎么做?

A-D*_*ech 29

好吧,如果您的手机是root用户,您可以使用"su -c"命令运行命令.

以下是build.prop文件中cat命令的示例,用于获取电话产品信息.

adb shell"su -c'cat /system/build.prop | grep"product"'"

这将调用root权限并在''内运行命令

请注意5个结束引号,要求您关闭所有结束引号,否则您将收到错误.

为了澄清,格式是这样的.

adb shell"su -c'[你的命令在这里]'"

确保以在shell中运行它的方式正常输入命令.

尝试一下,希望这会有所帮助.

  • 对我来说,你的解决方案不起作用,而是`adb shell“su 0 command”`有效,这里是一个例子`adb shell“su 0 chmod 644 /system/priv-app/myApp.apk”` (3认同)

shk*_*der 6

su命令不执行任何操作,它只是提高您的权限。

试试adb shell su -c YOUR_COMMAND

  • `su:无效的 uid/gid '-c'` (2认同)

han*_*ach 6

在我的 Linux 上,我看到一个错误

adb shell "su -c '[your command goes here]'"
Run Code Online (Sandbox Code Playgroud)

su: 无效的 uid/gid '-c'

解决方案是在Linux上

adb shell su 0 '[your command goes here]'
Run Code Online (Sandbox Code Playgroud)