h1. Galaxy S II (GT-I9100) {{>toc}} |/9. !galaxys2.png! | *Device* | Galaxy S II (GT-I9100) | | *Manufacturer* | Samsung | | *Release date* | May 2011 | | *Codename* | @i9100@ | | *Status* | Maintained | | *Variants* | GSM: GT-I9100 | | *Latest images* | [[ReplicantImages#Replicant-60-0004-images|Replicant 6.0 0004]] | h2. Replicant status [[ReplicantStatus#Replicant-60|Replicant 6.0 status]] h2. Replicant installation To install Replicant on the Galaxy S II (GT-I9100), see the [[RecoveryInstallationWithHeimdall]] and [[MinorVersionUpgrade]] wiki pages. h2. Replicant usage * [[GalaxyS2I9100CompassCalibration|Galaxy S 2 (I9100) compass calibration]] h2. Replicant build [[GalaxyS2I9100Build|Galaxy S 2 (I9100) build]] h2. Replicant development * [[GalaxyS2I9100Serial|Galaxy S 2 (I9100) serial]] * 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) * If you already have substantial Replicant contributions, and you need a Galaxy SII (GT-I9100), we could ship one to you h2. Freedom and privacy/security issues Galaxy S 2 (I9100) freedom issues: * Proprietary hardware * Proprietary firmwares, some of which are [[GalaxyS2I9100LoadedFirmwares|firmwares loaded by the system]] * Proprietary modem system * Proprietary bootrom * Proprietary and signed [[I9100Bootloader/|bootloader]] [[GalaxyS2I9100PrivacySecurityIssues|Galaxy S 2 (I9100) Privacy/security issues]] h2. Research h3. Hardware table |_. Component |_. Name |_. Source |_. Status | | SoC | Samsung Exynos 4210 | Linux kernel | Linux kernel support | | GPU | Mali 400 | https://secure.wikimedia.org/wikipedia/en/wiki/Exynos | Linux kernel support, proprietary userspace | | Audio Codec | Yamaha MC1N2 | Linux kernel | Linux kernel support (ALSA), free userspace: Yamaha-MC1N2-Audio/Tinyalsa-Audio | | Modem | XMM6260 | Linux kernel | Free userspace implementation: [[Samsung-RIL]]/[[libsamsung-ipc]] | | Wi-Fi | BCM4330 | Linux kernel | Linux kernel support, proprietary loaded firmware | | Bluetooth | BCM4330 | Linux kernel | Linux kernel support, proprietary loaded firmware | | NFC | PN544 | Linux kernel | Linux kernel support | | GPS | GSD4t | http://www.csr.com/news/pr/release/455/en | Proprietary userspace, no free implementation: [[GSD4t]] | | Accelerometer | K3DH | Linux kernel | Linux kernel support, free userspace | | Compass | AKM8975 | Kernel sources | Linux kernel support, free userspace | | Light | Capella CM3663 | Linux kernel support, free userspace | | | Proximity | Capella CM3663 | Linux kernel support, free userspace | | | FM Radio | SI4709 | Linux kernel | Linux kernel support | | Camera (back) | Fujitsu M5MO | Linux kernel support, free userspace | | | Camera (front) | Samsung S5K5BAFX | Linux kernel support, free userspace | | | Touchscreen | Atmel MXT224 | Linux kernel support | | | Display | LD9040 | Linux kernel support | | | Power Management IC (PMIC) | Maxim MAX8997 | Kernel sources | Linux kernel support | h3. Software Configuration * [[GalaxyS2I9100Pit]]: Galaxy SII (GT-I9100) PIT (a partition table) h4. Partitions WARNING some content may not be the same on your device |_. PIT |_. Linux name |_. block device |_. mount point |_. partition type |_. Description |_. size or size@location for 16G eMMC | | GANG |\3. No visible under Replicant 6.0 | | EMMC related? | | | BOOT |\3. No visible under Replicant 6.0 | | Bootloader related? | | |\2. EFS | mmcblk0p1 | /efs | ext4 | modem data partition ([[GT-I9100EFSContent|content]]) | 20 MiB @ 4MiB | |\2. SBL1 | mmcblk0p2 | None | | Bootloader related? | 1280 KiB | |\2. SBL2 | mmcblk0p3 | None | | Bootloader related? | 1280 KiB | |\2. PARAM | mmcblk0p4 | None | | ? | 8 MiB | |\2. KERNEL | mmcblk0p5 | None | zImage | boot partition, See [[IsorecRecoveryIssue]] for more details | 8 MiB | |\2. RECOVERY | mmcblk0p6 | None | | recovery partition, See [[IsorecRecoveryIssue]] for more details | 8 MiB | |\2. CACHE | mmcblk0p7 | /cache | ext4 | Android cache partition | 100 MiB | |\2. MODEM | mmcblk0p8 | None | | modem firmware partition | 16 MiB | |\2. FACTORYFS | mmcblk0p9 | /system | ext4 | Android system partition | 512 MiB | |\2. DATAFS | mmcblk0p10 | /data | ext4 | Android application data | 2 GiB | |\2. UMS | mmcblk0p11 | /mnt/media_rw/xxxx-xxxx | vfat | user data (music, pictures, etc) | 11784 MiB | |\2. HIDDEN | mmcblk0p12 | /preload | ext4 | [[GTI9100preloadPartition|contains some data, and Samsung APK]] | 512 MiB | fstab: * "Replicant 6.0":https://git.replicant.us/replicant/device_samsung_galaxys2-common/tree/rootdir/fstab.smdk4210?h=replicant-6.0 h4. Backup / restore of the eMMC content On two GT-I9100, the following procedure was successfully tested: (1) Backup the eMMC (/dev/block/mmcblk0) on a microSD (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 (3) reboot several times to recovery (4) restore the modified mmcblk0.img 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). 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. h3. References * "Galaxy S 2 (I9100) Service Manual and Schematics":http://www.cpkb.org/wiki/Samsung_GT-I9100_Galaxy_S_II_service_manual * "Exynos 4210 User Manual":http://www.samsung.com/global/business/semiconductor/file/product/Pulbicmanual_Exynos_4_Dual_45nm_Ver00-2.pdf *These documents are the propriety of Samsung Electronics and are not hosted by the Replicant project.* h3. See also * "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.