Project

General

Profile

BootloadersFreedom » History » Version 40

Denis 'GNUtoo' Carikli, 02/24/2020 02:43 AM
Add introduction

1 1 Denis 'GNUtoo' Carikli
h1. Bootloaders
2
3 40 Denis 'GNUtoo' Carikli
h2. Introduction
4
5
In order to run free software bootloaders, we need the ability to run the code we want at boot.
6
7
However in most smartphones and many tablets use code signature at boot, which prevent us to run free software bootloader.
8
9
In practice:
10
* Some system on a chip either don't implement code signature or the implementation is not used or tested.
11
* For some other system on a chip, it's up to the device vendor to choose to implement code signature or not.
12
* For some system on a chip, we don't know any devices not enforcing code signature, but we don't know who decided to enforce the code signature.
13
14 36 Denis 'GNUtoo' Carikli
h2. Devices configurations
15
16 30 Denis 'GNUtoo' Carikli
|_. Device and documentation |_. Freedom situation |_. Boot order |
17
| [[NexusSI902xBootloader| Samsung Nexus S (i902x)]] | Proprietary, Signed on the tested devices | ?->USB->?->eMMC->? |
18
| [[I9100Bootloader| Samsung Galaxy S2 (i9100)]] | Proprietary, probably Signed | ? |
19
| [[GalaxyTab2Bootloader| Samsung Galaxy Tab 2]] | Proprietary, signed | ?->USB->?->eMMC->? |
20
| [[OptimusBlackBootloader| LG Optimus black (p970)]] | unsigned, can be replaced with upstream u-boot | eMMC(MMC2)->USB |
21 39 Denis 'GNUtoo' Carikli
| Galaxy SIII (I9300)
22 10 Denis 'GNUtoo' Carikli
Galaxy SIII 4G (I9305)
23
Galaxy Note II (N7100)
24 39 Denis 'GNUtoo' Carikli
Galaxy Note II 4G (N7105) | * Proprietary, Signed
25 30 Denis 'GNUtoo' Carikli
* There is work in progress to understand if we can avoid the signature | ?->eMMC->?->USB->? |
26 31 Denis 'GNUtoo' Carikli
| Golden Delicous GTA04 | unsigned, free software | * Aux not pressed during boot: ?
27
* Aux pressed during boot: ?->SD->?->NAND
28
SYS_BOOT0 = 1
29
SYS_BOOT1 = 1
30
SYS_BOOT2 = 1
31
SYS_BOOT3 = 1
32
SYS_BOOT4 = 1
33
SYS_BOOT5 = AUX button
34
SYS_BOOT6 = 1 
35
But cannot find Reference manual for the DM370 |
36 36 Denis 'GNUtoo' Carikli
37
h2. System on a chip
38 8 Denis 'GNUtoo' Carikli
39 33 Denis 'GNUtoo' Carikli
|_. SOC and documentation |_. Freedom situation |
40 38 Denis 'GNUtoo' Carikli
| [[Exynos4Bootrom|Exynos 4]] | * Some or all devices are signed
41 1 Denis 'GNUtoo' Carikli
* work in progress to understand if it's possible to bypass the signature |
42
| [[BroadcomVideoCore]] | The SOCs have the ability to check signatures |
43 39 Denis 'GNUtoo' Carikli
| [[TegraBootrom]] | * Not all devices are signed
44
* Boot from USB is possible thanks to "fusee_gelee":https://github.com/Qyriad/fusee-launcher/blob/master/report/fusee_gelee.md |
45
| IMX 5 and 6 | * Not all devices are signed
46
* Thanks to "Ref_QBVR2017-0001.txt":https://github.com/f-secure-foundry/usbarmory/blob/master/software/secure_boot/Security_Advisory-Ref_QBVR2017-0001.txt it's possible to bypass signatures anyway, and maybe load code through USB too |
47 33 Denis 'GNUtoo' Carikli
48 11 Denis 'GNUtoo' Carikli
h2. Other attempts that involves bypassing the bootrom
49
50 23 Denis 'GNUtoo' Carikli
There have been several security issues in bootrom, which can enable to run fully free software bootloaders, that are under the user control, even on devices that are configured to enforce bootloader signatures.
51
52
The most interesting security issues is when it enables to just replace the nonfree bootloader by a free bootloader that is controlled by the user.
53 24 Denis 'GNUtoo' Carikli
54 32 Denis 'GNUtoo' Carikli
While being able to load a free bootloader through USB is nice, it's not enough per se as it has usability concerns: it's not convenient to need another computer each time you need to power on your smartphone or tablet.
55
56
It seems that according to a "youtube video":https://www.youtube.com/watch?v=REx_qSTulJM small enough USB dongles exist that implemented fusee_gelee for the Nitendo Switch.
57 23 Denis 'GNUtoo' Carikli
58 15 Denis 'GNUtoo' Carikli
On tegras, as the bootrom can also be patched as part of it ends up being in the fuse memory region, it may be possible to patch the bootrom to bypass the code signature and not need such dongles.
59 17 Denis 'GNUtoo' Carikli
60 22 Denis 'GNUtoo' Carikli
|_. Affected SOCs |_. Type |_. Link |
61 15 Denis 'GNUtoo' Carikli
62
Other links to cathegorize:
63
64 14 Denis 'GNUtoo' Carikli
* http://www.droid-developers.org : This attempts to run user code on several Motorolla smartphones. It includes analysis of the boot chain:
65 11 Denis 'GNUtoo' Carikli
** "Application_Processor_Boot_ROM":www.droid-developers.org/wiki/Application_Processor_Boot_ROM
66 13 Denis 'GNUtoo' Carikli
** "Booting_chain":http://www.droid-developers.org/wiki/Booting_chain
67 25 Denis 'GNUtoo' Carikli
* https://www.theiphonewiki.com/ has a list of "Bootrom security issues":https://www.theiphonewiki.com/wiki/Bootrom for apple devices.
68 26 Denis 'GNUtoo' Carikli
* "Ti Nspire":https://hackspire.org ? RSA exponent issues?
69 10 Denis 'GNUtoo' Carikli
70 9 Denis 'GNUtoo' Carikli
== See also ==
71 8 Denis 'GNUtoo' Carikli
72
* [[Upstream]]