Project

General

Profile

GalaxySIIIGTI9300 » History » Revision 90

Revision 89 (Denis 'GNUtoo' Carikli, 05/17/2020 10:20 PM) → Revision 90/98 (dl lud, 08/06/2020 10:40 AM)

h1. Galaxy S III (GT-I9300) 

 {{>toc}} 

 |/9. !galaxys3.png! | *Device* | Galaxy S III (GT-I9300) | 
 | *Manufacturer* | Samsung | 
 | *Release date* | May 2012 | 
 | *Replicant codename* | @i9300@ | 
 | *Status* | Replicant 6.0: Maintained 
 Replicant 10: 9: work in progress | 
 | *Variants* | GSM: GT-I9300 | 
 | *Latest images* | [[ReplicantImages#Replicant-60-0003-images|Replicant 6.0 0003]] | 

 h2. Replicant status 

 Replicant status for the Galaxy S III (GT-I9300): [[ReplicantStatus#Replicant-60|ReplicantStatus Replicant 6.0]] 

 Replicant 9: Work in progress 

 h2. Replicant installation 

 To install Replicant on the Galaxy S III (GT-I9300), see the [[RecoveryInstallationWithHeimdall]] and [[MinorVersionUpgrade]] wiki pages. 

 h2. Replicant usage 

 * Galaxy S III (GT-I9300) compass calibration: [[GalaxyS3I9300CompassCalibration]] 

 h2. Replicant build 

 Replicant build for the Galaxy S III (GT-I9300): [[GalaxyS3I9300Build]] 

 h2. Replicant development 

 * Galaxy S III (GT-I9300) UART: [[GalaxyS3I9300UART]] 

 h2. Freedom and privacy/security evaluation 

 See [[GalaxyS3I9300PrivacySecurityEvaluation]] for more details. 

 h2. Research 

 h3. Hardware table 

 |_. Component |_. Name |_. Source |_. Status | 
 | SoC | Samsung Exynos 4412 | "iFixit":http://www.ifixit.com/Teardown/Samsung+Galaxy+S+III+Teardown/9391/2 | Linux kernel support | 
 | GPU | Mali 400 | "wikipedia":https://secure.wikimedia.org/wikipedia/en/wiki/Exynos | Linux kernel and secret userspace | 
 | Audio Codec | WM8994 | Linux kernel | Linux kernel support (ALSA) | 
 | Modem | XMM6260 | Linux kernel | Free userspace implementation: [[Samsung-RIL]]/[[libsamsung-ipc]] | 
 | Wi-Fi | BCM4334 | Linux kernel | Linux kernel support, proprietary loaded firmware | 
 | Bluetooth | BCM4334 | Linux kernel | Linux kernel support, proprietary loaded firmware | 
 | NFC | PN544 | Linux kernel | Linux kernel support | 
 | GPS | BCM47511 | "iFixit":http://www.ifixit.com/Teardown/Samsung+Galaxy+S+III+Teardown/9391/2 | Proprietary userspace, no free implementation: [[BCM4751]] | 
 | Accelerometer | LSM330DLC | Linux kernel | Linux kernel support, free userspace | 
 | Compass | AKM8975 | Kernel sources | Linux kernel support, free userspace | 
 | Light/proximity sensor | CM36651 | Kernel sources | Linux kernel support, free userspace | 
 | Gyroscope | LSM330DLC | Kernel sources | Linux kernel support, free userspace | 
 | Barometer | LPS331AP | Kernel sources | Linux kernel support, free userspace | 
 | Camera (back) | S5C73M3 | Linux kernel | Linux kernel support, free userspace | 
 | Camera (front) | S5K6A3 | Linux kernel | Linux kernel support, free userspace, proprietary loaded firmware | 

 h3. Software Configuration 

 h4. PIT 

 The PIT of a 16G version of the Galaxy SIII (GT-I9300) can be found in the [[GalaxyS3I9300Pit]] page. 

 The PIT is a partition table used at least by the bootloader in the odin mode that Heimdal uses. 

 If we look at the BOTA0 partition entry in the PIT we have: 
 <pre> 
 --- Entry #4 --- 
 Binary Type: 0 (AP) 
 Device Type: 2 (MMC) 
 Identifier: 1 
 Attributes: 5 (Read/Write) 
 Update Attributes: 1 (FOTA) 
 Partition Block Size/Offset: 8192 
 Partition Block Count: 8192 
 File Offset (Obsolete): 0 
 File Size (Obsolete): 0 
 Partition Name: BOTA0 
 Flash Filename: - 
 FOTA Filename:  
 </pre> 

 As for what the fields can mean: 
 <pre> 
 Binary Type: 0 (AP) 
 </pre> 
 AP probably means application processor which means that the partition is used by the CPU running Android, and not the modem. 

 <pre> 
 Partition Block Size/Offset: 8192 
 Partition Block Count: 8192 
 </pre> 
 This is in blocks of 512 bytes. 

 <pre> 
 Partition Name: BOTA0 
 </pre> 
 This is the partition name, which here is the same in the GPT partition table. 

 <pre> 
 Identifier: 1 
 </pre> 
 That identifier seem to be increased at each next partition, bit it is different for the PIT partitions that are on the mmcblk0boot0 partition for instance. 

 For instance if we loot at @BOOTLOADER@ we have @Identifier: 80@ and for @TZSW@ we have @Identifier: 81@. Both partitions are located on a different hardware partition of the eMMC (which is considered like a different block device in Linux). 

 h4. GPT 

 The mmcblk0 block device also has a GPT. 

 h4. Locating the PIT and MD5HDR 

 See the [[GalaxySIIIGTI9300PartitionsResearch]] page for an attempt to locate the PIT and the MD5HDR partitions. 

 

 h4. Partitions 

 |_. PIT |_. Linux name |_. block device |_. mount point |_. partition type |_. Description |_. size or size@location for 16G eMMC | 
 | BOOTLOADER |/2\3. mmcblk0boot0, not visible on Replicant 6.0 | Unknown, raw data? | The bootloader |/2. 4M | 
 | TZSW | Unknown, raw data? | The signed TrustZone OS | 
 | Not visible in the PIT |\3. mmcblk0boot1, not visible on Replicant 6.0 | empty | Unused | 4M | 
 | PIT | No partition on Replicant 6.0 | on mmcblk0 (use print-pit to find the location) | None |\2. The PIT partition table | 8KiB[2]@16KiB[2] |  
 | MD5HDR | No partition Replicant 6.0 | on mmcblk0 (use print-pit to find the location) | None | Unknown, raw data? | Used during boot to validate partitions? | 1MiB[3]@25KiB[2] | 
 |\2. BOTA0 | mmcblk0p1 |/2. None |/2. empty |/2. ? |/2. 4 MiB[3] | 
 |\2. BOTA1 | mmcblk0p2 | 
 |\2. EFS | mmcblk0p3 | /efs | ext4    | modem data partition ([[GT-I9300EFSContent|content]]) | 20M | 
 |\2. PARAM | mmcblk0p4 | None | tar file, can be unpacked with gnu tar | * Bootloader settings[1] 
 * Boot modes[1] 
 * Splash screen[1] 
 * several JPGs regarding download mode, loading empty battery, hardware/watchdog reset and other | 8M | 
 |\2. BOOT | mmcblk0p5 | None | bootimage (mkbootimg) | boot.img partition | 8M | 
 |\2. RECOVERY | mmcblk0p6 | None | bootimage (mkbootimg) | recovery partition | 8M | 
 |\2. RADIO | mmcblk0p7 | None | Unknown, raw data? | Modem OS partition | 32M | 
 |\2. CACHE | mmcblk0p8 | /cache | f2fs | cache partition | 1G | 
 |\2. SYSTEM | mmcblk0p9 | /system | ext4 | system partition | 1.5G | 
 |\2. HIDDEN | mmcblk0p10 | /preload | ext4 | Samsung promotional medias: 
 * Over_the_horizon.mp3 
 * Wonders_of_Nature.mp4 | 560M | 
 |\2. OTA | mmcblk0p11 | None    | empty | probably only used during OTA updates? | 8M | 
 |\2. USERDATA | mmcblk0p12 | /data | ext4 | data partition | 11.5G | 

 fn1. According to "a forum thread on XDA developers":https://forum.xda-developers.com/showthread.php?t=1986887 "About Params: The params contains the splash screens you see when you turn your phone on and settings which control boot. These settings include UART output, kernel parmeters, and boot modes." 

 fn2. For the Kib see https://en.wikipedia.org/wiki/Kibibyte 

 fn3. Foi the MiB see https://en.wikipedia.org/wiki/Mebibyte 

 

 h2. Schematics 

 h3. FCC 

 *FCC ID*: A3LGTI9300A (Grantee code: A3L, Product code: GTI9300A) 
 *URL*: https://www.fcc.gov/oet/ea/fccid/ Enter grantee, and product code and click on search. 
 *Schematics*: Block diagram operational description and schematics not made public through the FCC. 

 h3. Ifixit 

 *Device URL*: https://www.ifixit.com/Device/Samsung_Galaxy_S_III#Section_Documents 
 *Repair manuals and very partial schematics*:    https://www.ifixit.com/Device/Samsung_Galaxy_S_III#Section_Documents