使用adb在android设备上运行shell脚本
我们可以手动运行:使用adb在android设备上运行shell脚本,android,shell,adb,Android,Shell,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 & 但是,我们需要能够在编译程序的计算机上从bash脚本运行该脚本 我试过: 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 &
但是,我们需要能够在编译程序的计算机上从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 &"
但是,由于我们正在进入su外壳,这不起作用
你能提出一个解决方案吗?试试这个:
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 &'"
也可以简化它:
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 &'"
这是因为您可以为一个作业设置环境变量,只需在行中预先添加它们,而不是导出此、导出此表单。尝试以下方法:
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 &'"
也可以简化它:
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 &'"
这是因为您可以通过在行中预先设置环境变量来为一个作业设置环境变量,而不是导出此、导出此表单。在什么意义上它“不起作用”?该命令在adb shell中结束,之后不执行命令。当你调用su时,我的代码会让“su”在adb shell中运行,而不是下一条命令。从什么意义上说,它“不工作”?该命令最终在adb shell中运行,之后不会执行命令。当你调用su时,我的代码会让“su”在adb shell中运行,而不是下一个命令[1]杀死了su-c“chmod 66…设备不再被识别!仍然崩溃了…[1]杀死了su-c“chmod 66…”。。。设备不再被识别!仍然崩溃。。。