Project

General

Profile

GalaxySIIGTI9100 » History » Version 95

Denis 'GNUtoo' Carikli, 04/10/2023 02:33 PM
Add infos about backuping / restoring the main emmc hardware partition (mmcblk0). This is related to the partitioning and the on-disk structure as unknown data + bootloader code could have prevented that.

1 56 Denis 'GNUtoo' Carikli
h1. Galaxy S II (GT-I9100)
2 1 Paul Kocialkowski
3
{{>toc}}
4
5 56 Denis 'GNUtoo' Carikli
|/9. !galaxys2.png! | *Device* | Galaxy S II (GT-I9100) |
6 1 Paul Kocialkowski
| *Manufacturer* | Samsung |
7 26 Paul Kocialkowski
| *Release date* | May 2011 |
8 29 Paul Kocialkowski
| *Codename* | @i9100@ |
9 1 Paul Kocialkowski
| *Status* | Maintained |
10 58 Denis 'GNUtoo' Carikli
| *Variants* | GSM: GT-I9100 |
11 38 Wolfgang Wiedmeyer
| *Latest images* | [[ReplicantImages#Replicant-60-0003-images|Replicant 6.0 0003]] |
12 1 Paul Kocialkowski
13
h2. Replicant status
14
15 35 Wolfgang Wiedmeyer
[[ReplicantStatus#Replicant-60|Replicant 6.0 status]]
16 1 Paul Kocialkowski
17 26 Paul Kocialkowski
h2. Replicant installation
18 1 Paul Kocialkowski
19 55 Denis 'GNUtoo' Carikli
To install Replicant on the Galaxy S II (GT-I9100), see the [[RecoveryInstallationWithHeimdall]] and [[MinorVersionUpgrade]] wiki pages.
20 1 Paul Kocialkowski
21 26 Paul Kocialkowski
h2. Replicant usage
22 1 Paul Kocialkowski
23 29 Paul Kocialkowski
* [[GalaxyS2I9100CompassCalibration|Galaxy S 2 (I9100) compass calibration]]
24 19 Paul Kocialkowski
25 26 Paul Kocialkowski
h2. Replicant build
26 1 Paul Kocialkowski
27 29 Paul Kocialkowski
[[GalaxyS2I9100Build|Galaxy S 2 (I9100) build]]
28 1 Paul Kocialkowski
29
h2. Replicant development
30
31 31 Paul Kocialkowski
* [[GalaxyS2I9100Serial|Galaxy S 2 (I9100) serial]]
32 54 Denis 'GNUtoo' Carikli
* If you don't have the device and need a quick test, see the [[People]] page for a list of people having a Galaxy SII (GT-I9100)
33
* If you already have substantial Replicant contributions, and you need a Galaxy SII (GT-I9100), we could ship one to you
34 1 Paul Kocialkowski
35
h2. Freedom and privacy/security issues
36 26 Paul Kocialkowski
37 29 Paul Kocialkowski
Galaxy S 2 (I9100) freedom issues:
38 26 Paul Kocialkowski
* Proprietary hardware
39 29 Paul Kocialkowski
* Proprietary firmwares, some of which are [[GalaxyS2I9100LoadedFirmwares|firmwares loaded by the system]]
40 26 Paul Kocialkowski
* Proprietary modem system
41
* Proprietary bootrom
42 40 Kurtis Hanna
* Proprietary and signed [[I9100Bootloader/|bootloader]]
43 26 Paul Kocialkowski
44 29 Paul Kocialkowski
[[GalaxyS2I9100PrivacySecurityIssues|Galaxy S 2 (I9100) Privacy/security issues]]
45 26 Paul Kocialkowski
46
h2. Research
47
48 7 Paul Kocialkowski
h3. Hardware table
49
50 1 Paul Kocialkowski
|_. Component |_. Name |_. Source |_. Status |
51
| SoC | Samsung Exynos 4210 | Linux kernel | Linux kernel support |
52 29 Paul Kocialkowski
| GPU | Mali 400 | https://secure.wikimedia.org/wikipedia/en/wiki/Exynos | Linux kernel support, proprietary userspace |
53 1 Paul Kocialkowski
| Audio Codec | Yamaha MC1N2 | Linux kernel | Linux kernel support (ALSA), free userspace: Yamaha-MC1N2-Audio/Tinyalsa-Audio |
54
| Modem | XMM6260 | Linux kernel | Free userspace implementation: [[Samsung-RIL]]/[[libsamsung-ipc]] |
55
| Wi-Fi | BCM4330 | Linux kernel | Linux kernel support, proprietary loaded firmware |
56
| Bluetooth | BCM4330 | Linux kernel | Linux kernel support, proprietary loaded firmware |
57
| NFC | PN544 | Linux kernel | Linux kernel support |
58
| GPS | GSD4t | http://www.csr.com/news/pr/release/455/en | Proprietary userspace, no free implementation: [[GSD4t]] |
59
| Accelerometer | K3DH | Linux kernel | Linux kernel support, free userspace |
60
| Compass | AKM8975 | Kernel sources | Linux kernel support, free userspace |
61 29 Paul Kocialkowski
| Light | Capella CM3663 | Linux kernel support, free userspace | |
62
| Proximity | Capella CM3663 | Linux kernel support, free userspace | |
63
| FM Radio | SI4709 | Linux kernel | Linux kernel support |
64
| Camera (back) | Fujitsu M5MO | Linux kernel support, free userspace | |
65
| Camera (front) | Samsung S5K5BAFX | Linux kernel support, free userspace | |
66
| Touchscreen | Atmel MXT224 | Linux kernel support | |
67
| Display | LD9040 | Linux kernel support | |
68 52 Denis 'GNUtoo' Carikli
| Power Management IC (PMIC) | Maxim MAX8997 | Kernel sources | Linux kernel support |
69 29 Paul Kocialkowski
70 39 Denis 'GNUtoo' Carikli
h3. Software Configuration
71
72 56 Denis 'GNUtoo' Carikli
* [[GalaxyS2I9100Pit]]: Galaxy SII (GT-I9100) PIT (a partition table)
73 39 Denis 'GNUtoo' Carikli
74 41 Denis 'GNUtoo' Carikli
h4. Partitions
75
76
WARNING some content may not be the same on your device
77
78 83 Denis 'GNUtoo' Carikli
|_. PIT     |_. Linux name |_. block device |_. mount point           |_. partition type |_. Description                                                    |_. size or size@location for 16G eMMC |
79
| GANG      |\3. No visible under Replicant 6.0                       |                  | EMMC related?                                                    |                                      |
80
| BOOT      |\3. No visible under Replicant 6.0                       |                  | Bootloader related?                                              |                                      |
81 94 Denis 'GNUtoo' Carikli
|\2. EFS                   | mmcblk0p1      | /efs                    | ext4             | modem data partition ([[GT-I9100EFSContent|content]])            | 20 MiB @ 4MiB                        |
82
|\2. SBL1                  | mmcblk0p2      | None                    |                  | Bootloader related?                                              | 1280 KiB                             |
83
|\2. SBL2                  | mmcblk0p3      | None                    |                  | Bootloader related?                                              | 1280 KiB                             |
84
|\2. PARAM                 | mmcblk0p4      | None                    |                  | ?                                                                | 8 MiB                                |
85
|\2. KERNEL                | mmcblk0p5      | None                    | zImage           | boot partition, See [[IsorecRecoveryIssue]] for more details     | 8 MiB                                |
86
|\2. RECOVERY              | mmcblk0p6      | None                    |                  | recovery partition, See [[IsorecRecoveryIssue]] for more details | 8 MiB                                |
87
|\2. CACHE                 | mmcblk0p7      | /cache                  | ext4             | Android cache partition                                          | 100 MiB                              |
88
|\2. MODEM                 | mmcblk0p8      | None                    |                  | modem firmware partition                                         | 16 MiB                               |
89
|\2. FACTORYFS             | mmcblk0p9      | /system                 | ext4             | Android system partition                                         | 512 MiB                              |
90
|\2. DATAFS                | mmcblk0p10     | /data                   | ext4             | Android application data                                         | 2 GiB                                |
91
|\2. UMS                   | mmcblk0p11     | /mnt/media_rw/xxxx-xxxx | vfat             | user data (music, pictures, etc)                                 | 11784 MiB                            |
92
|\2. HIDDEN                | mmcblk0p12     | /preload                | ext4             | [[GTI9100preloadPartition|contains some data, and Samsung APK]]  | 512 MiB                              |
93 60 Denis 'GNUtoo' Carikli
94 76 Denis 'GNUtoo' Carikli
fstab: 
95 77 Denis 'GNUtoo' Carikli
* "Replicant 6.0":https://git.replicant.us/replicant/device_samsung_galaxys2-common/tree/rootdir/fstab.smdk4210?h=replicant-6.0
96 76 Denis 'GNUtoo' Carikli
97 95 Denis 'GNUtoo' Carikli
h4. Backup / restore of the eMMC content
98
99
On two GT-I9100, the following procedure was successfully tested:
100
(1) Backup the eMMC (/dev/block/mmcblk0) on a microSD
101
(2) resize some partitions (DATAFS, UMS, and the cache partition was deleted and moved right before HIDDEN) under GNU/Linux with udisksctl loop-setup -f mmcblk0.img and gparted
102
(3) reboot several times to recovery
103
(4) restore the modified mmcblk0.img
104
105
This means that there is no checks preventing modifications on mmcblk0 (for instance some cryptographic value that is written to the eMMC at each boot to prevent installing old dump of the eMMC). There might be some checks outside of that (like in mmcblk0boot0 or mmcblk0boot1 though).
106
107
Also restoring the mmmcblk0.img on another device worked but it didn't make the modem take the IMEI of the first device. So something in the EFS is really device specific.
108
109 29 Paul Kocialkowski
h3. References
110
111 34 Paul Kocialkowski
* "Galaxy S 2 (I9100) Service Manual and Schematics":http://www.cpkb.org/wiki/Samsung_GT-I9100_Galaxy_S_II_service_manual
112 33 Paul Kocialkowski
* "Exynos 4210 User Manual":http://www.samsung.com/global/business/semiconductor/file/product/Pulbicmanual_Exynos_4_Dual_45nm_Ver00-2.pdf
113 29 Paul Kocialkowski
114
*These documents are the propriety of Samsung Electronics and are not hosted by the Replicant project.*
115 74 Denis 'GNUtoo' Carikli
116
h3. See also
117
118
* "The Samsung_Galaxy_SII_(samsung-i9100) page":https://wiki.postmarketos.org/wiki/Samsung_Galaxy_SII_(samsung-i9100) on the PostmarketOS wiki. It has many informations on upstreaming and u-boot.