Samsung Galaxy S7 (samsung-herolte)

Contributors

 * Polynomdivision

What works

 * Compiling the kernel and booting (!314)
 * Wifi with the proprietary firmware (!309)
 * Display
 * TouchScreen
 * Flashing via android recovery zip
 * Wayland/Weston/Xwayland

Mainline notes
For uniLoader:
 * To enable the framebuffer we need to write  to address  . To get this value search for the   base address and add 0x70  to it, then use devmem2 together with the value you calculated on a downstream kernel with   enabled.
 * The MUIC UART is located under address 0x14c50000. To get minimal output follow this guide (add 0x20 to the UART address for the TX offset).

Installation

 * Install TWRP recovery as described here.
 * Wipe the device while in TWRP.
 * Put device in download mode by holding the home, volume down and power buttons when powered off.
 * Execute  to flash the kernel. (Note: You do not need to reflash the kernel if you want to reinstall PMOS with a different image)
 * Reboot Device into TWRP Recovery and execute
 * While in TWRP, enable sideloading by going to Advanced -> ADB Sideload and then execute

Links

 * Device info (LineageOS)
 * Full device specifications
 * Kernel used
 * Pull Request
 * Pull Request #2
 * Manjaro Linux working
 * Blog posts about Mainline attempt