summaryrefslogtreecommitdiff
path: root/android-tools/init.txt
blob: 585942657850d20bc15b204de36f6bcd41c954ee (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
Parser& parser = Parser::GetInstance();
parser.AddSectionParser("service",std::make_unique<ServiceParser>());
parser.AddSectionParser("on", std::make_unique<ActionParser>());
parser.AddSectionParser("import", std::make_unique<ImportParser>());
parser.ParseConfig("/init.rc");




ActionManager& am = ActionManager::GetInstance();
am.QueueEventTrigger("early-init");
// Queue an action that waits for coldboot done so we know ueventd has set up all of /dev...
am.QueueBuiltinAction(wait_for_coldboot_done_action, "wait_for_coldboot_done");
// ... so that we can start queuing up actions that require stuff from /dev.
am.QueueBuiltinAction(mix_hwrng_into_linux_rng_action, "mix_hwrng_into_linux_rng");
am.QueueBuiltinAction(set_mmap_rnd_bits_action, "set_mmap_rnd_bits");
am.QueueBuiltinAction(keychord_init_action, "keychord_init");
am.QueueBuiltinAction(console_init_action, "console_init");
// Trigger all the boot actions to get us started.
am.QueueEventTrigger("init");
// Repeat mix_hwrng_into_linux_rng in case /dev/hw_random or /dev/random
// wasn't ready immediately after wait_for_coldboot_done
am.QueueBuiltinAction(mix_hwrng_into_linux_rng_action, "mix_hwrng_into_linux_rng");

// Don't mount filesystems or start core system services in charger mode.
std::string bootmode = property_get("ro.bootmode");
if (bootmode == "charger") {
    am.QueueEventTrigger("charger");
} else {
    am.QueueEventTrigger("late-init");
}

// Run all property triggers based on current state of the properties.
am.QueueBuiltinAction(queue_property_triggers_action, "queue_property_triggers");



23:32:39 liuyq: nougat$ grep -rn -e 'trigger ' -e '^on ' -e 'class_start ' boottime/init/rcs-x15/|grep -v 'on property'
boottime/init/rcs-x15/init.am57xevmboard.rc:3:on early-init
boottime/init/rcs-x15/init.am57xevmboard.rc:6:on init
boottime/init/rcs-x15/init.am57xevmboard.rc:11:on post-fs-data
boottime/init/rcs-x15/init.am57xevmboard.rc:35:on boot
boottime/init/rcs-x15/init.am57xevmboard.rc:56:on fs
boottime/init/rcs-x15/bootstat.rc:3:on post-fs-data
boottime/init/rcs-x15/bootstat.rc:11:on post-fs-data && property:init.svc.bootanim=running
boottime/init/rcs-x15/vdc.rc:2:on defaultcrypto
boottime/init/rcs-x15/vdc.rc:8:on encrypt
boottime/init/rcs-x15/atrace.rc:3:on boot
boottime/init/rcs-x15/init.environ.rc:2:on init
boottime/init/rcs-x15/init.am57xevmboard.usb.rc:1:on boot
boottime/init/rcs-x15/init.usb.rc:6:on post-fs-data
boottime/init/rcs-x15/init.usb.rc:25:on boot
boottime/init/rcs-x15/init.usb.rc:106:on boot && property:persist.sys.usb.config=*
boottime/init/rcs-x15/init.rc:13:on early-init
boottime/init/rcs-x15/init.rc:31:on init
boottime/init/rcs-x15/init.rc:239:# Healthd can trigger a full boot from charger mode by signaling this
boottime/init/rcs-x15/init.rc:243:    trigger late-init
boottime/init/rcs-x15/init.rc:246:on load_system_props_action
boottime/init/rcs-x15/init.rc:249:on load_persist_props_action
boottime/init/rcs-x15/init.rc:255:on firmware_mounts_complete
boottime/init/rcs-x15/init.rc:259:on late-init
boottime/init/rcs-x15/init.rc:260:    trigger early-fs
boottime/init/rcs-x15/init.rc:261:    trigger fs
boottime/init/rcs-x15/init.rc:262:    trigger post-fs
boottime/init/rcs-x15/init.rc:267:    trigger load_system_props_action
boottime/init/rcs-x15/init.rc:271:    trigger post-fs-data
boottime/init/rcs-x15/init.rc:272:    trigger load_persist_props_action
boottime/init/rcs-x15/init.rc:275:    trigger firmware_mounts_complete
boottime/init/rcs-x15/init.rc:277:    trigger early-boot
boottime/init/rcs-x15/init.rc:278:    trigger boot
boottime/init/rcs-x15/init.rc:281:on post-fs
boottime/init/rcs-x15/init.rc:314:    #change permissions on kmsg & sysrq-trigger so bugreports can grab kthread stacks
boottime/init/rcs-x15/init.rc:328:on post-fs-data
boottime/init/rcs-x15/init.rc:481:on boot
boottime/init/rcs-x15/init.rc:571:    class_start core
boottime/init/rcs-x15/init.rc:573:on nonencrypted
boottime/init/rcs-x15/init.rc:576:    class_start main
boottime/init/rcs-x15/init.rc:577:    class_start late_start
boottime/init/rcs-x15/init.rc:582:on charger
boottime/init/rcs-x15/init.rc:583:    class_start charger
boottime/init/rcs-x15/init.rc:594:    trigger post-fs-data
boottime/init/rcs-x15/init.rc:599:    class_start main
boottime/init/rcs-x15/init.rc:604:    class_start main
boottime/init/rcs-x15/init.rc:605:    class_start late_start
boottime/init/rcs-x15/dumpstate.rc:1:on boot
boottime/init/rcs-x15/logcatd.rc:31:on load_persist_props_action
23:33:12 liuyq: nougat$ 



core class service: pvrsrvinit vold adbd ueventd healthd console surfaceflinger lmkd servicemanager bootanim
23:40:46 liuyq: nougat$ grep -rn -B1 'class core' boottime/init/rcs-x15/
boottime/init/rcs-x15/init.am57xevmboard.rc-60-service pvrsrvinit /vendor/bin/pvrsrvinit
boottime/init/rcs-x15/init.am57xevmboard.rc:61:    class core
--
boottime/init/rcs-x15/init.am57xevmboard.rc-67-service uim /system/bin/uim-sysfs
boottime/init/rcs-x15/init.am57xevmboard.rc:68:    class core
--
boottime/init/rcs-x15/vold.rc-3-        --fsck_context=u:r:fsck:s0 --fsck_untrusted_context=u:r:fsck_untrusted:s0
boottime/init/rcs-x15/vold.rc:4:    class core
--
boottime/init/rcs-x15/init.usb.rc-15-service adbd /sbin/adbd --root_seclabel=u:r:su:s0
boottime/init/rcs-x15/init.usb.rc:16:    class core
--
boottime/init/rcs-x15/init.rc-632-service ueventd /sbin/ueventd
boottime/init/rcs-x15/init.rc:633:    class core
--
boottime/init/rcs-x15/init.rc-637-service healthd /sbin/healthd
boottime/init/rcs-x15/init.rc:638:    class core
--
boottime/init/rcs-x15/init.rc-643-service console /system/bin/sh
boottime/init/rcs-x15/init.rc:644:    class core
--
boottime/init/rcs-x15/surfaceflinger.rc-1-service surfaceflinger /system/bin/surfaceflinger
boottime/init/rcs-x15/surfaceflinger.rc:2:    class core
--
boottime/init/rcs-x15/lmkd.rc-1-service lmkd /system/bin/lmkd
boottime/init/rcs-x15/lmkd.rc:2:    class core
--
boottime/init/rcs-x15/servicemanager.rc-1-service servicemanager /system/bin/servicemanager
boottime/init/rcs-x15/servicemanager.rc:2:    class core
--
boottime/init/rcs-x15/bootanim.rc-1-service bootanim /system/bin/bootanimation
boottime/init/rcs-x15/bootanim.rc:2:    class core
23:41:11 liuyq: nougat$