Line 1:
Line 1:
boot2 is the first non-built-in sysmodule. It's hardcoded to be the first sysmodule launched by PM.
boot2 is the first non-built-in sysmodule. It's hardcoded to be the first sysmodule launched by PM.
−
On retail systems, the boot2 title installed is named "boot2.prodBoot" while on debug systems, the boot2 title installed is named "boot2". During [[Factory Setup|the factory setup process]], the installed boot2 title is "boot2.manuBoot".
+
On retail systems, the boot2 title is called [[#boot2.prodBoot|boot2.prodBoot]] while on debug systems it's called [[#boot2|boot2]]. During [[Factory Setup|the factory setup process]] the boot2 title is called [[#boot2.manuBoot|boot2.manuBoot]] instead.
= boot2.prodBoot =
= boot2.prodBoot =
−
It connects to "pm:shell" service and launches the following titles in this order:
+
It opens the [[Process_Manager_services#pm:shell|pm:shell]] service and launches the following titles in order:
* 0100000000000021 (psc)
* 0100000000000021 (psc)
* 0100000000000009 (settings)
* 0100000000000009 (settings)
Line 13:
Line 13:
* 010000000000001A (pcv)
* 010000000000001A (pcv)
−
Then it connects to "set:sys" and reads a bool from "boot" section called "force_maintenance" with default value true.
+
It then opens the [[Settings_services#set:sys|set:sys]] service and reads a bool from the "boot" section called "force_maintenance" with default value set to "true".
−
If the value reads successfully as false, it initializes "gpio" and opens sessions for GPIOs 26 and 25.
+
If the value reads successfully as "false", it opens the [[Bus_services#gpio|gpio]] service and opens sessions for GPIOs 26 and 25.
−
If both GPIOs read as zero, then [[Recovery_Mode|maintenance mode]] is forced despite the setting being false. This probably checks if both volume up and down keys are held down at the same time?
+
If both GPIOs read as zero, then [[Recovery_Mode|maintenance mode]] is forced despite the setting being false. This checks if both volume up and down keys are held down at the same time.
−
If it's in maintenance mode then it opens a session to "pm:bm" and calls cmd1.
+
If it's in maintenance mode then it opens the [[Process_Manager_services#pm:bm|pm:bm]] service and calls [[Process_Manager_services#pm:bm|SetMaintenanceBoot]].
−
Then depending on maintenance mode or not it launches the following titles in this order:
+
It then launches the following titles in order:
* 0100000000000023 (am)
* 0100000000000023 (am)
* 0100000000000019 (nvservices)
* 0100000000000019 (nvservices)
Line 38:
Line 38:
* 0100000000000018 (ldn)
* 0100000000000018 (ldn)
* 010000000000001E (account)
* 010000000000001E (account)
−
* 010000000000000E (friends) [skipped in maintenance]
+
* 010000000000000E (friends) [skipped in maintenance mode]
* 0100000000000020 (nfc)
* 0100000000000020 (nfc)
* 010000000000003C (jpegdec) [4.0.0+]
* 010000000000003C (jpegdec) [4.0.0+]
Line 44:
Line 44:
* 0100000000000024 (ssl)
* 0100000000000024 (ssl)
* 0100000000000025 (nim)
* 0100000000000025 (nim)
−
* 010000000000000C (bcat) [skipped in maintenance]
+
* 010000000000000C (bcat) [skipped in maintenance mode]
* 010000000000002B (erpt)
* 010000000000002B (erpt)
* 0100000000000033 (es)
* 0100000000000033 (es)
* 010000000000002E (pctl)
* 010000000000002E (pctl)
* 010000000000002A (btm)
* 010000000000002A (btm)
−
* 0100000000000030 (eupld) [skipped in maintenance]
+
* 0100000000000030 (eupld) [skipped in maintenance mode]
* 0100000000000031 (glue)
* 0100000000000031 (glue)
* 0100000000000032 (eclct)
* 0100000000000032 (eclct)
−
* 010000000000002F (npns) [skipped in maintenance]
+
* 010000000000002F (npns) [skipped in maintenance mode]
* 0100000000000034 (fatal)
* 0100000000000034 (fatal)
* 0100000000000037 (ro) [3.0.0+]
* 0100000000000037 (ro) [3.0.0+]
Line 67:
Line 67:
= boot2 =
= boot2 =
−
Depending on maintenance mode, boot2 boots titles in the following order:
+
Just like [[#boot2.prodBoot|boot2.prodBoot]], it opens the [[Process_Manager_services#pm:shell|pm:shell]] service and launches the following titles in order:
* 0100000000000021 (psc)
* 0100000000000021 (psc)
* 0100000000000009 (settings)
* 0100000000000009 (settings)
Line 75:
Line 75:
* 0100000000000007 (tma)
* 0100000000000007 (tma)
* 010000000000001A (pcv)
* 010000000000001A (pcv)
+
+
It then launches the following titles in order:
* 0100000000000023 (am)
* 0100000000000023 (am)
* 0100000000000019 (nvservices)
* 0100000000000019 (nvservices)
Line 80:
Line 82:
* 010000000000002D (vi)
* 010000000000002D (vi)
* 010000000000001F (ns)
* 010000000000001F (ns)
−
* 0100000000003003 (DebugMonitor0) [FWs unknown]
+
* 0100000000003003 (DebugMonitor0) [1.0.0-4.1.0]
* 010000000000000D (dmnt)
* 010000000000000D (dmnt)
* 0100000000000015 (lm)
* 0100000000000015 (lm)
−
* 010000000000001B (ppc) [<=8.1.0]
+
* 010000000000001B (ppc) [1.0.0-8.1.0]
* 0100000000000010 (ptm)
* 0100000000000010 (ptm)
* 0100000000000017 (cs)
* 0100000000000017 (cs)
Line 96:
Line 98:
* 0100000000000018 (ldn)
* 0100000000000018 (ldn)
* 010000000000001E (account)
* 010000000000001E (account)
−
* 010000000000000E (friends) [skipped in maintenance]
+
* 010000000000000E (friends) [skipped in maintenance mode]
* 0100000000000020 (nfc)
* 0100000000000020 (nfc)
* 010000000000003C (jpegdec) [4.0.0+]
* 010000000000003C (jpegdec) [4.0.0+]
Line 102:
Line 104:
* 0100000000000024 (ssl)
* 0100000000000024 (ssl)
* 0100000000000025 (nim)
* 0100000000000025 (nim)
−
* 010000000000000C (bcat) [skipped in maintenance]
+
* 010000000000000C (bcat) [skipped in maintenance mode]
* 010000000000002B (erpt)
* 010000000000002B (erpt)
* 0100000000000033 (es)
* 0100000000000033 (es)
* 010000000000002E (pctl)
* 010000000000002E (pctl)
* 010000000000002A (btm)
* 010000000000002A (btm)
−
* 0100000000000030 (eupld) [skipped in maintenance]
+
* 0100000000000030 (eupld) [skipped in maintenance mode]
* 0100000000000031 (glue)
* 0100000000000031 (glue)
* 0100000000000032 (eclct)
* 0100000000000032 (eclct)
* 010000000000B120 (nvdbgsvc)
* 010000000000B120 (nvdbgsvc)
−
* 010000000000002F (npns) [skipped in maintenance]
+
* 010000000000002F (npns) [skipped in maintenance mode]
* 0100000000000034 (fatal)
* 0100000000000034 (fatal)
* 0100000000000037 (ro) [3.0.0+]
* 0100000000000037 (ro) [3.0.0+]
Line 122:
Line 124:
= boot2.manuBoot =
= boot2.manuBoot =
−
When not in maintenance mode, boot2.manuBoot boots exactly the same titles as boot2.prodBoot in the same order, and then finishes by booting 010000000000B14A ([[Manu Services|Manu]]) before exiting.
+
Just like [[#boot2.prodBoot|boot2.prodBoot]], it opens the [[Process_Manager_services#pm:shell|pm:shell]] service and launches the following titles in order:
−
−
When in maintenance mode, boot2.manuBoot boots titles in the following order:
* 0100000000000021 (psc)
* 0100000000000021 (psc)
* 0100000000000009 (settings)
* 0100000000000009 (settings)
Line 132:
Line 132:
* 0100000000000007 (tma)
* 0100000000000007 (tma)
* 010000000000001A (pcv)
* 010000000000001A (pcv)
+
+
If maintenance mode was requested, it then launches the following titles in order:
* 0100000000000023 (am)
* 0100000000000023 (am)
* 0100000000000019 (nvservices)
* 0100000000000019 (nvservices)
Line 162:
Line 164:
* 010000000000B120 (nvdbgsvc)
* 010000000000B120 (nvdbgsvc)
* 0100000000000034 (fatal)
* 0100000000000034 (fatal)
−
* 01000000000020D1 (???)
+
* 01000000000020D1 (DevSafeModeUpdater)
−
Note that these unknown titles are not present in either retail firmware or factory firmware.
+
Otherwise, it launches exactly the same titles as [[#boot2.prodBoot|boot2.prodBoot]] in the same order, but then finishes by launching 010000000000B14A ([[Manu Services|Manu]]) before exiting itself.