码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • Android系统10 RK3399 init进程启动(四十) 开机自启动脚本init.rc执行逻辑框架


    配套系列教学视频链接:

          安卓系列教程之ROM系统开发-百问100ask

    说明

    系统:Android10.0

    设备: FireFly RK3399 (ROC-RK3399-PC-PLUS)

    前言

    这个章节我们开始学习新的知识点, init.rc相关概念, 也就是Android开机自启动的脚本, 这个脚本能启动shell脚本, 也能启动C/C++写的守护进程, 这些脚本都是init祖先进程启动的, 各种系统中都有类似这个东西,比如各种linux系统中有/etc/rc.d/中rc脚本,而Android的脚本是做了定制化的, 我们需要单独来学习它。


    一,init进程开机启动init.rc脚本执行框架

    1,Bootloder启动内核, 内核在kernel_init线程中,执行cmdline指定的init=/init进程, 也就是祖先进程.
    2,Android的init祖先进程执行很多初始化代码之后, 会加载各种rc脚本文件, 脚本文件很多, 会按照如下顺序去加载rc文件:
       /init.rc  (会包含/init.${ro.hardware}.rc, /vendor/etc/init/hw/init.${ro.hardware}.rc, /init.${ro.zygote}.rc)
       /system/etc/init目录下所有rc
       /product/etc/init目录下所有rc        (rk3399上没有)
       /product_services/etc/init目录下所有rc  (rk3399上没有)
       /odm/etc/init目录下所有        (rk3399上没有)
       /vendor/etc/init目录下所有rc
    3,init.rc中会解析各种Action和Service, 并且按照一定顺序开机执行各种命令和启动各种服务进程。
    4,system分区中的rc文件主要启动各种厂商无关的后台服务进程,如netd, sufacefliger, vold, usbd,installd, lmkd.
    5,vendor分区中的rc文件主要启动各种厂商硬件相关的服务, 这些都android中的hal层代码, 我们开发时, 经常会去适配这些服务,比如light, sensor, camera, drm, graphics.composer, wifi, bluetooth相关服务。

    二,总结

    每次讲解新的知识之前, 我都会将整体架构或者逻辑框架给大家介绍到, 这样有全貌,学习的时候就不会迷茫, 所有的知识点会在这个框架里面。 

  • 相关阅读:
    MATLAB算法实战应用案例精讲-【优化算法】受精优化算法(FO)(附MATLAB代码实现)
    举个栗子~ Minitab 技巧(1):快速安装和激活 Minitab 统计软件
    「案例分享」研发效能提升之第一性原理
    Jenkins学习笔记6
    深圳大学第三期“飞鹰计划”正式开班|学以致用,扬帆起航!
    软考通过率低吗?怎么备考?
    最全面贴片电阻知识,封装、尺寸、最大承受功率及选型统统包括-电子技术方案|电路图讲解
    Java实现排序算法
    【ES实战】ES分页与去重
    kubenetes-服务发现和负载均衡
  • 原文地址:https://blog.csdn.net/ldswfun/article/details/126916424
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号