/e/ os version shows "unknown", updates not possible

My FP4, which has been running for 2 years without any problems (/e/OS & hidden Magisk with root for AdAway, NeoBackup, BusyBox, …), can now neither OTA nor manual update (“the update check failed…”), because in my guess the “current version” that is otherwise always necessary for update comparison is suddenly gone. The version would have to be updated from the last OTA
2.9-a14-20250321478214-official-FP4
build number e_FP4-user 14 AP2A.240905.003 eng.root.20250321.130437 corresponds to this.
Apart from the mystery of how it was deleted, I want to get OTA updates up and running again.
Since I can hopefully re-enter the string for version with BusyBox or adb shell (root) to fix it, I’m currently looking for where this config file is located in /e/OS.
Alternatively with new installation, I have no experience with sideload system updates, I want to avoid deleting all installations on the FP4 at all costs.
I’m grateful for any tip…

Just for information, this link Feedback for v3.0 - #203 by nicofonk describes a method suitable to adb sideload an updated image (hopefully without loss of data, but backup essentials before any intervention).

  • on “a phone with a problem”
  • a phone like an fp4 where only an Install ROM is published and documented, that is there is no “manual update” documentation.

Edit. adb sideload is the old school way to do an “everyday” manual update where userdata is not impacted.

Edit 2. The above method includes the way to strip IMG- within the Install-filename url. (Easy when it is explained well there). You can alternatively collect an OTA_PACKAGE from ota.ecloud.global/api/v1/FP4/official to find your downloadable image please search for "url".

Edit 3. I did suggest a non-sideload method but using the Updater (if it is competent for you) here Feedback for v3.0 - #521 by aibd

there was a patch a month ago to hide some system props to apps, accidentially affecting platform/system apps - but v2.9 is too old to have that patch? maybe seeing updater debug logs helps understand the issue

Thanks, I’ll check recommendations asap

Sideload works fine, thanks for your help. But now I need a way to patch the boot.img, as is done with Magisk after OTA before rebooting. If I install this with magisk patched boot.img even without restarting with “enter fastboot” from the sideload menu, magisk-root is back, but the e-version is again “unknown”. this means that no OTA or manual update can be carried out (in the future). Alternatively, I can do (ota) updates after sideload update without flash of boot.img with the correct e-OS version number, but I don’t have root anymore.
That’s a pity, everything has already worked months before as described without any problems …

How “deep” is unknown? Unknown to the Updater? Does it also show unknown in Settings > About phone > tap on Android version?

This might help inform if / how magisk patched boot.img might be involved ?? ← This is probably the question now.

Not the required solution but would each time “sideload an update and magisk patch boot.img” be a workable option ?

It looks like my only workable possibility, but in history it was 2 years (with Magisk&root !) much more comfortable to get a message and do OTA …



It is not the standard OTA procedure with patching over magisk-menu as last step before rebooting the new system. It seems to be a difference to my workable possibility: “fastboot flash boot magisk_patched-30100_djSh5.img” after “adb sideload e-3.0.4-a14-20250708507308-official-FP4.zip”. But everything should be correct according to the instructions, even the boot.img separated from the .zip and so on …

1 Like

Perhaps explore the output of

adb pull /system/build.prop

Is there found unknown?

Is there found 30100_djSh5 ??

I find

ro.lineage.version=3.0.1-xxx-a15-xxx
ro.lineage.display.version=3.0.1-xxx-a15-xxx
ro.lineage.build.version=3.0.1

Conceivably you could pull edit and push this file ??

I guess next would be to explore if / how you magisk patch is making any change ??


Meanwhile for an on the phone solution to update … does you Updater offer Local update? Look Updater 3 dot menu top right. If yes perhaps you can download on the phone the next OTA_PACKAGE from /api/v1/FP4/official/ … look for the line "url"

I don’t know whether this is somehow related or if i’d open a separate thread.
On my CMI (Xiaomi Mi10pro) after OTA update (from 3.0.1 a14 to 3.0.4 a14) i experienced an issue with patched magisk as well (simply doesn’t write the patched boot.img properly).
I used the same method than before, downloading the release separately, extract boot.img, upload to phone, patch, download, fastboot flash boot from computer.
Tried even several older magisk versions as one reddit thread contains a success story with older versions (26.4/27) because newer versions probably doesn’t properly patch the image.
Most times it was stuck in “Sending ‘boot’” but even in the event of “Finished. Total time: 5.257s” there’s no root in magisk after reboot.

Thanks, I didn’t find any other editable file either /system/build.prop

grep -r --exclude=/dev/ -noI -we “3.0.4” / 2>/dev/null

The patch is definitely a key, but I haven’t investigated it yet.
I also haven’t seriously considered the concept of active partitions a and b, which seem to always switch: after sideloading and flashing to a, I suddenly no longer had root access in Magisk, and flashing again (now automaticly to b) again restored the old state.
I’ll have to revisit this topic sometime when I have more time.

Yes, that is what happens. How A/B Partitions and Seamless Updates Affect Custom Development on XDA

Back to my previous question did you find any of build.prop

ro.lineage.version,  ro.lineage.display.version, ro.lineage.build.version

yes, build.prop not changing and not differs after “flash boot” or “sideload” with described results:

..
ro.lineage.version=3.0.4-a14-20250708507308-official-FP4
ro.lineage.releasetype=official
ro.lineage.build.version=3.0.4
ro.modversion=3.0.4-a14-20250708507308-official-FP4
ro.lineagelegal.url=https://lineageos.org/legal
ro.elegal.url=https://e.foundation/legal
ro.cm.build.pipeline.id=507308
ro.cm.build.pipeline.iid=17095
ro.lineage.display.version=3.0.4-a14-20250708507308-official-FP4
ro.lineage.build.version.plat.sdk=9
ro.lineage.build.version.plat.rev=0
..

It’s not the problem …

I was pursuing this, just a guess but maybe magisk would like to “interfere” with some build.props (but you demonstrate not directly) but perhaps this is a clue to some bug, as also for @thefoster, in Magisk (??).

Update: i tried to generate and flash around a dozen times and finally it worked.
unfortunately not really deterministic.
Maybe Magisk sometimes fails to properly patch the boot.img of fastboot doesn’t properly push the image, i don’t know.

Is one required to name the new boot.img exactly like this.

In a different context I seem to remember a fastboot flash failing due to “inappropriate” image name.

What would happen if you rename the “patched.img” to just boot.img ??

Renaming to boot.img makes no difference.

I’ve tried the local updates with downloaded e-…zip-file and it works fine like sideload procedure. But the problem is the same of lost version (Magisk: install to inactive Slot (after OTA)) or losing root (without Magisk patching).

I did not know what you meant by this but online search leads to OTA Upgrade Guides | Magisk … does this technique fail ??

Sorry for my late response, I’ve not enough time to do new experiments daily …

I do it now like OTA Upgrade Guides | Magisk (the ever done OTA procedure) but now (OTA not works) with local upgrade before. “Lost Version” means “unknown” …