This device is marked as not booting .
Samsung Galaxy S24 Ultra
File:Samsung-e3q.jpg Manufacturer
Samsung Name
Galaxy S24 Ultra Codename
samsung-e3q Model
SM-S928B Released
2024 Type
handset Hardware Chipset
Qualcomm Snapdragon 8 Gen 3 (SM8650-AC) CPU
8-core (1x3.40GHz Cortex-X4 & 3x3.15GHz Cortex-A720 & 2x2.96GHz Cortex-A720 & 2x2.26GHz Cortex-A520) GPU
Adreno 750 Display
1440 x 3120 (120Hz 6.8" LTPO AMOLED) Storage
256 GB / 512 GB / 1 TB Memory
12 GB Architecture
aarch64 Software Original software
Android (One UI) Original version
14 (One UI 6.1) Extended version
15 (One UI 7) postmarketOS Category
testing Pre-built images
no Mainline
partial
Users owning this device
How to enter flash mode
Download mode: Hold Volume Up and Volume Down while connecting the device to a computer with a USB cable.
Recovery mode: Hold Volume Up and Power while connecting the device to a computer with a USB cable.
EDL Mode: To boot into EDL mode, you need connect the phone with a special cable that shorts D+ (green wire) to ground to your computer. While connecting the cable, hold down the Volume Up and Volume Down buttons and release them shortly after connecting the cable. Afterwards press Volume Down 15 times repeatedly, then disconnect the custom cable and reconnect the phone with a regular USB-C cable. In order to make use of EDL mode, you need to have a Firehose programmer that is compatible with your model and current bootloader revision.
How to unlock bootloader
WARNING: This process will wipe all user data and will irreversibly trip Knox.
Enable OEM unlocking in the developer options
Reboot into download mode
At the blue warning screen, hold Volume Up
On the second screen, press Volume Up to unlock the bootloader
Mainline
A work-in-progress mainline kernel is being developed here . (Will be upstreamed as soon as possible)
Mainline status and hardware
Component
Model
Status
Mainline driver available?
Notes
Display
Samsung E3_S6E3HAF_AMB679FN01
N
N
Command mode, DSC, Single DSI
Touchscreen
Synaptics S3916T
N
N
Pen input
Wacom WEZ02
N
N
USB-C
USB 2.0 (TI eUSB2 repeater)
Y
P
Driver from sm8450-mainline
USB 3.1 Gen 2
N
Y
Booting with fw_devlink=permissive breaks USB
DisplayPort
N
Y
Camera
Samsung ISOCELL S5KHP2
N
N
Main camera
Samsung ISOCELL S5K3LU
N
N
Front camera
Sony IMX564
N
N
Ultrawide
Sony IMX754
N
N
Telephoto
Sony IMX854
N
N
Periscope Telephoto
Accelerometer & Gyroscope
STMicroelectronics LSM6DSV / LSM6DSO
N
Y
Datasheet
Ambient light sensor
Sensortek STK33F11
N
N
Front
Sensortek STK6D2X
N
N
Rear
Time-of-Flight Sensor
STMicroelectronics VL53L8
N
N
Rear laser autofocus
Proximity sensor
Samsung Palm Proximity Sensor V2
N
N
Virtual sensor :/
Magnetometer
AKM AK09918
N
N
Datasheet
Barometer
STMicroelectronics LPS22DF
N
Y
Datasheet
Hall effect
Hall IC
N
N
GPIO 98 on main pinctrl, located in the lower right
Charger
NXP PCA9481
N
N
Datasheet ; Direct charger
NuVolta NU1668
N
N
Wireless charger
PMIC
Maxim MAX77775
N
N
Fuel gauge & main charger
Samsung S2DOS07
N
N
Display PMIC
Samsung S2MPB03
N
N
Camera PMIC
Samsung S2MPB02
N
N
Camera PMIC
eSIM
Samsung S3K250AF
N
N
NFC
NXP PN547
N
Y
Audio
Cirrus Logic CS35L43
N
N
2x, One for each speaker
Haptics
Cirrus Logic CS40L26
N
P
Driver available on LKML
Fingerprint sensor
Qualcomm QFS4008
N
N
MAX77775 MUIC
The MAX77775 MUIC *might* be able to mux the USB-C pins to AP UART. The pinout for a UART cable that works with the S24 Ultra is unknown as of now.
Notes:
Shorting SBU1 (Pin A8) to GND makes the phone think water is in the USB-C port
Miscellaneous info
Creating empty dtbo image
Simply erasing the dtbo partition is not enough to make mainline boot on this phone. In order to make it boot we need to sign an empty dtbo image with avbtool:
$ dd if = /dev/zero of = empty_dtbo.img count = 1
$ avbtool add_hash_footer --partition_name dtbo --partition_size 16777216 --image empty_dtbo.img
$ heimdall flash --DTBO empty_dtbo.img
If the phone still boots to the blue download screen, make sure stock vbmeta is flashed.
simplefb
Since at least the "SM Gen 4"/Waipio era, abl checks if a node named exactly /reserved-memory/splash_region
exists in the device tree. If not, it will disable the display hardware:
ret = FdtPathOffset ( fdt , "/reserved-memory/splash_region" );
if ( ret < 0 ) {
DEBUG (( EFI_D_WARN , "Splash region not found in device tree, " \
"powering down the display and controller \n " ));
Command to create boot.img
$ make O = output-e3q ARCH = arm64 CROSS_COMPILE = aarch64-linux-gnu- -j$( nproc) defconfig sm8650.config
$ make O = output-e3q ARCH = arm64 CROSS_COMPILE = aarch64-linux-gnu- -j$( nproc) &&
rm -f output-e3q/arch/arm64/boot/Image-dtb output-e3q/arch/arm64/boot/boot.img &&
cat output-e3q/arch/arm64/boot/Image.gz output-e3q/arch/arm64/boot/dts/qcom/sm8650-samsung-e3q.dtb > output-e3q/arch/arm64/boot/Image-dtb &&
mkbootimg --kernel output-e3q/arch/arm64/boot/Image-dtb \
--ramdisk /tmp/postmarketOS-export/initramfs \
--pagesize 4096 \
--kernel_offset 0x8000 \
--ramdisk_offset 0x2000000 \
--second_offset 0x0 \
--tags_offset 0x0 \
--header_version 0 \
-o output-e3q/arch/arm64/boot/boot.img &&
( adb reboot download; heimdall flash --BOOT output-e3q/arch/arm64/boot/boot.img)
Partition map
Expand
e3q:/ # ls -lah /dev/block/by-name/
total 0
drwxr-xr-x 2 root root 1.6K 1970-02-02 01:33 .
drwxr-xr-x 5 root root 2.3K 1970-02-02 01:33 ..
lrwxrwxrwx 1 root root 15 1970-02-02 01:33 abl -> /dev/block/sdd4
lrwxrwxrwx 1 root root 15 1970-02-02 01:33 aop -> /dev/block/sdd3
lrwxrwxrwx 1 root root 16 1970-02-02 01:33 aop_config -> /dev/block/sdd22
lrwxrwxrwx 1 root root 15 1970-02-02 01:33 apdp -> /dev/block/sdb3
lrwxrwxrwx 1 root root 16 1970-02-02 01:33 apnhlos -> /dev/block/sda23
lrwxrwxrwx 1 root root 15 1970-02-02 01:33 bksecapp -> /dev/block/sdd5
lrwxrwxrwx 1 root root 16 1970-02-02 01:33 boot -> /dev/block/sda27
lrwxrwxrwx 1 root root 16 1970-02-02 01:33 bota -> /dev/block/sda19
lrwxrwxrwx 1 root root 16 1970-02-02 01:33 btd -> /dev/block/sdd16
lrwxrwxrwx 1 root root 16 1970-02-02 01:33 cache -> /dev/block/sda36
lrwxrwxrwx 1 root root 16 1970-02-02 01:33 cdt -> /dev/block/sda12
lrwxrwxrwx 1 root root 16 1970-02-02 01:33 connsec -> /dev/block/sda41
lrwxrwxrwx 1 root root 16 1970-02-02 01:33 cpucp -> /dev/block/sdd23
lrwxrwxrwx 1 root root 16 1970-02-02 01:33 cpucp_dtb -> /dev/block/sdd24
lrwxrwxrwx 1 root root 16 1970-02-02 01:33 ddr -> /dev/block/sda10
lrwxrwxrwx 1 root root 15 1970-02-02 01:33 debug -> /dev/block/sda8
lrwxrwxrwx 1 root root 15 1970-02-02 01:33 devcfg -> /dev/block/sdd7
lrwxrwxrwx 1 root root 16 1970-02-02 01:33 devinfo -> /dev/block/sda15
lrwxrwxrwx 1 root root 16 1970-02-02 01:33 dsp -> /dev/block/sda22
lrwxrwxrwx 1 root root 16 1970-02-02 01:33 dtbo -> /dev/block/sda38
lrwxrwxrwx 1 root root 15 1970-02-02 01:33 efs -> /dev/block/sda6
lrwxrwxrwx 1 root root 16 1970-02-02 01:33 em -> /dev/block/sdd15
lrwxrwxrwx 1 root root 16 1970-02-02 01:33 frp -> /dev/block/sda14
lrwxrwxrwx 1 root root 15 1970-02-02 01:33 fsc -> /dev/block/sda3
lrwxrwxrwx 1 root root 15 1970-02-02 01:33 fsg -> /dev/block/sdd1
lrwxrwxrwx 1 root root 16 1970-02-02 01:33 hdm -> /dev/block/sdd19
lrwxrwxrwx 1 root root 16 1970-02-02 01:33 hyp -> /dev/block/sdd17
lrwxrwxrwx 1 root root 16 1970-02-02 01:33 imagefv -> /dev/block/sdd10
lrwxrwxrwx 1 root root 16 1970-02-02 01:33 init_boot -> /dev/block/sda28
lrwxrwxrwx 1 root root 15 1970-02-02 01:33 keymaster -> /dev/block/sdd6
lrwxrwxrwx 1 root root 16 1970-02-02 01:33 limits -> /dev/block/sda16
lrwxrwxrwx 1 root root 16 1970-02-02 01:33 limits-cdsp -> /dev/block/sda17
lrwxrwxrwx 1 root root 16 1970-02-02 01:33 logfs -> /dev/block/sda45
lrwxrwxrwx 1 root root 16 1970-02-02 01:33 metadata -> /dev/block/sda25
lrwxrwxrwx 1 root root 16 1970-02-02 01:33 misc -> /dev/block/sda13
lrwxrwxrwx 1 root root 16 1970-02-02 01:33 modem -> /dev/block/sda26
lrwxrwxrwx 1 root root 15 1970-02-02 01:33 modemst1 -> /dev/block/sda1
lrwxrwxrwx 1 root root 15 1970-02-02 01:33 modemst2 -> /dev/block/sda2
lrwxrwxrwx 1 root root 16 1970-02-02 01:33 omr -> /dev/block/sda37
lrwxrwxrwx 1 root root 16 1970-02-02 01:33 optics -> /dev/block/sda35
lrwxrwxrwx 1 root root 15 1970-02-02 01:33 pad -> /dev/block/sdc3
lrwxrwxrwx 1 root root 15 1970-02-02 01:33 param -> /dev/block/sda7
lrwxrwxrwx 1 root root 15 1970-02-02 01:33 persist -> /dev/block/sda5
lrwxrwxrwx 1 root root 16 1970-02-02 01:33 persistent -> /dev/block/sda20
lrwxrwxrwx 1 root root 16 1970-02-02 01:33 prism -> /dev/block/sda34
lrwxrwxrwx 1 root root 16 1970-02-02 01:33 pvmfw -> /dev/block/sda32
lrwxrwxrwx 1 root root 15 1970-02-02 01:33 qupfw -> /dev/block/sdd9
lrwxrwxrwx 1 root root 16 1970-02-02 01:33 qweslicstore -> /dev/block/sda40
lrwxrwxrwx 1 root root 16 1970-02-02 01:33 rawdump -> /dev/block/sda18
lrwxrwxrwx 1 root root 16 1970-02-02 01:33 recovery -> /dev/block/sda29
lrwxrwxrwx 1 root root 14 1970-02-02 01:33 sda -> /dev/block/sda
lrwxrwxrwx 1 root root 14 1970-02-02 01:33 sdb -> /dev/block/sdb
lrwxrwxrwx 1 root root 14 1970-02-02 01:33 sdc -> /dev/block/sdc
lrwxrwxrwx 1 root root 14 1970-02-02 01:33 sdd -> /dev/block/sdd
lrwxrwxrwx 1 root root 15 1970-02-02 01:33 sec_efs -> /dev/block/sda9
lrwxrwxrwx 1 root root 16 1970-02-02 01:33 secdata -> /dev/block/sdd12
lrwxrwxrwx 1 root root 16 1970-02-02 01:33 shrm -> /dev/block/sdd26
lrwxrwxrwx 1 root root 15 1970-02-02 01:33 ssd -> /dev/block/sda4
lrwxrwxrwx 1 root root 16 1970-02-02 01:33 steady -> /dev/block/sda21
lrwxrwxrwx 1 root root 15 1970-02-02 01:33 storsec -> /dev/block/sdd8
lrwxrwxrwx 1 root root 16 1970-02-02 01:33 super -> /dev/block/sda33
lrwxrwxrwx 1 root root 16 1970-02-02 01:33 toolsfv -> /dev/block/sda44
lrwxrwxrwx 1 root root 15 1970-02-02 01:33 tz -> /dev/block/sdd2
lrwxrwxrwx 1 root root 16 1970-02-02 01:33 tz_kg -> /dev/block/sdd20
lrwxrwxrwx 1 root root 16 1970-02-02 01:33 tziccc -> /dev/block/sdd18
lrwxrwxrwx 1 root root 16 1970-02-02 01:33 tzsc -> /dev/block/sda42
lrwxrwxrwx 1 root root 16 1970-02-02 01:33 uefi -> /dev/block/sdd21
lrwxrwxrwx 1 root root 16 1970-02-02 01:33 uefisecapp -> /dev/block/sdd11
lrwxrwxrwx 1 root root 16 1970-02-02 01:33 uefivarstore -> /dev/block/sdd13
lrwxrwxrwx 1 root root 16 1970-02-02 01:33 userdata -> /dev/block/sda46
lrwxrwxrwx 1 root root 16 1970-02-02 01:33 vbmeta -> /dev/block/sda39
lrwxrwxrwx 1 root root 16 1970-02-02 01:33 vbmeta_system -> /dev/block/sda24
lrwxrwxrwx 1 root root 16 1970-02-02 01:33 vendor_boot -> /dev/block/sda30
lrwxrwxrwx 1 root root 16 1970-02-02 01:33 vk -> /dev/block/sdd14
lrwxrwxrwx 1 root root 16 1970-02-02 01:33 vm-bootsys -> /dev/block/sda31
lrwxrwxrwx 1 root root 15 1970-02-02 01:33 xbl -> /dev/block/sdb1
lrwxrwxrwx 1 root root 15 1970-02-02 01:33 xbl_b -> /dev/block/sdc1
lrwxrwxrwx 1 root root 15 1970-02-02 01:33 xbl_config -> /dev/block/sdb2
lrwxrwxrwx 1 root root 15 1970-02-02 01:33 xbl_config_b -> /dev/block/sdc2
lrwxrwxrwx 1 root root 16 1970-02-02 01:33 xbl_ramdump -> /dev/block/sdd25
lrwxrwxrwx 1 root root 16 1970-02-02 01:33 xbl_sc_logs -> /dev/block/sda43
lrwxrwxrwx 1 root root 16 1970-02-02 01:33 xbl_sc_test_mode -> /dev/block/sda11
See also