OnePlus 8 Pro (oneplus-instantnoodlep)

From postmarketOS Wiki
OnePlus 8 Pro
.
.
Manufacturer OnePlus
Name 8 Pro
Codename oneplus-instantnoodlep
Released 2020
Type handset
Hardware
Chipset Qualcomm Snapdragon 865 5G (SM8250)
CPU Octa-core (1x2.84 GHz Cortex-A77 & 3x2.42 GHz Cortex-A77 & 4x1.80 GHz Cortex-A55)
GPU Adreno 650
Display 1440 x 3168 pixels (~513 ppi density)
Storage 128 or 256 GB
Memory 8 GB or 12 GB
Architecture aarch64
Software
Original software Android
Original version 10
postmarketOS
Category testing
Pre-built images no
Mainline yes
Features
Flashing
Works
USB Networking
Works
Internal storage
SD card
Battery
Partial
Screen
Partial
Touchscreen
Works
Multimedia
3D Acceleration
Broken
Audio
Broken
Camera
Broken
Camera Flash
Connectivity
WiFi
Works
Bluetooth
Works
GPS
Broken
NFC
Works
Modem
Calls
Broken
SMS
Broken
Mobile data
Broken
Miscellaneous
FDE
Broken
USB OTG
Broken
HDMI/DP
Sensors
Accelerometer
Broken
Magnetometer
Ambient Light
Proximity
Hall Effect
Haptics
Barometer


Contributors

Maintainer(s)

Users owning this device


How to enter flash mode

Normally to fastboot: By pressing vol-, vol+, and power button.

When you are in initial boot stages however the above doesn't work, so try this: Poweroff vs EDL mode (I'm not sure which): Press vol-, vol+, and power button for about 10 sec Then to put in fastboot: Press vol- and power only

Prior / Dynamic Partitions Info

Before flashing anything:

Pull super in root adb shell

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

Android 10 launch, non-retro fit dynamic partitioning. See also PMOS wiki on this

Installation

Don't recommend use of downstream kernel unless you are debugging something. Choose mainline during ```pmbootstrap init```.

pmbootstrap install
pmbootstrap flasher flash_dtbo
pmbootstrap flasher flash_rootfs
pmbootstrap flasher flash_kernel

Back to Android

img2simg super.img super-s.img
fastboot flash super super-s.img

Flash Android as usual now

Partition layout

OnePlus8Pro:~$ ls -al /dev/block/bootdevice/by-name/

lrwxrwxrwx 1 root root   15 1970-02-03 17:53 ALIGN_TO_128K_1 -> /dev/block/sdd1
lrwxrwxrwx 1 root root   15 1970-02-03 17:53 ALIGN_TO_128K_2 -> /dev/block/sdf1
lrwxrwxrwx 1 root root   15 1970-02-03 17:53 abl_a -> /dev/block/sde8
lrwxrwxrwx 1 root root   16 1970-02-03 17:53 abl_b -> /dev/block/sde32
lrwxrwxrwx 1 root root   16 1970-02-03 17:53 abl_log -> /dev/block/sde67
lrwxrwxrwx 1 root root   16 1970-02-03 17:53 aging_kernel -> /dev/block/sde64
lrwxrwxrwx 1 root root   16 1970-02-03 17:53 aging_mod -> /dev/block/sde65
lrwxrwxrwx 1 root root   16 1970-02-03 17:53 android_log -> /dev/block/sde69
lrwxrwxrwx 1 root root   15 1970-02-03 17:53 aop_a -> /dev/block/sde1
lrwxrwxrwx 1 root root   16 1970-02-03 17:53 aop_b -> /dev/block/sde25
lrwxrwxrwx 1 root root   16 1970-02-03 17:53 apdp -> /dev/block/sde51
lrwxrwxrwx 1 root root   15 1970-02-03 17:53 bluetooth_a -> /dev/block/sde5
lrwxrwxrwx 1 root root   16 1970-02-03 17:53 bluetooth_b -> /dev/block/sde29
lrwxrwxrwx 1 root root   16 1970-02-03 17:53 boot_a -> /dev/block/sde11
lrwxrwxrwx 1 root root   16 1970-02-03 17:53 boot_b -> /dev/block/sde35
lrwxrwxrwx 1 root root   15 1970-02-03 17:53 cdt -> /dev/block/sdd2
lrwxrwxrwx 1 root root   16 1970-02-03 17:53 cmnlib64_a -> /dev/block/sde13
lrwxrwxrwx 1 root root   16 1970-02-03 17:53 cmnlib64_b -> /dev/block/sde37
lrwxrwxrwx 1 root root   16 1970-02-03 17:53 cmnlib_a -> /dev/block/sde12
lrwxrwxrwx 1 root root   16 1970-02-03 17:53 cmnlib_b -> /dev/block/sde36
lrwxrwxrwx 1 root root   16 1970-02-03 17:53 config -> /dev/block/sda11
lrwxrwxrwx 1 root root   15 1970-02-03 17:53 ddr -> /dev/block/sdd3
lrwxrwxrwx 1 root root   16 1970-02-03 17:53 devcfg_a -> /dev/block/sde14
lrwxrwxrwx 1 root root   16 1970-02-03 17:53 devcfg_b -> /dev/block/sde38
lrwxrwxrwx 1 root root   16 1970-02-03 17:53 devinfo -> /dev/block/sde49
lrwxrwxrwx 1 root root   16 1970-02-03 17:53 dip -> /dev/block/sde50
lrwxrwxrwx 1 root root   15 1970-02-03 17:53 dsp_a -> /dev/block/sde9
lrwxrwxrwx 1 root root   16 1970-02-03 17:53 dsp_b -> /dev/block/sde33
lrwxrwxrwx 1 root root   16 1970-02-03 17:53 dtbo_a -> /dev/block/sde17
lrwxrwxrwx 1 root root   16 1970-02-03 17:53 dtbo_b -> /dev/block/sde41
lrwxrwxrwx 1 root root   16 1970-02-03 17:53 featenabler_a -> /dev/block/sde22
lrwxrwxrwx 1 root root   16 1970-02-03 17:53 featenabler_b -> /dev/block/sde46
lrwxrwxrwx 1 root root   15 1970-02-03 17:53 frp -> /dev/block/sda5
lrwxrwxrwx 1 root root   15 1970-02-03 17:53 fsc -> /dev/block/sdf5
lrwxrwxrwx 1 root root   15 1970-02-03 17:53 fsg -> /dev/block/sdf4
lrwxrwxrwx 1 root root   15 1970-02-03 17:53 hyp_a -> /dev/block/sde3
lrwxrwxrwx 1 root root   16 1970-02-03 17:53 hyp_b -> /dev/block/sde27
lrwxrwxrwx 1 root root   16 1970-02-03 17:53 hyp_log -> /dev/block/sde71
lrwxrwxrwx 1 root root   16 1970-02-03 17:53 imagefv_a -> /dev/block/sde23
lrwxrwxrwx 1 root root   16 1970-02-03 17:53 imagefv_b -> /dev/block/sde47
lrwxrwxrwx 1 root root   16 1970-02-03 17:53 kernel_log -> /dev/block/sde68
lrwxrwxrwx 1 root root   16 1970-02-03 17:53 keymaster_a -> /dev/block/sde10
lrwxrwxrwx 1 root root   16 1970-02-03 17:53 keymaster_b -> /dev/block/sde34
lrwxrwxrwx 1 root root   15 1970-02-03 17:53 keystore -> /dev/block/sda4
lrwxrwxrwx 1 root root   16 1970-02-03 17:53 limits -> /dev/block/sde54
lrwxrwxrwx 1 root root   16 1970-02-03 17:53 limits-cdsp -> /dev/block/sde55
lrwxrwxrwx 1 root root   16 1970-02-03 17:53 logdump -> /dev/block/sde57
lrwxrwxrwx 1 root root   16 1970-02-03 17:53 logfs -> /dev/block/sde56
lrwxrwxrwx 1 root root   16 1970-02-03 17:53 logo_a -> /dev/block/sde24
lrwxrwxrwx 1 root root   16 1970-02-03 17:53 logo_b -> /dev/block/sde48
lrwxrwxrwx 1 root root   15 1970-02-03 17:53 mdm1m9kefs1 -> /dev/block/sdf7
lrwxrwxrwx 1 root root   15 1970-02-03 17:53 mdm1m9kefs2 -> /dev/block/sdf8
lrwxrwxrwx 1 root root   15 1970-02-03 17:53 mdm1m9kefs3 -> /dev/block/sdf6
lrwxrwxrwx 1 root root   15 1970-02-03 17:53 mdm1m9kefsc -> /dev/block/sdf9
lrwxrwxrwx 1 root root   16 1970-02-03 17:53 mdm1oemnvbktmp -> /dev/block/sde63
lrwxrwxrwx 1 root root   15 1970-02-03 17:53 mdm_oem_dycnvbk -> /dev/block/sda7
lrwxrwxrwx 1 root root   15 1970-02-03 17:53 mdm_oem_stanvbk -> /dev/block/sda8
lrwxrwxrwx 1 root root   15 1970-02-03 17:53 mdmddr -> /dev/block/sdd4
lrwxrwxrwx 1 root root   15 1970-02-03 17:53 mdtp_a -> /dev/block/sde7
lrwxrwxrwx 1 root root   16 1970-02-03 17:53 mdtp_b -> /dev/block/sde31
lrwxrwxrwx 1 root root   15 1970-02-03 17:53 mdtpsecapp_a -> /dev/block/sde6
lrwxrwxrwx 1 root root   16 1970-02-03 17:53 mdtpsecapp_b -> /dev/block/sde30
lrwxrwxrwx 1 root root   16 1970-02-03 17:53 metadata -> /dev/block/sda19
lrwxrwxrwx 1 root root   15 1970-02-03 17:53 misc -> /dev/block/sda3
lrwxrwxrwx 1 root root   15 1970-02-03 17:53 modem_a -> /dev/block/sde4
lrwxrwxrwx 1 root root   16 1970-02-03 17:53 modem_b -> /dev/block/sde28
lrwxrwxrwx 1 root root   15 1970-02-03 17:53 modemdump -> /dev/block/sda9
lrwxrwxrwx 1 root root   15 1970-02-03 17:53 modemst1 -> /dev/block/sdf2
lrwxrwxrwx 1 root root   15 1970-02-03 17:53 modemst2 -> /dev/block/sdf3
lrwxrwxrwx 1 root root   16 1970-02-03 17:53 msadp -> /dev/block/sde52
lrwxrwxrwx 1 root root   16 1970-02-03 17:53 multiimgoem_a -> /dev/block/sde19
lrwxrwxrwx 1 root root   16 1970-02-03 17:53 multiimgoem_b -> /dev/block/sde43
lrwxrwxrwx 1 root root   16 1970-02-03 17:53 multiimgqti_a -> /dev/block/sde20
lrwxrwxrwx 1 root root   16 1970-02-03 17:53 multiimgqti_b -> /dev/block/sde44
lrwxrwxrwx 1 root root   16 1970-02-03 17:53 op1 -> /dev/block/sde66
lrwxrwxrwx 1 root root   16 1970-02-03 17:53 op2 -> /dev/block/sda10
lrwxrwxrwx 1 root root   16 1970-02-03 17:53 opproduct_a -> /dev/block/sda12
lrwxrwxrwx 1 root root   16 1970-02-03 17:53 opproduct_b -> /dev/block/sda13
lrwxrwxrwx 1 root root   15 1970-02-03 17:53 param -> /dev/block/sda6
lrwxrwxrwx 1 root root   15 1970-02-03 17:53 persist -> /dev/block/sda2
lrwxrwxrwx 1 root root   16 1970-02-03 17:53 qsee_log -> /dev/block/sde70
lrwxrwxrwx 1 root root   16 1970-02-03 17:53 qupfw_a -> /dev/block/sde15
lrwxrwxrwx 1 root root   16 1970-02-03 17:53 qupfw_b -> /dev/block/sde39
lrwxrwxrwx 1 root root   16 1970-02-03 17:53 rawdump -> /dev/block/sda22
lrwxrwxrwx 1 root root   16 1970-02-03 17:53 recovery_a -> /dev/block/sda15
lrwxrwxrwx 1 root root   16 1970-02-03 17:53 recovery_b -> /dev/block/sda16
lrwxrwxrwx 1 root root   16 1970-02-03 17:53 reserve1 -> /dev/block/sde72
lrwxrwxrwx 1 root root   16 1970-02-03 17:53 reserve2 -> /dev/block/sde73
lrwxrwxrwx 1 root root   16 1970-02-03 17:53 reserve3 -> /dev/block/sde74
lrwxrwxrwx 1 root root   16 1970-02-03 17:53 reserve4 -> /dev/block/sde75
lrwxrwxrwx 1 root root   16 1970-02-03 17:53 secdata -> /dev/block/sde60
lrwxrwxrwx 1 root root   16 1970-02-03 17:53 spunvm -> /dev/block/sde53
lrwxrwxrwx 1 root root   15 1970-02-03 17:53 ssd -> /dev/block/sda1
lrwxrwxrwx 1 root root   16 1970-02-03 17:53 storsec_a -> /dev/block/sde58
lrwxrwxrwx 1 root root   16 1970-02-03 17:53 storsec_b -> /dev/block/sde76
lrwxrwxrwx 1 root root   16 1970-02-03 17:53 super -> /dev/block/sda14
lrwxrwxrwx 1 root root   15 1970-02-03 17:53 tz_a -> /dev/block/sde2
lrwxrwxrwx 1 root root   16 1970-02-03 17:53 tz_b -> /dev/block/sde26
lrwxrwxrwx 1 root root   16 1970-02-03 17:53 uefisecapp_a -> /dev/block/sde18
lrwxrwxrwx 1 root root   16 1970-02-03 17:53 uefisecapp_b -> /dev/block/sde42
lrwxrwxrwx 1 root root   16 1970-02-03 17:53 uefivarstore -> /dev/block/sde59
lrwxrwxrwx 1 root root   16 1970-02-03 17:53 userdata -> /dev/block/sda23
lrwxrwxrwx 1 root root   16 1970-02-03 17:53 vbmeta_a -> /dev/block/sde16
lrwxrwxrwx 1 root root   16 1970-02-03 17:53 vbmeta_b -> /dev/block/sde40
lrwxrwxrwx 1 root root   16 1970-02-03 17:53 vbmeta_system_a -> /dev/block/sda17
lrwxrwxrwx 1 root root   16 1970-02-03 17:53 vbmeta_system_b -> /dev/block/sda18
lrwxrwxrwx 1 root root   16 1970-02-03 17:53 vm-data -> /dev/block/sde62
lrwxrwxrwx 1 root root   16 1970-02-03 17:53 vm-keystore -> /dev/block/sde61
lrwxrwxrwx 1 root root   16 1970-02-03 17:53 vm-linux_a -> /dev/block/sde21
lrwxrwxrwx 1 root root   16 1970-02-03 17:53 vm-linux_b -> /dev/block/sde45
lrwxrwxrwx 1 root root   16 1970-02-03 17:53 vm-system_a -> /dev/block/sda20
lrwxrwxrwx 1 root root   16 1970-02-03 17:53 vm-system_b -> /dev/block/sda21
lrwxrwxrwx 1 root root   15 1970-02-03 17:53 xbl_a -> /dev/block/sdb1
lrwxrwxrwx 1 root root   15 1970-02-03 17:53 xbl_b -> /dev/block/sdc1
lrwxrwxrwx 1 root root   15 1970-02-03 17:53 xbl_config_a -> /dev/block/sdb2
lrwxrwxrwx 1 root root   15 1970-02-03 17:53 xbl_config_b -> /dev/block/sdc2

Known Issues

Wi-Fi / BT not working on v6.11

On sm8250-linux v6.11 the Wi-Fi and Bluetooth functionality are broken. This is due to an issue with the DTS of this device. A MR has been opened and will be merged soon: in the meantime, you can edit your boot.img as follows:


Step 1

Clone the patched kernel and compile the dts:

$ git clone --depth 1 -b fix/instantnoodlep-wifi https://gitlab.com/denvit/sm8250-linux/
$ cd sm8250-linux
$ make dtbs -j $(nproc)

Step 2

Extract the original boot.img ($PMOS_ROOT/chroot_rootfs_oneplus-instantnoodlep/boot/boot.img) as follows:

$ mkdir /tmp/firmware
$ cd /tmp/firmware
$ unpack_bootimg --boot_img $PMOS_ROOT/chroot_rootfs_oneplus-instantnoodlep/boot/boot.img --format=mkbootimg

Step 3

Copy the newly compiled dtb and re-pack the image:

$ cp ~/git/sm8250-linux/arch/arm64/boot/dts/qcom/sm8250-oneplus-instantnoodlep.dtb /tmp/firmware/out/dtb
$ mkbootimg --header_version 2 --kernel out/kernel --ramdisk out/ramdisk --dtb out/dtb --pagesize 0x00001000 --base 0x00000000 --kernel_offset 0x00008000 --ramdisk_offset 0x01000000 --second_offset 0x00000000 --tags_offset 0x00000100 --dtb_offset 0x0000000001f00000 --board '' --cmdline 'clk_ignore_unused pd_ignore_unused  pmos_boot_uuid=d86a5f31-2802-4333-b5aa-ff8a59e4d66e pmos_root_uuid=efbc85d5-1ba9-45ff-af90-1eecd5235327 pmos_rootfsopts=defaults' -o boot-repacked.img

Step 4

Put your device in fastboot mode, then flash the image and reboot:

fastboot flash boot boot-repacked.img && fastboot reboot

Step 5

Verify that the chip is now working again:

instantnoodlep$ ip link show wlan0
4: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP qlen 1000
    link/ether 00:ca:fe:ba:be:00 brd ff:ff:ff:ff:ff:ff

See also