Android Ramdisk架构以及SEAndroid相关 - kiddlu/android-platform-knife GitHub Wiki
Ramdisk,zImage和cmdline参数等一起构造成了Android的boot.img
acct/ dev/ init.environ.rc init.qcom.sh* init.usb.rc res/ sys/
bt_firmware/ dsp/ init.mdm.sh* init.qcom.syspart_fixup.sh* init.zygote32.rc sbin/ system/
cache/ etc@ init.msm.usb.configfs.rc init.qcom.test.rc init.zygote64_32.rc sdcard@ ueventd.qcom.rc
charger@ file_contexts.bin init.qcom.class_core.sh* init.qcom.usb.rc mnt/ seapp_contexts ueventd.rc
config/ firmware/ init.qcom.early_boot.sh* init.qcom.usb.sh* oem/ selinux_version vendor@
d@ fstab.qcom init.qcom.factory.rc init.rc persist/ sepolicy verity_key
data/ init init.qcom.rc init.target.rc proc/ service_contexts
default.prop init.class_main.sh* init.qcom.sensors.sh* init.usb.configfs.rc property_contexts storage/
大致可以分为几类:
- 用来mount文件系统的目录节点
- 启动脚本init..rc和init..sh
- 用来挂载文件系统的fstab,uevent.*.rc
- 用来部署系统properties的default.prop
- 用于SELinux规则建立的context和sepolicy
- 用来验证签名的verity_key
- 系统正常运行进程init, adbd, healthd
https://selinuxproject.org/page/NB_SEforAndroid_1 https://selinuxproject.org/page/NB_SEforAndroid_2 https://events.linuxfoundation.org/sites/events/files/slides/abs2014_seforandroid_smalley.pdf