Jump to content

Samsung Galaxy S4 (samsung-jflte)

From Nura Wiki
Samsung Galaxy S4
Galaxy S4
Galaxy S4
Manufacturer Samsung
Name Galaxy S4
Codename samsung-jflte
Released 2013
Type handset
Hardware
Chipset Qualcomm Snapdragon 600 (APQ8064AB)
CPU Quad-core 1.9 GHz Krait 300
GPU Adreno 320
Display 1080x1920 AMOLED
Storage 16/32/64 GB
Memory 2 GB
Architecture armv7
Software
Original software
The software and version the device was shipped with.
Android 4.2.2
Extended version
The most recent supported version from the manufacturer.
Android
Nura
Category testing
Mainline
Instead of a Linux kernel fork, it is possible to run (Close to) Mainline.
yes
pmOS kernel
The kernel version that runs on the device's port.
7.1
Unixbench score
Unixbench Whetstone/Dhrystone score. See Unixbench.
717.1
Device package device-samsung-jflte
Kernel package linux-postmarketos-qcom-apq8064
Features
Flashing
Whether it is possible to flash the device with pmbootstrap flasher.
Works
USB Networking
After connecting the device with USB to your PC, you can connect to it via telnet (initramfs) or SSH (booted system).
Works
SD card
Also includes other external storage cards.
Untested
Battery
Whether charging and battery level reporting work.
Works
Screen
Whether the display works; ideally with sleep mode and brightness control.
Partial
Touchscreen
Works
Multimedia
3D Acceleration
Partial
Audio
Audio playback, microphone, headset and buttons.
Broken
Camera
Broken
Camera Flash
Broken
IR TX
Broken
Connectivity
WiFi
Works
Bluetooth
Works
GPS
Broken
NFC
Near Field Communication
Broken
Modem
Calls
Broken
SMS
Broken
Mobile data
Broken
Miscellaneous
FDE
Full disk encryption and unlocking with unl0kr.
Untested
USB OTG
USB On-The-Go or USB-C Role switching.
Untested
Sensors
Accelerometer
Handles automatic screen rotation in many interfaces.
Broken


Note This page is about "Galaxy S4" variants that use the Qualcomm Snapdragon 600 SoC, see #Model variants.

Contributors

Maintainer(s)

Users owning this device

  • Bastindo (Notes: 2x black, one has a cracked screen)
  • Beni
  • BenWolsieffer
  • Chmod-rwx (Notes: 3x, 2 working 1 untested)
  • Chronos (Notes: with lineageos)
  • Danfigasystems (Notes: unknown model. Screen broken)
  • Deviled (Notes: 32gb, black, global model, with a degraded battery)
  • Eepymeowers (Notes: 3x - 1 is ATT ver, rooted with locked BL on Android 5 TouchWiz, 2nd is stock and ATT ver, third is Sprint on LOS 18.1)
  • Fizzo
  • GloomyJD (Notes: Works)
  • GrantM11235
  • Grimler
  • I9505 someone
  • Igor121 (Notes: playground?)
  • Jacobk (Notes: 2x SPH-L720T, 1 of which runs pmOS w/ various usability bugs, and 1x SCH-I545V, which probably needs an exploit to flash))
  • JuniorJPDJ (Notes: broken display)
  • Lifehackerhansol
  • Loomhigh (Notes: Booting into a black screen)
  • Madeline1805 (Notes: jflteatt, running Android 5.1, dead screen)
  • Madhaxbro (Notes: GT-I9505, runs crDroid Android + TWRP. Ready for testing. Boots lk2nd without porting, only display works! Classic design. Could run mainline some day.)
  • Manty
  • MayeulC (Notes: Two I9505, two I9506)
  • Nardo45 (Notes: Model: SGH-I337M)
  • Notnoelchannel
  • OHA (Notes: 9.2026: GT-I9505 runs pmOS with lxqt)
  • Piero-e (Notes: international LTE / gt-i9505 / running official /e/OS android.11 based (jfltexx))
  • PL (Notes: Boots pmOS, screen black. USB Networking works, normal networking is a hassle but can be made to work)
  • SnappedAll (Notes: cm13, suspicious display, 2ndary phone)
  • Stani2000
  • Thekingkerellos (Notes: Cant get pmos to boot so im just porting a11/12 roms to this device)
  • Tuxorials (Notes: broken screen)
  • Ungeskriptet (Notes: Missing battery and broken panel; Compatible with jfvelte panel)
  • WeirdTreeThing

Model variants

Galaxy S4 (LTE) "JF?"

  • GT-I9505 (Global) - Compatible.
  • GT-I9505G - Probably compatible (untested).
  • GT-I9506 isn't based on the apq8064 SOC but MSM8974 (like the Galaxy S5), this one is unsupported by the current package.
  • SCH-I545V (US?, ?) - Not compatible
  • SGH-I337M (Canada?, ?) - Partially Compatible (tested, gets stuck in telnet).
  • SGH-M919 (Canada?, ?) - Not Compatible.
  • SPH-L720T (US, Sprint, "jfltespr") - Not Compatible.

North american variants are based on an Exynos SOC, they aren't compatible with the current package which is based on GT-I9505 - apq8064 SOC.

Firmware

Locked bootloader

Watch out, some versions have bootloaders that can't be unlocked, although the locked versions have a bootloader that contains a bug.

Boot modes

How to enter flash mode

  • Download Mode: Hold Power and Volume Down while connecting the device to a computer with a USB cable.

Installation

$ pmbootstrap init
$ pmbootstrap install

Since the Galaxy S4 only has a 10 MB kernel partition, the lk2nd bootloader is required. Download the device-specific image and flash it with Heimdall after booting into Download Mode:

$ wget https://raw.githubusercontent.com/apq8064-mainline/linux/master/lk2nd.img
$ heimdall flash --BOOT lk2nd.img

On reboot, hold the Home button to land on lk2nd.

$ pmbootstrap flasher flash_rootfs

Now reboot the device, everything is installed!

Battery

This device uses removable 2600 mAh Li-Ion batteries. Large aftermarket batteries (with a custom back cover) are made by third parties.

Warning WARNING: Be careful with degraded batteries. They may cause issues. Some UIs will not power the device off automatically on low charge!

Battery charging status and fuelgauge work on mainline.

Wireless connectivity

WiFi

If you are using any desktop environment with a WiFi tray, it should work out of the box, otherwise you can also connect to WiFi from a terminal.

To list available networks, run

$ nmcli connection show

To connect to a network:

$ sudo nmcli device wifi connect "SSID_NAME" password "WIFI_PASSWORD"

Screen

Screen support is marked as partial as the screen brightness only has 10 levels and not 255 like it normally has on mainline.

The brightness code has been copied over from downstream so the brightness limitations here are identical to downstream.

3D acceleration

3D acceleration is partial, the GPU supports GLES 3.0 but Freedreno support is a bit buggy so this port is pinned to GLES 2.0 which is better supported.

Moreover, some commands can hang the GPU, there are some issues to solve in Mesa/Freedreno for full support.

Despite being a bit laggy, Phosh and XFCE do not hit the paths which hang the GPU and are recommended.

Other Hardware support

  • Front LED is supported
  • Smart cover (External GPIO) on the phone isn't supported yet
  • External antenna support on the back of the phone is unknown.

Other issues

When rebooting the device with the "reboot" command, the device may fail to reboot and stay with a black screen. If it happens, unplug/replug the battery and boot again. This doesn't occur with a regular shutdown.

Notes

Main board UART

To simplify getting logs when doing development, it can be useful to connect to UART directly on the main board. UART (and supposedly JTAG) can be found close to the battery connector, among in 11 pads at the edge of the PCB. TX (from the phone's perspective) is the second pad from the top, and RX is the third one. The device uses 1.8 V signal strength.

UART pin location

External links