Android系统10 RK3399 init进程启动(四十七) Android init 进程整体代码逻辑简述
配套系列教学视频链接:
安卓系列教程之ROM系统开发-百问100ask
说明
系统:Android10.0
设备: FireFly RK3399 (ROC-RK3399-PC-PLUS)
前言
本文简单描述一下android init祖先进程启动的基本执行流程,让大家有一个整体认识,由浅入深, 后面再展开详细说明。
整体逻辑:

主要分成三个部分:
1, 第一阶段: 执行在 ramdisk 中, 主要创建必须的文件夹, 挂载虚拟文件系统, 挂载 system,vendor 分区。
2, selinux 初始化: 第一阶段的 selinux 初始化, 完成策略二进制文件的加载, 并设置默认 selinux 模式。
3, 第二阶段: 重点完成属性初始化, 启动 rc 脚本的解析和执行, 建立 epoll 机制监控各种事项。、
代码如下: system/core/init/main.cpp
int main(int argc, char** argv) {
#if __has_feature(address_sanitizer)__asan_set_error_report_callback(AsanReportCallback);
#endif//init和ueventd共享同一套代码, 该进程负责和内核进行通信, 监控所有设备的增加和删除,修改//并创建设备,设置对应的设备权限if (!strcmp(basename(argv[0]), "ueventd")) {return ueventd_main(argc, argv);}if (argc > 1) {// /system/bin/init subcontexif (!strcmp(argv[1], "subcontext")) {android::base::InitLogging(argv, &android::base::KernelLogger);const BuiltinFunctionMap function_map;//读取所有安全上下文文件内容, 并用一个句柄来表示。// 当需要设置文件的安全上下文时, 内核就可以通过这个句柄来配置context//并进入一个死循环-接受socket的命令,并做响应return SubcontextMain(argc, argv, &function_map);}///system/bin/init selinux_setup 第一阶段完成之后,就直接跳到该阶段if (!strcmp(argv[1], "selinux_setup")) {return SetupSelinux(argv);}/////system/bin/init second_stage ,selinux_setup结束之后就进入第二阶段if (!strcmp(argv[1], "second_stage")) {return SecondStageMain(argc, argv);}}// 第一阶段代码return FirstStageMain(argc, argv);
}
相关文章:

Android系统10 RK3399 init进程启动(四十七) Android init 进程整体代码逻辑简述
配套系列教学视频链接:安卓系列教程之ROM系统开发-百问100ask说明系统:Android10.0设备: FireFly RK3399 (ROC-RK3399-PC-PLUS)前言本文简单描述一下android init祖先进程启动的基本执行流程,让大家有一个整…...
CSDN 编程竞赛三十二期题解
竞赛总览 CSDN 编程竞赛三十二期:比赛详情 (csdn.net) 竞赛题解 题目1、传奇霸业 传奇霸业,是兄弟就来干。小春(HP为a)遇到了一只黄金哥布林(HP为x)。小春每次能对哥布林造成b点伤害,哥布林…...
Kubernetes 中的 Pod Hook
Pod Hook 我们知道Pod是Kubernetes集群中的最小单元,而 Pod 是有容器组组成的,所以在讨论 Pod 的生命周期的时候我们可以先来讨论下容器的生命周期。 实际上 Kubernetes 为我们的容器提供了生命周期钩子的,就是我们说的Pod Hook,…...

Linux操作系统安装MySQL(rpm安装)
Linux操作系统安装MySQL(rpm安装)1 背景2 环境说明3 准备工作3.1 端口查看3.2 检查安装3.3 创建MySQL用户和组4 MySQL安装4.1 下载MySQL4.2 解压安装包4.3 安装MySQL4.4 初始化MySQL4.5 启动MySQL4.6 设置MySQL初始密码4.6.1 查看数据库初始密码4.6.2 更…...

MySQL高级第二讲
目录 二、MySQL高级02 2.1 触发器 2.1.1 触发器介绍 2.1.2 创建触发器 2.2 MySQL的体系结构 2.3 存储引擎 2.3.1 存储引擎概述 2.3.2 各种存储引擎特性 2.3.3 InnoDB 2.3.4 MyISAM 2.3.5 MEMORY 2.3.6 MERGE 2.3.7 存储引擎的选择 2.4 优化sql 2.4.1 查看sql执行…...
凸优化专题1
多变量函数的求导与求梯度/矩阵求导 1. 导数 定义: 设f:Rn→Rm,且x∈intdomf,则f在点x的导数(或称Jacobian)记为矩阵Df(x)∈Rmnf:\R^n \rightarrow \R^m, 且x\in \mathbf{int}\ \mathbf{dom} f, 则f 在点x的导\\数(或称Jacobian)记为矩阵 Df(x) \in \R^{m\times n}f:Rn→Rm,且…...

【蓝桥杯每日一题】递推算法
🍎 博客主页:🌙披星戴月的贾维斯 🍎 欢迎关注:👍点赞🍃收藏🔥留言 🍇系列专栏:🌙 蓝桥杯 🌙我与杀戮之中绽放,亦如黎明的花…...

Unity性能优化: 性能优化之内存篇
前言 本文和传统的内存优化不一样,不是讲如何降低内存占用,而是讲编程开发中要注意的内存问题以及一些内存技术的演变与原理。 对惹,这里有一个游戏开发交流小组,希望大家可以点击进来一起交流一下开发经验呀 1: Application进程…...

华为OD机试题,用 Java 解【内存资源分配】问题
最近更新的博客 华为OD机试题,用 Java 解【停车场车辆统计】问题华为OD机试题,用 Java 解【字符串变换最小字符串】问题华为OD机试题,用 Java 解【计算最大乘积】问题华为OD机试题,用 Java 解【DNA 序列】问题华为OD机试 - 组成最大数(Java) | 机试题算法思路 【2023】使…...

微服务之Nacos注册与配置
🏠个人主页:阿杰的博客 💪个人简介:大家好,我是阿杰,一个正在努力让自己变得更好的男人👨 目前状况🎉:24届毕业生,奋斗在找实习的路上🌟 …...

Android 动画详解
Android动画的分类与使用学习Android必不可少的就是动画的使用了,在Android版本迭代的过程中,出现了很多动画框架,这里做一个总结。Android动画类型分类逐帧动画【Frame Animation】,即顺序播放事先准备的图片。补间动画【Tween A…...

Linux -- 程序 进程 线程 概念引入
程序与进程 :程序 :什么是程序 ???伪官方 : 二进制文件,文件存储在磁盘中,例如 /usr/bin 目录下 。 是静态。 简单讲 :# 我们都学习了语言,比如下面这串代…...

Android ART dex2oat
一、什么是dex2oat Dex2oat (dalvik excutable file to optimized art file) ,是一个对 dex 文件进行编译优化的程序,在我们的 Android 手机中的位置是 /system/bin/dex2oat,对应的源码路径为 android/art/dex2oat/dex2oat.cc,通…...

「RISC-V Arch」RISC-V 规范结构
日期:20230228 规范分类 根据 RISC-V 设计哲学,其规范文档也是高度模块化的: ISA 规范(2 篇) 非特权规范特权规范 非 ISA 规范(6篇) Trace规范ABI 规范外部调试规范PLIC 规范SBI 规范UEFI 协…...
【C】线程控制
创建线程 #include <pthread.h>int pthread_create(pthread_t * thread,const pthread_attr_t * attr,void *(*start_routine)(void*), void * arg);返回值:成功返回0,失败返回错误号。 thread:成功返回后,新创建的线程的…...

Maven工程打jar包的N种方式
Maven工程打jar包 一、IDEA自带打包插件二、maven插件打包2.1 制作瘦包(直接打包,不打包依赖包)2.2 制作瘦包和依赖包(相互分离)2.3 制作胖包(项目依赖包和项目打为一个包)2.4 制作胖包…...

一文了解GPU并行计算CUDA
了解GPU并行计算CUDA一、CUDA和GPU简介二、GPU工作原理与结构2.1、基础GPU架构2.2、GPU编程模型2.3、软件和硬件的对应关系三、GPU应用领域四、GPUCPU异构计算五、MPI与CUDA的区别一、CUDA和GPU简介 CUDA(Compute Unified Device Architecture)…...

全网资料最全Java数据结构与算法(1)
一、数据结构和算法概述 1.1什么是数据结构? 官方解释: 数据结构是一门研究非数值计算的程序设计问题中的操作对象,以及他们之间的关系和操作等相关问题的学科。 大白话: 数据结构就是把数据元素按照一定的关系组织起来的集合&a…...
【项目实战】SpringMVC拦截器HandlerInterceptor入门介绍
一、拦截器介绍 拦截器是应用程序级框架中常用的拦截用户请求、实施业务流程控制的模式,它可以将一些公共的、重复发生的业务逻辑从业务处理代码中独立出来,使系统的结构更加清晰,程序的复杂度也减小了。 拦截器是一个常见的特性,它可以实现任何自定义功能,而无需调整业…...

阿里淘宝新势力造型合伙人P8、年薪百万的欧阳娜娜也躲不过的魔鬼面试,看的我心服口服
阿里淘宝新势力造型合伙人P8、年薪百万的欧阳娜娜跳槽了,这不是关键。 她参加了网易有道明星语音录音员/代言人的面试,这也不是关键。 关键是她教科书式的面试过程,狠狠地给我们上了一课。 我是无意间刷到的这个视频的时候,就一…...
[特殊字符] 智能合约中的数据是如何在区块链中保持一致的?
🧠 智能合约中的数据是如何在区块链中保持一致的? 为什么所有区块链节点都能得出相同结果?合约调用这么复杂,状态真能保持一致吗?本篇带你从底层视角理解“状态一致性”的真相。 一、智能合约的数据存储在哪里…...

Python:操作 Excel 折叠
💖亲爱的技术爱好者们,热烈欢迎来到 Kant2048 的博客!我是 Thomas Kant,很开心能在CSDN上与你们相遇~💖 本博客的精华专栏: 【自动化测试】 【测试经验】 【人工智能】 【Python】 Python 操作 Excel 系列 读取单元格数据按行写入设置行高和列宽自动调整行高和列宽水平…...
java 实现excel文件转pdf | 无水印 | 无限制
文章目录 目录 文章目录 前言 1.项目远程仓库配置 2.pom文件引入相关依赖 3.代码破解 二、Excel转PDF 1.代码实现 2.Aspose.License.xml 授权文件 总结 前言 java处理excel转pdf一直没找到什么好用的免费jar包工具,自己手写的难度,恐怕高级程序员花费一年的事件,也…...
连锁超市冷库节能解决方案:如何实现超市降本增效
在连锁超市冷库运营中,高能耗、设备损耗快、人工管理低效等问题长期困扰企业。御控冷库节能解决方案通过智能控制化霜、按需化霜、实时监控、故障诊断、自动预警、远程控制开关六大核心技术,实现年省电费15%-60%,且不改动原有装备、安装快捷、…...

BCS 2025|百度副总裁陈洋:智能体在安全领域的应用实践
6月5日,2025全球数字经济大会数字安全主论坛暨北京网络安全大会在国家会议中心隆重开幕。百度副总裁陈洋受邀出席,并作《智能体在安全领域的应用实践》主题演讲,分享了在智能体在安全领域的突破性实践。他指出,百度通过将安全能力…...

均衡后的SNRSINR
本文主要摘自参考文献中的前两篇,相关文献中经常会出现MIMO检测后的SINR不过一直没有找到相关数学推到过程,其中文献[1]中给出了相关原理在此仅做记录。 1. 系统模型 复信道模型 n t n_t nt 根发送天线, n r n_r nr 根接收天线的 MIMO 系…...

HDFS分布式存储 zookeeper
hadoop介绍 狭义上hadoop是指apache的一款开源软件 用java语言实现开源框架,允许使用简单的变成模型跨计算机对大型集群进行分布式处理(1.海量的数据存储 2.海量数据的计算)Hadoop核心组件 hdfs(分布式文件存储系统)&a…...

DingDing机器人群消息推送
文章目录 1 新建机器人2 API文档说明3 代码编写 1 新建机器人 点击群设置 下滑到群管理的机器人,点击进入 添加机器人 选择自定义Webhook服务 点击添加 设置安全设置,详见说明文档 成功后,记录Webhook 2 API文档说明 点击设置说明 查看自…...

从 GreenPlum 到镜舟数据库:杭银消费金融湖仓一体转型实践
作者:吴岐诗,杭银消费金融大数据应用开发工程师 本文整理自杭银消费金融大数据应用开发工程师在StarRocks Summit Asia 2024的分享 引言:融合数据湖与数仓的创新之路 在数字金融时代,数据已成为金融机构的核心竞争力。杭银消费金…...
苹果AI眼镜:从“工具”到“社交姿态”的范式革命——重新定义AI交互入口的未来机会
在2025年的AI硬件浪潮中,苹果AI眼镜(Apple Glasses)正在引发一场关于“人机交互形态”的深度思考。它并非简单地替代AirPods或Apple Watch,而是开辟了一个全新的、日常可接受的AI入口。其核心价值不在于功能的堆叠,而在于如何通过形态设计打破社交壁垒,成为用户“全天佩戴…...