#import 一个init配置文件,扩展当前配置。import /init.recovery.${ro.hardware}.rc# 触发条件early-init,在early-init阶段调用以下行on early-init# Apply strict SELinux checking of PROT_EXEC on mmap/mprotect calls.write /sys/fs/selinux/checkreqprot 0# write [ ]*# 打开路径为的一个文件,并写入一个或多个字符串。# Set the security context for the init process.# This should occur before anything else (e.g. ueventd) is started.setcon u:r:init:s0#这段脚本的意思是init进程启动之后就马上调用函数setcon将自己的安全上下文设置为“u:r:init:s0”,即将init进程的domain指定为init。start ueventd#执行start ueventd的命令。ueventd是一个service后面有定义 start healthd#看后面的定义可知healthd服务所在的进程为u:r:healthd:s0 位于root下的 /sbin/healthd下的pid为1的进程# 触发条件init,在init阶段调用以下行on init#export //全局环境变量中设在环境变量 为。外汇经纪商买卖价http://www.fx61.com/quotesbuy.html(这将会被所有在这命令之后运行的进程所继承)export PATH /sbin:/system/binexport ANDROID_ROOT /systemexport ANDROID_DATA /dataexport EXTERNAL_STORAGE /sdcard#symlink //创建一个指向的软连接。symlink /system/etc /etc#mkdir [mode] [owner] [group] //创建一个目录,可以选择性地指定mode、owner以及group。如果没有指定,默认的权限为755,并属于root用户和root组。mkdir /sdcardmkdir /systemmkdir /datamkdir /cache#insmod //加载中的模块。安装一个驱动模块insmod /sec.ko#mknod命令用于创建Linux中的字符设备文件和块设备文件。mknod /dev/sec c 182 0#chmod //更改文件访问权限。chmod 0660 /dev/secmkdir /sideload#mount
[ ] //在目录
挂载指定的设备。 可以是以 mtd@name 的形式指定一个mtd块设备。包括 "ro"、"rw"、"remount"、"noatime"、 ...mount tmpfs tmpfs /tmp#chown //文件的所有者和组。chown root shell /tmpchmod 0775 /tmpchmod 666 /dev/jmt101chown system media/dev/jmt101write /proc/sys/kernel/panic_on_oops 1write /proc/sys/vm/max_map_count 1000000#触发器条件为fson fswrite /proc/bootprof "start mobicore (on fs)" chmod 0600 /dev/mobicorechown system system /dev/mobicorechmod 0666 /dev/mobicore-userchown system system /dev/mobicore-userchmod 666 /dev/jmt101chown system media/dev/jmt101# MobiCore Daemon Pathsexport MC_AUTH_TOKEN_PATH /efs#开启服务 mobicorestart mobicorewrite /proc/bootprof "start mobicore end (on fs)"#创建一个目录 权限0770 并属于shell 用户和shell 组。mkdir /dev/usb-ffs 0770 shell shellmkdir /dev/usb-ffs/adb 0770 shell shell# 试图在目录/dev/usb-ffs/adb挂载指定的设备adb 类型是functionfs 参数为uid=2000,gid=2000mount functionfs adb /dev/usb-ffs/adb uid=2000,gid=2000write /sys/class/android_usb/android0/enable 0write /sys/class/android_usb/android0/idVendor 0BB4write /sys/class/android_usb/android0/idProduct 0c01write /sys/class/android_usb/android0/f_ffs/aliases adbwrite /sys/class/android_usb/android0/functions adb#触发条件为boot的Actionon boot#ifup 网络接口ifup lo#设置主机名为localhosthostname localhost#设置域名localdomaindomainname localdomain#启动所有default服务类下的未运行服务。(和服务中的class对应)class_start default# Load properties from /system/ + /factory after fs mount.on load_all_props_action#从/system,/vendor加载属性。默认包含在init.rcload_all_propson firmware_mounts_complete#删除/dev/.bootingrm /dev/.booting# Mount filesystems and start core system services.on late-init#触发一个事件。用于将一个action与另一个 action排列。trigger early-fstrigger fstrigger post-fstrigger post-fs-data# Load properties from /system/ + /factory after fs mount. Place# this in another action so that the load will be scheduled after the prior# issued fs triggers have completed.trigger load_all_props_action# Remove a file to wake up anything waiting for firmwaretrigger firmware_mounts_completetrigger early-boottrigger boot#当条件property:sys.powerctl=*满足时的actionon property:sys.powerctl=*#用来应对sys.powerctl中系统属性的变化,用于系统重启powerctl ${sys.powerctl}service ueventd /sbin/ueventd#表示这是一个关键设备服务.如果4分钟内此服务退出4次以上,那么这个设备将重启进入recovery模式critical#在执行该服务之前修改其安全上下文为u:r:ueventd:s0,默认是init程序的上下文seclabel u:r:ueventd:s0service healthd /sbin/healthd -rcritical#在执行该服务之前修改其安全上下文为u:r:healthd:s0,默认是init程序的上下文seclabel u:r:healthd:s0service recovery /sbin/recovery#在执行该服务之前修改其安全上下文为u:r:recovery:s0,默认是init程序的上下文seclabel u:r:recovery:s0service adbd /sbin/adbd --root_seclabel=u:r:su:s0 --device_banner=recovery#这个服务不会同与他同trigger(触发器)下的服务自动启动。他必须被明确的按名启动。disabled#socket [ [ ] ] //创建一个Uinx域的名为/dev/socket/adbd 的套接字,并传递它的文件描述符给已启动的进程。 必须是 "dgram"或"stream"。User 和 group默认为0。这里是system socket adbd stream 660 system system#在执行该服务之前修改其安全上下文为u:r:adbd:s0,默认是init程序的上下文seclabel u:r:adbd:s0# Always start adbd on userdebug and eng builds# property:ro.debuggable=1时默认开启adb调试on property:ro.debuggable=1write /sys/class/android_usb/android0/enable 1#启动adbd服务start adbd# Restart adbd so it can run as root#以root形式重启adbd服务on property:service.adb.root=1write /sys/class/android_usb/android0/enable 0restart adbdwrite /sys/class/android_usb/android0/enable 1# Start Daemon (Registry directories should already be present)service mobicore /system/bin/mcDriverDaemon -r /system/app/mcRegistry/020f0000000000000000000000000000.drbin -r /system/app/mcRegistry/05120000000000000000000000000000.drbin -r /system/app/mcRegistry/070b0000000000000000000000000000.drbinuser systemgroup systemclass coreoneshot
|
|