Jump to content

Samsung Exynos 9820 (samsung-exynos9820)

From postmarketOS Wiki
Samsung Exynos 9820
Samsung Galaxy S10 running GNOME
Samsung Galaxy S10 running GNOME
Manufacturer Samsung
Name Exynos 9820
Codename samsung-exynos9820
Type handset
Hardware
Chipset Samsung Exynos 9820
Architecture aarch64
Software
Original software
The software and version the device was shipped with.
Android (One UI) 9 (One UI 1.1)
Extended version
The most recent supported version from the manufacturer.
Android (One UI) 12 (One UI 4.1)
Optional software Android (LineageOS)
FOSS bootloader partial
postmarketOS
Category testing
Pre-built images
Whether pre-built images are available from the postmarketOS Installation page.
no
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.2.0
Unixbench score
Unixbench Whetstone/Dhrystone score. See Unixbench.
6044.6
Device package device-samsung-exynos9820
Kernel package linux-postmarketos-exynos9820
Initial MR
Initial merge request.
pmaports!8999
Features
Flashing
Whether it is possible to flash the device with pmbootstrap flasher.
Broken
USB Networking
After connecting the device with USB to your PC, you can connect to it via telnet (initramfs) or SSH (booted system).
Works
Internal storage
eMMC, SD cards, UFS...
Works
SD card
Also includes other external storage cards.
Broken
Battery
Whether charging and battery level reporting work.
Broken
Screen
Whether the display works; ideally with sleep mode and brightness control.
Partial
Touchscreen
Partial
Multimedia
3D Acceleration
Broken
Audio
Audio playback, microphone, headset and buttons.
Broken
Camera
Broken
Camera Flash
Broken
Connectivity
WiFi
Broken
Bluetooth
Broken
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.
Broken
Fingerprint
Fingerprint reader.
Broken
Sensors
Accelerometer
Handles automatic screen rotation in many interfaces.
Broken
Magnetometer
Sensor to measure the Earth's magnetism
Broken
Ambient Light
Measures the light level; used for automatic screen dimming in many interfaces.
Broken
Proximity
Broken
Hall Effect
Measures magnetic fields; usually used as a flip cover sensor
Broken
Haptics
Broken
Barometer
Sensor to measure air pressure
Broken
Power Sensor
Sensor to monitor current, voltage and power. Not fuel gauge!
Broken
U-Boot
Primary Bootloader
Whether it is possible to replace stock bootloader with U-Boot.
Broken
Secondary Bootloader
Whether it is possible to chainload U-Boot from stock bootloader.
Works
Mainline
Whether latest upstream versions of U-Boot are not broken and it is possible to use them.
Broken
Internal Storage
Whether it is possible to boot from internal storage (e.g. eMMC or UFS).
Works
SD card
Whether it is possible to boot from SD card.
Broken
USB Host
Whether it is possible to boot from a USB storage or connect a keyboard.
Broken
USB Peripheral
Whether it is possible to use device as a peripheral in U-Boot, e.g. for fastboot mode.
Broken
Display
Works
Buttons
Whether it is possible to navigate in boot menu or grub with volume and power buttons.
Works

This is a generic port that boots with UEFI for Samsung Exynos 9820 based devices.

Device Codename Chipset Architecture
Samsung Galaxy S10 samsung-beyond1lte Samsung Exynos 9820 aarch64
Samsung Galaxy S10+ samsung-beyond2lte Samsung Exynos 9820 aarch64

Contributors

Users owning this device

How to enter flash mode

  • TWRP (Recovery): hold Volume Up+Bixby while connecting a USB host, or (with USB debugging enabled) - execute $ adb reboot recovery on a connected usb host.

Installation

Prerequisites

The following steps are required before attempting to install postmarketOS on this device:

  1. Perform an OEM unlock.
  2. Install developer vbmeta.img.
  3. Install TWRP.
Note After performing an OEM unlock, the device will start reporting the following message at every boot:

This phone's bootloader is unlocked and its software integrity can't be verified. Any data on this phone may be vulnerable to attackers. Don't store any important or sensitive information on this phone. Press power key to continue.

It's not required to press the power key to continue booting.
Warning WARNING:

Performing an OEM unlock and installing a custom OS will trip the Knox bit and the boot screen will show message below at every boot. This operation is irreversible.

This phone is not running Samsung's official software. You may have problems with features or security, and you won't be able to install software updates.

U-Boot

Exynos 9820 devices come with the S-Boot that handles CPU, DRAM, UFS and screen initialization. Trying to cover all that initialization in a FOSS project is too much work, so it's used as a primary bootloader. The issue with S-Boot is that it ignores cmdline and boot offset parameters from the boot.img and doesn't accept mainline-compatible DTBs.

To work around that, this port uses a custom U-Boot fork that features pinctrl and a UFS driver, which is enough to boot the kernel using EFI. There are no pre-built u-boot images available at the moment. There is ongoing work aimed at cleaning up the fork and submitting the relevant patches upstream. This will open up a path to add the device to Tauchgang U-Boot and have automatic bootloader updates.

The U-boot fork is located at https://github.com/chiffathefox/u-boot/tree/exynos9820 and can be built with the following commands:

git clone https://github.com/chiffathefox/u-boot -b exynos9820
cd u-boot
make CC=aarch64-linux-gnu-gcc-10 CROSS_COMPILE=aarch64-linux-gnu- exynos9820_defconfig
make CC=aarch64-linux-gnu-gcc-10 CROSS_COMPILE=aarch64-linux-gnu- -j "$(nproc)"
mkbootimg --kernel u-boot.bin -o boot.img

adb wait-for-recovery
adb push boot.img /tmp
adb shell dd if=/tmp/boot.img of=/dev/block/platform/13d60000.ufs/by-name/boot

Using pmbootstrap

Follow Installation/Using pmbootstrap. When asked for the device's vendor/codename, select samsung as the vendor and exynos9820 as the codename.

To flash the image to the device, enter TWRP (see #How to enter flash mode), connect your device to the PC and run the following commands:

adb wait-for-recovery
adb push "$(pmbootstrap config work)/chroot_native/home/pmos/rootfs/samsung-exynos9820.img" /tmp
adb shell dd if=/tmp/samsung-exynos9820.img of=/dev/block/platform/13d60000.ufs/by-name/userdata
adb shell sync
adb shell twrp reboot