网站云服务器,共享的网站备案,手机论坛app,导视设计网站[Android] 在開機的時候#xff0c;執行你想要的 shell script雖然 init.rc 很好用#xff0c;但還是有其缺陷... 像是我要 echo 某些字串到檔案時#xff0c;他就做不到了 :(所以可以搭配一個 .sh 的檔案#xff0c;讓他開機的時候去執行這個 .sh 即可。建議修改方式…[Android] 在開機的時候執行你想要的 shell script雖然 init.rc 很好用但還是有其缺陷... 像是我要 echo 某些字串到檔案時他就做不到了 :(所以可以搭配一個 .sh 的檔案讓他開機的時候去執行這個 .sh 即可。建議修改方式[1] 在AndroidBoard.mk 裡面將你的 .sh 包起去file :$(TARGET_OUT)/etc/my.shALL_PREBUILT $(file)$(file) : $(LOCAL_PATH)/my.sh| $(ACP)$(transform-prebuilt-to-target)[2] 在你想要加進去的 init.rc 中加入下面這段on bootexec /system/bin/sh/system/etc/my.sh這樣子就可以嚕 ^^ 裡面用粗體紅字的就是要注意的地方囉在应用程序启动之前往往需要在Android启动过程中去对系统做一些设置如修改某些文件夹的属主和文件的权限本文实现在init.rc中调用shell脚本而所有对系统资源的修改和配置都在此shell脚本中实现。1、在system/core/rootdir/etc/init.djstava.sh脚本文件以开机获取IP地址为例脚本内容可如下#! /system/bin/shifconfig eth0 192.168.18.200 netmask 255.255.255.0 uproute add default gw 192.168.18.1 dev eth02、修改system/core/rootdir/Android.mk文件,增加语句copy_from etc/init.djstava.sh3、修改device/$(硬件平台)/init.rc文件增加语句将mount yaffs2 mtdsystem /system ro remount改为mount yassf2 mtdsystem /system rw remountchmod 755 /system/etc/init.djstava.shchown root shell /system/etc/init.djstava.shservice eth0_set /system/etc/init.djstava.shoneshot4、设置dns修改system/core/rootdir/init.rc在setprop net.tcp.buffersize.gprs命令后增加如下语句setprop net.dns1 211.167.97.67setprop net.dns2 202.96.209.1331、在system/core/rootdir/etc/下添加脚本文件命名为myshell.sh脚本内容可如下#! /system/bin/sh增加语句copy_from etc/myshell.sh3、修改相应的init.rc文件增加语句将mount yaffs2 mtdsystem /system ro remount 改为mount yassf2 mtdsystem /system rw remount//以下的内容一定不要乱放一定把它们放在跟它们类似的命令旁边如service就放在最后。chmod 755 /system/etc/myshell.shchown root shell /system/etc/myshell.shservice myshell /system/etc/myshell.shoneshotinit脚本的关键字可以参考init进程的system/core/init/keyword.h文件。init.rc的使用方法可以参考说明文件system/core/init/readme.txt参考Android pppd_gprs脚本启动过程Android: 启动init.rc 中service的权限问题