[Samsung Galaxy S10/S10+/S10 5G/E Cross Device Deve] modpunk:
Features + Known Bugs Summary:

This ROM does already support most features of the hardware. If you need specific features, please check the list below. Each feature was manually tested, so it is possible that it does not match your experience with the ROM. In this case please tell us, see the "Getting Help" section at the end of this post.

Ratings Description

++ perfect (in depth tested, performs like stock or better)

+ good (lighly tested only or has minor flaws but is good enough for normal use)

o ok (can be used with some limitations)

- broken (doesn't work at all)

x not supported (unlikely to be implemented, relies on samsungs closed source code)

? can't test, please give feedback

Performance

++ geekbench 5 score: 2267 (gsmarena stock: 2141)

++ antutu v8.4.1 score: 403909 (gsmarena stock: 389694)

Speed (values in MB/s, sr =seq. read, sw = seq. write, rr = random read, rw = random write)

++ internal SD 128GB

AndroBench5: sr 815.0, sw 193.1, rr 138.7, rw 24.7 (= notebookcheck stock)

CPDT 1GB: sr 735.3, sw 139.2, rr 19.2, rw 4.52

++ external SD, 128GB Samsung Evo Plus

Androbench5: sr 68.2, sw 34.5, rr 5.75, rw 2.56

CPDT 1GB: sr: 75.2, sw: 29.5, rr: 4.08, rw: 1.71

++ USB 3.0 MTP, sw 105MB/s (PC CrystalDiskMark -> mtpdrive -> internal SD)

++ USB 3.0 OTG, sw 105MB/s (Sandisk Extreme 64GB -> internal SD, 10.8GB file, 102s)

+ bluetooth file transfer, 0.1MB/s (29MB; from other phone 4m42s, from PC 5m24s) (theoretical max. is 0.3 for BLE4.0, 0.8 for BLE4.2 and 1.4 for BLE5.0)

Connectivity

++ phone calls, 3G, LTE; also with dual sim

++ wifi (delivers 50Mb/s, the maximum my provider supports)

++ bluetooth (file transfer to phone & pc; headphons incl. mic; speakers; keyboard incl. special keys)

++ NFC (only card read tested)

x VoLTE

Screen

+ 10 finger multitouch, "high touch sensitivity" mode not available

++ full brighness range available

++ double tap to wake

+ AOD works, but might be dimmer than stock and brightness cant be changed. While active the proximity sensor is used an its LED blinks dimly next to the camera

Sound

++ dual laudspeaker for media, quality as expected, high volume selectable

+ earpiece (no in depth test)

+ headphones (3.5mm jack) have clean audio, high volume selectable, limited to 16bit/48kHz (instead of 24bit/192kHz) possibly by ROM

+ build-in mic, limited to 16bit/48kHz (instead of 24bit/192kHz), volume should be normal (test)

+ headphone mic, limited to 16bit/48kHz (instead of 24bit/192kHz)

+ some external DACs supported, limited to 24bit/48kHz; (reported by [MENTION=5930622]El Dun[/MENTION])

Camera (with opencamera + camera API v2)

++ wide, ultrawide, front, front-crop

++ PDAF autofocus, face tracking optional (main + front camera, ultrawide is always fixed focus)

++ manual setting for exposure/ ISO/ shutter/ focus

++ raw files option (main camera)

++ optional HDR

+ dual apperature (main camera), only manual switch (default f1.5)

+ video up to 2160p/30fps, 1080p/30fps (all cameras should support 60fps, but OpenCamera only produces 30fps files)

+ 1080p/240fps (main)/ 1080p/120fps (front) high speed/ slow-mo works in stock cam + GCam

x no 720p/960fps super slo-mo

x no supersteady

- S10, S10+: no telephoto camera (details + help wanted)

x S10+: no front depth camera

Sensors

++ gps, quick fix with A-GPS data

+ fingerprint (all variants), can glitch during setup (see bug list)

++ accelerometer, gyroscope, magnetometer, pressure, light (front) (all values are within tolerance)

+ light sensor, but only the front/ under-screen sensor, not the rear sensor

++ IR/RGB sensor outputs values for IR/Red/Green/Blue/Clear (test) (COM.SAMSUNG.SENSOR.LIGHT_IR)

++ grip sensor

+ front proximity (makes only one measurement per second, if you put it quickly to your ear it may touch the screen before it's turned off; reported by [MENTION=8334674]Lav64[/MENTION])

++ software sensors: step counter, rotation vector, gravity, linear acceleration, compass

++ S10/S10+ heart rate/ SpO2 (confirmed by [MENTION=465284]Ned[/MENTION])

o several software sensors don't produce data, but don't do it on stock either. Affected are the IDs: PICK_UP_GESTURE, COM.SAMSUNG.SENSOR.PROXIMITY_POCKET, COM.SAMSUNG.SENSOR.HALLIC, COM.SAMSUNG.SENSOR.BIO_IR (proof thanks [MENTION=4860184]Brembo109[/MENTION], more info from modpunk)

Charging & Battery

++ 15W quick charge

++ 4.75W reverse charge (with USB OTG adapter)

+ 7.5W+ qi-wireless charge (limited by my charger)

+ 2.5W+ reverse qi-wireless charge (limited by the receiver IC BQ51013)

+ low 40mW idle power consumption (details)

+ ACCA (advance charging controller app) works with limited settings

Misc

++ all buttons, bixby can be reprogrammed (workaround for other functions)

++ wired headphone buttons (pause/play, vol+, vol-)

+ flashlight has only one brighness option (instead of 5 on stock)

- S10e: no fingerprint swipe up/down geture, not even with 3rd party app "Quick Fingerprint Geture"

Known bugs:

when phone is shut down, it reboots instead (fixed in RC2)

reboot to recovery boots directly into system (fixed in RC2)

reboot takes long, about 30s (fixed in RC2, now it only takes a few seconds)

double tap to wake not always working (should be fixed in RC2)

holding fingerprint too long during setup can cause problems details

in full screen apps there may be a black bar to hide the camera cutout which can not be disabled (details, workaround)

high sensitivity touch screen / "glove mode" not available (details)

bixby-button hold-shortcut does not work (details)

google backup does not work with 4x4 or 5x5 pattern. This is an LineageOS issue, but important enough to deserve a note here. (details (thanks [MENTION=10759943]Ivo_Todorov[/MENTION])

Installation:

How do I install this ROM on my phone for the first time?

Below you find a brief checklist of the required installation steps. Installation is more complicated than other ROMs because we take device security very seriously. If you are unfamiliar with installing custom roms , please click the links and read the additional details there.

Confirm the firmware version

Check the top of the ChangeLog which firmware version is required for the ROM release to work well

Go to settings/software-update and update only if the new version matches the requirement!

Alternative: flash with odin/heimdall (details see below)

Unlock your device

Backup all data, unlocking will factory reset your phone

Enable developer mode to and enable the OEM-unlock switch there

Turn off device and boot to bootloader (hold VolumeDown + Bixby, then connect USB cable)

Follow instructions on-screen

Finish the initial setup after unlock. You must connect to WiFi, but can skip everything else. Do not specify a pin/pattern during setup afterwards, otherwise TWRP may cause the "try again after 86400 seconds" issue (see below)

Confirm in the settings that the bootloader is actually unlocked. (greyed out, telling you its unlocked)

Install our TWRP (official thread) | more details (thanks [MENTION=10599663]AndrOdin[/MENTION])

Download our TWRP recovery and the vbmeta-disabled.img file

Unpack the .xz file with 7zip

Check integrity of TWRP (optional, but important for security)

Rename files to recovery.img and vbmeta.img; then pack both files together in a .tar archive with 7zip

Install Samsung USB drivers and odin, (direct link)

Start odin as admin, disable "Auto Reboot" and click "AP "to select the .tar archive

Turn off device, boot to bootloader and, once odin detects it, click "Start"

When the screen turns off, immediately hold (and keep holding) VolumeUp + Bixby + Power to enter recovery mode

When the secondary warning appears, release everything but VolumeUp

Swipe slider to allow for modification

Install LinageOS

copy the ROM ZIP file an external SD card

Boot into the recovery

Wipe cache + dalvik (wipe->advanced and select cache + dalvik)

Format data (wipe->format data, use the dedicated button, wipe->advanced does not work)

Flash the ROM (install -> select storage -> micro SD card and select the .zip file)

Optional: Flash GAPPS (e.g. OpenGAPPS)

Reboot to system

How do I update LineageOS?

Updating LinageOS is a lot less work and you can keep all user data. The process is similar to the last part of the installation:

Backup all important files optional, but very helpful if something goes wrong)

Remove any pin/password/pattern to prevent "retry after 86400 seconds"

Copy the ROM ZIP file an external SD card or internal storage; download the new firmware files to PC (if needed)

Boot into the recovery, do not reboot until you've installed the new ROM and firmware

Flash the ROM (install -> select storage -> micro SD card and select the .zip file)

(Optional: Update GAPPS to the latest version)

Wipe dalvik and cache

Reboot to download

Flash new firmware with instructions below

(Optional: if you use Magisk, flash the new BOOT file. You can also do this in previous step instead of using Stef4n82's "BL.tar" file.)

Reboot to system

How do I update the firmware?

On the stock ROM you can update from the settings menu. You can't do this on lineageOS (yet), so ypu need to use use Odin or Heimdall instead.

How do I update the firmware manually?

Thanks to [MENTION=10682177]Stef4n82[/MENTION]'s new instructions and repacked firmware files installation is easier than ever. Below you find a copy of his post:

If you use Heimdall:

Download the latest firmwarepackge for your device: "G97?F_Firmwareupdate_Heimdall_????.tar.gz"

Extract the package

Flash the firmware files with this command:

heimdall flash \
--BOOTLOADER sboot.bin \
--PARAM param.bin \
--UP_PARAM up_param.bin \
--CM cm.bin \
--KEYSTORAGE keystorage.bin \
--UH uh.bin \
--DTB dt.img \
--RADIO modem.bin \
--CP_DEBUG modem_debug.bin

If you use Odin:

Download the latest firmwarepackge for your device: "G97?F_Firmwareupdate_Odin_????.zip"

Extract the package and you will get an AP.tar, a BL.tar and a CP...tar.md5

Flash the 3 files with Odin (tested with latest Odin 3.14.x)

You can download the repacked firmware from the links below.

S10

S10e

S10+

If you don't want this repacked firmware packages and want to download the whole firmware by your own. Make sure if you flash it via Odin that you use this files:

From AP_G97?FXX*.tar.md5 take the dt.img and create a new AP.tar

CP_G97?FXX*.tar.md5

Extract BL_G97?FXX*.tar.md5 and create a new BL.tar without the vbmeta.img.lz4

Try again after 86400 seconds?

With newer version of the Samsung blobs, if you unlock the storage (/data) with TWRP (ie. you enter your pin/password/pattern in TWRP), the trustzone thinks it is a failed attempt and will lock the storage unlocking for 1 day (86400 seconds). To prevent this do not enter your pin (press cancel) and you can still flash an update. If you tripped the trustzone you can either wayt for 1 day to unlock your device (do not power it off) or try rebooting the phone a few times (thanks [MENTION=10682177]Stef4n82[/MENTION]), or this slightly more detailed guide (thanks [MENTION=8899018]Exilion90[/MENTION])

You can prevent this completely by removing any pin/password/pattern before entering recovery. This does remove all stored fingerprints, so you'll have to set the up again after the update.

3rd Party Software:

How do I install Google apps?

You can download and install the Google Apps from Open Gapps Project. You need ARM64 and 10.x. We suggest to always use the pico package. If you need additional apps you find them in the Play Store.

Put the Open Gapps ZIP file on your SD card and flash it directly after you flashed LineageOS and before the first boot!

Can I use GPay? What about other banking apps

GPay as well as some other banking apps check if the device passes safetynet and will not start if it doesn't. Safetynet fails when the bootloader is unlocked and therefore this ROM will not run GPay and other applications that need it. This official LineageOS statement explains why safetynett will never by bypassed (by default).

Safetynet used to be easy to bypass with Magisk, but since an Update eralier this year Google uses the TPM module and that can't be circumvented easily. However there might be a workaround with "MagiskHide Props Config", please check out this post and this one. (thanks [MENTION=10682177]Stef4n82[/MENTION]) Please note that this has not yet been tested and we can not provide any support. If you got it working on your device, please share how you've done it so we can add it here!

How do I get MicroG with this ROM?

MicroG is an open source alternative to GAPPS. , but unfortunately not recently updated and therefore not recommended.

If you want to install it anyway, read this guide by [MENTION=5985501]JoeRifle[/MENTION] and this post (appendum) by [MENTION=494233]ned14[/MENTION] . Update: It has been reported that the new MicroG version works without issues. (thanks [MENTION=8990738]ichmyselfandi[/MENTION])

Does this ROM have root?

Not by default. If you need root (eg. for AFWall) you can get it through Magisk.

How do I install Magisk?

Important security Advice: Don't flash Magisk modules or anything else which sets SELinux to permissive or you open your device for malware!

Option 1 (recommended):

Download the boot image for Magisk: S10e -- S10 -- S10+

Verify the integrity of the file -> See INTEGRITY

Unzip the boot image using xz or p7zip

(Needed for Odin) Rename the file to boot.img and use 7zip to pack it into a .tar file

Flash the boot image to the BOOT partition using Odin, Heimdall or TWRP

Install https://******************/

Option 2:

Patch TWRP

Which camera app do you suggest?

OpenCamera:

Great open source app that supports a lot of the camera's features with the camera API v2 (select this option in the settings):

All cameras supported (except telephoto, this is a issue with the ROM)

Manual change of exposure, aperture, shutter speed, ISO

The (main) developer uses an S10e himself so you can expect good HW support :p

You can get it from F-Droid or Play Store

GCam Variants:

There is no "official" GCam for this ROM, but there are some that work. Please read this excelent post by [MENTION=494233]ned14[/MENTION] for more details. The current recommendation is "GCam_5.1.018.177470874.41362666_IDan_N6_3.5_fix.apk" from (IDan). You need GAPPS, microG (post) or the Google Service Framework(post).

In comparison to OpenCamera it sacrifices manual controls + extra lenses for:

simpler user interface

better single-shot HDR

better panoramas + photospheres

SlowMo video (1080p [MENTION=512813]120[/MENTION]/240fps)

I've also written a more detailed comparison. You can have both camera apps installed at the same time, so you can always choose the better one depending on the scenario.

Getting Help:

General:

Before you post, please check this FAQ, use the search function and skim the few last pages of this thread. We want LinageOS to work on your device, that's the whole point of this thread, but this way you can get the fastest help. If you did not find an answer, feel free to ask here :) We do this in out free time and it may take us some time to answer, so please be patient.

How to report a bug?

To fix any bug we first have to be able to reproduce it. Please include all relevant information:

device (S10e/S10/S10+)

ROM version

is gapps/ microg/ magisk installed?

steps to reproduce the issue

When in doubt it's better to include to 0much information than too little. A good example is [MENTION=4682705]Sheffield Steve[/MENTION]'s bug report. Check out Simon's "How to Report Bugs Effectively" to write even better reports (and thus get better help).

How to create a logfile?

To get an even better insight into your issue, a logfile can help us a lot. On Android this is called "logcat". Short logcats are best. They contain less fluff which makes finding the issue easier. Here are the steps how to create a log with adb:

install adb drivers

open cmd and navigate to the adb file eg. cd C:\Users\<user>\Desktop\platform-tools

Connect your phone via USB

Select "Allow USB Debugging" on the popup on the phone (see below how to activate it)

Clear the log using: adb logcat -c

Start loggingwith: adb logcat | tee beyond.log

Reproduce the issue

Stop logging by pressing CTRL+c

Send us the log (in a PM)

How do I enable USB Debugging?

To enable USB Debugging you need to do the following steps:

Go to Settings -> About Phone

Look for Build number

Tap on Build Number several times till you get the message that Developer Options have been enabled

Go to Settings -> System -> Advanced -> Developer Options

Enable USB Debugging

About this FAQ:

This FAQ is originally written by modpunk and partly maintained by me (ctrej) to reduce modpunk's workload. We try to keep the FAQ as up-to-date as possible, but it may lag a few days behind. Please read the last posts in this thread for latest information.

Changelog:

20200813 (v1.0)

update: this changelog, now with ROM version at time of posting and a hide section for older changelogs

update: firmware update section (thanks [MENTION=10682177]Stef4n82[/MENTION]!)

update: ROM update section

update: getting help section, rewritten for clarity

update: proximity sensor, slow sample rate (thanks [MENTION=8334674]Lav64[/MENTION])

update: audio section with my test and [MENTION=5930622]El Dun[/MENTION]'s report

add: gpay/safetynet explanation

change: link formating to stay under the 30k character limit

20200809 (RC2)

update: audio output with limited frequency range, limited DAC support (thanks [MENTION=5930622]El Dun[/MENTION])

update: double tap to wake works well, used it for a few weeks now without issues

update: "86400 seconds" section (thanks [MENTION=8899018]Exilion90[/MENTION])

add: links to each version of this FAQ, just click one of the datecodes

add: ACCA to feature list

add: ADO works kinda

add: dual sim to feature list (thanks [MENTION=8899018]Exilion90[/MENTION])

20200802 (RC2)

update: microG section (thanks [MENTION=8990738]ichmyselfandi[/MENTION])

update: unlock instructions, setup with wifi required (thanks [MENTION=4286324]Lunat1c[/MENTION])

update: "86400 seconds" section (thanks [MENTION=4286324]Lunat1c[/MENTION] & [MENTION=10682177]Stef4n82[/MENTION])

add: gapps/ microg/ google framework requirement for the GCAM (thanks [MENTION=6173812]KanyT[/MENTION] & [MENTION=494233]ned14[/MENTION])

add: bug google backup pattern with 4x4 or 5x5 pattern (thanks [MENTION=10759943]Ivo_Todorov[/MENTION])

fix: twrp "more details" link (thanks [MENTION=4286324]Lunat1c[/MENTION])

20200719 (RC2)

update: rgb light sensor, all channels working

update: software sensors don't output values on stock either (thanks [MENTION=4860184]Brembo109[/MENTION])

add: gcam information (thanks [MENTION=494233]ned14[/MENTION])

add: grip sensor

add: microg appendum (thanks [MENTION=494233]ned14[/MENTION])

add: workaround for black status bar in fullscreen

add: bug no glove mode (thanks [MENTION=735270]raggatip[/MENTION])

add: bug bixby button hold shortcut (thanks [MENTION=8334674]Lav64[/MENTION])

20200713

update: feature/ bug list (previously called working/ not working) with fixed from RC2

update: instructions for microG (thanks [MENTION=494233]ned14[/MENTION])

update: magisk install instructions

update: wireless power share works fine, the phone just didn't like the synthetic load I used for testing

add: black bar on camera cutout in fullscreen apps (thanks [MENTION=4603758]Sradgads[/MENTION])

20200707 (RC1)

update: section "get help" with copy & paste template

update: font for cmd to Courier New

confirm: removing pin/password/pattern solves the 86400 second wait delay (thanks [MENTION=10912981]fishnetfancy[/MENTION])

add: working/not working section

add: this changelog

add: telephoto lens not working (thanks [MENTION=465284]Ned[/MENTION])

add: several RC1 issues (thanks [MENTION=10650955]angela5246[/MENTION])

add: vbmeta_disabled note to firmware instructions (thanks [MENTION=9186778]okloloi[/MENTION])

add: reminder to update Magisk alongside lineage (thanks [MENTION=10912981]fishnetfancy[/MENTION])

20200705 (Beta3)

first FAQ update by me (ctrej)

change: order to the "natural" installation flow

change: install section into a more detailed checklist (thanks [MENTION=10599663]AndrOdin[/MENTION])

add: sub-sections (install/ 3rd party/ support)