Samsung Galaxy S5 (samsung-klte)
![]() Samsung Galaxy S5 | |
Manufacturer | Samsung |
---|---|
Name | Galaxy S5 |
Codename | samsung-klte |
Released | 2014 |
Hardware | |
Chipset | Qualcomm MSM8974PRO-AC Snapdragon 801 |
CPU | Quad-core 2.5 GHz Krait 400 |
GPU | Adreno 330 |
Display | 1080 x 1920 AMOLED |
Storage | 16/32 GB |
Memory | 2 GB |
Architecture | armv7 |
Software | |
Original software | Android 4.4.2 (KitKat) |
postmarketOS | |
Category | testing |
Pre-built images | no |
Mainline | partial |
postmarketOS kernel | 3.4.113 / 5.6 |
Unixbench Whet/Dhry score | 884.3 |
Flashing |
Works |
---|---|
USB Networking |
Works |
Internal storage |
No data |
SD card |
No data |
Battery |
Works |
Screen |
Works |
Touchscreen |
Works |
Multimedia | |
3D Acceleration |
Partial |
Audio |
Works |
Camera |
No data |
Camera Flash |
No data |
Connectivity | |
WiFi |
Works |
Bluetooth |
Broken |
GPS |
Works |
NFC |
No data |
Modem | |
Calls |
No data |
SMS |
No data |
Mobile data |
No data |
Miscellaneous | |
FDE |
No data |
USB OTG |
No data |
HDMI/DP |
No data |
Sensors | |
Accelerometer |
Works |
Magnetometer |
No data |
Ambient Light |
No data |
Proximity |
No data |
Hall Effect |
No data |
Haptics |
No data |
Barometer |
No data |
Contributors
Maintainer(s)
Users owning this device
- Alexeymin (Notes: Test subject #last. Old phone in good shape with new battery)
- Bastindo (Notes: 1x white, 1x black)
- BenWolsieffer
- CalcProgrammer1
- Casept (Notes: x2)
- Chmod-rwx (Notes: Dead battery)
- Drebrez (Notes: Power IC dead)
- EnderNightLord (Notes: great condition)
- Ethical haquer (Notes: AT&T variant (G900A))
- Hisssy (Notes: kltechn (China))
- Icenowy (Notes: kltechnduo)
- Ichernev (Notes: Working on mainline kernel support)
- Maccraft123 (Notes: i also got a bunch of random parts)
- Magic RB
- Manty (Notes: Android development)
- Minecrell (Notes: SM-G900F with fa2 panel)
- Mossroy (Notes: unused, with a screen that has brightness issues)
- Nobodywasishere
- Nspire
- Oliver193 (Notes: SM-G900F Vodafone model unlocked)
- Rongrong (Notes:
kltechnduo
(G9006W
). WLAN vanished (nothing relevant indmesg
), SMS (w/ofono
.modemmanager
is broken) works; SIM1 works, SIM2 was not tested. WARNING: DO NOT TRY TO FLASHlk2nd
TOkltechnduo
. IT CANNOT BOOT AT ALL!) - Segfault
- Selfisekai
- SnappedAll (Notes: lineageos 18.1, daily driver)
- TPJS (Notes: 6x (all have no screen; two are running PMOS and one is probably dead))
- TryzenAlpensky (Notes: working)
- Unrznbl (Notes: 2022-09-21 heimdall fails to flash)
- V6lhost (Notes: Works fine until I disassembled it)
- Vaulster
- Wurzel3
- Xtex (Notes:
kltechnduo
(G9008W
)) - Yifei (Notes: new battery)
What works
- Flash Kernel (
pmbootstrap flasher flash_kernel
) - Flash Rootfs (
pmbootstrap flasher flash_rootfs
) - Initramfs boot
- USB Network
- Framebuffer graphics (Splash screens)
- SSH Connectivity
- Touchscreen
- Wi-Fi
- Xwayland
- Weston on framebuffer [broken with latest weston]
- Plasma Mobile on framebuffer [untested with last update]
- X11 based UIs on framebuffer work fine
- Android container starts
- audio works with nonfree-userland (with Android container)
What does not work
- Audio playback without nonfree-userland
- Bluetooth adapter is visible in rfkill list, but does not work
- Everything else
How to enter flash mode
Press and hold
+ + simultaneously. Then click to confirm.How to enter recovery mode
Press and hold
+ + simultaneously.Installation
First, install pmbootstrap.
Setup device to be used:
$ pmbootstrap init
...
Vendor [samsung]: samsung <- enter this
Device codename [i9100]: klte <- enter this
Kernel [downstream]: downstream <- you probably want downstream for now
User interface [weston]: <- choose any UI by your preference
...
Build the rootfs image:
$ pmbootstrap install
Then in order to flash it put your device in download mode, and plug it in USB. Then do:
$ pmbootstrap flasher flash_rootfs
Hold "Volume down" + "Home" buttons at the end of the process,
so that when phone reboots put it in flashing mode again
$ pmbootstrap flasher flash_kernel
This time, don't hold any button, let it reboot to Linux!
Nonfree-userland (halium) installation

To make full use of nonfree-userland intallation, which involves running Android in lxc container to make all hardware work (read more at Hybris wiki page), you need to to manually download and install custom device-specific Android/Halium system image. Building it manually takes a lot of time and free space on HDD, so I've prepared prebuilt image: https://androidfilehost.com/?fid=6006931924117913010
You need to download it, un-sparse and place in to root of userdata partition:
Un-sparse:
$ simg2img halium-klte-2019-07-09-system.img halium-klte-2019-07-09-system.img.raw
If it says "invalid sparse format or header magic" it means that the image is already unsparsed. Proceed to next step
Reboot phone to TWRP recovery and push image using ADB:
$ adb push halium-klte-2019-07-09-system.img.raw /data/system.img
Boot to a running postmarketOS system and login with SSH using USB_Network. Next commands are executed on the phone. Make sure that you have a /data
mounted (check output of mount
command). Ensure that Android is fully running inside an lxc container (on device, install htop
, run it and switch into tree mode by pressing t) (see the picture on the right). If it does not, check if lxc-android
is running (see output of rc-status
command). Run logcat and see if it is printing some error logs on the screen.
Before (re)starting lxc-android, remember to remove file /tmp/lxc-android-once
if it exists.
Additional info
Useful helper scripts
Default installation includes a couple of useful scripts to be used from a terminal: battery-status
and set-brightness
. battery-status
allows you to check for battery charge level, and set-brightness
allows to view/set lcd backlight brightness in range 0-255.
samsung-klte:~$ battery-status 25 samsung-klte:~$ set-brightness 255 samsung-klte:~$ sudo set-brightness 20 20
Partition layout
Partition layout:
Component support table
Component | Codename | Mainline kernel | Since when | Downstream 3.4 kernel |
---|---|---|---|---|
Debug serial | msm_serial /dev/ttyMSM0 | Working | v4.17-rc1 | yes, /dev/ttyHSL0 |
Volume & home buttons | gpio-keys | Working | 5.8 | yes |
Regulator nodes | pma8084, Maxim max77826 | Working | 5.8 | yes |
Internal storage | sdhci-msm | Working | 5.8 | yes |
SD card storage | sdhci-msm | Working | In pmOS kernel fork | yes |
USB Networking | usb_dwc3_qcom | Working | 5.8 | yes |
Display | panel-simple | Working | In pmOS kernel fork | yes |
Touchscreen | synaptics rmi4-i2c | Working | In pmOS kernel fork | yes |
Touchkeys | Cypress tm2-touchkey | Working | In pmOS kernel fork | yes |
Vibration motor | Not working | yes | ||
Notification LED | Panasonic AN30259A | Working | In pmOS kernel fork | yes |
WiFi | brcmfmac + PCAL6416A GPIO Expander | Working | In pmOS kernel fork | yes |
USB OTG | Not working | yes | ||
Bluetooth | brcmfmac | Not working | no | |
Battery charger | Maxim max77804k | Not working | yes | |
Battery fuelgauge | Maxim max17048 | Working | In pmOS kernel fork | yes |
GPU | drm_msm | Working | in pmOS kernel fork | works with libhybris (test_hwcomposer_7_1_caf) |
Audio | Not working | with libhybris (pulseaudio-modules-droid) | ||
Modem | qcom-q6v5-mss | Not working | powers up with libhybris | |
Sensors | Not working | yes (libhybris's test_sensors) |
Links
postmarketOS packages:
Mainline kernel patches:
- initial dts https://patchwork.kernel.org/patch/10150807/
- usb-net, storage, hwkeys dts https://lore.kernel.org/patchwork/project/lkml/list/?series=438265
- max77826 driver https://lore.kernel.org/patchwork/project/lkml/list/?series=438450
- max17048 fuelgauge driver https://patchwork.kernel.org/project/linux-pm/list/?series=299767
Development branch:
- https://gitlab.com/postmarketOS/linux-postmarketos/tree/old-4.17.0-rc3/qcom , old 4.17 kernel, commits by drebrez
- https://github.com/drebrez/linux/tree/samsung-klte (old repo)
Extra:
- Full phone specifications
- Samsung Galaxy S5 Teardown
- UART guide
- Demo of Samsung klte running Plasma Mobile
- Plasma Mobile Kirigami Gallery demo on samsung-klte
Photos
-
Weston
-
Xfce4 UI
-
UART debugging
-
Plasma Mobile homescreen
-
Plasma Mobile top panel
-
Plasma Mobile Index file manager
-
klte x2
-
Android processes running inside lxc container