[HOWTO] Upgrade my /e/OS to major Android version without loosing /data

.

since android T (13), lineageOS builds on witch /e/OS are based are expected to include the needed updated firmware partitions to make the build compatible without having to go back reinstalling the Stock OS (usefull for first install, AND even more for upgrading custom android version) for most of the supported devices..

In order to be sure it is really possible, you must answer those 4 questions :

.

  1. What was the android version of the StockOS installed before /e/ ?

  2. What is the latest available StockOS android version but not higher regarding to the android version of the /e/OS build you want to install ?
    Or what is the precise StockOS version required as a base to install the /e/OS build you want to install

  • If answers to 1 and 2 are the same, you can have a go for dirty upgrade !

  • If answers to 1 and 2 are differents, you must answer to questions 3 or 4

  1. does latest /e/ build include the upgraded needed parts of the firmware ?
    download it and have a look inside the .ZIP (you may need to extract it)
    what to do if you find a payload.bin file ?

  2. does Lineage wiki offer a firmware upgrade solution for this device ?

  • if answers to 3 and 4 are no, you will have to install latest available full Stock OS (relative to the android version of the /e/ build you want to install → not higher), then reinstall /e/OS from scratch.

  • if answer to 3 is yes, you can have a go to dirty upgrade /e/OS.

  • if answer to 4 is yes, you can have a go for dirty upgrade the firmware, then dirty upgrade /e/OS !

.

to do it, you have several options :

they are the same as for regular update…
.

(it is recommended to take a backup of your things in case)

download the latest /e/OS build for your device
it must be named like e-3.2-a15-20251023539369-community-instantnoodle.zip

if you found something named like IMG-e-3.2-a15-20251022539003-official-FP6.zip
use the right clic to copy the link, paste it in the adress bar of your browser, remove the 4 IMG- carracters and press enter to download e-3.2-a15-20251022539003-official-FP6.zip

.

  1. download the file on the phone, go to “→ settings → system updater” and use the feature called “locale update” (if you have it in the “3 dot menu” at top right of the screen).

or

  1. download the file on the phone, reboot the phone into the recovery mode and use “apply update” then “from internal storage” (if your “recovery mode” have the feature).

or

  1. download the file on a SDcard, reboot the phone into the recovery mode and use “apply update” then “from External SDcard” (if your “recovery mode” have the feature).

or

  1. Universal Method, download the file on a computer, boot the phone into the recovery mode and use “apply update” then “from ADB” :

.

7 Likes

.

the Universal Method détailled

DO NOT APPLY FACTORY-RESET → do not format /data

.

Install the platform-tools on your computer :

Install adb and fastboot on a computer running macOS or Linux
Install adb and fastboot on a computer running Windows

On the computer,

download the latest /e/OS build for your device
(put it into the platform-tools folder)

it must be named like e-3.2-a15-20251023539369-community-instantnoodle.zip

if you found something named like IMG-e-3.2-a15-20251022539003-official-FP6.zip
use the right clic to copy the link, paste it in the adress bar of your browser, remove the 4 IMG- carracters from the URL and press enter to download e-3.2-a15-20251022539003-official-FP6.zip

.

Boot the phone into recovery mode.

.
Select Apply Update, then Apply from ADB

The screen should now change and the output at the bottom ask you to send the package from your computer.

On the computer,

Use the right clic to open a terminal from the /platform-tools folder, and
issue the command to sideload the latest /e/OS-T installation zip.

adb sideload e-3.2-a15-20251023539369-community-instantnoodle.zip

the phone screen will be mostly blank with just the output at the bottom showing progress.

On the computer the sideloading shows progress as a percentage figure that will stop at 47%. The phone will still be installing though (even though it might feel like nothing is happening sometimes!) and you can expect to see the following screens

when success message comes on the device screen, press the arrow at the top of the screen to return to Home Screen

and Tap Reboot system now to boot into your new /e/OS.

.

.

here is an exemple of /e/ build that don’t include firmware parts :

.

here is an exemple of /e/ build that contains firmware parts :


in the firmware folder, we see :

.

here is an exemple of /e/ build that contains a payload.bin file :

.

here is an exemple of a payload.bin file that don’t include firmware parts :

./payload-dumper-go -l e-3.2-a15-20251023539369-community-kebab.zip
Please wait while extracting payload.bin from the archive.
payload.bin: /tmp/payload_038534537.bin
Payload Version: 2
Payload Manifest Length: 99712
Payload Manifest Signature Length: 267
Found partitions:
boot (101 MB), dtbo (25 MB), odm (87 MB), product (587 MB), recovery (101 MB), system (1.6 GB), system_ext (554 MB), vbmeta (8.2 kB), vbmeta_system (4.1 kB), vendor (542 MB)

.

here is an exemple of a payload.bin file that contains firmware parts :

./payload-dumper-go -l e-2.6.3-u-20241218455570-community-fajita.zip
Please wait while extracting payload.bin from the archive.
payload.bin: /tmp/payload_344338513.bin
Payload Version: 2
Payload Manifest Length: 119371
Payload Manifest Signature Length: 267
Found partitions:
LOGO (8.0 MB), abl (2.2 MB), aop (184 kB), bluetooth (766 kB), boot (67 MB), cmnlib (381 kB), cmnlib64 (500 kB), devcfg (41 kB), dsp (34 MB), dtbo (8.4 MB), fw_4j1ed (352 kB), fw_4u1ea (352 kB), hyp (397 kB), keymaster (221 kB), modem (120 MB), qupfw (66 kB), storsec (25 kB), system (3.0 GB), tz (2.1 MB), vbmeta (4.1 kB), vendor (1.1 GB), xbl (3.3 MB), xbl_config (98 kB)

.

.

if you find a payload.bin file into your /e/OS build,

./payload-dumper-go -l e-3.2-a15-20251023539369-community-instantnoodle.zip

that will list the partitions included into the /e/OS build

.

1 Like

you may also be interested by :

.

[HOWTO] a Clear Guide to install "IMG-e-builds" when /e/ web installer fails

.

[HOWTO] an Unified Install Guide Project for /e/

Interesting tutorial.

I’d like to upgrade my s10+ from T to e15

Is SeedVault an advantage in the process by backup the datas and possibly restore them?

@cemoi71
How to Backup and Restore your /e/OS phone

See
Search results for 'seedvault @smu44' - /e/OS community

Also
Search results for 'seedvault @tcecyk' - /e/OS community

@piero - thank you for this guide, this is awesome. It’ll prevent having to start from scratch with every major release!

I’m currently on A15 community release for Redfin and am hoping to move to the official version with A16.

Would a “dirty upgrade” to official A16 allow future OTA upgrades of the official version?

We have no experience regarding android 16
Last “big change” that made format /data mandatory was migration to android 11 because it introduiced /data encryption by default

Hi @piero, thanks for posting this.

I tried to see if I could update my Pixel 6 from /e/OS 3.0 to 3.3. However, I got stuck on step three. I downloaded the build (e-3.3-a15-20251212556760-community-oriole.zip) and took a look inside. There was no firmware directory, but also no install directory or img files. Instead, there was a payload.bin, so I used the payload dumper to get the partitions and got the following:

1212556760-community-oriole.zip 
Please wait while extracting payload.bin from the archive.
payload.bin: /tmp/payload_3033956563.bin
Payload Version: 2
Payload Manifest Length: 117411
Payload Manifest Signature Length: 267
Found partitions:
abl (2.1 MB), bl1 (12 kB), bl2 (545 kB), bl31 (90 kB), boot (67 MB), dtbo (17 MB), gsa (278 kB), ldfw (4.1 MB), modem (98 MB), pbl (49 kB), product (1.0 GB), pvmfw (1.0 MB), system (1.7 GB), system_ext (562 MB), tzsw (6.8 MB), vbmeta (8.2 kB), vbmeta_system (4.1 kB), vbmeta_vendor (4.1 kB), vendor (605 MB), vendor_boot (67 MB), vendor_dlkm (60 MB)

The issue is that I don’t really know what I am looking for. It does have some partitions from the positive example that are not in the negative example (abl and modem for example), but it is also missing others (like fw_4j1ed and fw_4u1ea).

Could you add the information about what to look for?

Hello @Clemens , Welcome to the /e/ users forum.

i have edited the first post to be more clear :

that’s it.

“oriole” is not a Samsung device.

“oriole” is not a OnePlus device.

1 Like

I did the update using the local update feature and it worked. There was an app that was unable to start before and that works now, too.

Thank you for your help!

1 Like