Changes

412 bytes added ,  16:09, 5 February 2020
Further updates and grammar fixes
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.