Update to 0.18 on SM-G870F with lineage-18.1-20201225-UNOFFICIAL-recovery-klteactivexx.img

@piero using klte I got this: On ADB Sideload I get E3004:This package is for device: klteactivexx,klte;this device is klteactive. Updater ended with ERROR: 7

I have read about a solution somewhere 2 days ago
Unofficial Pi/e/ Community Build - s4mini Value Edition SM-i9195i "serranovelte" - #11 by Troels
So, We have to modify the content of some files in the /e/.zip
to make the build that matching klteactivexx include klteactive codename

1) extract the e-0.18-p-20210815130098-dev-klteactivexx.zip,

2) Open /META-INF/com/android/metadata

we will add klteactive in the last line

pre-device=klteactivexx,klte

will become

pre-device=klteactivexx,klteactive,klte
clic here to compare with /e/ stock metadata for my serranoltexx
ota-property-files=metadata:69:359         
ota-required-cache=0
ota-type=BLOCK
post-build=samsung/serranoltexx/serranolte:4.4.2/KOT49H/I9195XXUCQL2:user/release-keys
post-build-incremental=eng.root.20210814.095355
post-sdk-level=30
post-security-patch-level=2021-08-05
post-timestamp=1628934731
pre-device=serranolte,serranoltebmc,serranoltektt,serranoltexx

3) save it in the e-0.18-p-20210815130098-dev-klteactivexx folder,

OR replace the existing metadata by this new metadata,

4) open /META-INF/com/google/android/updater-script

we will insert a line betwenn the fist one and the seconde one

assert(getprop("ro.product.device") == "klteactivexx" || getprop("ro.build.product") == "klteactivexx" || 
       getprop("ro.product.device") == "klte" || getprop("ro.build.product") == "klte" || abort("E3004: This package is for device: klteactivexx,klte; this device is " + getprop("ro.product.device") + "."););

will become

assert(getprop("ro.product.device") == "klteactivexx" || getprop("ro.build.product") == "klteactivexx" || 
       getprop("ro.product.device") == "klteactive" || getprop("ro.build.product") == "klteactive" || 
       getprop("ro.product.device") == "klte" || getprop("ro.build.product") == "klte" || abort("E3004: This package is for device: klteactivexx,klte; this device is " + getprop("ro.product.device") + "."););

clic here to compare with /e/ stock metadata for my serranoltexx
assert(getprop("ro.product.device") == "serranolte" || getprop("ro.build.product") == "serranolte" || 
       getprop("ro.product.device") == "serranoltebmc" || getprop("ro.build.product") == "serranoltebmc" || 
       getprop("ro.product.device") == "serranoltektt" || getprop("ro.build.product") == "serranoltektt" || 
       getprop("ro.product.device") == "serranoltexx" || getprop("ro.build.product") == "serranoltexx" || abort("E3004: This package is for device: serranolte,serranoltebmc,serranoltektt,serranoltexx; this device is  " + getprop("ro.product.device") + "."););

5) save it in the e-0.18-p-20210815130098-dev-klteactivexx folder,

OR replace the existing updater-script by this new updater-script,

6) make a .ZIP from the e-0.18-p-20210815130098-dev-klteactivexx folder.

7) rename the new .ZIP

OR download the modified Build to test e-0.18-p-20210815-modified-for-klteactive

8) try to install it with TWRP for the klte familly

.
please share your feedback…

.

[TUTORIAL] The updater-script completely explained | XDA Forums

.

1 Like

Just for the record @piero - I am so grateful for your effort, thank you so much! I would love to try that out, but what I am suspecting is the TWRP that is to blame here, not the e-0.18, what are your thoughts on that? (Ref my last reply)

@piero - what I do not get with this error message is that it says “device is klteactive” when the github link above states that it actually is klteactivexx? So in my mind it should have worked regardless?

I have opened an issue on the /e/ gitlab :

1 Like

@piero

FYI when I get the time with the next e.update I will change the recovery on my SM-G870F from lineage-18.1-20201225-UNOFFICIAL-recovery-klteactivexx.img that I got from: https:// androidfilehost.com/?w=files&flid=321280

To this? https: //twrp.me/samsung/samsunggalaxys5qualcomm.html - please confirm if correct.

Then with this: download the modified Build to test [e-0.18-p-20210815-modified-for-klteactive](https ://ecloud.global/s/gbkwMGyaXo7qtt5)

I’ll do a standard upgrade from within the e and check if it upgrades and reboots normally?

Thank you,

.Hibba.

1 Like

I cannot confirm as it is an hypothetical and non tested workaround…

.

.

On the other hand, i just seen that /e/OS Q and R are builded for month ! with their related e-recovery !

How have we missed it ? you @Hibba and me this summer. Spending time and effort for recovery compatibility with Pie

I think they wasn’t online ! in August

https://images.ecloud.global/dev/klteactivexx/

Hey @piero I have been thinking of you, been super busy and have just downloaded 0.19 but not installed it yet due to the fact that I wanted to touch base with you first and go through the installation steps we discussed this summer.

Thank you so much for following up, let’s get the ball rolling again.

.Hibba.

0.19 ? Ok so, not yet interrested by an android 11 based ?

.

On my side, i just have dowloaded e-0.18-r-20211022 and e-0.19-q-20211027 in a way to check the content of METADATA, you may still have to edit META-DATA, as the team have included an USA carrier variant klteattactive device, but not the international main device klteactive into META-DATA.

To find your device codename you can run this command in the console of an adb enabled PC with you phone connected via a usb data cable (and “USB debugging” selected in developer options)

$ adb shell getprop ro.product.device

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

1 Like

So enlighten me here @piero… I’ll gladly try what you suggest. As of now the updater only suggest 0.19. Is 11 available for manual download?


.

By your screenshot ( e-0.19-p-20211027 proposed ),
i understand that android 9 Pie based /e/OS is still builded for OTA updates, but not reachable on the website

https://images.ecloud.global/dev/klteactivexx

Update could be OTA, or manually without wiping /data,
but Upgrade have to be done manually within formating /data.

I’ll start with the codename check and report back.
…and then decide what upgrade I land on.
Not sure what OTA means though…

/e/OS R build android 11 based is actually 0.18

.

OTA is “Over The Air” and means easy automatic update process : the system updater notify that an update is available, and you accept confirming by just a simple Klick

Fantastic, I’ll try the OTA first just to be on the lazy side. :wink:

Thank you so much for you fantastic support @piero.

.Hibba.

@piero my SM-G870F is now running 0.19 picked it manually from the recovery like last time, all up and running. So now for the the next step is maybe to update the recovery, to get it to update without manually pointing the recovery to it? What are the options? Have not looked up the metadata yet…do you want me to?

Boot the device in download mode,

On your PC, go to the folder where you have downloaded recovery-e.zip, there, open a terminal and launch the heimdall flash command

…and install this recovery-e-0.19-q-20211027142973-dev-klteactivexx.img right?

Thank you @piero

@piero I have been busy but not forgotten about this

Just stuck here atm after upgrade:
498.910454] usb 1-3: new high-speed USB device number 4 using ehci-pci
[ 499.067617] usb 1-3: New USB device found, idVendor=04e8, idProduct=6860, bcdDevice= 4.00
[ 499.067621] usb 1-3: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 499.067624] usb 1-3: Product: SAMSUNG_Android
[ 499.067626] usb 1-3: Manufacturer: SAMSUNG
[ 499.067629] usb 1-3: SerialNumber: 5bc32ef1
hibba@mantra:~$ adb devices
List of devices attached

hibba@mantra:~$ adb devices
List of devices attached

Finnally I go time to sit down and do new recovery update on my device. I grabbed the recovery and OS image from here:
https://images.ecloud.global/dev/klteactivexx/

Did this:

hibba@mantra:/srv/nfs/e-$ heimdall flash --RECOVERY recovery-e-0.22-r-20220225165877-dev-klteactivexx.img --no-reboot
Heimdall v1.4.2

Initialising connection…
Detecting device…
Claiming interface…
Setting up interface…

Initialising protocol…
Protocol initialisation successful.

Beginning session…

Some devices may take up to 2 minutes to respond.
Please be patient!

Session begun.

Downloading device’s PIT file…
PIT file download successful.

Uploading RECOVERY
100%
RECOVERY upload successful

Ending session…
Releasing device interface…

The recovery install was successful but the OS reported to be corrupt so I had todo a reset data. The reset worked fine, now up and running again.

So next step will be to see if the OTA works on the next update.

Lots of love from me.

1 Like

Here is my last input on this case, the OTA works like charm now. A big thanks to all of you that made this happen.

Lots of love from me.

:hibba: