Project

General

Profile

BootloadersFreedom » History » Version 50

Denis 'GNUtoo' Carikli, 03/28/2020 10:42 PM

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 48 Denis 'GNUtoo' Carikli
| [[NexusSI902xBootloader| Samsung Nexus S (GT-I902x)]] | Proprietary, Signed on the tested devices | ?->USB->?->eMMC->? |
18
| [[I9100Bootloader| Samsung Galaxy S2 (GT-I9100)]] | Proprietary, probably Signed | ? |
19 49 Denis 'GNUtoo' Carikli
| [[I9100GBootloader| Samsung Galaxy S2 (GT-I9100G)]] | * Unsigned on some devices
20
* Signed on some devices | ? |
21 30 Denis 'GNUtoo' Carikli
| [[GalaxyTab2Bootloader| Samsung Galaxy Tab 2]] | Proprietary, signed | ?->USB->?->eMMC->? |
22
| [[OptimusBlackBootloader| LG Optimus black (p970)]] | unsigned, can be replaced with upstream u-boot | eMMC(MMC2)->USB |
23 39 Denis 'GNUtoo' Carikli
| Galaxy SIII (I9300)
24 10 Denis 'GNUtoo' Carikli
Galaxy SIII 4G (I9305)
25
Galaxy Note II (N7100)
26 39 Denis 'GNUtoo' Carikli
Galaxy Note II 4G (N7105) | * Proprietary, Signed
27 30 Denis 'GNUtoo' Carikli
* There is work in progress to understand if we can avoid the signature | ?->eMMC->?->USB->? |
28 31 Denis 'GNUtoo' Carikli
| Golden Delicous GTA04 | unsigned, free software | * Aux not pressed during boot: ?
29
* Aux pressed during boot: ?->SD->?->NAND
30
SYS_BOOT0 = 1
31
SYS_BOOT1 = 1
32
SYS_BOOT2 = 1
33
SYS_BOOT3 = 1
34
SYS_BOOT4 = 1
35
SYS_BOOT5 = AUX button
36
SYS_BOOT6 = 1 
37
But cannot find Reference manual for the DM370 |
38 36 Denis 'GNUtoo' Carikli
39 50 Denis 'GNUtoo' Carikli
* [[FindDevicesWithUnsignedBootloaedrs]]
40
41 36 Denis 'GNUtoo' Carikli
h2. System on a chip
42 8 Denis 'GNUtoo' Carikli
43 33 Denis 'GNUtoo' Carikli
|_. SOC and documentation |_. Freedom situation |
44 47 Denis 'GNUtoo' Carikli
| [[OMAPBootrom|OMAP]] | * No known bug
45
* Some devices are not signed |
46 38 Denis 'GNUtoo' Carikli
| [[Exynos4Bootrom|Exynos 4]] | * Some or all devices are signed
47 1 Denis 'GNUtoo' Carikli
* work in progress to understand if it's possible to bypass the signature |
48
| [[BroadcomVideoCore]] | The SOCs have the ability to check signatures |
49 42 Denis 'GNUtoo' Carikli
| [[TegraBootrom]] | * Not all devices use code signature
50
* Boot from USB is possible thanks to "fusee_gelee":https://github.com/Qyriad/fusee-launcher/blob/master/report/fusee_gelee.md
51 43 Denis 'GNUtoo' Carikli
* Code can be appended to the bootrom by writing in a fuse area. Could that be used to disable code signature ? |
52 39 Denis 'GNUtoo' Carikli
| IMX 5 and 6 | * Not all devices are signed
53
* 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 |
54 33 Denis 'GNUtoo' Carikli
55 41 Denis 'GNUtoo' Carikli
h2. Links to cathegorize:
56 15 Denis 'GNUtoo' Carikli
57 25 Denis 'GNUtoo' Carikli
* https://www.theiphonewiki.com/ has a list of "Bootrom security issues":https://www.theiphonewiki.com/wiki/Bootrom for apple devices.
58 26 Denis 'GNUtoo' Carikli
* "Ti Nspire":https://hackspire.org ? RSA exponent issues?
59 10 Denis 'GNUtoo' Carikli
60 9 Denis 'GNUtoo' Carikli
== See also ==
61 8 Denis 'GNUtoo' Carikli
62
* [[Upstream]]