android开机后自动执行shell,init.rc启动 shell脚本
[Android] 在開機的時候,執行你想要的 shell script
雖然 init.rc 很好用,但還是有其缺陷... 像是我要 echo 某些字串到檔案時,他就做不到了 :(
所以可以搭配一個 .sh 的檔案,讓他開機的時候去執行這個 .sh 即可。
建議修改方式:
[1] 在AndroidBoard.mk 裡面將你的 .sh 包起去
file :=
$(TARGET_OUT)/etc/my.sh
ALL_PREBUILT += $(file)
$(file) : $(LOCAL_PATH)/
my.sh| $(ACP)
$(transform-prebuilt-to-target)
[2] 在你想要加進去的 init.rc 中加入下面這段:
on boot
exec /system/bin/sh
/system/etc/my.sh
這樣子就可以嚕 ^^ 裡面用粗體紅字的就是要注意的地方囉
在應用程序啟動之前,往往需要在Android啟動過程中去對系統做一些設置,如修改某些文件夾的屬主和文件的權限,本文實現在init.rc中調用shell腳本,而所有對系統資源的修改和配置都在此shell腳本中實現。
1、在system/core/rootdir/etc/init.djstava.sh腳本文件,以開機獲取IP地址為例,腳本內容可如下
#! /system/bin/sh
ifconfig eth0 192.168.18.200 netmask 255.255.255.0 up
route add default gw 192.168.18.1 dev eth0
2、修改system/core/rootdir/Android.mk文件,增加語句
copy_from += etc/init.djstava.sh
3、修改device/$(硬件平臺)/init.rc文件,增加語句
將
mount yaffs2 mtd@system /system ro remount
改為
mount yassf2 mtd@system /system rw remount
chmod 755 /system/etc/init.djstava.sh
chown root shell /system/etc/init.djstava.sh
service eth0_set /system/etc/init.djstava.sh
oneshot
4、設置dns,修改system/core/rootdir/init.rc,在setprop net.tcp.buffersize.gprs命令后增加如下語句
setprop net.dns1 211.167.97.67
setprop net.dns2 202.96.209.133
1、在system/core/rootdir/etc/下添加腳本文件,命名為myshell.sh,腳本內容可如下
#! /system/bin/sh
增加語句
copy_from += etc/myshell.sh
3、修改相應的init.rc文件,增加語句
將mount yaffs2 mtd@system /system ro remount 改為
mount yassf2 mtd@system /system rw remount
//以下的內容一定不要亂放,一定把它們放在跟它們類似的命令旁邊,如service就放在最后。
chmod 755 /system/etc/myshell.sh
chown root shell /system/etc/myshell.sh
service myshell /system/etc/myshell.sh
oneshot
init腳本的關鍵字可以參考init進程的system/core/init/keyword.h文件。
init.rc的使用方法,可以參考說明文件system/core/init/readme.txt
參考:
Android pppd_gprs腳本啟動過程
Android: 啟動init.rc 中service的權限問題
總結
以上是生活随笔為你收集整理的android开机后自动执行shell,init.rc启动 shell脚本的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: docker安装php怎么修改配置,怎么
- 下一篇: oracle 01405 提取的值为nu