Samsung Galaxy S4 (samsung-jflte)

== Supported models ==
GT-I9505 - SGH-I337M - SGH-M919 -
GT-I9505G (smaller /system partition) 
This page is only for versions of the Galaxy S4 that use the Qualcomm Snapdragon 600 SoC, see https://en.wikipedia.org/wiki/Samsung_Galaxy_S4#Model_variants
Watch out, some versions have bootloaders that can't be unlocked, although the locked versions have a bootloader that contains a bug.
== Contributors ==
* i9505_someone (rrooij on GitHub)
* GrantM11235
== Maintainer(s) ==
== Users owning this device ==
== What works ==
* Compiling the latest lineageos kernel with some patches applied
* Booting a graphical screen when installing PostmarketOS as recovery zip in TWRP.
* Network connection via USB and SSH access
* Screen works
* Brightness can be changed by echoing a value to /sys/class/backlight/panel/device/backlight as root
* Wifi with properietary blobs
* Touch screen
* Wayland
* X11
* Keyboard and mouse with USB OTG adapter (Hotplug works)
* Initramfs password entry for full disk encryption
== What does not work ==
* Touch screen requires a reboot to work in some rare cases
* 3D acceleration
* Wayland default on screen keyboard
== How to enter flash mode ==
Press volume down + the power button to enter Download Mode. It is now possible
to use Heimdall for flashing.
== Installation ==
# Install pmbootstrap
# pmbootstrap init
# pmbootstrap install
# Put your S4 in Download Mode (Volume Down + Power) and connect it with USB
# pmbootstrap flasher flash_kernel
# After the kernel is flashed, the device will reboot. Hold the volume down button while it boots up to re-enter Download Mode
# pmbootstrap flasher flash_rootfs
== Wifi ==
Once the device has been successfully initialized, enable it:
$ sudo ip link set wlan0 up
Configure wpa_supplicant (only necessary on encrypted networks):
$ wpa_passphrase $YOUR_SSID | sudo tee /etc/wpa_supplicant/wlan0.conf
<enter passphrase here and press Enter>
Connect to network using wpa_supplicant:
$ sudo wpa_supplicant -B -i wlan0 -c /etc/wpa_supplicant/wlan0.conf 
If your network uses DHCP, start the DHCP client:
$ sudo udhcpc -i wlan0
== Hardware / sensors detail ==
Output from hwtest on jfltespr sph-l720t:
hwtest output (jfltespr)
Category 	Model 	Path 	Status 	Value
framebuffer	msmfb44_80901 	/sys/class/graphics/fb0	Working	U:1080x1920p-0
framebuffer	msmfb44_70001 	/sys/class/graphics/fb1	Working	
framebuffer	msmfb44_a0001 	/sys/class/graphics/fb2	Working	
input 	sec_touchkey 	/dev/input/event20 	Working	
input 	gpio-keys 	/dev/input/event19 	Working	
input 	apq8064-tabla-snd-card Headset Jack	/dev/input/event18 	Working	
input 	apq8064-tabla-snd-card Button Jack 	/dev/input/event17 	Working	
input 	ssp_context 	/dev/input/event16 	Working	
input 	meta_event 	/dev/input/event15 	Working	
input 	step_cnt_sensor 	/dev/input/event14 	Working	
input 	step_det_sensor 	/dev/input/event13 	Working	
input 	sig_motion_sensor 	/dev/input/event12 	Working	
input 	geomagnetic_sensor 	/dev/input/event11 	Working	
input 	temp_humidity_sensor 	/dev/input/event10 	Working	
input 	proximity_sensor 	/dev/input/event9 	Working	
input 	light_sensor 	/dev/input/event8 	Working	
input 	gesture_sensor 	/dev/input/event7 	Working	
input 	pressure_sensor 	/dev/input/event6 	Working	
input 	gyro_sensor 	/dev/input/event5 	Working	
input 	accelerometer_sensor 	/dev/input/event4 	Working	
input 	sec_touchscreen 	/dev/input/event3 	Working	
input 	max77693-muic 	/dev/input/event2 	Working	
input 	sii8240_rcp 	/dev/input/event1 	Working	
input 	pmic8xxx_pwrkey 	/dev/input/event0 	Working	
For reference, sensor information from sensors sandbox (f-droid) on jfltespr sph-l720t; note that in addition to hardware-based sensors, it presumably includes software-based / derived sensors:
sensor details (sensorssandbox)
name 	vendor 	version	type
K330 3-axis accelerometer 	STMicroelectronics 	1 	1
YAS532 magnetic sensor 	Yamaha Corp 	1 	2
K330 gyroscope sensor 	STMicroelectronics 	1 	4
Barometer sensor 	BOSCH 	1 	6
MAX88920 proximity sensor 	MAXIM, inc. 	1 	8
CM3323 RGB sensor 	Capella Microsystems, inc.	1 	5
SHTC1 relative humidity sensor 	Sensirion 	1 	12
SHTC1 ambient temperature sensor 	Sensirion 	1 	13
YAS532 magnetic sensor uncalibrated	Yamaha Corp 	1 	14
Samsung significant motion sensor 	Samsung, inc 	1 	17
Samsung, inc 	1 	18 	
Samsung step counter sensor 	Samsung, inc 	1 	19
Uncalibrated gyroscope sensor 	Samsung, inc 	1 	16
Screen orientation sensor 	Samsung electronics 	3 	65558
Rotation vector sensor 	AOSP 	3 	11
Gravity sensor 	AOSP 	3 	9
Linear acceleration sensor 	AOSP 	3 	10
Orientation sensor 	AOSP 	1 	3
== 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 phone's perspective) is second pad from the top, and RX the third one. The device uses 1.8 V signal strength.
== Photos ==
== SPH-L720T ==
* SXMO works with touch.
* USB networking does not work properly.
** ping works early on in boot, but then it stops working, and SSH never works.
* Other interfaces I tried, Xfce4 and MATE, did not work.
* Wayland is untested.
* USB OTG keyboard works, other devices untested.
== Links ==
* Kernel used: https://github.com/LineageOS/android_kernel_samsung_jf
* Teardown: https://www.ifixit.com/Teardown/Samsung+Galaxy+S4+Teardown/13947
* 
*