1. 程式人生 > >Android系統初始化指令碼init.rc分析

Android系統初始化指令碼init.rc分析

位置sytem/core/rootdir

如果裝置商有其他的啟動個性化需求,可以參考HTC 的實現,相關的程式碼位於vendor\htc\dream-open\ init.trout.rc檔案中。(device/lenovo/apollo_td/init_sdmmc.rc)

“Services”的命令列引數如下:

 

關於init.rc指令碼的具體引數含義請參考system\core\init\readme.txt檔案。

從init.rc指令碼可知,在預設情況下Android採用的檔案系統為yaffs2。yaffs2 針對大容量的NAND Flash進行了優化,具有掛載時間短的優點。當然製造商可以改用其他覺得適合的檔案系統,目前另一個比較常用的檔案作業系統是UBIFS。UBIFS由IBM和Nokia 的工程師Thomas Gleixner,Artem Bityutskiy等人於2006 年發起。UBIFS在本書中不再詳述。

yaffs2 原始碼的下載地址為:

  1. http://www.aleph1.co.uk/cgi-bin/viewcvs.cgi/yaffs2.tar.gz?view=tar

在yaffs2 原始碼包的utils 目錄下包含了makeyaffsimage 和makeyaffs2image 兩個工具,前者用來製作yaffs 的檔案系統映像,後者用來製作yaffs2 的檔案系統映像。

製作yaffs2 的檔案系統映像的方法為:

  1. #mkyaffs2image dir imagename 

在Android中,yaffs2 的實現位於aurora\msm\msm\fs\yaffs2 目錄中。

當Android系統因為某種原因需要重啟時,啟動過程則要簡單的多,具體如下:

程式碼2-10 重啟過程

 
 
如果裝置商有其他的啟動個性化需求,可以參考HTC 的實現,相關的程式碼位於vendor\htc\dream-open\ init.trout.rc檔案中。

相關推薦

Android系統初始指令碼init.rc分析

位置sytem/core/rootdir 如果裝置商有其他的啟動個性化需求,可以參考HTC 的實現,相關的程式碼位於vendor\htc\dream-open\ init.trout.rc檔案中。(device/lenovo/apollo_td/init_sdmmc.rc)

Linux 系統初始指令碼

1.背景日常伺服器申請完畢後需要各種系統指標初始化,實施思路(編寫系統初始化指令碼,ansible 批量拷貝到目標機器執行); 初始化指令碼如下; #!/bin/bash function install_pkg(){ yum -y install l

一鍵linux系統初始指令碼

一、前言一般我們在安裝新的系統時,系統的一些預設配置對我們來說是不行的,所以我們要自定義初始化系統。 二、需求1)設定時區並把同步時間加入計劃任務2)禁用selinux3)清空原防火牆預設策略只保留ssh4)歷史命令顯示操作時間級使用者5)建立ALL許可權使用者並禁止root遠端登入6)禁止定時任務傳送郵件

VINS-Mono代碼分析與總結(二) 系統初始

exp 簡單 都是 最小值 cnblogs 特征向量 vision 還要 per VINS-Mono代碼註釋:https://github.com/gaochq/VINS-Mono/tree/comment 註釋不完整,可以一起交流。 參考文獻 1 VINS-Mono: A

青蛙學Linux—系統初始init及執行級

Linux系統的啟動首先從BIOS開始,接下來Linux的載入程式將核心映像載入到記憶體,進行核心初始化。在核心初始化的最後一步,就是啟動PID為1的init程序,這個程序是系統的第一個程序,負責啟動那些開機時需要啟動的服務。 大多數的Linux發行版的init系統都是和System V相容的,所以也被稱為

Minix3原始碼分析(2)——系統初始

minix3的啟動牽扯到幾次控制權轉移,它們發生在mpx386.s中的組合語言例程和start.c及main.c中的C語言例程之間。 彙編程式碼需要做許多工作,包括建立一個 棧幀 以便為C編譯器編譯的程式碼提供適當的環境,複製處理器所使用的表格來定義儲存器段,建

twemproxy0.4原理分析-系統初始過程原理分析

概述 本文介紹twemproxy的系統初始化過程。該過程包括以下幾個方面的內容: 讀取配置檔案,根據配置檔案初始化資料結構 和後臺伺服器建立連線,形成伺服器連線池 初始化事件處理框架,並設定最開始的事件處理函式 建立twemproxy的監聽socket,

Android 8.0 系統啟動流程之init.rc解析與service流程(七)

1、概述     上一篇文章中我們介紹了一下init.rc檔案中的語法規則,而本文將分析如何解析rc檔案,並對rc檔案中的某一service啟動過程進行分析。 2、解析.rc檔案 之前我們在文件中看到.rc檔案主要有根目錄下的 /init.rc ,以及

Android 8.0 系統啟動流程之init.rc語法規則(六)

1、概述     init經過前兩個階段後,已經建立了屬性系統和SELinux系統,但是init程序還需要執行很多其他的操作,還要啟動許多關鍵的系統服務,但是如果都是像屬性系統和SELinux系統那樣一行行程式碼去做,顯得有點雜亂繁瑣,而且不容易擴充套件,所以

Android Wi-Fi原始碼分析之wpa_supplicant初始(四):wpa_supplicant_init_iface函式分析

wpa_config_read分析 路徑為:external\wpa_supplicant_8\wpa_supplicant\config_file.c struct wpa_config * wpa_config_read(const char *na

Android Wi-Fi原始碼分析之wpa_supplicant初始(三):wpa_supplicant_add_iface函式分析

路徑為:external\wpa_supplicant_8\wpa_supplicant\wpa_supplicant.c /** * wpa_supplicant_add_iface - Add a new network interface * @

Lighttpd1.4.20原始碼分析 筆記 fdevent系統-初始

C程式在進行真正的編譯之前都要進行預編譯。 我們看看fdevent系統中的一些巨集: #if defined(HAVE_EPOLL_CTL) && defined(HAVE_SYS_EPOLL_H) # if defined HAVE_STD

swiper4初始/swiper-init/data-swiper

nbsp char date destroy str doc data lang pan 用data屬性初始化swiper <!DOCTYPE html> <html lang="en"> <head> <meta cha

linux文件系統 - 初始(一)

成員函數 cat 文章 記錄 inf htm 源代碼 設備驅動模型 proxy 術語表: struct task:進程 struct mnt_namespace:命名空間 struct mount:掛載點 struct vfsmount:掛載項 struct file:文件

linux文件系統 - 初始(三)

視圖 div 目錄遷移 oca script 方式 不能 輸出 str 一、目的 內核加載完initrd文件後,為掛載磁盤文件系統做好了必要的準備工作,包括掛載了sysfs、proc文件系統,加載了磁盤驅動程序驅動程序等。接下來,內核跳轉到用戶空間的init程序,

linux文件系統 - 初始(二)

軟鏈接 復制代碼 模式 文件的 操作 pop 臨時 console mini 一、目的 本文主要講述linux3.10文件系統初始化過程的第二階段:加載initrd。 initrd是一個臨時文件系統,由bootload負責加載到內存中,裏面包含了基本的可執

centos 6/7 系統初始腳本

centos6 7初始化腳本#!/bin/bash 初始化系統腳本 適用centos6 和centos7 # PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/binexport PATHcur_dir=$(pwd)gcc_

centos6系統初始

prefix yun base prot ethernet style ntpd iyu sys 系統:centos6 作用:配置ip、yum源、ntp、關閉selinux、iptables #!/bin/bash # configure network cat

一:Greenplum5.10.2 生產環境安裝配置 (系統初始、安裝準備)

添加 dead 有關 zlib 直接 dconf tables .rpm grub.conf 服務簡介: Greenplum Master Master只存儲系統元數據,業務數據全部分布在Segments上。其作為整個數據庫系統的入口,負責建立與客戶端的連接,SQL的解析並

ucosiii學習(2)——系統初始時所建立的任務

1.空閒任務OS_IdleTaskInit(p_err);      os_core.c中 系統在初始化過程中,會先建立一個空閒任務,在建立空閒任務時先初始化任務控制塊和連結串列,然後進行優先順序和就緒連結串列插入操作(OS_PrioInsert和OS_RdyLis