Samsung Galaxy S (samsung-i9000)

From postmarketOS
Jump to: navigation, search
Samsung Galaxy S
Samsung Galaxy S
Samsung Galaxy S
Manufacturer Samsung
Name Galaxy S
Codename i9000
Released 2010
Original software Android 2.3.6 (Gingerbread)
Chipset Samsung Exynos 3
CPU 1.0 GHz Cortex-A8
GPU PowerVR SGX 540
Display 480x800
Storage 2-16 GB
Memory 512 MB


  • Nicknack


What works

  • ☑ Kernel compilation
  • ☑ Flash Kernel (pmbootstrap flasher flash_kernel)
  • ☐ Flash Rootfs (pmbootstrap flasher flash_rootfs)
  • ☑ Flash Rootfs (netcat)
  • ☑ Initramfs boot
  • ☑ USB Network
  • ☑ Framebuffer graphics (Splash screens)
  • ☑ SSH Connectivity
  • ☑ Weston on framebuffer
  • ☑ Touchscreen
  • ☐ Xwayland
  • ☐ Wifi (partial)
  • ☐ Audio playback

What does not work

How to enter flash mode

  • Connect a USB cable
  • Make sure, the device is powered off
  • Hold power + Home + volume down


Boot process

We're using the heimdall-isorec flash method, see deviceinfo_flash_methods for more information.

netcat method

Flashing to device memory should be possible using drebrez's netcat method (#456) and guide from Galaxy S II.

Step by step guide for Flashing to device memory

- Build image (on your computer) and prepare the installation as usual

 $ pmbootstrap init
 $ pmbootstrap build device-samsung-i9000 --arch=armhf
 $ pmbootstrap install --no-fde

-- Set phone to ODIN mode

-- Set image for NETCAT flash method

 $ pmbootstrap initfs hook_add debug-shell

-- Flash Kernel and Recovery (phone will reboot to screen "debug-shell is active" [1])

 $ pmbootstrap flasher flash_kernel

-- Check USB network connection to phone


(if it does not ping, try replugging usb cable few times)

-- If USB network connection is still not up: check for correct link with ip a

 $ sudo ip l set enp0s20u2 address 12:12:12:12:12:12
 $ sudo dhclient -v enp0s20u2

-- Connect to phone with telnet

 $ telnet

-- Start netcat to listen for image (on the phone) /dev/mmcblk0p2 should be FACTORYFS partition you check by running fdisk -l /dev/mmcblk0

 / # nc -v -l -p 60000 > /dev/mmcblk0p2

-- Switch to pmboostrap chroot (on the computer in other terminal)

 $ ./ chroot --suffix native

-- Install pv (in the chroot)

 / # apk add pv

-- Send image from computer to netcat (on the computer)

 / # pv /home/pmos/rootfs/samsung-i9000.img | nc 60000

-- Close both nc with CTRL+C when transfer finishes and reboot the phone with power button


- Create conf for wpa_supplicant

 $ wpa_passphrase "SSID" "password" > wifi

Note : If you are connecting to a hidden wireless network, make sure to add line "scan_ssid=1" after the ssid line in your generated conf file

- Connect to wifi AP

 $ sudo wpa_supplicant -i wlan0 -c wifi &

- Get ip address from dhcp server (in another terminal)

 $ sudo udhcpc -i wlan0

To set wifi connection to start automatically on boot, please refer here wifi



device package

device tree

Current kernel

Alternative kernels

Firmware files