日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

android init(system/core/init/init.c)分析

發布時間:2025/3/21 编程问答 18 豆豆
生活随笔 收集整理的這篇文章主要介紹了 android init(system/core/init/init.c)分析 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

轉自:http://blog.csdn.net/wuyun2009/article/details/5656241

在Android系統啟動時,內核引導參數上一般都會設置“init=/init”,這樣的話,如果內核成功掛載了這個文件系統之后,首先運行的就是這個根目錄下的init程序。這個程序所了什么呢? 我們只有RFSC(Readthe Fucking Source code)!!

init程序源碼在Android官方源碼的system/core/init中,main在init.c里。我們的分析就從main開始。

init:

(1)安裝SIGCHLD信號。(如果父進程不等待子進程結束,子進程將成為僵尸進程(zombie)從而占用系統資源。因此需要對SIGCHLD信號做出處理,回收僵尸進程的資源,避免造成不必要的資源浪費。

(2)對umask進行清零。
? ? 何為umask,請看http://www.szstudy.cn/showArticle/53978.shtml

(3)為rootfs建立必要的文件夾,并掛載適當的分區
? ? /dev (tmpfs)
? ?? ???/dev/pts (devpts)
? ?? ???/dev/socket
? ? /proc (proc)
? ? /sys??(sysfs)

??(4)創建/dev/null和/dev/kmsg節點。

(5)解析/init.rc,將所有服務和操作信息加入鏈表。

??(6)從/proc/cmdline中提取信息內核啟動參數,并保存到全局變量。

(7)先從上一步獲得的全局變量中獲取信息硬件信息和版本號,如果沒有則從/proc/cpuinfo中提取,并保存到全局變量。

(8)根據硬件信息選擇一個/init.(硬件).rc,并解析,將服務和操作信息加入鏈表。
? ?? ?? ?在G1的ramdisk根目錄下有兩個/init.(硬件).rc:init.goldfish.rc和init.trout.rc,init程序會根據上一步獲得的硬件信息選擇一個解析。

(9)執行鏈表中帶有“early-init”觸發的的命令。

(10)遍歷/sys文件夾,是內核產生設備添加事件(為了自動產生設備節點)。

(11)初始化屬性系統,并導入初始化屬性文件。

(12)從屬性系統中得到ro.debuggable,若為1,則初始化keychord監聽。

(13)打開console,如果cmdline中沒有指定console則打開默認的/dev/console。

(14)讀取/initlogo.rle(一張565 rle 壓縮的位圖),如果成功則在/dev/graphics/fb0顯示Logo,如果失敗則將/dev/tty0設為TEXT模式并打開/dev/tty0,輸出文本“ANDROID”字樣。

(15)判斷cmdline 中的參數,并設置屬性系統中的參數:
? ?? ?? ?1、 如果 bootmode為
? ?? ?? ?- factory,設置ro.factorytest值為1
? ?? ?? ?- factory2,設置ro.factorytest值為2
? ?? ?? ?- 其他的設ro.factorytest值為0
? ?? ? 2、如果有serialno參數,則設置ro.serialno,否則為""
? ?? ? 3、如果有bootmod參數,則設置ro.bootmod,否則為"unknown"
? ?? ? 4、如果有baseband參數,則設置ro.baseband,否則為"unknown"
? ?? ? 5、如果有carrier參數,則設置ro.carrier,否則為"unknown"
? ?? ? 6、如果有bootloader參數,則設置ro.bootloader,否則為"unknown"
? ?? ? 7、通過全局變量(前面從/proc/cpuinfo中提取的)設置ro.hardware和ro.version。

(16)執行所有觸發標識為init的action。

(17)開始property服務,讀取一些property文件,這一動作必須在前面那些ro.foo設置后做,以便/data/local.prop不能干預到他們。
? ?? ?- /system/build.prop
? ?? ?- /system/default.prop
? ?? ?- /data/local.prop
? ?? ?- 在讀取默認的property后讀取presistent propertie,在/data/property中

(18)為sigchld handler創建信號機制。

(19)確認所有初始化工作完成:
? ?? ?? ? device_fd(device init 完成)
? ?? ?? ? property_set_fd(property server start 完成)
? ?? ?? ? signal_recv_fd (信號機制建立)

(20) 執行所有觸發標識為early-boot的action

(21) 執行所有觸發標識為boot的action

(22)基于當前property狀態,執行所有觸發標識為property的action

(23)注冊輪詢事件:
? ?? ?? ???- device_fd
? ?? ?? ???- property_set_fd
? ?? ?? ???-signal_recv_fd
? ?? ?? ???-如果有keychord,則注冊keychord_fd

(24)如果支持BOOTCHART,則初始化BOOTCHART

(25)進入主進程循環:
? ?? ?- 重置輪詢事件的接受狀態,revents為0
? ?? ?- 查詢action隊列,并執行。
? ?? ?- 重啟需要重啟的服務
? ?? ?- 輪詢注冊的事件
? ?? ?? ? - 如果signal_recv_fd的revents為POLLIN,則得到一個信號,獲取并處理
? ?? ?? ? - 如果device_fd的revents為POLLIN,調用handle_device_fd
? ?? ?? ? - 如果property_fd的revents為POLLIN,調用handle_property_set_fd
? ?? ?? ? - 如果keychord_fd的revents為POLLIN,調用handle_keychord

總結

以上是生活随笔為你收集整理的android init(system/core/init/init.c)分析的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 成人欧美视频在线观看 | 怒海潜沙秦岭神树 | 日本一级黄| 国产日韩欧美精品一区二区 | 不卡av一区二区 | jizz18国产| 天天舔天天爽 | 精品久久久久久久久久久久久久久久 | 大奶av| www久久久久 | 奇米第四色在线 | 四虎婷婷| 日韩三级观看 | 欧美黑人精品一区二区 | 国产精品欧美激情在线 | 日本精品一二三区 | 国产精品老女人 | 久久久精品人妻无码专区 | 西欧free性满足hd老熟妇 | 国产一级片免费播放 | 色黄网站 | 国内一区二区三区 | 超碰免费在线97 | 97精品熟女少妇一区二区三区 | 午夜成人免费视频 | 女人高潮被爽到呻吟在线观看 | www.激情五月.com | 精品欧美日韩 | 91精品视频国产 | 日本少妇bbwbbw精品 | 精品少妇人妻av免费久久久 | 插吧插吧网 | jul023被夫上司连续侵犯 | 日韩在线不卡一区 | jav中文字幕 | 久久久国产一区二区三区 | 奇米狠狠| 久久9久久 | 亚洲男人天堂2024 | 中文字幕精品久久久久人妻红杏ⅰ | 精品国产乱码 | 91精品久久久久久久久中文字幕 | 色爽爽爽 | 一区二区伊人 | 色涩av | 久久99精品久久久久久园产越南 | 成人三级黄色 | 婷婷国产 | 殴美一级视频 | 免费观看的毛片 | 四季av综合网站 | 日韩欧美在线视频免费观看 | 欧美一区欧美二区 | 欧洲色网 | 亚洲无人区码一码二码三码 | 男女av| 又黄又骚又爽 | 欧美精品乱码视频一二专区 | 伊人网伊人网 | 国产精品骚 | 国产精品视频观看 | 一本之道久久 | 免费一级毛片麻豆精品 | 国产精品成人国产乱一区 | 亚洲天堂手机在线观看 | 国产色av | 美女久久久久久久久久 | 欧美视频在线一区二区三区 | 激情国产精品 | 午夜精品一区二区三区在线观看 | 熟妇人妻久久中文字幕 | 清纯唯美亚洲激情 | 亚洲爱视频 | 人妻射精一区二区 | 美女扒开腿让男人 | 无遮挡又爽又刺激的视频 | 欧美性一区 | 精品熟妇视频一区二区三区 | 国模精品视频一区二区 | 伊人av网站 | 美丽的姑娘观看在线播放 | 无码人妻aⅴ一区二区三区有奶水 | 狠狠干夜夜草 | 色哟哟黄色 | 成人av一区二区在线观看 | 狠狠爱夜夜爱 | 91美女精品网站 | 久久精品a亚洲国产v高清不卡 | ass亚洲尤物裸体pics | 日韩最新中文字幕 | 免费一级片视频 | 欧美精品一区二区在线播放 | 我要看一级片 | 无码日韩精品一区二区 | 久久久久亚洲av无码专区喷水 | 成人h视频在线观看 | 新婚之夜玷污岳丰满少妇在线观看 | 激情国产精品 | 亚洲性喷水 |