Fork me on GitHub
侧边栏
摘要: 本文接着上文开始往下讲 1. SecondStageMain 此时就到了init的第二阶段。 int main(int argc, char** argv) { ... //执行此处 if (!strcmp(argv[1], "second_stage")) { return SecondStage 阅读全文
posted @ 2025-07-29 21:38 yooooooo 阅读(66) 评论(0) 推荐(0)
摘要: 本文接着上文开始讲解,上文中最后一步执行后会执行init启动过程中的第二步SetupSelinux(Selinux配置阶段),这样又会走到main.cpp中的main方法。 1. SetupSelinux 由于上一篇中最后一步在重新执行init的时候携带了参数selinux_setup,所以此处会走 阅读全文
posted @ 2025-07-29 21:24 yooooooo 阅读(51) 评论(0) 推荐(0)
摘要: 开机有好几种方式启动,本文主要讲的是按Power键开机流程。 本文参考AOSP 12原生代码,链接为:AOSP 12 Searchhttp://aospxref.com/android-12.0.0_r3/ 1. BootLoader加载 当按下设备电源键时,最先运行的就是 bootloader(固 阅读全文
posted @ 2025-07-29 20:58 yooooooo 阅读(119) 评论(0) 推荐(1)
摘要: 通用内核映像 (GKI) 可能不包含使设备能够装载分区所需的驱动程序支持。为了使设备能够装载分区并继续启动,增强了第一阶段 init,用于加载 ramdisk 上的内核模块。ramdisk 被拆分为通用 ramdisk 和供应商 ramdisk。供应商内核模块存储在供应商 ramdisk 中。内核模 阅读全文
posted @ 2025-07-29 20:33 yooooooo 阅读(44) 评论(0) 推荐(0)