android init second stage(2) 西克莱特 一个啥也不会的人 来自专栏 · android相关 3 人赞同了该文章 目录 收起 4.等待冷启动结束 4.1 StartWaiting 4.2 propertychange 4.3 CheckAndResetWait 5.启动组合按键功能 5.1 HandleKeychord 6.1 触发init 6.1 schedtune调度器初始化 6.2 cpuctl调度器初始化 6.3 ...
android init second stage(1) 西克莱特 一个啥也不会的人 目录 收起 1.设置cgroup 1.1 SetupCgroupsAction 1.2 CgroupSetup 2.建立与snapuserd的连接 2.1 ConnectEarlyStageSnapuserdAction 3.early-init 3.1 禁用keyborad的功能 3.2 挂载bootstrap引导程序 3.3 启动ueventd 3.4 运行apexd引导程序 3.5 生成...
}// Mount extra filesystems required during second stage init// 挂载apex和linkerconfig的文件系统,因为根目录是只读的,所以需要把apex和linkerconfig挂载到tmpfs才能创建文件夹MountExtraFilesystems();// Now set up SELinux for second stage.SelinuxSetupKernelLogging(); SelabelInitialize(); SelinuxRestore...
整体代码: system/core/init/init.cpp int SecondStageMain(int argc, char** argv) { if (REBOOT_BOOTLOADER_ON_PANIC) { InstallRebootSignalHandlers(); } SetStdioToDevNull(argv); InitKernelLogging(argv); LOG(INFO) << "init second stage started!"; // Set init and its forked children's oom...
21 bool is_first_stage = (getenv("INIT_SECOND_STAGE") == nullptr); 22 23 if (is_first_stage) { 24 boot_clock::time_point start_time = boot_clock::now(); 25 26 // Clear the umask. 27 umask(0); 28 29 clearenv(); 30 setenv("PATH", _PATH_DEFPATH, 1); ...
SecondStageMain。启动第二阶段。 代码语言:javascript 代码运行次数:0 运行 AI代码解释 intmain(int argc,char**argv){#if__has_feature(address_sanitizer)__asan_set_error_report_callback(AsanReportCallback);#elif__has_feature(hwaddress_sanitizer)__hwasan_set_error_report_callback(AsanReportCallback)...
InitKernelLogging(argv); LOG(INFO) << "init second stage started!"; ... //创建一块共享的内存空间,用于属性服务【见小节5.1】 property_init(); ... //初始化epoll功能 epoll_fd = epoll_create1(EPOLL_CLOEXEC); if (epoll_fd == -1) { PLOG(FATAL) << "epoll_create1 failed"; } //初...
intSecondStageMain(intargc,char** argv) { #ifdef JOURNEY_FEATURE_ROOT_MODE initJourneyRootMode(); #endif /* *init crash时重启引导加载程序 *这个函数主要作用将各种信号量,如SIGABRT,SIGBUS等的行为设置为SA_RESTART,一旦监听到这些信号即执行重启系统 ...
(); return SubcontextMain(argc, argv, &function_map); } if (!strcmp(argv[1], "selinux_setup")) { return SetupSelinux(argv); ###selinux相关的 } if (!strcmp(argv[1], "second_stage")) { return SecondStageMain(argc, argv); ## 第二阶段 } } return FirstStageMain(argc, argv);...
intmain(intargc,char** argv){/* 01. 判断及增加环境变量 */boolis_first_stage = (getenv("INIT_SECOND_STAGE") == nullptr);if(is_first_stage) {// 判断是否是系统启动的第一阶段(第一次进入:true)boot_clock::time_point start_time = boot_clock::now();// 用于记录启动时间// Clear the ...