Android啟動腳本init.rc(2)


在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文件中定義。

 

init.rc使用方法,見說明文件system/core/init/readme.txt


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM