mount("ext4", "EMMC", "/dev/block/platform/msm_sdcc.1/by-name/system", "/system");
mount("ext4", "EMMC", "/dev/block/platform/msm_sdcc.1/by-name/userdata", "/data");
assert(file_getprop("/system/build.prop", "ro.build.fingerprint") == "Xiaomi/mione_plus/mione_plus:4.1.2/JZO54K/QDS88:userdebug/release-keys" ||
       file_getprop("/system/build.prop", "ro.build.fingerprint") == "Xiaomi/mione_plus/mione_plus:4.1.2/JZO54K/QDS88:userdebug/release-keys");
assert(getprop("ro.product.device") == "mione_plus" || getprop("ro.build.product") == "mione_plus");
ui_print("Verifying current system...");
show_progress(0.100000, 0);
assert(apply_patch_check("/system/app/Bluetooth.apk", "b7773cae410a8040aba511d5b46f3c48f3549ace", "ae03a459313a3aa92b8f6471ea9411e1cde80265"));
set_progress(0.013754);
assert(apply_patch_check("/system/app/CalendarProvider.apk", "d767be2ce382c315310fdee8ac419cffc7c774c8", "94d07fdd3979cadf8efcb8fa7b543132688ce0e4"));
set_progress(0.025611);
assert(apply_patch_check("/system/app/ContactsProvider.apk", "14d82c3abd3a207efa28a4165581594179c933b0", "71851022ae21e9163cc6a26861c2ec33a1fab146"));
set_progress(0.041877);
assert(apply_patch_check("/system/app/DownloadProvider.apk", "7560c8ef42c296ad640b4363d66875c3f370ed50", "1709acb2a859d5069be5ed964ce3826e0b049c92"));
set_progress(0.052192);
assert(apply_patch_check("/system/app/DownloadProviderUi.apk", "3d2e5fb68689a94d240389bee9cc5e670499d564", "d0021801d0fada81b04b53d379b56980ece196c6"));
set_progress(0.056057);
assert(apply_patch_check("/system/app/LewaBirdView.apk", "39b02d657d9611387eb9440d39436e5cebd5d21c", "621f2db20773514ba06f053f758c98ae66066f12"));
set_progress(0.058378);
assert(apply_patch_check("/system/app/LewaCalculator.apk", "7bd035907ca2c4f8faccfd59fe960029820112ad", "a6714fc5f4753735fab3cdc17378c3f16a0c21b0"));
set_progress(0.066779);
assert(apply_patch_check("/system/app/LewaFlashlight.apk", "0e8aec67d7cd74286e6336debb5118071bbd22ac", "9f5d17dbad9cd011d92962907bd4e9d6bf6f3cd9"));
set_progress(0.086980);
assert(apply_patch_check("/system/app/LewaIntercept.apk", "755b39546ebc090a689c80d562986932768e18d7", "f5c53c0a452a173b1c566165f30ddb9219384564"));
set_progress(0.092845);
assert(apply_patch_check("/system/app/LewaLabiSync.apk", "40734bfaa3e5a7acd0bfe5827cc7aeae1ec24d69", "fcc8f1390888655275986967879e09a7929f02c1"));
set_progress(0.094567);
assert(apply_patch_check("/system/app/LewaLauncherX.apk", "535ce3e2cc93e4d958eadf5e5880a1b1b5801cf4", "27e60314a9ebc35a19b32e3fbf11b2d39b0d64c0"));
set_progress(0.121479);
assert(apply_patch_check("/system/app/LewaPackageInstaller.apk", "62befe8ab96b0de7f4765fe9076efd6981d43db4", "e75ac2e8788048aba46b374d40d411aaa1d99d4a"));
set_progress(0.124217);
assert(apply_patch_check("/system/app/LewaPlayer.apk", "ed6bd2b89b92d5d9479a954178bb76ae9743be78", "5a984585975983b942f10eb7a448768dfb41ceea"));
set_progress(0.158443);
assert(apply_patch_check("/system/app/LewaSensorProvider.apk", "528dd2922226f81ef1ef421dbdb51f45f781df9a", "38f7c30222943fb2b3212606f41d94e96f590f05"));
set_progress(0.159750);
assert(apply_patch_check("/system/app/LewaSoundRecorder.apk", "9f562bcc8fa1fe7ef5e900f88c3859a9758e5c19", "66090236688e40738a53a9e27fae24d064036c27"));
set_progress(0.175905);
assert(apply_patch_check("/system/app/LewaThemeChooser.apk", "3f7e90fa952477322b8ea250de5aee579889f1b0", "95e755d14b7d7b450d9907e532cb0000404dbbac"));
set_progress(0.185432);
assert(apply_patch_check("/system/app/LewaUpdater.apk", "a3fb2753cfbf5ce4f61b3d825363486f99e75de2", "a023487370b742779cb27762be6f5e9870241b2a"));
set_progress(0.207826);
assert(apply_patch_check("/system/app/LewaWeather.apk", "363ad065b9ff9b9f98f4c90b740f3799cf8e2159", "22b63251ac31b77e2103ad74c3c04e48a57b656d"));
set_progress(0.244210);
assert(apply_patch_check("/system/app/LocationProvider.apk", "cf3d2534a6b1eede2f89349d64dfa7fe632441d4", "c1e756b5b38d7bf7a19fa1e7e5947fca0aaa8024"));
set_progress(0.281408);
assert(apply_patch_check("/system/app/MediaProvider.apk", "7f47283953632f6edd74c62f0d9da8c64ad4f8ab", "d9272848dcc1f88789be17f89187100867430a92"));
set_progress(0.283297);
assert(apply_patch_check("/system/app/MmsFavoriteProvider.apk", "ca79f016f951301eb7761cb948d2a3834320484b", "a67d7636a4b8353f30e87a82d9688e0d7d355e28"));
set_progress(0.285024);
assert(apply_patch_check("/system/app/PIM.apk", "cc4b5bb94c2496b70aee954f9a1ba184508f4878", "01f2246a64f2da5107fd0f7ec93dce3fbc0c5a89"));
set_progress(0.430968);
assert(apply_patch_check("/system/app/Provision.apk", "63680bd4030adc8df811c1d36038ae77bb376c31", "5be9f0e72e985cf1fde9c425a1cd15a470c8b966"));
set_progress(0.431028);
assert(apply_patch_check("/system/app/Settings.apk", "cbea24bba40c5fc258b371949674aa171603df12", "5d2707f91ca24fa431a903d493c56ddf29783241"));
set_progress(0.541104);
assert(apply_patch_check("/system/app/SettingsProvider.apk", "2c79187d508225f7f0bd3c9fc8e1b8ead8f2ffa2", "f5e5b27a390b4dae1b74308f852170e78d8b8bff"));
set_progress(0.541888);
assert(apply_patch_check("/system/app/Stk.apk", "4fe317ea528ef815af687ca9079b3d0bbb2934e0", "ab99da43d308fbf11cecccc6e4674e11c20116a5"));
set_progress(0.543293);
assert(apply_patch_check("/system/app/SystemUI.apk", "effe3efdd5ec944ef859d8096661083b393d04f0", "12588fc47ad11da39b6adfb31d9eb581c5e7d092"));
set_progress(0.581385);
assert(apply_patch_check("/system/app/TelephonyProvider.apk", "b05a7a0daee4ac194c2ead209901cdbb644e971b", "ef1f2543d6c2b1fe5561a6f5f61c601aabbb4ba2"));
set_progress(0.583500);
assert(apply_patch_check("/system/framework/android.policy.jar", "cd0242ffb9ed59269f14a6812a2a63f5a2fcc694", "1eec3a19a063229c5ad3d670f09693fb70826e8f"));
set_progress(0.586579);
assert(apply_patch_check("/system/framework/framework-res.apk", "1f193e58620e2c87746e1073001b6920b83e4122", "180614abc180b51f17674ec2ec201e1d9d6d0dbe"));
set_progress(0.716097);
assert(apply_patch_check("/system/framework/framework.jar", "497182aa4842ec3352bd4c60a68f32e7bc16456c", "79a22b4f2e52246d614127071eedd78267485e86"));
set_progress(0.790770);
assert(apply_patch_check("/system/framework/framework_ext.jar", "53711a6f1b63100b821a3ff8e945867ec5e83764", "ebdbe32528ced882bb4c95680743cf9cb780a694"));
set_progress(0.798619);
assert(apply_patch_check("/system/framework/lewa-framework.jar", "154e70728facd8cace22a2b9a851eb6a35b42385", "7e4abc7f73f4ff2b4377558e9e9dd09f8a884650"));
set_progress(0.809467);
assert(apply_patch_check("/system/framework/lewa-res.apk", "2c9678dc269e39ec10f3186cf6cc3bec377880e0", "1d6613b1a42105f0dcea573b26c68cfa311aded4"));
set_progress(0.976697);
assert(apply_patch_check("/system/framework/services.jar", "af1037138148b3bef2a1888502b99aa0aa185819", "bfebbfa218e55713ae15868940fcdb0788f0ff76"));
set_progress(0.994121);
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/Bluetooth.apk", "-",
            b7773cae410a8040aba511d5b46f3c48f3549ace, 834658,
            ae03a459313a3aa92b8f6471ea9411e1cde80265, package_extract_file("patch/system/app/Bluetooth.apk.p"));
set_progress(0.013762);
apply_patch("/system/app/CalendarProvider.apk", "-",
            d767be2ce382c315310fdee8ac419cffc7c774c8, 719520,
            94d07fdd3979cadf8efcb8fa7b543132688ce0e4, package_extract_file("patch/system/app/CalendarProvider.apk.p"));
set_progress(0.025626);
apply_patch("/system/app/ContactsProvider.apk", "-",
            14d82c3abd3a207efa28a4165581594179c933b0, 987064,
            71851022ae21e9163cc6a26861c2ec33a1fab146, package_extract_file("patch/system/app/ContactsProvider.apk.p"));
set_progress(0.041902);
apply_patch("/system/app/DownloadProvider.apk", "-",
            7560c8ef42c296ad640b4363d66875c3f370ed50, 625935,
            1709acb2a859d5069be5ed964ce3826e0b049c92, package_extract_file("patch/system/app/DownloadProvider.apk.p"));
set_progress(0.052222);
apply_patch("/system/app/DownloadProviderUi.apk", "-",
            3d2e5fb68689a94d240389bee9cc5e670499d564, 235224,
            d0021801d0fada81b04b53d379b56980ece196c6, package_extract_file("patch/system/app/DownloadProviderUi.apk.p"));
set_progress(0.056101);
apply_patch("/system/app/LewaBirdView.apk", "-",
            39b02d657d9611387eb9440d39436e5cebd5d21c, 140882,
            621f2db20773514ba06f053f758c98ae66066f12, package_extract_file("patch/system/app/LewaBirdView.apk.p"));
set_progress(0.058424);
apply_patch("/system/app/LewaCalculator.apk", "-",
            7bd035907ca2c4f8faccfd59fe960029820112ad, 509783,
            a6714fc5f4753735fab3cdc17378c3f16a0c21b0, package_extract_file("patch/system/app/LewaCalculator.apk.p"));
set_progress(0.066829);
apply_patch("/system/app/LewaFlashlight.apk", "-",
            0e8aec67d7cd74286e6336debb5118071bbd22ac, 1225883,
            9f5d17dbad9cd011d92962907bd4e9d6bf6f3cd9, package_extract_file("patch/system/app/LewaFlashlight.apk.p"));
set_progress(0.087043);
apply_patch("/system/app/LewaIntercept.apk", "-",
            755b39546ebc090a689c80d562986932768e18d7, 355930,
            f5c53c0a452a173b1c566165f30ddb9219384564, package_extract_file("patch/system/app/LewaIntercept.apk.p"));
set_progress(0.092911);
apply_patch("/system/app/LewaLabiSync.apk", "-",
            40734bfaa3e5a7acd0bfe5827cc7aeae1ec24d69, 104472,
            fcc8f1390888655275986967879e09a7929f02c1, package_extract_file("patch/system/app/LewaLabiSync.apk.p"));
set_progress(0.094634);
apply_patch("/system/app/LewaLauncherX.apk", "-",
            535ce3e2cc93e4d958eadf5e5880a1b1b5801cf4, 1590650,
            27e60314a9ebc35a19b32e3fbf11b2d39b0d64c0, package_extract_file("patch/system/app/LewaLauncherX.apk.p"));
set_progress(0.120862);
apply_patch("/system/app/LewaPackageInstaller.apk", "-",
            62befe8ab96b0de7f4765fe9076efd6981d43db4, 166136,
            e75ac2e8788048aba46b374d40d411aaa1d99d4a, package_extract_file("patch/system/app/LewaPackageInstaller.apk.p"));
set_progress(0.123601);
apply_patch("/system/app/LewaPlayer.apk", "-",
            ed6bd2b89b92d5d9479a954178bb76ae9743be78, 2077457,
            5a984585975983b942f10eb7a448768dfb41ceea, package_extract_file("patch/system/app/LewaPlayer.apk.p"));
set_progress(0.157855);
apply_patch("/system/app/LewaSensorProvider.apk", "-",
            528dd2922226f81ef1ef421dbdb51f45f781df9a, 79311,
            38f7c30222943fb2b3212606f41d94e96f590f05, package_extract_file("patch/system/app/LewaSensorProvider.apk.p"));
set_progress(0.159163);
apply_patch("/system/app/LewaSoundRecorder.apk", "-",
            9f562bcc8fa1fe7ef5e900f88c3859a9758e5c19, 980331,
            66090236688e40738a53a9e27fae24d064036c27, package_extract_file("patch/system/app/LewaSoundRecorder.apk.p"));
set_progress(0.175327);
apply_patch("/system/app/LewaThemeChooser.apk", "-",
            3f7e90fa952477322b8ea250de5aee579889f1b0, 578233,
            95e755d14b7d7b450d9907e532cb0000404dbbac, package_extract_file("patch/system/app/LewaThemeChooser.apk.p"));
set_progress(0.184862);
apply_patch("/system/app/LewaUpdater.apk", "-",
            a3fb2753cfbf5ce4f61b3d825363486f99e75de2, 1358904,
            a023487370b742779cb27762be6f5e9870241b2a, package_extract_file("patch/system/app/LewaUpdater.apk.p"));
set_progress(0.207268);
apply_patch("/system/app/LewaWeather.apk", "-",
            363ad065b9ff9b9f98f4c90b740f3799cf8e2159, 2207890,
            22b63251ac31b77e2103ad74c3c04e48a57b656d, package_extract_file("patch/system/app/LewaWeather.apk.p"));
set_progress(0.243673);
apply_patch("/system/app/LocationProvider.apk", "-",
            cf3d2534a6b1eede2f89349d64dfa7fe632441d4, 2257275,
            c1e756b5b38d7bf7a19fa1e7e5947fca0aaa8024, package_extract_file("patch/system/app/LocationProvider.apk.p"));
set_progress(0.280892);
apply_patch("/system/app/MediaProvider.apk", "-",
            7f47283953632f6edd74c62f0d9da8c64ad4f8ab, 114642,
            d9272848dcc1f88789be17f89187100867430a92, package_extract_file("patch/system/app/MediaProvider.apk.p"));
set_progress(0.282783);
apply_patch("/system/app/MmsFavoriteProvider.apk", "-",
            ca79f016f951301eb7761cb948d2a3834320484b, 104779,
            a67d7636a4b8353f30e87a82d9688e0d7d355e28, package_extract_file("patch/system/app/MmsFavoriteProvider.apk.p"));
set_progress(0.284510);
apply_patch("/system/app/PIM.apk", "-",
            cc4b5bb94c2496b70aee954f9a1ba184508f4878, 8856514,
            01f2246a64f2da5107fd0f7ec93dce3fbc0c5a89, package_extract_file("patch/system/app/PIM.apk.p"));
set_progress(0.430542);
apply_patch("/system/app/Provision.apk", "-",
            63680bd4030adc8df811c1d36038ae77bb376c31, 3651,
            5be9f0e72e985cf1fde9c425a1cd15a470c8b966, package_extract_file("patch/system/app/Provision.apk.p"));
set_progress(0.430602);
apply_patch("/system/app/Settings.apk", "-",
            cbea24bba40c5fc258b371949674aa171603df12, 6679748,
            5d2707f91ca24fa431a903d493c56ddf29783241, package_extract_file("patch/system/app/Settings.apk.p"));
set_progress(0.540742);
apply_patch("/system/app/SettingsProvider.apk", "-",
            2c79187d508225f7f0bd3c9fc8e1b8ead8f2ffa2, 47558,
            f5e5b27a390b4dae1b74308f852170e78d8b8bff, package_extract_file("patch/system/app/SettingsProvider.apk.p"));
set_progress(0.541526);
apply_patch("/system/app/Stk.apk", "-",
            4fe317ea528ef815af687ca9079b3d0bbb2934e0, 85329,
            ab99da43d308fbf11cecccc6e4674e11c20116a5, package_extract_file("patch/system/app/Stk.apk.p"));
set_progress(0.542933);
apply_patch("/system/app/SystemUI.apk", "-",
            effe3efdd5ec944ef859d8096661083b393d04f0, 2311506,
            12588fc47ad11da39b6adfb31d9eb581c5e7d092, package_extract_file("patch/system/app/SystemUI.apk.p"));
set_progress(0.581047);
apply_patch("/system/app/TelephonyProvider.apk", "-",
            b05a7a0daee4ac194c2ead209901cdbb644e971b, 128360,
            ef1f2543d6c2b1fe5561a6f5f61c601aabbb4ba2, package_extract_file("patch/system/app/TelephonyProvider.apk.p"));
set_progress(0.583163);
apply_patch("/system/framework/android.policy.jar", "-",
            cd0242ffb9ed59269f14a6812a2a63f5a2fcc694, 186268,
            1eec3a19a063229c5ad3d670f09693fb70826e8f, package_extract_file("patch/system/framework/android.policy.jar.p"));
set_progress(0.586235);
apply_patch("/system/framework/framework-res.apk", "-",
            1f193e58620e2c87746e1073001b6920b83e4122, 7859609,
            180614abc180b51f17674ec2ec201e1d9d6d0dbe, package_extract_file("patch/system/framework/framework-res.apk.p"));
set_progress(0.715829);
apply_patch("/system/framework/framework.jar", "-",
            497182aa4842ec3352bd4c60a68f32e7bc16456c, 4535899,
            79a22b4f2e52246d614127071eedd78267485e86, package_extract_file("patch/system/framework/framework.jar.p"));
set_progress(0.790619);
apply_patch("/system/framework/framework_ext.jar", "-",
            53711a6f1b63100b821a3ff8e945867ec5e83764, 476722,
            ebdbe32528ced882bb4c95680743cf9cb780a694, package_extract_file("patch/system/framework/framework_ext.jar.p"));
set_progress(0.798480);
apply_patch("/system/framework/lewa-framework.jar", "-",
            154e70728facd8cace22a2b9a851eb6a35b42385, 660170,
            7e4abc7f73f4ff2b4377558e9e9dd09f8a884650, package_extract_file("patch/system/framework/lewa-framework.jar.p"));
set_progress(0.809365);
apply_patch("/system/framework/lewa-res.apk", "-",
            2c9678dc269e39ec10f3186cf6cc3bec377880e0, 10148025,
            1d6613b1a42105f0dcea573b26c68cfa311aded4, package_extract_file("patch/system/framework/lewa-res.apk.p"));
set_progress(0.976692);
apply_patch("/system/framework/services.jar", "-",
            af1037138148b3bef2a1888502b99aa0aa185819, 1056891,
            bfebbfa218e55713ae15868940fcdb0788f0ff76, package_extract_file("patch/system/framework/services.jar.p"));
set_progress(0.994119);
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, 2000, 04755, "/system/bin/diag_mdlog");
set_perm(0, 1000, 0750, "/system/bin/iptables");
set_perm(0, 3003, 02750, "/system/bin/netcfg");
set_perm(0, 3004, 02755, "/system/bin/ping");
set_perm(0, 2000, 06750, "/system/bin/run-as");
set_perm(0, 0, 06755, "/system/bin/su0");
set_perm(0, 1000, 0750, "/system/bin/tc");
set_perm(0, 2000, 04755, "/system/bin/usbhub");
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, 1000, 0550, "/system/etc/init.qcom.sdio.sh");
set_perm_recursive(0, 0, 0755, 0555, "/system/etc/ppp");
set_perm(0, 2000, 0755, "/system/vendor");
set_perm(0, 2000, 0755, "/system/vendor/firmware");
set_perm_recursive(0, 2000, 0755, 0755, "/system/xbin");
set_perm(0, 0, 06755, "/system/xbin/busybox");
set_perm(0, 0, 06755, "/system/xbin/librank");
set_perm(0, 0, 06755, "/system/xbin/procmem");
set_perm(0, 0, 06755, "/system/xbin/procrank");
set_perm(0, 0, 06755, "/system/xbin/su");
set_perm(0, 0, 0644, "/system/xbin/tcpdump");
ui_print("Patching remaining system files...");
set_perm(0, 0, 0644, "/system/build.prop");
unmount("/data");
unmount("/system");
