安卓sh腳本
『壹』 sh腳本怎麼實現安卓手機的移動數據的打開與關閉,語句該怎麼寫
svc data disable
svc data enable
啊哈哈
『貳』 安卓.sh和.rc腳本的區別
rc是android初始化腳本,用android init language編寫,通過init程序來執行。sh是linux裡面的shell腳本,可以在sh或者 bash裡面執行。
在Android中使用啟動腳本init.rc,可以在系統的初始化中進行簡單的操作。
init.rc啟動腳本路徑:system/core/rootdir/init.rc
內容:
Commands:命令
Actions:動作
Triggers:觸發條件
Services:服務
Options:選項
Properties:屬性
Commands是一些基本操作。如:
mkdir /system
mkdir /data 0771 system system
mkdir /persist 0771 system system
devwait /dev/block/mmcblk0p12
mount ext3 /dev/block/mmcblk0p
Action表示一系列命令,通常在Triggers中調用,如:
on init //表示一個觸發條件
sysclktz 0
loglevel 3
# setup the global environment
export PATH /sbin:/system/sbin:/system/bin:/system/xbin
export LD_LIBRARY_PATH /system/lib
export ANDROID_BOOTLOGO 1
Services通常表示啟動一個可執行程序,Options是服務的附加內容,用於配合服務使用。
service vold /system/bin/vold //vold是服務名稱,/system/bin/vold是所對應的可執行程序。
socket vold stream 0660 root mount //socket是配合服務使用的選項
ioprio be 2
service netd /system/bin/netd
socket netd stream 0660 root system
配合服務使用的選項有socket,user,group,oneshot。
oneshot表示該服務只啟動一次,而如果沒有oneshot選項,這個可執行程序將一直存在——如果可執行程序被殺死,則會重新啟動。
Properties是系統中使用的一些值,可以進行設置和讀寫。
setprop ro.HIDDEN_APP_MEM 5120 //setprop用於設置屬性
setprop ro.CONTENT_PROVIDER_MEM 5632
setprop ro.EMPTY_APP_MEM 6144
...
on property:ro.kernel.qemu=1 //on property用於判斷屬性
start adbd
這里的屬性在整個android系統運行中都是一致的。
init腳本的關鍵字可以參考init進程中的system/core/init/keyword.h文件。如:
KEYWORD(chroot, COMMAND, 1, do_chroot) //chroot是命令,do_chroot()是調用的函數,這個函數在init進程中的system/core/init/builtins.c文件中定義。
『叄』 如何編寫安卓程序執行shell腳本
先要確認 你在腳本是否能正常在adb.exe窗口 環境下正常執行 腳本讀寫許可權要注意的
如果能正常執行那麼
... oncreate(){
test3()
}
private void test3() {
execCommand1("system/bin/xxxx.sh");
}
public boolean execCommand1(String cmd) {
Process process = null;
try {
process = Runtime.getRuntime().exec(cmd);
process.waitFor();
} catch (Exception e) {
return false;
} finally {
try {
process.destroy();
} catch (Exception e) {
}
}
return true;
}
『肆』 安卓 怎麼獲取sh腳本目錄並cd到腳本目錄
1.修改啟動腳本init.rc在最後添加 #===============================add my shellscript service sysinit /system/xbin/busybox run-parts /system/etc/init.d oneshot 上面busybox工具路徑要根據自己的系統寫 2.在system/etc下創建init.d目錄,在此目錄下添加寫好的腳本去掉後綴.sh,添加可執行許可權 3.重啟ok