Project

General

Profile

Actions

Galaxy S III (GT-I9300)

Device Galaxy S III (GT-I9300)
Manufacturer Samsung
Release date May 2012
Replicant codename i9300
Status Replicant 6.0: Maintained
Replicant 9: work in progress
Variants GSM: GT-I9300
Latest images Replicant 6.0 0003

Replicant status

Replicant status for the Galaxy S III (GT-I9300): ReplicantStatus Replicant 6.0

Replicant 9: Work in progress

Replicant installation

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

Replicant usage

Replicant build

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

Replicant development

Freedom and privacy/security evaluation

See GalaxyS3I9300PrivacySecurityEvaluation for more details.

Research

Hardware table

Component Name Source Status
SoC Samsung Exynos 4412 iFixit Linux kernel support
GPU Mali 400 wikipedia 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 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

Software Configuration

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:

--- 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: 

As for what the fields can mean:

Binary Type: 0 (AP)

AP probably means application processor which means that the partition is used by the CPU running Android, and not the modem.

Partition Block Size/Offset: 8192
Partition Block Count: 8192

This is in blocks of 512 bytes.
Partition Name: BOTA0

This is the partition name, which here is the same in the GPT partition table.
Identifier: 1

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).

GPT

The mmcblk0 block device also has a GPT.

Locating the PIT and MD5HDR

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

Partitions

PIT Linux name block device mount point partition type Description size or size@location for 16G eMMC
BOOTLOADER mmcblk0boot0, not visible on Replicant 6.0 Unknown, raw data? The bootloader 4M
TZSW Unknown, raw data? The signed TrustZone OS
Not visible in the PIT 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 The PIT partition table 8KiB2@16KiB2
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? 1MiB3@25KiB2
BOTA0 mmcblk0p1 None empty ? 4 MiB3
BOTA1 mmcblk0p2
EFS mmcblk0p3 /efs ext4 modem data partition 20M
PARAM mmcblk0p4 None tar file, can be unpacked with gnu tar * Bootloader settings1
* Boot modes1
* Splash screen1
* several JPGs regarding download mode, loading empty battery, hardware/watchdog reset and other
8M
BOOT mmcblk0p5 None bootimage (mkbootimg) boot.img partition 8M
RECOVERY mmcblk0p6 None bootimage (mkbootimg) recovery partition 8M
RADIO mmcblk0p7 None Unknown, raw data? Modem OS partition 32M
CACHE mmcblk0p8 /cache f2fs cache partition 1G
SYSTEM mmcblk0p9 /system ext4 system partition 1.5G
HIDDEN mmcblk0p10 /preload ext4 Samsung promotional medias:
* Over_the_horizon.mp3
* Wonders_of_Nature.mp4
560M
OTA mmcblk0p11 None empty probably only used during OTA updates? 8M
USERDATA mmcblk0p12 /data ext4 data partition 11.5G

1 According to a forum thread on XDA developers "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."

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

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

Schematics

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.

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

Updated by Denis 'GNUtoo' Carikli about 1 month ago · 87 revisions