使用adb在Android设备上运行shell脚本

Nat*_*ugh 0 shell android adb

手动,我们可以运行:

adb shell
su
chmod 666 /dev/graphics/fb0
export CLASSPATH=/data/local/device.jar
export LD_LIBRARY_PATH=/data/local
exec app_process /system/bin com.device.client.Main /data/local/device.conf &
Run Code Online (Sandbox Code Playgroud)

但是,我们需要能够从编译程序的计算机上的bash脚本运行它.

我试过了:

adb shell "su
    && chmod 666 /dev/graphics/fb0
    && export CLASSPATH=/data/local/device.jar
    && export LD_LIBRARY_PATH=/data/local
    && exec app_process /system/bin com.device.client.Main /data/local/device.conf &"
Run Code Online (Sandbox Code Playgroud)

但是因为我们正在进入su shell,所以这不起作用.

你能建议一个解决方案吗?

Joh*_*nck 6

试试这个:

adb shell "su -c '
chmod 666 /dev/graphics/fb0
&& export CLASSPATH=/data/local/device.jar
&& export LD_LIBRARY_PATH=/data/local
&& exec app_process /system/bin com.device.client.Main
    /data/local/device.conf &'"
Run Code Online (Sandbox Code Playgroud)

也可以简化它:

adb shell "su -c '
chmod 666 /dev/graphics/fb0 &&
CLASSPATH=/data/local/device.jar
LD_LIBRARY_PATH=/data/local
app_process /system/bin com.device.client.Main
    /data/local/device.conf &'"
Run Code Online (Sandbox Code Playgroud)

这是因为您可以为一个作业设置环境变量,只需将它们添加到行上,而不是导出它,导出该表单.