OnePlus - 9 Pro - lemonadep - Documentation Suggestions

Installing eos-s, android 12 onto oneplus 9 pro should follow the same steps as oneplus 9 but at the moment there is a slight mismatch in the install guidesas to how users are able to source appropriate firmware to temporarily boot a custom recovery onto the device.


  1. e developers provide copies of dtbo.img, vendor_boot.img & e-recovery matching the eos downloads. Just like LOS do.
    Or at least re-visit this issue to align Oneplus 9 install guide with oneplus 9 pro guide.

  2. Add in a paragraph to carry out the copy-partitions step directly after “Temporarily booting a custom recovery using fastboot”:

Ensuring all firmware partitions are consistent

Tip: The steps below only need to be run once per device.

In some cases, the inactive slot can be unpopulated or contain much older firmware than the active slot, leading to various issues including a potential hard-brick. We can ensure none of that will happen by copying the contents of the active slot to the inactive slot.

To do this, sideload the package by doing the following:

  1. Download the file from here. It should have a MD5 sum of 79f2f860830f023b7030c29bfbea7737 or a SHA-256 sum of 92f03b54dc029e9ca2d68858c14b649974838d73fdb006f9a07a503f2eddd2cd.
  2. Sideload the package: * On the device, select Apply Update, then Apply from ADB to begin sideload. * On the host machine, sideload the package using: adb sideload
  3. Now reboot to recovery by tapping Advanced, then Reboot to recovery.

Just sharing some information on my success with migrating to /e/ OS on these seemingly stubborn phones…


  1. OOS 11 \ Full Rom - .\OOS_11\lemonadep_22_O.05_210324_msm
    -Flash with EDL Mode\Msmtools.
  2. OOS 11 \ Full Rom - .\
    -Advanced Boot = Enabled (optional)
    -USB Debugging = Enabled
    -Flash with OOS Local Software Update.
    -Perform a factory reset if Software Upgrade is stubborn and fails.
  3. OOS 12 \ C.48 Full Rom - .\
    -Flash with OOS Local Software Update.
  4. OOS 12 - C.65 Full Rom - .\
    -Flash with OOS Local Update Utility (OPLocalUpdate_For_Android12.apk).
  5. OOS 12 - C.66 Incremental Rom - .\
    -Flash with OOS Local Update Utility again.
    -Factory Reset
    -OEM Unlock = Enabled (SIM Card needed) *may be greyed out, unlock done automatically by OOS
    -USB Debugging = Enabled
    -Shutdown \ Power On
    -Verify Fastboot is working in Slot A or you’ll find yourself in a spin of mass confusion! See this post and thank you, @chrisrg .
    -Follow instructions carefully except flash the “dtbo”, “vendor_boot”, and “recovery image” in one Fastboot session. Manually power off device, manually access Fastboot, boot into the Recovery through Fastboot menu.


  1. OOS Stock Rom (w/ MSMTools):
  2. OOS Rom: OxygenOS stable Ota rolling out for Oneplus 9 & 9 pro
  3. OOS 12.C48 Full Rom:
  4. OOS Local Update Utility:
  5. OOS 12.C65 Full Rom:
  6. OOS 12.C66 Incremental Rom:
  7. /e/OS “dtbo”, “vendor_boot”, & “recovery image”: see this post and thank you for saving me, @requiem .


-With the phone off, hold both volume buttons + power button to enter EDL Mode. Stop and close MSMTools after flashing is complete!
-Use ADB to enter Fastboot where possible. Two other options are 1) with the phone off, hold both volume buttons after hitting power button and feeling the quick vibrate or 2) with the phone off or rebooting, hold volume down and power button with the phone off or rebooting. The latter seems to only work after flashing a recovery image.
-Volume up button + power button to force a reboot.
-Unplugging after flashing with Fastboot may be a required step before power cycling the device.
-Do not modify the filenames of the ZIP files containing the ROMs due to OOS checksums.
-The /e/OS ZIP installation fails to verify a signature at the 47% mark.
-The /e/OS install did not indicate a success after completing Step 2.
-Despite the two oddities above, the install was a success and no issues to report.
-This entire process was performed on 3 1+ 9 Pro phones (LE2125).

Regain your privacy! Adopt /e/ the unGoogled mobile OS and online servicesphone


“Flashing additional partitions”, item 1: at the momen of writing “latest date” should be changed to “earliest date”, i.e. 20221227. Most recent /e/ 1.8.1 recovery image (recovery-e-1.8.1-s-20230204257074-dev-lemonadep.img) appears to be modified latest and only available LineageOS 19.1 recovery (lineage-19.1-20221227-recovery-lemonadep.img). Newer additional partition files are for newer LineageOS, which is 20.0, so are not suitable for current /e/. Moreover, LineageOS developers seem to keep only 5 last versions of their build artifacts on their resources, so it would be nice to backup those somewhere as it looks like lag between /e/ and LOS is growing despite they marked OnePlus 9 Pro as discontinued. So link in documentation item in question would point to the resource with backup of appropriate files.

Thanks for pointing this out @bofh666 . The files for 20221227 have been copied here. If you can check if they are the same you used we can link them to our documentation page.

Thank you @Manoj

dtbo.img is indeed the same I used: md5sum is 3bc7b2a307137a9148821236d04ae6c0. But vendor_boot.img is missing on resource you provided. And they removed 20221227 folder from LOS resource already :frowning: I’ve backed up files I used on my Google Drive, so you can get vendor_boot.img there.

I think it’d be great to clarify in the documentation what are these files for and how one can get them directly to not depend on LOS resources and be more flexible with choice of /e/ version. It they are vendor specific proprietary images, it’d be good to add steps described here but with lemonadep specifics and explaination why does one need to replace existing partition images with specific ones (from specific version of vendor ROM?). If the files are modified somehow to match custom recovery, I guess the community needs to learn how to make those modifications and document it as well. I’d be happy to help, but I’m not even close to an Android developer :frowning:

Okay, figured things out myself :slight_smile:

Still not sure how are those files built and how do they get there, but proper files are included in /e/OS build ZIP file.

dtbo.img contains data about device’s hardware configuration and is used by the bootloader to initialize the correct hardware setup.
vendor_boot.img contains all the necessary drivers for the device and is used by the bootloader to load correct drivers.

So I suggest to extract those files from each /e/OS release, put on a /e/ foundation resource and link the resource in item 1 of “Flashing additional partitions” section. Or to replace this item with steps to extract those files manually:

  1. download latest release of payload-dumper-go to the same directory (*) where /e/OS build ZIP file is
  2. open terminal an cd to (*) directory
  3. extract payload: unzip e-*-s-* payload.bin
  4. extract payload-dumper-go: tar xzvf payload-dumper-go_1.2.2_linux_amd64.tar.gz payload-dumper-go
  5. run ./payload-dumper-go -partitions dtbo,vendor_boot -o . payload.bin command — needed files will appear in (*) directory.

Thanks for sharing this @bofh666 …checking with team if it is possible for have these files extracted everytime we make a new build and place it in a ecloud location and link that in the documentation.


bofh666 is totally correct with extracting the dtbo + vendor_boot from the e-os image, this seems to fix the compatibility issue.

Please do not follow the official guide where they state to flash the dtbo and vendor_boot from the link they post. These are not compatible.

Extract them with the payload-dumper and use those.

I had no luck booting /e/OS Recovery recovery-e-1.10-s-20230413279105-dev-lemonadep.img

When rebooting to recovery, it’s stuck on the 1+ logo.

Can boot LOS recovery though, but this doesn’t let installing /e/OS (considered as downgrade)

Hi @GaelDuval this feedback has been shared with the build team …, two points were shared - one to check the recovery and second to extract the files as mentioned above from the /e/OS ROMs itself. Do not have ETA on them. Following up with the team. This impact a couple of devices which require such partitions to be flashed first before the installation can be initiated.

1 Like

I confirm that extracting dtbo.img and vendor_boot.img from the correct /e/OS image fixes the recovery flashing issue.

(however after /e/OS installation I’m now in Qualcomm crashdump mode).

1 Like

I am hoping that you were not asking for community support in recovering from Qualcomm crashdump mode, most recently addressed here Oneplus Pro 9 not working after flashing /e/OS.

This issue I believe is more than a Documentation suggestion – on my part it is a Packaging suggestion. I believe /e/ should publish an “Installation package” in the same way as seen in LineageOS (I believe the same approach is needed for Oneplus 8 (+ Pro) as well.)

1 Like

I had to manually flash firmwares from OOS 12.C65.

They are available at (OOS 12.C66 is an incremental OTA that doesn’t adds new blobs)

Need to enter special fastbootd mode to flash (fastboot reboot fastboot), and then flash:

fastboot flash --slot=all abl abl.img
fastboot flash --slot=all aop aop.img
fastboot flash --slot=all bluetooth bluetooth.img
fastboot flash --slot=all cpucp cpucp.img
fastboot flash --slot=all devcfg devcfg.img
fastboot flash --slot=all dsp dsp.img
fastboot flash --slot=all engineering_cdt engineering_cdt.img
fastboot flash --slot=all featenabler featenabler.img
fastboot flash --slot=all hyp hyp.img
fastboot flash --slot=all imagefv imagefv.img
fastboot flash --slot=all keymaster keymaster.img
fastboot flash --slot=all modem modem.img
fastboot flash --slot=all multiimgoem multiimgoem.img
fastboot flash --slot=all oplus_sec oplus_sec.img
fastboot flash --slot=all oplusstanvbk oplusstanvbk.img
fastboot flash --slot=all qupfw qupfw.img
fastboot flash --slot=all qweslicstore qweslicstore.img
fastboot flash --slot=all shrm shrm.img
fastboot flash --slot=all splash splash.img
fastboot flash --slot=all tz tz.img
fastboot flash --slot=all uefisecapp uefisecapp.img
fastboot flash --slot=all xbl_config xbl_config.img
fastboot flash --slot=all xbl xbl.img

gael You my friend are an angel.
Flashing these on top of my broken e-os build fixed everything!



Hello! I’ve had hard time installing this. I am unable to boot to the recovery after flashing it. What could be behind this issue?

Hi @eps1 welcome to the /e/ forum.

You will have found the answer when you have read this thread !

I recommend the solution starting at Post #8.

Regarding Documentation Suggestions

Enter suggestions to improve documentation in this category. Do not raise bugs or issues here…

As you already opened Problem with installing to oneplus 9 pro please tell me there if you are able to extract dtbo.img and vendor_boot.img from your /e/OS image. Good luck.

Hi, I have bought this phone but it has Android13 (his rom stock). Would I wait to the /e/OS 13 to update or what would I do to start to using my phone?


I have recently installed the software found in this ZIP file. Following the installation, I extracted the ‘dtbo,’ ‘vbmeta,’ ‘vendor,’ and ‘boot’ components from ‘payload.bin.’ I then proceeded to flash all of these components. After completing this step, I performed a factory reset from the recovery menu. Subsequently, I sideloaded the ‘’ file. While the system is able to boot successfully, I’ve encountered an issue with the functionality of gestures. Specifically, I am unable to initiate actions by clicking on the ‘start’ button to progress further. I would greatly appreciate any assistance with resolving this matter.

Your solution is here: OnePlus - 9 Pro - lemonadep - Documentation Suggestions - #16 by GaelDuval


To get the partion files I needed, I had to adjust the parameter for the OnePlus 8 Pro since it’s “vendor_boot” is labled “vbmeta”. So for me, after extracting the payload-dumper-go.exe from the latest release you linked, and the payload.bin from the build file, I used the following commands:

payload-dumper-go -partitions dtbo -o . payload.bin

payload-dumper-go -partitions vbmeta -o . payload.bin

This really saved me as I have been stuck on finding the right partition files for the Oneplus 8 Pro. thanks again!