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", "9eefc8991cd4188234d312730882251db77aba11", "70aaf2516dfac067c56d5f357762115854a87f68"));
set_progress(0.014331);
assert(apply_patch_check("/system/app/CP_Gallery3D.apk", "3856ee8b684cad8b09413d0d14aa2dd314787656", "250058898677dba4cb0f5a35880cc16d99529061"));
set_progress(0.055221);
assert(apply_patch_check("/system/app/CalendarProvider.apk", "d767be2ce382c315310fdee8ac419cffc7c774c8", "94d07fdd3979cadf8efcb8fa7b543132688ce0e4"));
set_progress(0.065061);
assert(apply_patch_check("/system/app/ContactsProvider.apk", "14d82c3abd3a207efa28a4165581594179c933b0", "71851022ae21e9163cc6a26861c2ec33a1fab146"));
set_progress(0.078560);
assert(apply_patch_check("/system/app/DownloadProvider.apk", "7560c8ef42c296ad640b4363d66875c3f370ed50", "1709acb2a859d5069be5ed964ce3826e0b049c92"));
set_progress(0.087120);
assert(apply_patch_check("/system/app/DownloadProviderUi.apk", "3d2e5fb68689a94d240389bee9cc5e670499d564", "d0021801d0fada81b04b53d379b56980ece196c6"));
set_progress(0.090327);
assert(apply_patch_check("/system/app/LatinIME.apk", "3b32acfb41d0a6fd472e11bfe01bd8513aa35a91", "0c69db974b68bc6d9a57a1240aa6aad7bff522ed"));
set_progress(0.211087);
assert(apply_patch_check("/system/app/LewaBirdView.apk", "39b02d657d9611387eb9440d39436e5cebd5d21c", "621f2db20773514ba06f053f758c98ae66066f12"));
set_progress(0.213013);
assert(apply_patch_check("/system/app/LewaCalculator.apk", "7bd035907ca2c4f8faccfd59fe960029820112ad", "a6714fc5f4753735fab3cdc17378c3f16a0c21b0"));
set_progress(0.219985);
assert(apply_patch_check("/system/app/LewaFlashlight.apk", "0e8aec67d7cd74286e6336debb5118071bbd22ac", "9f5d17dbad9cd011d92962907bd4e9d6bf6f3cd9"));
set_progress(0.236749);
assert(apply_patch_check("/system/app/LewaIntercept.apk", "755b39546ebc090a689c80d562986932768e18d7", "f5c53c0a452a173b1c566165f30ddb9219384564"));
set_progress(0.241617);
assert(apply_patch_check("/system/app/LewaLabiSync.apk", "40734bfaa3e5a7acd0bfe5827cc7aeae1ec24d69", "fcc8f1390888655275986967879e09a7929f02c1"));
set_progress(0.243045);
assert(apply_patch_check("/system/app/LewaLauncherX.apk", "535ce3e2cc93e4d958eadf5e5880a1b1b5801cf4", "27e60314a9ebc35a19b32e3fbf11b2d39b0d64c0"));
set_progress(0.265379);
assert(apply_patch_check("/system/app/LewaPackageInstaller.apk", "62befe8ab96b0de7f4765fe9076efd6981d43db4", "e75ac2e8788048aba46b374d40d411aaa1d99d4a"));
set_progress(0.267651);
assert(apply_patch_check("/system/app/LewaPlayer.apk", "ed6bd2b89b92d5d9479a954178bb76ae9743be78", "5a984585975983b942f10eb7a448768dfb41ceea"));
set_progress(0.296055);
assert(apply_patch_check("/system/app/LewaSensorProvider.apk", "528dd2922226f81ef1ef421dbdb51f45f781df9a", "38f7c30222943fb2b3212606f41d94e96f590f05"));
set_progress(0.297139);
assert(apply_patch_check("/system/app/LewaSoundRecorder.apk", "9f562bcc8fa1fe7ef5e900f88c3859a9758e5c19", "66090236688e40738a53a9e27fae24d064036c27"));
set_progress(0.310546);
assert(apply_patch_check("/system/app/LewaThemeChooser.apk", "3f7e90fa952477322b8ea250de5aee579889f1b0", "95e755d14b7d7b450d9907e532cb0000404dbbac"));
set_progress(0.318452);
assert(apply_patch_check("/system/app/LewaUpdater.apk", "a3fb2753cfbf5ce4f61b3d825363486f99e75de2", "a023487370b742779cb27762be6f5e9870241b2a"));
set_progress(0.337037);
assert(apply_patch_check("/system/app/LewaWeather.apk", "363ad065b9ff9b9f98f4c90b740f3799cf8e2159", "22b63251ac31b77e2103ad74c3c04e48a57b656d"));
set_progress(0.367231);
assert(apply_patch_check("/system/app/LocationProvider.apk", "cf3d2534a6b1eede2f89349d64dfa7fe632441d4", "c1e756b5b38d7bf7a19fa1e7e5947fca0aaa8024"));
set_progress(0.398100);
assert(apply_patch_check("/system/app/MediaProvider.apk", "7f47283953632f6edd74c62f0d9da8c64ad4f8ab", "d9272848dcc1f88789be17f89187100867430a92"));
set_progress(0.399668);
assert(apply_patch_check("/system/app/MmsFavoriteProvider.apk", "ca79f016f951301eb7761cb948d2a3834320484b", "a67d7636a4b8353f30e87a82d9688e0d7d355e28"));
set_progress(0.401101);
assert(apply_patch_check("/system/app/PIM.apk", "cc4b5bb94c2496b70aee954f9a1ba184508f4878", "01f2246a64f2da5107fd0f7ec93dce3fbc0c5a89"));
set_progress(0.522217);
assert(apply_patch_check("/system/app/Phone.apk", "ca08f63c36073a9d120dd0a218d8329bf4d2e117", "2adfa0f861df4b7e4230638fb57fd92ada803c19"));
set_progress(0.553928);
assert(apply_patch_check("/system/app/Provision.apk", "63680bd4030adc8df811c1d36038ae77bb376c31", "5be9f0e72e985cf1fde9c425a1cd15a470c8b966"));
set_progress(0.553978);
assert(apply_patch_check("/system/app/Settings.apk", "b98edf0b47204998f7111e5daa769d25740d9aaf", "94fa03642b67b7a3e5ca03e8053c2ff0c704c2d5"));
set_progress(0.612495);
assert(apply_patch_check("/system/app/SettingsProvider.apk", "2c79187d508225f7f0bd3c9fc8e1b8ead8f2ffa2", "f5e5b27a390b4dae1b74308f852170e78d8b8bff"));
set_progress(0.613145);
assert(apply_patch_check("/system/app/SystemUI.apk", "effe3efdd5ec944ef859d8096661083b393d04f0", "12588fc47ad11da39b6adfb31d9eb581c5e7d092"));
set_progress(0.644756);
assert(apply_patch_check("/system/app/TelephonyProvider.apk", "b05a7a0daee4ac194c2ead209901cdbb644e971b", "ef1f2543d6c2b1fe5561a6f5f61c601aabbb4ba2"));
set_progress(0.646511);
assert(apply_patch_check("/system/framework/android.policy.jar", "3dc6caf9ba94444fe0bdb8f01ab0c81801b75b91", "1792cfad169c09b76b2ac565b829bb598f81bc54"));
set_progress(0.649822);
assert(apply_patch_check("/system/framework/framework-res.apk", "69bfa84b412fb2c7197ea3d85c110ae2275d850c", "9a0dfb373e6b09592d80ec4e07c7289db9adcf1d"));
set_progress(0.761350);
assert(apply_patch_check("/system/framework/framework.jar", "9be8e0241b57aec3e094341752845df9ecbadd52", "265707fd1693f31647215641055371de79f9e73e"));
set_progress(0.822305);
assert(apply_patch_check("/system/framework/framework_ext.jar", "8bc3c5a88402f9e0686e9892acb15af6a16bc1e1", "ea701993a1261c73a503fda67356e383d21608b5"));
set_progress(0.831674);
assert(apply_patch_check("/system/framework/lewa-framework.jar", "154e70728facd8cace22a2b9a851eb6a35b42385", "7e4abc7f73f4ff2b4377558e9e9dd09f8a884650"));
set_progress(0.840676);
assert(apply_patch_check("/system/framework/lewa-res.apk", "55f5b40f011ccd7e2a7422e6d99ebcb4b0977179", "35140f7af4716f6b4359f8e2cdc5cfb0c500f5fe"));
set_progress(0.979456);
assert(apply_patch_check("/system/framework/services.jar", "8c2a6c86643ab0c44489fbedf39a046e907b9b07", "da48401529d0c4db4c26e70c9e249149e0a20cfc"));
set_progress(0.995121);
assert(apply_patch_check("/system/media/theme/lockstyle", "b3f09c03528da49e64915f6810b71fda535e5eb2", "439eb0cd53005844a678f005e57d2b5032650dbc"));
set_progress(1.000000);
assert(apply_patch_space(10148069));

# ---- 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", "-",
            9eefc8991cd4188234d312730882251db77aba11, 1047902,
            70aaf2516dfac067c56d5f357762115854a87f68, package_extract_file("patch/system/app/CP_Bluetooth.apk.p"));
set_progress(0.014339);
apply_patch("/system/app/CP_Gallery3D.apk", "-",
            3856ee8b684cad8b09413d0d14aa2dd314787656, 2990061,
            250058898677dba4cb0f5a35880cc16d99529061, package_extract_file("patch/system/app/CP_Gallery3D.apk.p"));
set_progress(0.055254);
apply_patch("/system/app/CalendarProvider.apk", "-",
            d767be2ce382c315310fdee8ac419cffc7c774c8, 719520,
            94d07fdd3979cadf8efcb8fa7b543132688ce0e4, package_extract_file("patch/system/app/CalendarProvider.apk.p"));
set_progress(0.065100);
apply_patch("/system/app/ContactsProvider.apk", "-",
            14d82c3abd3a207efa28a4165581594179c933b0, 987064,
            71851022ae21e9163cc6a26861c2ec33a1fab146, package_extract_file("patch/system/app/ContactsProvider.apk.p"));
set_progress(0.078607);
apply_patch("/system/app/DownloadProvider.apk", "-",
            7560c8ef42c296ad640b4363d66875c3f370ed50, 625935,
            1709acb2a859d5069be5ed964ce3826e0b049c92, package_extract_file("patch/system/app/DownloadProvider.apk.p"));
set_progress(0.087172);
apply_patch("/system/app/DownloadProviderUi.apk", "-",
            3d2e5fb68689a94d240389bee9cc5e670499d564, 235224,
            d0021801d0fada81b04b53d379b56980ece196c6, package_extract_file("patch/system/app/DownloadProviderUi.apk.p"));
set_progress(0.090391);
apply_patch("/system/app/LatinIME.apk", "-",
            3b32acfb41d0a6fd472e11bfe01bd8513aa35a91, 8830333,
            0c69db974b68bc6d9a57a1240aa6aad7bff522ed, package_extract_file("patch/system/app/LatinIME.apk.p"));
set_progress(0.211222);
apply_patch("/system/app/LewaBirdView.apk", "-",
            39b02d657d9611387eb9440d39436e5cebd5d21c, 140882,
            621f2db20773514ba06f053f758c98ae66066f12, package_extract_file("patch/system/app/LewaBirdView.apk.p"));
set_progress(0.213150);
apply_patch("/system/app/LewaCalculator.apk", "-",
            7bd035907ca2c4f8faccfd59fe960029820112ad, 509783,
            a6714fc5f4753735fab3cdc17378c3f16a0c21b0, package_extract_file("patch/system/app/LewaCalculator.apk.p"));
set_progress(0.220126);
apply_patch("/system/app/LewaFlashlight.apk", "-",
            0e8aec67d7cd74286e6336debb5118071bbd22ac, 1225883,
            9f5d17dbad9cd011d92962907bd4e9d6bf6f3cd9, package_extract_file("patch/system/app/LewaFlashlight.apk.p"));
set_progress(0.236900);
apply_patch("/system/app/LewaIntercept.apk", "-",
            755b39546ebc090a689c80d562986932768e18d7, 355930,
            f5c53c0a452a173b1c566165f30ddb9219384564, package_extract_file("patch/system/app/LewaIntercept.apk.p"));
set_progress(0.241771);
apply_patch("/system/app/LewaLabiSync.apk", "-",
            40734bfaa3e5a7acd0bfe5827cc7aeae1ec24d69, 104472,
            fcc8f1390888655275986967879e09a7929f02c1, package_extract_file("patch/system/app/LewaLabiSync.apk.p"));
set_progress(0.243200);
apply_patch("/system/app/LewaLauncherX.apk", "-",
            535ce3e2cc93e4d958eadf5e5880a1b1b5801cf4, 1590650,
            27e60314a9ebc35a19b32e3fbf11b2d39b0d64c0, package_extract_file("patch/system/app/LewaLauncherX.apk.p"));
set_progress(0.264966);
apply_patch("/system/app/LewaPackageInstaller.apk", "-",
            62befe8ab96b0de7f4765fe9076efd6981d43db4, 166136,
            e75ac2e8788048aba46b374d40d411aaa1d99d4a, package_extract_file("patch/system/app/LewaPackageInstaller.apk.p"));
set_progress(0.267240);
apply_patch("/system/app/LewaPlayer.apk", "-",
            ed6bd2b89b92d5d9479a954178bb76ae9743be78, 2077457,
            5a984585975983b942f10eb7a448768dfb41ceea, package_extract_file("patch/system/app/LewaPlayer.apk.p"));
set_progress(0.295667);
apply_patch("/system/app/LewaSensorProvider.apk", "-",
            528dd2922226f81ef1ef421dbdb51f45f781df9a, 79311,
            38f7c30222943fb2b3212606f41d94e96f590f05, package_extract_file("patch/system/app/LewaSensorProvider.apk.p"));
set_progress(0.296752);
apply_patch("/system/app/LewaSoundRecorder.apk", "-",
            9f562bcc8fa1fe7ef5e900f88c3859a9758e5c19, 980331,
            66090236688e40738a53a9e27fae24d064036c27, package_extract_file("patch/system/app/LewaSoundRecorder.apk.p"));
set_progress(0.310167);
apply_patch("/system/app/LewaThemeChooser.apk", "-",
            3f7e90fa952477322b8ea250de5aee579889f1b0, 578233,
            95e755d14b7d7b450d9907e532cb0000404dbbac, package_extract_file("patch/system/app/LewaThemeChooser.apk.p"));
set_progress(0.318079);
apply_patch("/system/app/LewaUpdater.apk", "-",
            a3fb2753cfbf5ce4f61b3d825363486f99e75de2, 1358904,
            a023487370b742779cb27762be6f5e9870241b2a, package_extract_file("patch/system/app/LewaUpdater.apk.p"));
set_progress(0.336674);
apply_patch("/system/app/LewaWeather.apk", "-",
            363ad065b9ff9b9f98f4c90b740f3799cf8e2159, 2207890,
            22b63251ac31b77e2103ad74c3c04e48a57b656d, package_extract_file("patch/system/app/LewaWeather.apk.p"));
set_progress(0.366886);
apply_patch("/system/app/LocationProvider.apk", "-",
            cf3d2534a6b1eede2f89349d64dfa7fe632441d4, 2257275,
            c1e756b5b38d7bf7a19fa1e7e5947fca0aaa8024, package_extract_file("patch/system/app/LocationProvider.apk.p"));
set_progress(0.397774);
apply_patch("/system/app/MediaProvider.apk", "-",
            7f47283953632f6edd74c62f0d9da8c64ad4f8ab, 114642,
            d9272848dcc1f88789be17f89187100867430a92, package_extract_file("patch/system/app/MediaProvider.apk.p"));
set_progress(0.399343);
apply_patch("/system/app/MmsFavoriteProvider.apk", "-",
            ca79f016f951301eb7761cb948d2a3834320484b, 104779,
            a67d7636a4b8353f30e87a82d9688e0d7d355e28, package_extract_file("patch/system/app/MmsFavoriteProvider.apk.p"));
set_progress(0.400777);
apply_patch("/system/app/PIM.apk", "-",
            cc4b5bb94c2496b70aee954f9a1ba184508f4878, 8856514,
            01f2246a64f2da5107fd0f7ec93dce3fbc0c5a89, package_extract_file("patch/system/app/PIM.apk.p"));
set_progress(0.521966);
apply_patch("/system/app/Phone.apk", "-",
            ca08f63c36073a9d120dd0a218d8329bf4d2e117, 2318829,
            2adfa0f861df4b7e4230638fb57fd92ada803c19, package_extract_file("patch/system/app/Phone.apk.p"));
set_progress(0.553697);
apply_patch("/system/app/Provision.apk", "-",
            63680bd4030adc8df811c1d36038ae77bb376c31, 3651,
            5be9f0e72e985cf1fde9c425a1cd15a470c8b966, package_extract_file("patch/system/app/Provision.apk.p"));
set_progress(0.553747);
apply_patch("/system/app/Settings.apk", "-",
            b98edf0b47204998f7111e5daa769d25740d9aaf, 4279004,
            94fa03642b67b7a3e5ca03e8053c2ff0c704c2d5, package_extract_file("patch/system/app/Settings.apk.p"));
set_progress(0.612299);
apply_patch("/system/app/SettingsProvider.apk", "-",
            2c79187d508225f7f0bd3c9fc8e1b8ead8f2ffa2, 47558,
            f5e5b27a390b4dae1b74308f852170e78d8b8bff, package_extract_file("patch/system/app/SettingsProvider.apk.p"));
set_progress(0.612950);
apply_patch("/system/app/SystemUI.apk", "-",
            effe3efdd5ec944ef859d8096661083b393d04f0, 2311506,
            12588fc47ad11da39b6adfb31d9eb581c5e7d092, package_extract_file("patch/system/app/SystemUI.apk.p"));
set_progress(0.644580);
apply_patch("/system/app/TelephonyProvider.apk", "-",
            b05a7a0daee4ac194c2ead209901cdbb644e971b, 128360,
            ef1f2543d6c2b1fe5561a6f5f61c601aabbb4ba2, package_extract_file("patch/system/app/TelephonyProvider.apk.p"));
set_progress(0.646336);
apply_patch("/system/framework/android.policy.jar", "-",
            3dc6caf9ba94444fe0bdb8f01ab0c81801b75b91, 241923,
            1792cfad169c09b76b2ac565b829bb598f81bc54, package_extract_file("patch/system/framework/android.policy.jar.p"));
set_progress(0.649647);
apply_patch("/system/framework/framework-res.apk", "-",
            69bfa84b412fb2c7197ea3d85c110ae2275d850c, 8155303,
            9a0dfb373e6b09592d80ec4e07c7289db9adcf1d, package_extract_file("patch/system/framework/framework-res.apk.p"));
set_progress(0.761242);
apply_patch("/system/framework/framework.jar", "-",
            9be8e0241b57aec3e094341752845df9ecbadd52, 4453983,
            265707fd1693f31647215641055371de79f9e73e, package_extract_file("patch/system/framework/framework.jar.p"));
set_progress(0.822189);
apply_patch("/system/framework/framework_ext.jar", "-",
            8bc3c5a88402f9e0686e9892acb15af6a16bc1e1, 684316,
            ea701993a1261c73a503fda67356e383d21608b5, package_extract_file("patch/system/framework/framework_ext.jar.p"));
set_progress(0.831553);
apply_patch("/system/framework/lewa-framework.jar", "-",
            154e70728facd8cace22a2b9a851eb6a35b42385, 660170,
            7e4abc7f73f4ff2b4377558e9e9dd09f8a884650, package_extract_file("patch/system/framework/lewa-framework.jar.p"));
set_progress(0.840586);
apply_patch("/system/framework/lewa-res.apk", "-",
            55f5b40f011ccd7e2a7422e6d99ebcb4b0977179, 10148029,
            35140f7af4716f6b4359f8e2cdc5cfb0c500f5fe, package_extract_file("patch/system/framework/lewa-res.apk.p"));
set_progress(0.979449);
apply_patch("/system/framework/services.jar", "-",
            8c2a6c86643ab0c44489fbedf39a046e907b9b07, 1145193,
            da48401529d0c4db4c26e70c9e249149e0a20cfc, package_extract_file("patch/system/framework/services.jar.p"));
set_progress(0.995119);
apply_patch("/system/media/theme/lockstyle", "-",
            b3f09c03528da49e64915f6810b71fda535e5eb2, 356682,
            439eb0cd53005844a678f005e57d2b5032650dbc, package_extract_file("patch/system/media/theme/lockstyle.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");
