1.2 init.rc解析

第二节 init.rc解析
init.rc 是 Android 系统中 init 进程的配置文件,它定义了系统启动时的初始化步骤、服务和属性。下面是对 init.rc 文件结构及其关键部分的解析:

文件结构

init.rc 文件包含如下主要部分:

  1. 配置部分

    • 设置系统属性,定义环境变量等。
  2. 动作部分

    • 定义在特定事件发生时执行的命令。
  3. 服务部分

    • 定义系统服务,描述如何启动和管理这些服务。

配置部分

配置部分通常包含 on booton property 触发的动作。例如:

on boot
    # 设置环境变量
    export PATH /sbin:/vendor/bin:/system/sbin:/system/bin:/system/xbin

    # 设置系统属性
    setprop ro.secure 1
    setprop ro.debuggable 0
    setprop persist.sys.usb.config mtp

动作部分

动作是指特定事件发生时执行的一系列命令。动作部分的格式是 on <trigger>,后跟一系列命令。例如:

on boot
    # 挂载文件系统
    mount ext4 /dev/block/platform/soc/1d84000.ufshc/by-name/system /system ro

    # 启动服务
    start servicename

    # 创建目录并设置权限
    mkdir /data 0771 system system

服务部分

服务部分定义了系统中的守护进程和服务,描述了如何启动和管理这些服务。每个服务的定义包括服务名、启动的可执行文件以及相关参数和选项。例如:

service servicename /system/bin/executable
    class main
    user root
    group system
    oneshot
服务定义中的关键字:
  • class <class-name>:指定服务所属的类,服务启动和停止可以基于类进行控制。
  • user <username>:指定运行服务的用户。
  • group <groupname>:指定运行服务的用户组。
  • disabled:标记服务为禁用状态,需显式启动。
  • oneshot:服务在启动后不会自动重启。
  • seclabel <label>:设置服务的 SELinux 安全标签。

示例解析

以下是一个示例 init.rc 文件的解析:

on early-init
    # SELinux early setup
    start ueventd

on init
    # 挂载虚拟文件系统
    mount tmpfs tmpfs /dev
    mount proc proc /proc

on boot
    # 设置环境变量
    export PATH /sbin:/vendor/bin:/system/sbin:/system/bin:/system/xbin

    # 启动关键服务
    start servicename

service servicename /system/bin/executable
    class main
    user root
    group system
    oneshot
  • on early-init:在早期初始化阶段,启动 ueventd 服务。
  • on init:初始化阶段,挂载 /dev/proc 文件系统。
  • on boot:系统引导阶段,设置环境变量并启动 servicename 服务。
  • service servicename:定义名为 servicename 的服务,指定运行的可执行文件为 /system/bin/executable,属于 main 类,运行用户为 root,用户组为 system,且只启动一次。

总结

init.rc 文件是 Android 启动过程中 init 进程的配置文件,定义了系统初始化时的各个步骤和服务。通过解析 init.rc 文件,可以理解系统启动时执行的命令、启动的服务以及设置的系统属性。这对于定制和调试 Android 系统非常重要。

  • 5
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值