Project

General

Profile

GTI9100GBootloaderFreedom » History » Version 7

Denis 'GNUtoo' Carikli, 03/06/2020 11:58 PM
Update versions

1 1 Denis 'GNUtoo' Carikli
h1. I9100GBootloader
2
3 2 Denis 'GNUtoo' Carikli
h2. Unsigned versions
4
5 3 Denis 'GNUtoo' Carikli
We need to correlate some devices property (like the Android version it's shipped with, serial numbers, etc) to be able to easily differentiate between signed and unsigned versions, to makes it much more simple to get devices with unsigned bootloaders.
6 1 Denis 'GNUtoo' Carikli
7 3 Denis 'GNUtoo' Carikli
"hpagseddy/i9100g_xloader":https://github.com/hpagseddy/i9100g_xloader is based on "ths-backup/i9100g_xloader":https://github.com/ths-backup/i9100g_xloader which has an ics (Icecream Sandwitch, an Android version) branch only.
8
9
Devices with Android 4.0.4 or 4.1.2 might have the unsigned bootloader while at least one device with Android 2.3.6 have a signed bootloader.
10
11 1 Denis 'GNUtoo' Carikli
h2. Signed versions
12 3 Denis 'GNUtoo' Carikli
13 4 Denis 'GNUtoo' Carikli
[[People#Denis-GNUtoo-Carikli|GNUtoo]] was given a device with the following characteristics:
14 3 Denis 'GNUtoo' Carikli
15 7 Denis 'GNUtoo' Carikli
h3. Android settings
16
17 3 Denis 'GNUtoo' Carikli
*Software state*: Running the stock OS, unmodified
18
*Android version*: Android 2.3.6
19
*Baseband version*: IG9100GZCLC2
20
*Build number*: GINGERBREAD.ZCLC2
21
*Kernel version*: 2.6.35.7 se.infra@SEI-30#2
22 1 Denis 'GNUtoo' Carikli
23 7 Denis 'GNUtoo' Carikli
h3. ODIN MODE
24
25
To get the ODIN MODE that is typically used to install the Replicant recovery:
26
27
# Start the device by holding the following key combination: *Volume down, Select, Power*,
28
# Hold the key combination until the device shows a *Warning* message.
29
# Confirm that you want to download a custom OS using volume up
30
# Make sure the device is in *Downloading* mode
31
32
When this is done, it should show some text:
33
<pre>
34
ODIN MODE
35
PRODUCT NAME: GT-I9100G_CHN_CHN
36
</pre>
37
38
Here CHN_CHN probably refers to the chinese version. According to "a thread on the XDA developers forum":https://forum.xda-developers.com/galaxy-s2/development/guide-repair-totally-sleep-dead-boot-t1701471 ("Means that you own a chinese bootloader locked I9100G. You can't flash any other bootloader than the chinese one.") , that version has a signed bootloader.
39 1 Denis 'GNUtoo' Carikli
40 5 Denis 'GNUtoo' Carikli
h2. How to check for signed bootloader
41
42 1 Denis 'GNUtoo' Carikli
To get the bootrom to try to boot on USB, you need to do the following:
43
* Connect the USB cable to the device but make sure it's not connected on the computer.
44
* Power off the device
45
* Connect the USB cable
46
47
If we do that, we get the following in the kernel log of your laptop:
48
<pre>
49
usb 1-1: new high-speed USB device number 24 using ehci-pci
50
usb 1-1: unable to get BOS descriptor or descriptor too short
51
usb 1-1: New USB device found, idVendor=0451, idProduct=d00f, bcdDevice= 0.00
52
usb 1-1: New USB device strings: Mfr=33, Product=37, SerialNumber=0
53
usb 1-1: Product: OMAP4430
54
usb 1-1: Manufacturer: Texas Instruments
55
</pre>
56
57
We can also try to get a bit more infos with omap-usb-boot:
58
<pre>
59
$ sudo omap-usb-boot -v -w boot invalidbootmedia
60
Finding and opening USB device
61
Found and opened omap4 USB device: OMAP4430
62
ASIC device id: 4430, HS device
63
Booting from device invalidbootmedia...
64
Booting device invalidbootmedia not found
65
Booting from device failed
66
</pre>
67
68
Here we know the device is signed because it's a "HS device".
69 2 Denis 'GNUtoo' Carikli
If it was not signed it would print "GP device" instead.
70
71
h2. Source code
72
73
* https://github.com/hpagseddy/i9100g_xloader This got rebuilt and flashed, and it worked on the device it was tested on.
74
* https://blog.the-leviathan.ch/?p=408
75
76 1 Denis 'GNUtoo' Carikli
h2. TODO
77
78
* Understand how to get unsigned versions (Android version, serial number, etc)
79
* Get a device with u-boot and ask samsung for source code
80 6 Denis 'GNUtoo' Carikli
* Try to boot the xloader nevertheless, as the device could be in some "verify but not enforce mode" for signatures