初始化脚本
主脚本为/init.rc,在源代码中位于system/core/rootdir/init.rc。主脚本中会在开头import其他一些脚本:
import /init.usb.rc
import /init.${ro.hardware}.rc
import /init.trace.rc "
他们在源代码中分别位于:
system/core/rootdir/init.usb.rc
device/${ro.hardware}/${ro.product.name}/init.${ro.hardware}.rc
system/core/rootdir/init.trace.rc
其中init.usb.rc与adbd的启动有很大关系。
l 触发(on)
n on
n on property:=
n on property:=*
l 命令
n symlink、mkdir、mount、write、chown、copy、rm、rmdir
n setprop
n class_start、class_stop、class_reset
n start、stop、restart
l 服务( service)
属性
参数
处理方式
说明
class
name
class_(start|stop|reset)
所属的服务类
disabled
SVC_DISABLED, SVC_RC_DISABLED
禁用
console
SVC_CONSOLE
open_console
需要控制台
/dev/console
user
name
setuid
有效用户
group
name name …
setgid/setgroups
有效用户组
setenv
name value
execve
环境变量,多个
socket
name type perm uid gid
create_socket
publish_socket
UNIX套接字,多个
发布到环境变量中
critical
SVC_CRITICAL
关键服务
oneshot
SVC_ONESHOT
不重启
onrestart
command
wait_for_one_process
重启时执行的命令,多个
seclabel
label
setexeccon
安全增强
ioprio
0-7
android_set_ioprio
ioprio_set
IO优先级