2012-01-28 137 views
1

我想按程序执行此shell命令。我该怎么做?以编程方式执行shell命令

cd C:\android-sdk\platform-tools 
adb shell 
su 
mount -t rfs -o remount,rw /dev/block/stl9 /system 
cp /sdcard/MyApp.apk /system/app/MyApp.apk 

回答

2

您应该在.bat文件中编写您在此使用的确切语法,然后执行它。

+0

非常感谢! – XXX 2012-01-28 13:26:20

+0

不客气:) – Rotemmiz 2012-01-28 13:28:59

+0

如果您有权访问正在运行该程序的系统,但是如果您的编程将在未知系统上运行,那么它很可能不会拥有该批处理文件。你可以通过编程创建它,然后执行它,但这可能不是实现此目的的最佳方式。 – 2013-03-04 18:55:45

7

我们可以使用Runtime类执行shell命令。

Runtime.getRuntime().exec("ls"); 

上面的代码段将创建一个天然过程对于给定的命令LS,将返回相同的过程,过程对象。

有关它的详细信息Check here

1

看来您是Microsoft站上使用批处理会给你会这样考虑:

1日法:保持你的站,并发送有用的命令

cd C:\android-sdk\platform-tools 
adb shell "su -c 'mount -o rw,remount /system'" 
adb shell "su -c 'cp /sdcard/MyApp.apk /system/app/MyApp.apk'" 
adb shell "su -c 'mount -o ro,remount /system'" 

唯一的是你将发射和关闭3个炮弹,但它不是真的和问题。

第二个方法:保持你的站上SD卡发送sh脚本,它

cd C:\android-sdk\platform-tools 
adb push myscript.sh /sdcard/ 
adb shell "su -c 'sh /sdcard/myscript.sh'" 

与 “myscript.sh” 执行包含:

#!/system/bin/sh 
mount -o rw,remount /system 
cp /sdcard/MyApp.apk /system/app/MyApp.apk 
mount -o ro,remount /system 

记住,Android的shell脚本创建在微软站上有CRLF行结束! 您需要获得LF才能像UNIX系统一样在UNIX上结束您的行!