Samsung Exynos 9820 (samsung-exynos9820)
|
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 |
|
| Kernel package |
|
Initial MR Initial merge request. |
pmaports!8999 |
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
|
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 + while connecting a USB host, or (with USB debugging enabled) - execute
$ adb reboot recoveryon a connected usb host.
Installation
Prerequisites
The following steps are required before attempting to install postmarketOS on this device:
- Perform an OEM unlock.
- Install developer vbmeta.img.
- Install TWRP.
After performing an OEM unlock, the device will start reporting the following message at every boot:
It's not required to press the power key to continue booting. |
| 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.
|
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