install /e/ on an officially supported device SM-G870F klteactive
Problem :
TWRP for klteactive klteactivexx do not exist. Can't install the Pie build using TWRP for klte/kltexx ( unofficial lineageOS-recovery must be used ) Can't run OTA update
Because :
klteactive codename was forgotten in the ZIP's metadata
klteactivexx is mentioned, klte is mentioned, ( to match unified TWRP ? ) but klteactive is not mentioned !
The build process have to be corrected :
Modify /META-INF/com/android/metadata
we will add klteactive in the last line
pre-device=klteactivexx,klte
will become
pre-device=klteactivexx,klteactive,klte
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
.
Modify /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") + "."););
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") + "."););
Edited by piero