[ZenFone 2 General] AL_IRAQI:
Disclamer: You are doing this at your own risk.

Guide for OTA Updates

Many users asked how to apply OTA with TWRP or Root, so i decided to make full guide for it :)

before anything when you receive update notification download it but dont install it because you will get error and if you didnt get error you will bootloop

after you download the OTA, use any file manager with root access to copy ota file from /cache

file name will be "dlpkg" copy it to your internal storage and rename it update.zip or simply download it from links that posted in xda after the ota is available

you have to remove any edits youve done to system to update without problems so heres my steps:

1.Full Unroot:

Open SuperSu and go to settings, scroll down you will find Full unroot choose it and wait for it to finish

Screenshot:

2.Uninstall Xposed

Go to xposed official thread here and download "xposed-uninstaller-20150831-x86"

then flash it from recovery to Uninstall Xposed

now you have to edit update.zip updater script because with TWRP you will get error

extract it and open updater-script from "META-INF/com/google/android/"

then remove getprop lines it will be from 2nd line to the 5th like this

getprop("ro.build.fingerprint") == "asus/WW_Z00A/Z00A:5.0/LRX21V/2.20.40.90_20150903_4959_user:user/release-keys" ||
getprop("ro.build.fingerprint") == "asus/WW_Z00A/Z00A:5.0/LRX21V/2.20.40.97_20150917_1572_user:user/release-keys" ||
abort("Package expects build fingerprint of asus/WW_Z00A/Z00A:5.0/LRX21V/2.20.40.90_20150903_4959_user:user/release-keys or asus/WW_Z00A/Z00A:5.0/LRX21V/2.20.40.97_20150917_1572_user:user/release-keys; this device has " + getprop("ro.build.fingerprint") + ".");
getprop("ro.product.device") == "Z00A" || abort("This package is for \"Z00A\" devices; this is a \"" + getprop("ro.product.device") + "\".");

Remove it and your updater script beginning will be like this

mount("ext4", "EMMC", "/dev/block/by-name/system", "/system", "max_batch_time=0,commit=1,data=ordered,barrier=1,errors=panic,nodelalloc");
ui_print("Verifying current system...");

now compress update files again to zip and flash it from recovery

One last thing make sure youre using right ota fil or your device will bootloop and you have to flash Full ROM

Guide for Full ROM

With Full ROM you have to only edit updater script and flash the ROM

extract it and open updater-script from "META-INF/com/google/android/"

then remove verify lines it will be from 1st line until "package_extract_file("ifwi.zip", "/tmp/ifwi.zip");" line which is usually 7th line

it will be similar to these

(!less_than_int(1441255040, getprop("ro.build.date.utc"))) || abort("Can't install this package (四 9月 3 12:37:20 CST 2015) over newer build (" + getprop("ro.build.date") + ").");
ui_print("Device image SKU:");
ui_print(getprop("ro.build.asus.sku"));
ui_print("OTA image SKU: WW");
assert(getprop("ro.build.asus.sku") == "WW");
getprop("ro.product.device") == "Z00A" || abort("This package is for \"Z00A\" devices; this is a \"" + getprop("ro.product.device") + "\".");

your updater script beginning will be like this

package_extract_file("ifwi.zip", "/tmp/ifwi.zip");
ui_print("Verifing BOM token ...");
flash_bom_token("/tmp/ifwi.zip") || abort("BOM flashing failed");
ui_print("Updating IFWI ...");
flash_ifwi("/tmp/ifwi.zip");
show_progress(0.750000, 0);

now compress ROM files again to zip and flash it from recovery

with PC use Notepad++ to edit updater script

and from mobile use DroidEdit or Turbo Editor

if Stock ROM it looks like it stopped at "Updating IFWI...." check this post

if you guys have any questions feel free to ask :)