Android init.rc檔案簡單介紹
init.rc指令碼是由Android中linux的第一個使用者級進程init進行解析的。
init.rc 檔案並不是普通的設定檔,而是由一種被稱為“Android初始化語言”(Android Init Language,這裡簡稱為AIL)的指令碼寫成的檔案。
該檔案在ROM中是唯讀,即使有了root許可權,可以修改該檔案也沒有。因為我們在根目錄看到的檔案只是記憶體檔案的鏡像。也就是說,android啟動後,會將init.rc檔案裝載到記憶體。而修改init.rc檔案的內容實際上只是修改記憶體中的init.rc檔案的內容。一旦重啟android,init.rc檔案的內容又會恢複到最初的裝載。想徹底修改init.rc檔案內容的唯一方式是修改Android的ROM中的核心鏡像(boot.img)。
init.rc指令碼包括了檔案系統初始化、裝載的許多過程。init.rc的工作主要是:
1)設定一些環境變數
2)建立system、sdcard、data、cache等目錄(見案例1)
3)把一些檔案系統mount到一些目錄去,如,mount tmpfs tmpfs /sqlite_stmt_journals
4)設定一些檔案的使用者群組、許可權
5)設定一些線程參數
6)設定TCP緩衝大小
init指令碼的關鍵字(如mkdir,chmod,service等等)可以參考init進程的system/core/init/keyword.h檔案。
init.rc的使用方法,可以參考說明檔案system/core/init/readme.txt
如果想要修改啟動過程只需要修改init.c(system/core/init)或者init.rc裡的內容即可.
init.c與init.rc在源碼中的位置分別位於如下:
1 init.c : /system/core/init
2 init.rc : /system/core/rootdir
感謝閱讀,希望能協助到大家,謝謝大家對本站的支援!