DynamicSystemService IStorageManager NetworkManagementService IpSecService VpnManagerService VcnManagementService NetworkStatsService NetworkPolicyManagerService NsdService WindowManagerService Seria
本站欢迎大家分享优质的源码和程序, 本站内容来源于作者发布和网络转载,如有版权相关问题请及时与我们取得联系,我们将立即删除。
今日推荐
活动倒计时:00:00:00
188
水晶
188
水晶
19
水晶
180
水晶
最新动态
启动一些基本服务,在startBootstrapServices中没有依赖的。 SystemConfigService BatteryService GpuService
启动系统启动所需的一小部分关键服务,这些服务具有复杂的相互依赖关系,所以会在此将他们全部初始化。 列出几个常见的: PackageManagerService ActivityTaskManagerService ActivityManagerService PowerManagerService DisplayManagerService SensorService
我们在init.rc文件中可以看到zygote的启动流程,init.cpp中配置了late-init事件,然后在执行late-init事件的时候,触发了zygote-start事件,然后在zygote-start的时候,执行了start zygote以及start zygote_secondary启动了zygote进程。 zygote进程对应的bin文件是/system/bin/app_proc
我们先看init.rc文件的具体内容。 import /init.environ.rc
import /system/etc/init/hw/init.usb.rc
import /init.${ro.hardware}.rc
import /vendor/etc/init/hw/init.${ro.hardware}.rc
import /system/etc/init/hw/init.usb
SecondStageMain 函数实现是在system/core/init/init.cpp中,该阶段主要做的事情是初始化property系统,解析init.rc。 然后再执行early init action,执行init action, 执行 early-boot and boot actions。 其中/init.rc是主要的.rc文件,由init可执行文件在开始执行时加载。它负责系统的
这个函数实现在system/core/init/selinux.cpp中。主要就是启动SElinux, 然后成功后进入到SecondStageMain。 int SetupSelinux(char** argv) {
MountMissingSystemPartitions();
SelinuxSetupKernelLogging();
LOG(INFO) << "Open
因为启动时并没有带任何参数,所在最先执行的是FirstStageMain,FirstStageMain函数实现在:system/core/init/first_stage_init.cpp。 int FirstStageMain(int argc, char** argv) {
if (!DoFirstStageMount(!created_devices)) {
LOG(FATAL) &
首先Bootloader引导程序启动完Linux内核后,会加载各种驱动和数据结构,当有了驱动以后,开始启动Android系统,同时会加载用户级别的第一个进程init。启动该进程首先进入到system/core/init/目录下的main.cpp文件中,执行main方法。 int main(int argc, char** argv) {
#if __has_feature(address_sa
软件排行
热门教程