最終更新:2018-08-28 (火) 03:51:21 (2040d)
Android/init
場所
- /init
ソースコード
Android 6.0~
~Android 5.1
主な処理
- init.rcの読み込み
- プロパティサービスを提供
- 子プロセス再起動
処理内容 (main)
ueventd/watchdogd?としての起動かどうかの判定
- それぞれ用のmainが呼ばれる
if (!strcmp(basename(argv[0]), "ueventd")) return ueventd_main(argc, argv); if (!strcmp(basename(argv[0]), "watchdogd")) return watchdogd_main(argc, argv);
ディレクトリ/ファイルの作成
- Android/dev - tmpfs
- Android/proc
- Android/sys - sysfs
- Android/dev/pts?
- Android/dev/socket?
loading selinux policy
プロパティの初期化
- property_load_boot_defaults?(Android/default.prop)
init.rcの読み込み
- Android/init.rc (AOSP/system/core/rootdir/init.rc)
- Android/init.*.rc (AOSP/devices?)の中
設定の書式 (Android Init Language)
トリガの順
- on early-init
- on wait_for_coldboot_done?
- on property_init
- on keychord_init?
- on console_init?
- on set_init_properties?
- on init
- if charger? != 0
- end if
- on property_service_init
- on signal_init?
- on check_startup?
Android/init/class_start
class_start <class_name>