OnePlus 7 Pro (oneplus-guacamole)

== About ==
This page describes the support for postmarketOS on the OnePlus 7 Pro.
The phone is able to boot a mainline kernel which you can find here.
This page only documents OnePlus 7 Pro specific features, for an overview of the common OnePlus 7 series features See here
To get the mainline kernel up and running, follow the SM7150 Mainlining guide and replace references to "SM7150" with "SM8150".
== Phone details ==
The OnePlus 7 and 7 Pro have some notable differences compared to the 7T and 7T Pro devices. The biggest of these is that the T series devices use an Android "Super" partition, rather than have individual partitions for the slots. As a result, the non-T devices are easier to flash and test with.
The modem was tested with firmware extracted from the OnePlus 7 and OnePlus 7 Pro OTA packages and was determined to be non-functional. The following is a snippet of the kernel logs after making an adjustment to get more specific error messages:
[ 38.958176] remoteproc remoteproc0: remote processor 4080000.remoteproc is now up
[ 39.649216] ath10k_snoc 18800000.wifi: failed to create WMI vdev 0: -108
[ 39.649436] ath10k_snoc 18800000.wifi: could not suspend target (-108)
[ 70.624549] ath10k_snoc 18800000.wifi: failed to send qmi config: -110
[ 70.624602] ath10k_snoc 18800000.wifi: failed to enable wcn3990: -110
[ 70.624998] ath10k_snoc 18800000.wifi: Could not init hif: -110
[ 70.631345] ath10k_snoc 18800000.wifi: cannot restart a device that hasn't been started
[ 71.001740] qcom_q6v5_pas 4080000.remoteproc: fatal error received: err_qdi.c:1024:EX:wlan_process:0x1:WLAN RT:0x1078:PC=0xb0008e20
[ 71.001778] remoteproc remoteproc0: crash detected in 4080000.remoteproc: type fatal error
[ 71.002534] remoteproc remoteproc0: handling crash #2 in 4080000.remoteproc
[ 71.002544] remoteproc remoteproc0: recovering 4080000.remoteproc
[ 71.012661] ath10k_snoc 18800000.wifi: firmware crashed! (guid 39d03e20-3763-479d-9e46-fa26f5cbd8ac)
[ 71.012682] ath10k_snoc 18800000.wifi: wcn3990 hw1.0 target 0x00000008 chip_id 0x00000000 sub 0000:0000
[ 71.012692] ath10k_snoc 18800000.wifi: kconfig debug 0 debugfs 0 tracing 0 dfs 0 testmode 0
[ 71.012704] ath10k_snoc 18800000.wifi: firmware ver 1.0.0.698 api 5 features wowlan,mgmt-tx-by-reference,non-bmi crc32 b3d4b790
[ 71.012715] ath10k_snoc 18800000.wifi: board_file api 2 bmi_id N/A crc32 00000000
[ 71.012726] ath10k_snoc 18800000.wifi: htt-ver 3.71 wmi-op 4 htt-op 3 cal file max-sta 32 raw 0 hwcrypto 1
[ 72.820947] remoteproc remoteproc0: stopped remote processor 4080000.remoteproc
It appears that the error came from the firmware itself. The commits for attempting to get the modem working for this handset are not merged onto the mainline kernel fork at this time, but a patch for the kernel and pmaports will be available upon request. 
=== Partition map ===
OnePlus7Pro:/ # ls -la /dev/block/bootdevice/by-name/ 
total 0
drwxr-xr-x 2 root root 2680 1971-08-30 11:57 .
drwxr-xr-x 3 root root 2500 1971-08-30 11:57 ..
lrwxrwxrwx 1 root root 15 1971-08-30 11:57 ALIGN_TO_128K_1 -> /dev/block/sdd1
lrwxrwxrwx 1 root root 15 1971-08-30 11:57 ALIGN_TO_128K_2 -> /dev/block/sdf1
lrwxrwxrwx 1 root root 16 1971-08-30 11:57 LOGO_a -> /dev/block/sde22
lrwxrwxrwx 1 root root 16 1971-08-30 11:57 LOGO_b -> /dev/block/sde49
lrwxrwxrwx 1 root root 15 1971-08-30 11:57 abl_a -> /dev/block/sde8
lrwxrwxrwx 1 root root 16 1971-08-30 11:57 abl_b -> /dev/block/sde36
lrwxrwxrwx 1 root root 16 1971-08-30 11:57 aging -> /dev/block/sde56
lrwxrwxrwx 1 root root 16 1971-08-30 11:57 aging_mod -> /dev/block/sde57
lrwxrwxrwx 1 root root 15 1971-08-30 11:57 aop_a -> /dev/block/sde1
lrwxrwxrwx 1 root root 16 1971-08-30 11:57 aop_b -> /dev/block/sde29
lrwxrwxrwx 1 root root 16 1971-08-30 11:57 apdp -> /dev/block/sde61
lrwxrwxrwx 1 root root 41 1971-08-30 11:57 bluetooth -> /dev/block/bootdevice/by-name/bluetooth_b
lrwxrwxrwx 1 root root 15 1971-08-30 11:57 bluetooth_a -> /dev/block/sde5
lrwxrwxrwx 1 root root 16 1971-08-30 11:57 bluetooth_b -> /dev/block/sde33
lrwxrwxrwx 1 root root 36 1971-08-30 11:57 boot -> /dev/block/bootdevice/by-name/boot_b
lrwxrwxrwx 1 root root 16 1971-08-30 11:57 boot_a -> /dev/block/sde11
lrwxrwxrwx 1 root root 16 1971-08-30 11:57 boot_b -> /dev/block/sde39
lrwxrwxrwx 1 root root 16 1971-08-30 11:57 catecontentfv -> /dev/block/sde74
lrwxrwxrwx 1 root root 16 1971-08-30 11:57 catefv -> /dev/block/sde73
lrwxrwxrwx 1 root root 16 1971-08-30 11:57 cateloader -> /dev/block/sde68
lrwxrwxrwx 1 root root 15 1971-08-30 11:57 cdt -> /dev/block/sdd2
lrwxrwxrwx 1 root root 16 1971-08-30 11:57 cmnlib64_a -> /dev/block/sde13
lrwxrwxrwx 1 root root 16 1971-08-30 11:57 cmnlib64_b -> /dev/block/sde41
lrwxrwxrwx 1 root root 16 1971-08-30 11:57 cmnlib_a -> /dev/block/sde12
lrwxrwxrwx 1 root root 16 1971-08-30 11:57 cmnlib_b -> /dev/block/sde40
lrwxrwxrwx 1 root root 16 1971-08-30 11:57 config -> /dev/block/sda12
lrwxrwxrwx 1 root root 16 1971-08-30 11:57 core_nhlos_a -> /dev/block/sde21
lrwxrwxrwx 1 root root 15 1971-08-30 11:57 ddr -> /dev/block/sdd3
lrwxrwxrwx 1 root root 16 1971-08-30 11:57 devcfg_a -> /dev/block/sde14
lrwxrwxrwx 1 root root 16 1971-08-30 11:57 devcfg_b -> /dev/block/sde42
lrwxrwxrwx 1 root root 16 1971-08-30 11:57 devinfo -> /dev/block/sde59
lrwxrwxrwx 1 root root 16 1971-08-30 11:57 dip -> /dev/block/sde60
lrwxrwxrwx 1 root root 35 1971-08-30 11:57 dsp -> /dev/block/bootdevice/by-name/dsp_b
lrwxrwxrwx 1 root root 15 1971-08-30 11:57 dsp_a -> /dev/block/sde9
lrwxrwxrwx 1 root root 16 1971-08-30 11:57 dsp_b -> /dev/block/sde37
lrwxrwxrwx 1 root root 16 1971-08-30 11:57 dtbo_a -> /dev/block/sde18
lrwxrwxrwx 1 root root 16 1971-08-30 11:57 dtbo_b -> /dev/block/sde46
lrwxrwxrwx 1 root root 15 1971-08-30 11:57 frp -> /dev/block/sda6
lrwxrwxrwx 1 root root 15 1971-08-30 11:57 fsc -> /dev/block/sdf5
lrwxrwxrwx 1 root root 15 1971-08-30 11:57 fsg -> /dev/block/sdf4
lrwxrwxrwx 1 root root 16 1971-08-30 11:57 fw_ufs1_a -> /dev/block/sde23
lrwxrwxrwx 1 root root 16 1971-08-30 11:57 fw_ufs1_b -> /dev/block/sde50
lrwxrwxrwx 1 root root 16 1971-08-30 11:57 fw_ufs2_a -> /dev/block/sde24
lrwxrwxrwx 1 root root 16 1971-08-30 11:57 fw_ufs2_b -> /dev/block/sde51
lrwxrwxrwx 1 root root 16 1971-08-30 11:57 fw_ufs3_a -> /dev/block/sde25
lrwxrwxrwx 1 root root 16 1971-08-30 11:57 fw_ufs3_b -> /dev/block/sde52
lrwxrwxrwx 1 root root 16 1971-08-30 11:57 fw_ufs4_a -> /dev/block/sde26
lrwxrwxrwx 1 root root 16 1971-08-30 11:57 fw_ufs4_b -> /dev/block/sde53
lrwxrwxrwx 1 root root 16 1971-08-30 11:57 fw_ufs5_a -> /dev/block/sde27
lrwxrwxrwx 1 root root 16 1971-08-30 11:57 fw_ufs5_b -> /dev/block/sde54
lrwxrwxrwx 1 root root 15 1971-08-30 11:57 hyp_a -> /dev/block/sde3
lrwxrwxrwx 1 root root 16 1971-08-30 11:57 hyp_b -> /dev/block/sde31
lrwxrwxrwx 1 root root 16 1971-08-30 11:57 imagefv_a -> /dev/block/sde20
lrwxrwxrwx 1 root root 16 1971-08-30 11:57 imagefv_b -> /dev/block/sde48
lrwxrwxrwx 1 root root 21 1971-08-30 11:57 india_a -> /data/india/india.img
lrwxrwxrwx 1 root root 21 1971-08-30 11:57 india_b -> /data/india/india.img
lrwxrwxrwx 1 root root 16 1971-08-30 11:57 keymaster_a -> /dev/block/sde10
lrwxrwxrwx 1 root root 16 1971-08-30 11:57 keymaster_b -> /dev/block/sde38
lrwxrwxrwx 1 root root 15 1971-08-30 11:57 keystore -> /dev/block/sda5
lrwxrwxrwx 1 root root 16 1971-08-30 11:57 limits -> /dev/block/sde65
lrwxrwxrwx 1 root root 16 1971-08-30 11:57 logdump -> /dev/block/sde69
lrwxrwxrwx 1 root root 16 1971-08-30 11:57 logfs -> /dev/block/sde67
lrwxrwxrwx 1 root root 15 1971-08-30 11:57 mdm1m9kefs1 -> /dev/block/sdf7
lrwxrwxrwx 1 root root 15 1971-08-30 11:57 mdm1m9kefs2 -> /dev/block/sdf8
lrwxrwxrwx 1 root root 15 1971-08-30 11:57 mdm1m9kefs3 -> /dev/block/sdf6
lrwxrwxrwx 1 root root 15 1971-08-30 11:57 mdm1m9kefsc -> /dev/block/sdf9
lrwxrwxrwx 1 root root 16 1971-08-30 11:57 mdm1oemnvbktmp -> /dev/block/sde79
lrwxrwxrwx 1 root root 16 1971-08-30 11:57 mdm_oem_dycnvbk -> /dev/block/sda10
lrwxrwxrwx 1 root root 16 1971-08-30 11:57 mdm_oem_stanvbk -> /dev/block/sda11
lrwxrwxrwx 1 root root 45 1971-08-30 11:57 mdm_oem_stanvbk_a -> /dev/block/bootdevice/by-name/mdm_oem_stanvbk
lrwxrwxrwx 1 root root 45 1971-08-30 11:57 mdm_oem_stanvbk_b -> /dev/block/bootdevice/by-name/mdm_oem_stanvbk
lrwxrwxrwx 1 root root 15 1971-08-30 11:57 mdmddr -> /dev/block/sdd4
lrwxrwxrwx 1 root root 15 1971-08-30 11:57 mdtp_a -> /dev/block/sde7
lrwxrwxrwx 1 root root 16 1971-08-30 11:57 mdtp_b -> /dev/block/sde35
lrwxrwxrwx 1 root root 15 1971-08-30 11:57 mdtpsecapp_a -> /dev/block/sde6
lrwxrwxrwx 1 root root 16 1971-08-30 11:57 mdtpsecapp_b -> /dev/block/sde34
lrwxrwxrwx 1 root root 16 1971-08-30 11:57 metadata -> /dev/block/sda17
lrwxrwxrwx 1 root root 15 1971-08-30 11:57 misc -> /dev/block/sda3
lrwxrwxrwx 1 root root 37 1971-08-30 11:57 modem -> /dev/block/bootdevice/by-name/modem_b
lrwxrwxrwx 1 root root 15 1971-08-30 11:57 modem_a -> /dev/block/sde4
lrwxrwxrwx 1 root root 16 1971-08-30 11:57 modem_b -> /dev/block/sde32
lrwxrwxrwx 1 root root 15 1971-08-30 11:57 modemst1 -> /dev/block/sdf2
lrwxrwxrwx 1 root root 15 1971-08-30 11:57 modemst2 -> /dev/block/sdf3
lrwxrwxrwx 1 root root 16 1971-08-30 11:57 msadp -> /dev/block/sde62
lrwxrwxrwx 1 root root 16 1971-08-30 11:57 multiimgoem_a -> /dev/block/sde28
lrwxrwxrwx 1 root root 16 1971-08-30 11:57 multiimgoem_b -> /dev/block/sde55
lrwxrwxrwx 1 root root 16 1971-08-30 11:57 odm_a -> /dev/block/sda15
lrwxrwxrwx 1 root root 16 1971-08-30 11:57 odm_b -> /dev/block/sda16
lrwxrwxrwx 1 root root 15 1971-08-30 11:57 oem_dycnvbk -> /dev/block/sda8
lrwxrwxrwx 1 root root 41 1971-08-30 11:57 oem_dycnvbk_a -> /dev/block/bootdevice/by-name/oem_dycnvbk
lrwxrwxrwx 1 root root 41 1971-08-30 11:57 oem_dycnvbk_b -> /dev/block/bootdevice/by-name/oem_dycnvbk
lrwxrwxrwx 1 root root 15 1971-08-30 11:57 oem_stanvbk -> /dev/block/sda9
lrwxrwxrwx 1 root root 41 1971-08-30 11:57 oem_stanvbk_a -> /dev/block/bootdevice/by-name/oem_stanvbk
lrwxrwxrwx 1 root root 41 1971-08-30 11:57 oem_stanvbk_b -> /dev/block/bootdevice/by-name/oem_stanvbk
lrwxrwxrwx 1 root root 16 1971-08-30 11:57 op1 -> /dev/block/sde58
lrwxrwxrwx 1 root root 15 1971-08-30 11:57 op2 -> /dev/block/sda7
lrwxrwxrwx 1 root root 15 1971-08-30 11:57 param -> /dev/block/sda4
lrwxrwxrwx 1 root root 15 1971-08-30 11:57 persist -> /dev/block/sda2
lrwxrwxrwx 1 root root 16 1971-08-30 11:57 qupfw_a -> /dev/block/sde15
lrwxrwxrwx 1 root root 16 1971-08-30 11:57 qupfw_b -> /dev/block/sde43
lrwxrwxrwx 1 root root 16 1971-08-30 11:57 rawdump -> /dev/block/sda18
lrwxrwxrwx 1 root root 16 1971-08-30 11:57 reserve1 -> /dev/block/sde75
lrwxrwxrwx 1 root root 16 1971-08-30 11:57 reserve2 -> /dev/block/sde76
lrwxrwxrwx 1 root root 16 1971-08-30 11:57 reserve3 -> /dev/block/sde77
lrwxrwxrwx 1 root root 16 1971-08-30 11:57 reserve4 -> /dev/block/sde78
lrwxrwxrwx 1 root root 25 1971-08-30 11:57 reserve_a -> /data/reserve/reserve.img
lrwxrwxrwx 1 root root 25 1971-08-30 11:57 reserve_b -> /data/reserve/reserve.img
lrwxrwxrwx 1 root root 16 1971-08-30 11:57 secdata -> /dev/block/sde72
lrwxrwxrwx 1 root root 16 1971-08-30 11:57 splash -> /dev/block/sde64
lrwxrwxrwx 1 root root 16 1971-08-30 11:57 spunvm -> /dev/block/sde63
lrwxrwxrwx 1 root root 15 1971-08-30 11:57 ssd -> /dev/block/sda1
lrwxrwxrwx 1 root root 16 1971-08-30 11:57 storsec_a -> /dev/block/sde70
lrwxrwxrwx 1 root root 16 1971-08-30 11:57 storsec_b -> /dev/block/sde80
lrwxrwxrwx 1 root root 38 1971-08-30 11:57 system -> /dev/block/bootdevice/by-name/system_b
lrwxrwxrwx 1 root root 16 1971-08-30 11:57 system_a -> /dev/block/sda13
lrwxrwxrwx 1 root root 16 1971-08-30 11:57 system_b -> /dev/block/sda14
lrwxrwxrwx 1 root root 16 1971-08-30 11:57 toolsfv -> /dev/block/sde66
lrwxrwxrwx 1 root root 15 1971-08-30 11:57 tz_a -> /dev/block/sde2
lrwxrwxrwx 1 root root 16 1971-08-30 11:57 tz_b -> /dev/block/sde30
lrwxrwxrwx 1 root root 16 1971-08-30 11:57 uefisecapp_a -> /dev/block/sde19
lrwxrwxrwx 1 root root 16 1971-08-30 11:57 uefisecapp_b -> /dev/block/sde47
lrwxrwxrwx 1 root root 16 1971-08-30 11:57 uefivarstore -> /dev/block/sde71
lrwxrwxrwx 1 root root 16 1971-08-30 11:57 userdata -> /dev/block/sda19
lrwxrwxrwx 1 root root 16 1971-08-30 11:57 vbmeta_a -> /dev/block/sde17
lrwxrwxrwx 1 root root 16 1971-08-30 11:57 vbmeta_b -> /dev/block/sde45
lrwxrwxrwx 1 root root 38 1971-08-30 11:57 vendor -> /dev/block/bootdevice/by-name/vendor_b
lrwxrwxrwx 1 root root 16 1971-08-30 11:57 vendor_a -> /dev/block/sde16
lrwxrwxrwx 1 root root 16 1971-08-30 11:57 vendor_b -> /dev/block/sde44
lrwxrwxrwx 1 root root 15 1971-08-30 11:57 xbl_a -> /dev/block/sdb1
lrwxrwxrwx 1 root root 15 1971-08-30 11:57 xbl_b -> /dev/block/sdc1
lrwxrwxrwx 1 root root 15 1971-08-30 11:57 xbl_config_a -> /dev/block/sdb2
lrwxrwxrwx 1 root root 15 1971-08-30 11:57 xbl_config_b -> /dev/block/sdc2
== Contributors ==
* Caleb
* Sporos
* Uclydde
* Kenny
== Maintainer(s) ==
* Caleb
* Uclydde
* Kenny
== Users owning this device ==
== See also ==
* Initial device package merge request