[OnePlus 7 Pro ROMs, Kernels, Recoveries, & Other D] PeterCxy:
Note: Since the patches essential for making this device work has been merged into LineageOS main repo, there is no need to maintain a separate unofficial build anymore. All fixes go to the official repository and you can expect the official LOS nightly builds to contain the most updated code. You can still use this thread for bug reports though. But bear in mind that some bugs that only appear on specific batches and cannot be reproduced on our devices are harder to fix.

Introduction

This is an UNOFFICIAL build of LineageOS for OnePlus 7 Pro (5G version NOT TESTED, probably won't work). While most features should be working, remember that this is a very early version and things could break, especially for a device as new as this one. I have literally just got hands on it last weekend and spent a few days fixing issues like the fingerprint scanner and motorized front camera. Please always flash with caution.

What's working

- All basic stuff like telephone, bluetooth, nfc, camera, volte, etc.

- Fingerprint scanner (works but with a few minor issues that doesn't affect using it)

- Front camera motor

- Light sensor (sort of, read below for information)

- 90hz screen (with some bugs described below)

Known Issues + TO-DOs

- When booting, the system will alert you of an "internal problem". This is completely fine, just ignore it for now no more internal problems since 20190629 because it comes with its own vendor image.

- Bluetooth audio not working sometimes. Fixed in 20190622

- Auto brightness doesn't work. Partially fixed in 20190622

- In some cases the phone will crash when playing audio. Seems to be problem of AudioFX. I'm looking into it. If you get stuck in recovery after the phone crashes, you can fix it by simply re-flashing anything. Even re-flashing Magisk will work. Fixed in 20190624

- Light sensor doesn't work exactly as it is in official ROM, causing some issues with auto brightness. This is due to the fact that the light sensor is located under the screen, and OnePlus seem to have some magic in their frameworks code to cancel the effect of the screen. For now, I did a very very dirty hack to make it at least work, but no magic is implemented. Expect some issues with this thing. If you find it annoying, I'd suggest disabling it at least for now.

- I have tried to implement an algorithm to correct the readings of the in-display ambient light sensor, but it is still very very funky especially in low-light environment. Fixed since 20190706

- Fingerprint scanning has some quirks here and there. Sometimes the screen goes entirely black except for the scanning area, sometimes the screen may flash a little bit while scanning (tried to reduce it since 20190629). On landscape mode it appears at the wrong place. (fixed since 20190629) But it at least works. I am working to figure out exactly how to make it perfect but it would take some time. (These were also bugs present on the OnePlus 6T / Xiaomi 9 implementation. I have tried to clean them up and fixed some of the issues that were present. At least the screen now doesn't dim like crazy as on OnePlus 6T / Xiaomi 9 implementation, because it dims the correct amount to make screen area other than the scanner circle to appear as bright or dark as it was before increasing the brightness for scanning. Also it works around the somewhat eye-straining Android brightness-changing animation by using a kernel interface provided by OnePlus, exactly as how they did this in their official ROM.)

(Note: if your fingerprint icon gets stuck on home screen, try the following steps: lock your phone, turn on the screen, swipe up for password/pattern unlock, then immediately press the back button, then use fingerprint to unlock. I'll try to get this fixed in the future.)

- Screen colors and refresh rate is a bit messed up when booting. If you find your screen laggy or strange, just turn it off and turn it back on. Fixed by a hack since 20190629, but expect a slight short blink when booting.

- No 48MP for camera. Kind of what you'd expect for these imx586 devices.

- This ROM doesn't come with its own vendor image yet. It needs to be flashed over OxygenOS to function properly. Comes with full vendor image since 20190629

- Importing keys to TEE does not work. Do not even try it, you may lose access to your data.

- SELinux is permissive.

How to flash

Use the TWRP recovery here https://xdaforums.com/oneplus-7-pro/development/recovery-unofficial-twrp-recovery-t3931322

Since 20190629, you DO NOT need to flash OxygenOS before flashing this ROM anymore.

Note: this rom is only tested with firmware images from oxygen 9.5.5 for now. If you encounter any problem for things like mobile data, please try using firmware from 9.5.5 first.

This procedure is a bit tedious, but it's only because we are on an A/B system device.

1. Restart to bootloader, use `fastboot boot` to boot into the TWRP image

2. In TWRP, wipe data (better: format data)

3. Flash this LineageOS image (this installs it to the other slot)

4. Go to Reboot -> Bootloader (this will reboot to the other slot)

5. Again, use `fastboot boot` to boot into the TWRP image

6. Install OpenGAPPS / Magisk etc. (this installs to the current slot)

7. Reboot system

Downloads

20190706-1: https://mega.nz/#!LQxRhawQ!23i11FlIsO6LY35P1K3F1W0KRHGw8ozkUM66C3icdio

A lot of development has been going on this week due to luk1337, maintainer of official LineageOS for multiple devices, joining the party. Most of changes this week are either directly done by luk1337 or inspired by him.

- Corrected the calibration algorithm of the ambient light sensor. It works mostly fine now.

- Fixed support for in-display fingerprint sensor in Always-on Display mode.

- Fixed support for Wi-Fi Display

- Fixed LiveDisplay calibration / reading mode.

- Revamped the icon of in-display fingerprint scanner

- Fixed GNSS (GPS) support. Before this release, all the location information was network-based.

- Fixed NFC HCE.

- Added support for free-fall protection and manual-press warning for front-facing motorized camera.

- Fixed battery usage data.

History versions:

20190629-1: https://mega.nz/#!rRYRmIRY!4WW0FXYkWvu39t0LF-2RbRkl0aDfSbz_kjgZPotdLMQ

- Now comes with full vendor image, no need to flash OxygenOS vendor anymore.

- No more "internal problems" on boot anymore.

- Rebased the kernel

- Reduced screen blinking when fingerprint scanner is active (due to the rebased kernel)

- Hacked to make the screen work at 90Hz right after booting. No need to lock & unlock anymore (but expect a short blink while booting)

- Fixed double-tap-to-wake. Now the option in settings should be working.

- Fixed the position of fingerprint scanning circle when the screen is rotated.

- Tried to fix the ambient light sensor, but its behavior in an extremely low-light environment is still pretty funky. I hope maybe OnePlus can open-source their official algorithm to correct this thing...

20190624-1: https://mega.nz/#!nF4DwADT!xZ8tbrkCGtWL3A7DYIV_e6GfiprqGJXHEZLqufPCmmg

- Fixed crashes caused by playing audio

20190622-1: https://mega.nz/#!OMASTCZK!wXH7WdvVdAxqv7VjGzPwHy40Pk6cfghTGao-7u-PJQk

- Fixed bluetooth audio

- Added dash charging daemon

- Hacked to make the light sensor ( + auto brightness) at least work

20190621-1: https://mega.nz/#!rEglBKxS!OpA3tNSzlnpJ5pL8PW-x9Ax8Ee695GeIaDi4c-qcrw0

Stock Camera App

I have a modified version of the OxygenOS camera app here for use with LineageOS. It mostly works after a simple hack, however:

- No 48MP available. There must be some magic in official ROM on the frameworks side, and I doubt there is much to do about it

- Gallery integration does not work. Clicking on the gallery shortcut in camera will always say "no photos". You need to go to gallery app manually.

- Slow motion works but it will show a black screen when first started. Switching to another app and then back will fix it.

Remeber that I am not a professional camera modder at all. I have little knowledge in this field, and this is only a fallback solution given that nobody else has worked on modding the official camera of this device yet.

OnePlusCamera-guacamole-20190623: https://mega.nz/#!3YRWSKBR!lrRlslmenLXIBoUQQZnqydogKG4GZxmylX6rVHprHQs

Thanks

- LineageOS (obviously) and especially luk1337 (who maintains LOS for oneplus 6t also)

- OmniROM & phhusson (for their fingerprint scanner implementation as a basis, I cleaned it up a bit and abstracted device-specific logic from the somewhat messy frameworks implementation out to HAL. I think their original implementation for Xiaomi 9 / OnePlus 6T should have been done this way also.)

- All contributors to OnePlus 6T device tree of LOS & OmniROM (I took a good amount of code from there)

- HolyDragon guys (for their early work on the kernel)

- aviraxp

- Guaiyihu

XDA:DevDB Information

LineageOS for Oneplus 7 Pro, ROM for the OnePlus 7 Pro

Contributors

PeterCxy, ashwin4rc, holydragon

Source Code: https://github.com/PeterCxy/android_device_oneplus_guacamole

Kernel Code: https://github.com/PeterCxy/android_kernel_oneplus_sm8150

ROM OS Version: 9.x Pie

ROM Kernel: Linux 4.x

Based On: LineageOS

Version Information

Status: Beta

Created 2019-06-21

Last Updated 2019-06-21