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. |