Difference between revisions of "Samsung Galaxy SIII LTE (samsung-i9305)"

From postmarketOS
Jump to navigation Jump to search
Line 1: Line 1:
{{note| This device is still running on armhf, although the processor supports armv7. If you own it, change it and test it [https://wiki.postmarketos.org/wiki/Tips_and_tricks#Update_the_architecture_of_your_device that] way.}}
{{Infobox device
{{Infobox device
| manufacturer = Samsung
| manufacturer = Samsung

Revision as of 02:52, 19 October 2020

Samsung Galaxy S III
Samsung Galaxy SIII
Samsung Galaxy SIII
Manufacturer Samsung
Name Galaxy S III
Codename samsung-i9300, samsung-i9305
Released 2012
Category testing
Original software Android 4.1.1
Chipset Exynos 4412 Quad
CPU Quad-core 1.4 GHz Cortex-A9
GPU Mali-400MP4
Display 720x1280 Super AMOLED
Storage 16 GB
Memory 2 GB
Architecture armv7
USB Networking
3D Acceleration
Mobile data

So far, what works for samsung-i9305 (Galaxy SIII LTE version) also works for the samsung-i9300 (Galaxy SIII international GSM version without LTE) and samsung-shv-e210s (a Korean variant). (None of these SIII models should be confused with the North American SIII models, which require OS builds.)


  • tyxieblub
  • colaur

Users owning this device

  • Arthurlutz (Notes: /e/ 0.11 (android 7 pie))
  • Cick0 (Notes: GT-i9300)
  • DALEK 77 (Notes: i9300)
  • Eloy
  • EnderNightLord (Notes: i9300 1gb ram)
  • Grimler
  • Illen (Notes: is a GT-i9300. Battery is broken, works on charger. Runs mainline U-Boot/Linux.)
  • KuroeHanako (Notes: SHV-E210S, Pebble Blue)
  • Mossroy (Notes: sometimes used : It can not be flashed easily. Seems to have a hardware issue with current consumption, even with a new battery)
  • Neilvandyke (Notes: has GT-i9300)
  • Newbyte (Notes: i9300, revived from the dead with a new battery)
  • Ungeskriptet (Notes: GT-i9300, Pebble Blue)

How to enter flash mode

  • Hold power + Home + volume down
  • When prompted, release all buttons and press volume up


Set phone to ODIN mode

 1. Turn off phone
 2. Connect USB cable
 3. Hold VOLUME_DOWN + HOME + POWER until you get Warning!! screen
 4. Push VOLUME_UP to continue to ODIN mode screen
# Ready the build
pmbootstrap init (weston or xfce4 should do)

# Install rootfs to Micro SD Card
pmbootstrap --sdcard=/dev/mmcblk0/1/2/3 # (will depend on where your Micro SD Card is mounted)

# Put the i9305 / i9300 into odin mode with the steps above and flash the kernel (to boot from the Micro SD Card)
pmbootstrap flasher flash_kernel # (in odin mode)

# and it should reboot automatically

Installing with downstream kernel

mkdir ~/code
cd ~/code
git clone https://gitlab.com/postmarketOS/pmbootstrap.git

alias pmbootstrap=~/code/pmbootstrap/pmbootstrap.py
pmbootstrap init
#work path default

pmbootstrap initfs hook_add debug-shell
#Check log with 'tail -f ~/.local/var/pmbootstrap/log.txt'

#CREATE RECOVERY ZIP (for flashing with TWRP)
pmbootstrap install --no-fde --android-recovery-zip

cp ~/.local/var/pmbootstrap/chroot_buildroot_armhf/var/lib/postmarketos-android-recovery-installer/pmos-samsung-i9305.zip /media/computer/sdcard/
#Insert sdcard in phone
#Reboot on recovery with up+home+power
#Install from zip

#Connect with USB cable


To get the wifi working, you'll need to modify the wpa_supplicant configuration. If this is not done, wpa_supplicant starts with -ip2p0 which is not supported on our device.

 $ echo 'wpa_supplicant_args="-Dwext"' | sudo tee /etc/conf.d/wpa_supplicant

You can use either Network manager or networking and wpa_supplicant. Network manager is recommend in most cases as it handles reconnection.

Network Manager

Ensure the networkmanger service is running

 $ sudo rc-status | grep 'networkmanager'

if it not visible, try to start the service:

 $ sudo rc-service networkmanager start

Search for available WiFi networks and connect to network

 $ sudo nmcli device wifi list ifname wlan0
 $ sudo nmcli --ask dev wifi connect SSID

Reboot and you should be connected.

Networking and wpa_supplicant

You will need to manually configure the interfaces by creating



 $ sudo vi /etc/network/interfaces
  auto lo
  iface lo inet loopback
  auto wlan0
  iface wlan0 inet dhcp

Save changes and add networking to start with system

$ sudo rc-update add networking

Add WiFi network information

$ wpa_passphrase YOUR_SSID YOUR_PASSPHRASE | sudo tee /etc/wpa_supplicant/wpa_supplicant.conf

Restart services

$ sudo rc-service wpa_supplicant restart
$ sudo rc-service networking start

Mainline Kernel

The mainline kernel now has some support for the Samsung Galaxy SIII LTE (i9305):

Upstream dts: exynos4412-i9305.dts

Upstream status: Midas on Mainline.

Note that a patch is required to make it work with the stock samsung bootloader.

forkbomb from LineageOS got mainline u-boot running on this device: [1]

Replicant has this device booting with mainline Linux and almost mainline U-Boot with only the need for a few patches on top and would like to collaborate with us [2]

The Qualcomm Gobi MDM9615 Modem seems to have mainline kernel support as well: [3]

Replicant and LineageOS successfully got the Lima driver for Mesa working on Mali when using mainline linux: video success announcement

Replicant currently supports this device in 6.0 and is doing a lot of research in order to get it running with a mainline kernel with a mainline bootloader for Replicant 9. More bootloader research is here.

xboot might be a completely free bootloader option. Looks to have zero proprietary blobs.

See also

Install with mainline kernel (WIP, not functional yet)

#Export image files in ~/.local/var/pmbootstrap/chroot_rootfs_samsung-i9305/boot/
pmbootstrap export

#5,3M -rw-r--r--  1 root root 5,3M déc.  22 20:31 boot.img-samsung-i9305 (initramfs + vmlinuz)
#1,3M -rw-r--r--  1 root root 1,3M déc.  22 20:31 initramfs-samsung-i9305
#6,1M -rw-r--r--  1 root root 6,1M déc.  22 20:31 initramfs-samsung-i9305-extra
#4,1M -rw-r--r--  1 root root 4,1M nov.   5 17:30 vmlinuz-samsung-i9305

#Get linux-next
cd ~/code
# Case 1 : first checkout
git clone https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git linux
cd linux/
git fetch origin
git reset --hard origin/master
# Case 2 : update
cd linux/
git checkout master
git pull

#Prepare compile with i9305 defconfig in ~/code/linux/arch/arm/configs
source ~/code/pmbootstrap/helpers/envkernel.sh
make exynos_defconfig
#DTS : Note that ~/code/linux/arch/arm/boot/dts/exynos4412-i9305.dts already exists and should work
#Makefile in ~/code/linux/arch/arm/boot/dts/ already contains this DTS

#Kernel compilation
make -j5

#Prepare shell
pmbootstrap chroot -- apk add abootimg android-tools mkbootimg dtbtool findutils
export DEVICE="$(pmbootstrap config device)"
export WORK="$(pmbootstrap config work)"
export TEMP="$WORK/chroot_native/tmp/mainline/"
mkdir -p "$TEMP"

#Patch boot image
cd ~/code/linux/.output/arch/arm/boot
cat zImage dts/exynos4412-i9305.dtb > "$TEMP"/zImage-dtb
cp "/tmp/postmarketOS-export/boot.img-$DEVICE" "$TEMP/boot.img"
pmbootstrap chroot
abootimg -u /tmp/mainline/boot.img  -k /tmp/mainline/zImage-dtb -c bootsize=8955904

#Flash with Heimdall - WARNING - NOT FUNCTIONNAL YET
# enter download mode with down+home+power
# Connect usb
# click 'up'
heimdall detect
heimdall flash --BOOT ~/.local/var/pmbootstrap/chroot_native/tmp/mainline/boot.img