mount("ext4", "EMMC", "/dev/block/mmcblk0p17", "/system");
mount("ext4", "EMMC", "/dev/block/mmcblk0p21", "/data");
assert(file_getprop("/system/build.prop", "ro.build.fingerprint") == "Coolpad/Coolpad5890/Coolpad5890:4.1.2/JZO54K/4.1.056.P0.130619.5890:user/release-keys" ||
       file_getprop("/system/build.prop", "ro.build.fingerprint") == "Coolpad/Coolpad5890/Coolpad5890:4.1.2/JZO54K/4.1.056.P0.130619.5890:user/release-keys");
assert(getprop("ro.product.device") == "Coolpad5890" || getprop("ro.build.product") == "Coolpad5890");
ui_print("Verifying current system...");
show_progress(0.100000, 0);
assert(apply_patch_check("/system/app/CP_Bluetooth.apk", "cc709c57584a8ea9e545f6114f518b498813eab7", "18d184a975bd0e3461b6dd27eedb7540e62718e5"));
set_progress(0.015694);
assert(apply_patch_check("/system/app/CP_Gallery3D.apk", "83c9edfaddf709fa34dc83400e88c8042ad1c591", "b7cbad339e5cc138e6bbda6ded849341f4cd6bc0"));
set_progress(0.060473);
assert(apply_patch_check("/system/app/CalendarProvider.apk", "0ef37aa95dfd16d5cb34e541ccbeb4598d1abacf", "87c34ac1905cb183178d2d3a7bd31f7279b87064"));
set_progress(0.071249);
assert(apply_patch_check("/system/app/ContactsProvider.apk", "9926add43abd05a2dffd4cdca163ebbdfe6f02da", "c9662510c9d246b1c654dff89100bdc2ae6b7df2"));
set_progress(0.086031);
assert(apply_patch_check("/system/app/DownloadProvider.apk", "d977bd6ed1fb2bd03df5b3cdaaab6bb8ad65aef6", "c35793b2b46a54884c624103c2ad7a68b4f80c78"));
set_progress(0.095406);
assert(apply_patch_check("/system/app/DownloadProviderUi.apk", "44e540d19b19eae5b98ea75ff1accf7ce2506243", "5775167f9ba7526c358e76055461db9c1f5b6111"));
set_progress(0.098944);
assert(apply_patch_check("/system/app/LatinIME.apk", "f63f86b584bccaf17e480dcc08002b0e1d08055a", "8074870dbf6e5b9e1d934c16c126da00ffa66a04"));
set_progress(0.231189);
assert(apply_patch_check("/system/app/LewaCalculator.apk", "84344b5e721b76339d0bb2319583ad96be6f7e68", "29ee8d237532669899bb6061ca2c5111733feb19"));
set_progress(0.238823);
assert(apply_patch_check("/system/app/LewaFlashlight.apk", "c2916aea50185f3a8ba38346ea90aa4ea3132ad7", "47e8dacc0c9d941f03e1beba679ee7260ff05821"));
set_progress(0.257182);
assert(apply_patch_check("/system/app/LewaIntercept.apk", "7d0d0ceba559adb45454cbe3e3664aa8d6a5be5a", "385cdee653a7670f57f3d0cc8e1d0c9478d34483"));
set_progress(0.262513);
assert(apply_patch_check("/system/app/LewaLabiSync.apk", "23bf949d7646ef982293872aa1d498b28337a605", "8376009988e532dd0770cdc121bc32d9f06676bb"));
set_progress(0.264077);
assert(apply_patch_check("/system/app/LewaLauncherX.apk", "38d74ba17a0ff912ebecb5154f17888795b7ffd9", "7c6aff50b63e6d2dc1b5f8befdb44be1cf341a32"));
set_progress(0.287959);
assert(apply_patch_check("/system/app/LewaPackageInstaller.apk", "4d0135f51d4b5446b5e961f188a0ef3796134083", "9ce04cc0bcb7b49771630d87b81f530cabf48ce4"));
set_progress(0.290448);
assert(apply_patch_check("/system/app/LewaSensorProvider.apk", "28a53a4d3bfc9e608047c6bc7b89656036c1dcbb", "91743e8464a43326f7401003343686528a701100"));
set_progress(0.291637);
assert(apply_patch_check("/system/app/LewaSoundRecorder.apk", "0f3e9f5a5a207edfea9c9e16de1c6b8fda1eeb54", "997bd967c8c7548f1f27bce40cefedd67bd5d9df"));
set_progress(0.306319);
assert(apply_patch_check("/system/app/LocationProvider.apk", "87cd360fb4610eb148643382b9d249143ca6ced1", "54e59b40090c4b4b382eac7c457a6217b0d7d2d1"));
set_progress(0.340124);
assert(apply_patch_check("/system/app/MediaProvider.apk", "fcb7284f3ad8c5e55d3669f7d3ed823574f0454e", "b5ff5c1aed5d708c303facdb86b9b533037fa914"));
set_progress(0.341841);
assert(apply_patch_check("/system/app/MmsFavoriteProvider.apk", "149d1b399d1d3a350f81a1339dcecb13e9ad5b04", "edeae2ed673dd0039f388c14b37d217ffce2ee3a"));
set_progress(0.343411);
assert(apply_patch_check("/system/app/PIM.apk", "0cb2ca972fd1a513f7c343ef86ba23b3f6f7fc94", "061b7d8ca536b314ad18ae92602ede2a3c587ce1"));
set_progress(0.476050);
assert(apply_patch_check("/system/app/Phone.apk", "e3fe38d78163f50faeb354fbb7214a221dd571aa", "9f3f720d430ceab836a0b3c3cbf932abb62025e8"));
set_progress(0.510794);
assert(apply_patch_check("/system/app/Provision.apk", "0cd9fbb939c322188fd65ccae7fe29a5515ad171", "e2ca6ef77a3634ebbda09a46fa737bc9b00858c9"));
set_progress(0.510849);
assert(apply_patch_check("/system/app/Settings.apk", "db8a1f603f3c16104362c3594b77b400e52289e5", "e61baf0047d4275d84424e5ee95c5233b65c94cf"));
set_progress(0.574932);
assert(apply_patch_check("/system/app/SettingsProvider.apk", "0a43bf0981ad89576e0a0f0689f0ad82ef743293", "d1e4166516df24bec60b91085952ab107c5a53b7"));
set_progress(0.575645);
assert(apply_patch_check("/system/app/SystemUI.apk", "ae23868f57f4f8a8a85225c14422e3854d00682a", "c66b18c49b04a13300e45ca7eebe62f246c84b5f"));
set_progress(0.610262);
assert(apply_patch_check("/system/app/TelephonyProvider.apk", "43fe0f396444c9bf7b50a0184a966cc6cadc9193", "f755db83ee0a17b645d43abacd0b9a01a7b06736"));
set_progress(0.612185);
assert(apply_patch_check("/system/framework/android.policy.jar", "fcc478daef7ca94e7aebe115ec18fc247c48ccde", "551f3a54b34e7e9d6b989d9aa5e8ee3329f56ba5"));
set_progress(0.615807);
assert(apply_patch_check("/system/framework/framework-res.apk", "7969fb23980842c7316c65c145aad01d48f26a17", "1b0196315d422d0da2d5595818a5d913c1bdd049"));
set_progress(0.737943);
assert(apply_patch_check("/system/framework/framework.jar", "440d8b47b36d948af28dcccfe547a351339389a9", "db27b184d0ec737fd842ea1f2621f43b439ebdd4"));
set_progress(0.804767);
assert(apply_patch_check("/system/framework/framework_ext.jar", "7f19181f8ad8bdcbd3cd4ed35b7a085aa4a1315a", "77351d8ebfa6e4b4e09804ed01bdd2dda66d9bff"));
set_progress(0.815015);
assert(apply_patch_check("/system/framework/lewa-framework.jar", "c6cdef6de35cee6613a899ea59958bab09edff1c", "12205fbfb9309bc3c73c8aab01bd738fa3a6a9f1"));
set_progress(0.824915);
assert(apply_patch_check("/system/framework/lewa-res.apk", "acef07baa96ad12cfaf4955d3b0717d3f1963677", "35855102e06a0e6506fcd2ff22595adce901dd80"));
set_progress(0.982848);
assert(apply_patch_check("/system/framework/services.jar", "d851ecd06063e719c5c15d909ab595215418aa26", "939318ece32a39656346652ed8961de84783af5d"));
set_progress(1.000000);
assert(apply_patch_space(10545595));

# ---- start making changes here ----

ui_print("Removing unneeded files...");
delete("/system/build.prop",
       "/system/recovery.img");
show_progress(0.800000, 0);
ui_print("Patching system files...");
apply_patch("/system/app/CP_Bluetooth.apk", "-",
            cc709c57584a8ea9e545f6114f518b498813eab7, 1047902,
            18d184a975bd0e3461b6dd27eedb7540e62718e5, package_extract_file("patch/system/app/CP_Bluetooth.apk.p"));
set_progress(0.015694);
apply_patch("/system/app/CP_Gallery3D.apk", "-",
            83c9edfaddf709fa34dc83400e88c8042ad1c591, 2990061,
            b7cbad339e5cc138e6bbda6ded849341f4cd6bc0, package_extract_file("patch/system/app/CP_Gallery3D.apk.p"));
set_progress(0.060473);
apply_patch("/system/app/CalendarProvider.apk", "-",
            0ef37aa95dfd16d5cb34e541ccbeb4598d1abacf, 719528,
            87c34ac1905cb183178d2d3a7bd31f7279b87064, package_extract_file("patch/system/app/CalendarProvider.apk.p"));
set_progress(0.071249);
apply_patch("/system/app/ContactsProvider.apk", "-",
            9926add43abd05a2dffd4cdca163ebbdfe6f02da, 987072,
            c9662510c9d246b1c654dff89100bdc2ae6b7df2, package_extract_file("patch/system/app/ContactsProvider.apk.p"));
set_progress(0.086031);
apply_patch("/system/app/DownloadProvider.apk", "-",
            d977bd6ed1fb2bd03df5b3cdaaab6bb8ad65aef6, 625975,
            c35793b2b46a54884c624103c2ad7a68b4f80c78, package_extract_file("patch/system/app/DownloadProvider.apk.p"));
set_progress(0.095406);
apply_patch("/system/app/DownloadProviderUi.apk", "-",
            44e540d19b19eae5b98ea75ff1accf7ce2506243, 236232,
            5775167f9ba7526c358e76055461db9c1f5b6111, package_extract_file("patch/system/app/DownloadProviderUi.apk.p"));
set_progress(0.098944);
apply_patch("/system/app/LatinIME.apk", "-",
            f63f86b584bccaf17e480dcc08002b0e1d08055a, 8830345,
            8074870dbf6e5b9e1d934c16c126da00ffa66a04, package_extract_file("patch/system/app/LatinIME.apk.p"));
set_progress(0.231189);
apply_patch("/system/app/LewaCalculator.apk", "-",
            84344b5e721b76339d0bb2319583ad96be6f7e68, 509791,
            29ee8d237532669899bb6061ca2c5111733feb19, package_extract_file("patch/system/app/LewaCalculator.apk.p"));
set_progress(0.238823);
apply_patch("/system/app/LewaFlashlight.apk", "-",
            c2916aea50185f3a8ba38346ea90aa4ea3132ad7, 1225883,
            47e8dacc0c9d941f03e1beba679ee7260ff05821, package_extract_file("patch/system/app/LewaFlashlight.apk.p"));
set_progress(0.257182);
apply_patch("/system/app/LewaIntercept.apk", "-",
            7d0d0ceba559adb45454cbe3e3664aa8d6a5be5a, 355930,
            385cdee653a7670f57f3d0cc8e1d0c9478d34483, package_extract_file("patch/system/app/LewaIntercept.apk.p"));
set_progress(0.262513);
apply_patch("/system/app/LewaLabiSync.apk", "-",
            23bf949d7646ef982293872aa1d498b28337a605, 104484,
            8376009988e532dd0770cdc121bc32d9f06676bb, package_extract_file("patch/system/app/LewaLabiSync.apk.p"));
set_progress(0.264078);
apply_patch("/system/app/LewaLauncherX.apk", "-",
            38d74ba17a0ff912ebecb5154f17888795b7ffd9, 1594655,
            7c6aff50b63e6d2dc1b5f8befdb44be1cf341a32, package_extract_file("patch/system/app/LewaLauncherX.apk.p"));
set_progress(0.287959);
apply_patch("/system/app/LewaPackageInstaller.apk", "-",
            4d0135f51d4b5446b5e961f188a0ef3796134083, 166148,
            9ce04cc0bcb7b49771630d87b81f530cabf48ce4, package_extract_file("patch/system/app/LewaPackageInstaller.apk.p"));
set_progress(0.290448);
apply_patch("/system/app/LewaSensorProvider.apk", "-",
            28a53a4d3bfc9e608047c6bc7b89656036c1dcbb, 79439,
            91743e8464a43326f7401003343686528a701100, package_extract_file("patch/system/app/LewaSensorProvider.apk.p"));
set_progress(0.291637);
apply_patch("/system/app/LewaSoundRecorder.apk", "-",
            0f3e9f5a5a207edfea9c9e16de1c6b8fda1eeb54, 980335,
            997bd967c8c7548f1f27bce40cefedd67bd5d9df, package_extract_file("patch/system/app/LewaSoundRecorder.apk.p"));
set_progress(0.306319);
apply_patch("/system/app/LocationProvider.apk", "-",
            87cd360fb4610eb148643382b9d249143ca6ced1, 2257283,
            54e59b40090c4b4b382eac7c457a6217b0d7d2d1, package_extract_file("patch/system/app/LocationProvider.apk.p"));
set_progress(0.340124);
apply_patch("/system/app/MediaProvider.apk", "-",
            fcb7284f3ad8c5e55d3669f7d3ed823574f0454e, 114650,
            b5ff5c1aed5d708c303facdb86b9b533037fa914, package_extract_file("patch/system/app/MediaProvider.apk.p"));
set_progress(0.341841);
apply_patch("/system/app/MmsFavoriteProvider.apk", "-",
            149d1b399d1d3a350f81a1339dcecb13e9ad5b04, 104787,
            edeae2ed673dd0039f388c14b37d217ffce2ee3a, package_extract_file("patch/system/app/MmsFavoriteProvider.apk.p"));
set_progress(0.343411);
apply_patch("/system/app/PIM.apk", "-",
            0cb2ca972fd1a513f7c343ef86ba23b3f6f7fc94, 8856734,
            061b7d8ca536b314ad18ae92602ede2a3c587ce1, package_extract_file("patch/system/app/PIM.apk.p"));
set_progress(0.476051);
apply_patch("/system/app/Phone.apk", "-",
            e3fe38d78163f50faeb354fbb7214a221dd571aa, 2319945,
            9f3f720d430ceab836a0b3c3cbf932abb62025e8, package_extract_file("patch/system/app/Phone.apk.p"));
set_progress(0.510794);
apply_patch("/system/app/Provision.apk", "-",
            0cd9fbb939c322188fd65ccae7fe29a5515ad171, 3662,
            e2ca6ef77a3634ebbda09a46fa737bc9b00858c9, package_extract_file("patch/system/app/Provision.apk.p"));
set_progress(0.510849);
apply_patch("/system/app/Settings.apk", "-",
            db8a1f603f3c16104362c3594b77b400e52289e5, 4279012,
            e61baf0047d4275d84424e5ee95c5233b65c94cf, package_extract_file("patch/system/app/Settings.apk.p"));
set_progress(0.574932);
apply_patch("/system/app/SettingsProvider.apk", "-",
            0a43bf0981ad89576e0a0f0689f0ad82ef743293, 47570,
            d1e4166516df24bec60b91085952ab107c5a53b7, package_extract_file("patch/system/app/SettingsProvider.apk.p"));
set_progress(0.575645);
apply_patch("/system/app/SystemUI.apk", "-",
            ae23868f57f4f8a8a85225c14422e3854d00682a, 2311506,
            c66b18c49b04a13300e45ca7eebe62f246c84b5f, package_extract_file("patch/system/app/SystemUI.apk.p"));
set_progress(0.610262);
apply_patch("/system/app/TelephonyProvider.apk", "-",
            43fe0f396444c9bf7b50a0184a966cc6cadc9193, 128368,
            f755db83ee0a17b645d43abacd0b9a01a7b06736, package_extract_file("patch/system/app/TelephonyProvider.apk.p"));
set_progress(0.612185);
apply_patch("/system/framework/android.policy.jar", "-",
            fcc478daef7ca94e7aebe115ec18fc247c48ccde, 241905,
            551f3a54b34e7e9d6b989d9aa5e8ee3329f56ba5, package_extract_file("patch/system/framework/android.policy.jar.p"));
set_progress(0.615808);
apply_patch("/system/framework/framework-res.apk", "-",
            7969fb23980842c7316c65c145aad01d48f26a17, 8155303,
            1b0196315d422d0da2d5595818a5d913c1bdd049, package_extract_file("patch/system/framework/framework-res.apk.p"));
set_progress(0.737943);
apply_patch("/system/framework/framework.jar", "-",
            440d8b47b36d948af28dcccfe547a351339389a9, 4462029,
            db27b184d0ec737fd842ea1f2621f43b439ebdd4, package_extract_file("patch/system/framework/framework.jar.p"));
set_progress(0.804767);
apply_patch("/system/framework/framework_ext.jar", "-",
            7f19181f8ad8bdcbd3cd4ed35b7a085aa4a1315a, 684316,
            77351d8ebfa6e4b4e09804ed01bdd2dda66d9bff, package_extract_file("patch/system/framework/framework_ext.jar.p"));
set_progress(0.815015);
apply_patch("/system/framework/lewa-framework.jar", "-",
            c6cdef6de35cee6613a899ea59958bab09edff1c, 661071,
            12205fbfb9309bc3c73c8aab01bd738fa3a6a9f1, package_extract_file("patch/system/framework/lewa-framework.jar.p"));
set_progress(0.824916);
apply_patch("/system/framework/lewa-res.apk", "-",
            acef07baa96ad12cfaf4955d3b0717d3f1963677, 10545591,
            35855102e06a0e6506fcd2ff22595adce901dd80, package_extract_file("patch/system/framework/lewa-res.apk.p"));
set_progress(0.982848);
apply_patch("/system/framework/services.jar", "-",
            d851ecd06063e719c5c15d909ab595215418aa26, 1145291,
            939318ece32a39656346652ed8961de84783af5d, package_extract_file("patch/system/framework/services.jar.p"));
set_progress(1.000000);
show_progress(0.100000, 10);
ui_print("Unpacking new files...");
package_extract_dir("system", "/system");
package_extract_dir("data", "/data");
ui_print("Symlinks and permissions...");
set_perm_recursive(1000, 1000, 0755, 0644, "/data/preinstall_apps");
set_perm_recursive(0, 0, 0755, 0644, "/system");
set_perm_recursive(0, 2000, 0755, 0755, "/system/bin");
set_perm(0, 1000, 0755, "/system/bin/diag_mdlog");
set_perm(0, 1000, 0750, "/system/bin/iptables");
set_perm(0, 0, 06755, "/system/bin/ldss");
set_perm(0, 0, 06755, "/system/bin/lvdouSuBackup");
set_perm(0, 3003, 02750, "/system/bin/netcfg");
set_perm(0, 3004, 02755, "/system/bin/ping");
set_perm(0, 0, 06755, "/system/bin/su0");
set_perm(0, 1000, 0750, "/system/bin/tc");
set_perm_recursive(1002, 1002, 0755, 0440, "/system/etc/bluetooth");
set_perm(0, 0, 0755, "/system/etc/bluetooth");
set_perm(1000, 1000, 0640, "/system/etc/bluetooth/auto_pairing.conf");
set_perm(3002, 3002, 0444, "/system/etc/bluetooth/blacklist.conf");
set_perm(0, 0, 0644, "/system/etc/bluetooth/iop_device_list.conf");
set_perm(1002, 1002, 0440, "/system/etc/dbus.conf");
set_perm(1014, 2000, 0550, "/system/etc/dhcpcd/dhcpcd-run-hooks");
set_perm(0, 2000, 0550, "/system/etc/init.goldfish.sh");
set_perm(0, 0, 0550, "/system/etc/init.qcom.sdio.sh");
set_perm_recursive(0, 0, 0755, 0555, "/system/etc/ppp");
set_perm(0, 1010, 0550, "/system/etc/wifi/runbip.sh");
set_perm(0, 2000, 0755, "/system/vendor/lib");
set_perm(0, 2000, 0755, "/system/vendor/pittpatt");
set_perm_recursive(0, 2000, 0755, 0755, "/system/xbin");
set_perm(0, 0, 06755, "/system/xbin/busybox");
set_perm(0, 0, 0755, "/system/xbin/librank");
set_perm(0, 0, 0755, "/system/xbin/procmem");
set_perm(0, 0, 0755, "/system/xbin/procrank");
set_perm(0, 0, 06755, "/system/xbin/su");
set_perm(0, 0, 0755, "/system/xbin/tcpdump");
ui_print("Patching remaining system files...");
set_perm(0, 0, 0644, "/system/build.prop");
unmount("/data");
unmount("/system");
