Jump to content

OnePlus 9 & 9 Pro (oneplus-lemonade & oneplus-lemonadep)

From postmarketOS Wiki
OnePlus 9 & 9 Pro
OnePlus 9 booting mainline with simple framebuffer.
OnePlus 9 booting mainline with simple framebuffer.
Manufacturer OnePlus
Name 9 & 9 Pro
Codename oneplus-lemonadep, oneplus-lemonade
Released 2021
Type handset
Hardware
Chipset Qualcomm Snapdragon 888 (SM8350)
CPU Octa-core (1x2.84GHz Cortex-X1
3x2.42GHz Cortex-A78
4x1.80GHz Cortex-A55)
GPU Adreno 660
Display 1440x3216 120Hz AMOLED (9 pro), 1080x2400 120Hz AMOLED (9)
Storage 128/256 GiB
Memory 8/12 GiB
Architecture aarch64
Software
Original software Android
Original version
The version the device was shipped with.
11 on Linux 5.4
postmarketOS
Category testing
Pre-built images
Whether pre-built images are available here.
no
Mainline
Instead of a Linux kernel fork, it is possible to run (Close to) Mainline.
yes
Unixbench score
Unixbench Whetstone/Dhrystone score. See Unixbench.
8844.2
Features
Flashing
It is possible to flash the device with pmbootstrap flasher.
Works
USB Networking
After connecting the device with USB to your PC, you can connect to it via telnet (initramfs) or SSH (booted system).
Works
Battery
Charging and battery level reporting works
Partial
Screen
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
Connectivity
WiFi
Partial
Bluetooth
Works
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
Works
Sensors
Accelerometer
Auto screen rotation works in desktops e.g. Phosh or Plasma Mobile
Broken

Contributors

robbbbbb, aissa, paweier

Users owning this device


How to enter flash mode

TLDR:

1. Enable Developer Options: Settings -> About Phone -> Click on "Build number" 9 times
2. OEM unlocking: System -> Developer options -> Enable "OEM unlocking"
3. Unlock the bootloader: Unplug and turnoff the device -> Hold volume up&down with power simultaneously -> fastboot logo should appear
4. Finally: open terminal -> fastboot oem unlock

Non-TLDR: Unlocking and rooting the phone

Installation

BACKUP YOUR DEVICE FIRST especially (but not limited to) the dtbo, super, and boot partitions (Backing partitions with ADB).

You can try pulling original super.img to restore to Android later:

adb pull /dev/block/by-name/super super.img

Install and init pmbootstrap first (installation guide)

sudo apt install python3-pip
pip3 install pmbootstrap
pmbootstrap init


(Optional) Clone the downstream codebase, and rebase with master:

cd /path/to/your/pmaports (for example: /home/administrator/.local/var/pmbootstrap/cache_git/pmaports)
git remote add downstream https://gitlab.com/Robbbbbb/pmaports.git
git fetch downstream && git checkout oneplus-lemonade
git rebase master

(Optional) Update the checksums when the package is changed:

pmbootstrap checksum linux-oneplus-lemonade


Compile the kernel for aarch64 and flash rootfs to the super partition:

pmbootstrap build device-oneplus-lemonade
pmbootstrap install
pmbootstrap flasher flash_rootfs
pmbootstrap flasher flash_dtbo
pmbootstrap flasher flash_kernel
pmbootstrap flasher boot


SSH into the device (Full instructions):

ssh user@172.16.42.1

See also