init.rc和init.xxxx.rc(硬件平台相关)
init.rc是Android自己规定的初始化脚本(Android Init Language, System/Core/Init/readme.txt)
该脚本包含四个类型的声明:
- Actions
- Commands
- Services
- Options.
更细一些还有 Triggers 触发条件,Properties 属性
init脚本的关键字参考system/core/init/keyword.h
Commands 理解为一些基本操作
export PATH /sbin:/system/sbin:/system/bin:/system/xbin
mount yaffs2 mtd@system /system
...
mkdir /data/misc 01771 system misc (命令 目录路径 权限 所有者 所有组)
Actions 表示一系列命令,通常会和Triggers配合使用
on init (init 表示一个触发条件)
export PATH /sbin:/system/sbin:/system/bin:/system/xbin
mkdir /system (这两条命令则称为动作Actions)
Porperties 属性,用于设置和读取
setprop ro.FOREGROUND_APP_MEM 1536
setprop net.dns1 XXX.XXX.XXX.XX
on property:net.dns1=XXX.XXX.XXX.XXX
start adbd
setprop用来设置属性,on property用来判断属性
Services 服务,用来启动一个服务Options是服务的附加内容,与Services配合
service bootanim /system/bin/bootanimation
user graphics
group graphics
disabled
oneshot
bootanim是要启动的服务名,/system/bin/bootanimation是服务对应的程序
下面的user group oneshot 是配合的Options,oneshot是表示只启动一次,否则程序被杀死后会自动启动