mount("ext4", "EMMC", "/dev/block/mmcblk0p5", "/system");
mount("ext4", "EMMC", "/dev/block/mmcblk0p7", "/data");
assert(file_getprop("/system/build.prop", "ro.build.fingerprint") == "ZTE/P188F04/P188F04:4.2.1/JOP40D/20130613.123146:user/release-keys" ||
       file_getprop("/system/build.prop", "ro.build.fingerprint") == "ZTE/P188F04/P188F04:4.2.1/JOP40D/20130613.123146:user/release-keys");
assert(getprop("ro.product.device") == "P188F04" ||
       getprop("ro.build.product") == "P188F04");
ui_print("Verifying current system...");
show_progress(0.100000, 0);
assert(apply_patch_check("/system/app/AntiSpam.apk", "465d2681dd485fb8eac76b8949eb80f47fe37231", "3f6c7d238a7f98efbf674130cf29968cc8513332"));
set_progress(0.000853);
assert(apply_patch_check("/system/app/Backup.apk", "12dfe62327053b94ca60a8906932a74471506478", "6f53b939958f64684ebc67a79dff2b39b2a27ef1"));
set_progress(0.012742);
assert(apply_patch_check("/system/app/Browser.apk", "4d2a75616f6f5e2e23004579bdc95bda7972df61", "8bfcb5634b9320b7652ab6bc7c5d83f7d2bee58b"));
set_progress(0.056715);
assert(apply_patch_check("/system/app/BugReport.apk", "3059847e733861c7e447329b7379dd106b0a535d", "49ef378f5f8473f0f6f27be79b6d7840f7893606"));
set_progress(0.057833);
assert(apply_patch_check("/system/app/Calculator.apk", "f73e99e3c3daddbd9e0bb732ea45a9a28dd66599", "f203fcdfe2016c4cd67292b6a07e17ec39cdd5e4"));
set_progress(0.074368);
assert(apply_patch_check("/system/app/CloudService.apk", "ec053b73c3099773f0bc992de6401a39432bec35", "26d3daad28998eac343763480afac5c1cea6492c"));
set_progress(0.075991);
assert(apply_patch_check("/system/app/Contacts.apk", "4572a0b32f498eabab2a0f3d1124fb4ea2111af1", "ac09c3031e48352b3214fdc4f83fcf7e8db60bdb"));
set_progress(0.102806);
assert(apply_patch_check("/system/app/DeskClock.apk", "914cdfc4ae384d65d80822c3c480e65985b72c45", "d4b1bc8261c8a0d8898a757fb0c63d53aba016f9"));
set_progress(0.112317);
assert(apply_patch_check("/system/app/DownloadProvider.apk", "1f3875c066d0705eafd6610319adc67eef6642cf", "bce55abdc7f4249eaaae1b9f786caf2ba6e657d5"));
set_progress(0.113128);
assert(apply_patch_check("/system/app/DownloadProviderUi.apk", "6829827de89ede1626088210442405bf895fee3a", "519571445f8ca37834dcd3bba239ff4989e06820"));
set_progress(0.114700);
assert(apply_patch_check("/system/app/Email.apk", "ca107b52767bf92811ce673c8ab6a9dc6ce0806a", "74fda4d41a52caaba04fef351e259ac4ad3526b1"));
set_progress(0.133996);
assert(apply_patch_check("/system/app/EngineerMode.apk", "b47f1bdc9d599b14ff22f7926175458e0e2f606b", "bfbdeb71b9e68be148548d45f6708f077ebaae4b"));
set_progress(0.146092);
assert(apply_patch_check("/system/app/FileExplorer.apk", "3b3eaf6b9aa14d1b748d2784fcead1d5646b771c", "99e4582e01463522f1dd30ca8a60766aea4176e5"));
set_progress(0.159195);
assert(apply_patch_check("/system/app/MediaProvider.apk", "2a4dd76c29b5facc0c236b38d98bfd7f49c58642", "85c0a9711eb59b5538cf6d811657a258eb6a7e4e"));
set_progress(0.160100);
assert(apply_patch_check("/system/app/MiuiGallery.apk", "2277133edd7ba64a09b4de321d8b1830339ed9d0", "c68ba6af945779439b1062d9a1887126cc21f0f3"));
set_progress(0.178685);
assert(apply_patch_check("/system/app/MiuiHome.apk", "2a981c773529433e0c1f57c7985b6418efa60035", "c1c6ca568cba396e619499744afa9bb71eb80cea"));
set_progress(0.203527);
assert(apply_patch_check("/system/app/MiuiSystemUI.apk", "32db0e8c41af1c021df863e9f71025f1b1ab2a0f", "a04d4735c924eec3afed92b305ce87c70d6f135b"));
set_progress(0.215770);
assert(apply_patch_check("/system/app/Mms.apk", "599dd2f4085fbcfa791b2cc20b113e06ac326ac4", "d1f6263cedc07720b473729ef22c3d2a6d8fbadb"));
set_progress(0.233287);
assert(apply_patch_check("/system/app/MtkBt.apk", "124cba685b6e7f121fd7c4b2403aef1c02391ff5", "451a7935e0746aced0c2e9fe5808b9911c30e958"));
set_progress(0.240750);
assert(apply_patch_check("/system/app/Music.apk", "8141b7b2aebd68e6b48da7811c9f0730ea5bc6af", "53164f179b2f1355e3307462a1fe1dd2e1ffaa2f"));
set_progress(0.284272);
assert(apply_patch_check("/system/app/Notes.apk", "6262e9c54482d77b8b669b05ead79676c82940d8", "6cb41e0138b2f507ed5c6950eda88f8f202dc290"));
set_progress(0.348880);
assert(apply_patch_check("/system/app/Phone.apk", "3178e3e0f79ffcb2823162146e3f117aa94701a3", "1f4795f58bdeb5af47d59b192838f0658005bf29"));
set_progress(0.380594);
assert(apply_patch_check("/system/app/Provision.apk", "dcda9d90c90a91f687edcaf408295c5d4f593acd", "610abe95fe92f87c8bbbe11051bcbdc408ed7e19"));
set_progress(0.387401);
assert(apply_patch_check("/system/app/QuickSearchBox.apk", "851c2a92a362d9dece85a287b8ad61242d79985b", "cce79c1fdbff820ecf462bc17c0d892f8338f9d6"));
set_progress(0.393937);
assert(apply_patch_check("/system/app/Settings.apk", "445b814d7d7271abb391ad34f391e2e9f7e2bdd5", "8e77618eeedfd6d62ee39a3ee4d90461f50d053c"));
set_progress(0.486447);
assert(apply_patch_check("/system/app/SoundRecorder.apk", "1a7234890ff00f7e71c4af9d76f208a04e6cfbfd", "34f5bf1ef8bc39a25df335f2c3bd22dc57b93710"));
set_progress(0.509040);
assert(apply_patch_check("/system/app/StockSettings.apk", "92e05d47852158cf1119c7e02bbbf1340b78ae85", "ebd721eaed8f9ccbfb1fcc186c8315bbc3178ab1"));
set_progress(0.509156);
assert(apply_patch_check("/system/app/SuperMarket.apk", "aad855e845bf143e6e6f04a49f5177651a9823e0", "ae44a0deeea4edd34349dac94f7aaf0296f095ca"));
set_progress(0.513131);
assert(apply_patch_check("/system/app/ThemeManager.apk", "f47f287c18060ee05a83c89b88a07d8afba220d4", "f4901d0e9df7b8406b62a63a58827ae6cd503e25"));
set_progress(0.524998);
assert(apply_patch_check("/system/app/Updater.apk", "b0f8229be3a78694425d3e8bc63ebf5d0c10ed83", "97f944c9f8eb5cef126c1558112404f394c31ade"));
set_progress(0.535196);
assert(apply_patch_check("/system/app/Weather.apk", "35e94770061bba48200ec464967fd3b0981503e4", "7ad224d2af1f71ca091cd2b53c21306a1f7c8f03"));
set_progress(0.547269);
assert(apply_patch_check("/system/app/WeatherProvider.apk", "076736de5ee93dd76e64f7ff971af8c4ba1c63c9", "2d7ec43db347c29bbd84000880cd7067df4f5f17"));
set_progress(0.547328);
assert(apply_patch_check("/system/app/XiaomiServiceFramework.apk", "3f808c6772ba059f598578e4034d4da44f8a862e", "027d9f8ec1ef79924fdef2e1af4ab45500730d17"));
set_progress(0.571511);
assert(apply_patch_check("/system/app/YGPS.apk", "7ddd6a2dd1ad3c17a11e741826751dc70b78c961", "1315fda0faa457957f1148b486dbd9e8986d8172"));
set_progress(0.572239);
assert(apply_patch_check("/system/build.prop", "f9fe8bf616d0eef334266554c9310a0a12e4ad20", "cdd364f6ad4a8819898b4df2d51de7232e888c9b"));
set_progress(0.572261);
assert(apply_patch_check("/system/etc/fallback_fonts.xml", "f378c0d63b456eb400dca30c4ecf259b853dbfdf", "c53f498cc9e82966c6543563c30ce0f837489ead"));
set_progress(0.572289);
assert(apply_patch_check("/system/etc/weather_city.db", "d0e574aca052ae4f8950dd0665356e3b40c31a6f", "c48944f9914cf13f3f45f9b465b2a4abadaace7f"));
set_progress(0.573921);
assert(apply_patch_check("/system/framework/android.policy.jar", "b9469f1c2b08be0a5b351e41f4661f8bdadfe286", "2424cc38438786ebe6cc2005eef4a08d9e8ebbbd"));
set_progress(0.576784);
assert(apply_patch_check("/system/framework/framework-miui-res.apk", "cb0308c78c1d005f45b7580362a71f7e496e982f", "aadedea1e7ce03aa50a0c5798911382915df208e"));
set_progress(0.634906);
assert(apply_patch_check("/system/framework/framework-res.apk", "fe3a5986f917f0e1975b0fbedd0eb7ed2219d3b7", "b3338920eff563486bb7b3b851843f93a11fc0f8"));
set_progress(0.720069);
assert(apply_patch_check("/system/framework/framework.jar", "21e334c4f2173cb6e988fbbe1ee7b79f40849ce8", "bed169d422e205f2bcf302075c1b90f48e87bc24"));
set_progress(0.746358);
assert(apply_patch_check("/system/framework/mediatek-framework.jar", "fb05d9066859fc73632067eac60907949aecfcbb", "df527f64b7d9641346e2b3334cacb13ac99734ea"));
set_progress(0.747311);
assert(apply_patch_check("/system/framework/secondary-framework.jar", "572cfb71f0fc8222571be041e4a601d19f509ace", "b35e5627a00494a3cebdddc6d765e03d8cc9378f"));
set_progress(0.760740);
assert(apply_patch_check("/system/framework/services.jar", "9a1f2d3e2ae23a6995cc70cbf668294573bd886b", "a7cfcbc36c803f7797ae16462a8e188bdc4ac2bb"));
set_progress(0.769266);
assert(apply_patch_check("/system/lib/libhwui.so", "d54d1079b754951b26d44e2d0f3999a806a2dcea", "135c21cb2fd49d12078f2f98e22b8600f29df813"));
set_progress(0.770456);
assert(apply_patch_check("/system/lib/libskia.so", "f296be9e3aeb3d28075b76eac1e4f1bfb27ae458", "58a61b39b883defe05e4c75a5d4aebd40393382b"));
set_progress(0.779528);
assert(apply_patch_check("/system/media/theme/default/alarmscreen", "14000f00473695795e462804259a93fc7cd09884", "9966038d3a7a4e688be7c029a39638576fd020ab"));
set_progress(0.783520);
assert(apply_patch_check("/system/media/theme/default/icons", "d358fbd98b5c82eee8d9d7fcf7e4a3746415b0c0", "de18479ca921b12e91a6bdea388116be262fe359"));
set_progress(0.786271);
assert(apply_patch_space(23160137));

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

ui_print("Removing unneeded files...");
delete("/system/app/CDS_INFO.apk", "/system/app/EngineerModeSim.apk",
       "/system/app/LocationEM.apk", "/system/app/MTKLogger.apk",
       "/system/app/MTKThermalManager.apk",
       "/system/lib/libimageprocessor_jni.so", "/system/lib/libskiaemoji.so",
       "/system/media/bootanimation/", "/system/media/bootanimation/desc.txt",
       "/system/media/bootanimation/part0/",
       "/system/media/bootanimation/part0/ligo_00000.png",
       "/system/media/bootanimation/part0/ligo_00001.png",
       "/system/media/bootanimation/part0/ligo_00002.png",
       "/system/media/bootanimation/part0/ligo_00003.png",
       "/system/media/bootanimation/part0/ligo_00004.png",
       "/system/media/bootanimation/part0/ligo_00005.png",
       "/system/media/bootanimation/part0/ligo_00006.png",
       "/system/media/bootanimation/part0/ligo_00007.png",
       "/system/media/bootanimation/part0/ligo_00008.png",
       "/system/media/bootanimation/part0/ligo_00009.png",
       "/system/media/bootanimation/part0/ligo_00010.png",
       "/system/media/bootanimation/part0/ligo_00011.png",
       "/system/media/bootanimation/part0/ligo_00012.png",
       "/system/media/bootanimation/part0/ligo_00013.png",
       "/system/media/bootanimation/part0/ligo_00014.png",
       "/system/media/bootanimation/part0/ligo_00015.png",
       "/system/media/bootanimation/part0/ligo_00016.png",
       "/system/media/bootanimation/part0/ligo_00017.png",
       "/system/media/bootanimation/part0/ligo_00018.png",
       "/system/media/bootanimation/part0/ligo_00019.png",
       "/system/media/bootanimation/part0/ligo_00020.png",
       "/system/media/bootanimation/part0/ligo_00021.png",
       "/system/media/bootanimation/part0/ligo_00022.png",
       "/system/media/bootanimation/part0/ligo_00023.png",
       "/system/media/bootanimation/part0/ligo_00024.png",
       "/system/media/bootanimation/part0/ligo_00025.png",
       "/system/media/bootanimation/part0/ligo_00026.png",
       "/system/media/bootanimation/part0/ligo_00027.png",
       "/system/media/bootanimation/part0/ligo_00028.png",
       "/system/media/bootanimation/part0/ligo_00029.png",
       "/system/media/bootanimation/part0/ligo_00030.png",
       "/system/media/bootanimation/part0/ligo_00031.png",
       "/system/media/bootanimation/part0/ligo_00032.png",
       "/system/media/bootanimation/part0/ligo_00033.png",
       "/system/media/bootanimation/part0/ligo_00034.png",
       "/system/media/bootanimation/part0/ligo_00035.png",
       "/system/media/bootanimation/part0/ligo_00036.png",
       "/system/media/bootanimation/part0/ligo_00037.png",
       "/system/media/bootanimation/part0/ligo_00038.png",
       "/system/media/bootanimation/part0/ligo_00039.png",
       "/system/media/bootanimation/part0/ligo_00040.png",
       "/system/media/bootanimation/part0/ligo_00041.png",
       "/system/media/bootanimation/part0/ligo_00042.png",
       "/system/media/bootanimation/part0/ligo_00043.png",
       "/system/media/bootanimation/part0/ligo_00044.png",
       "/system/media/bootanimation/part0/ligo_00045.png",
       "/system/media/bootanimation/part0/ligo_00046.png",
       "/system/media/bootanimation/part0/ligo_00047.png",
       "/system/media/bootanimation/part0/ligo_00048.png",
       "/system/media/bootanimation/part0/ligo_00049.png",
       "/system/media/bootanimation/part0/ligo_00050.png",
       "/system/media/bootanimation/part0/ligo_00051.png",
       "/system/media/bootanimation/part0/ligo_00052.png",
       "/system/media/bootanimation/part0/ligo_00053.png",
       "/system/media/bootanimation/part0/ligo_00054.png",
       "/system/media/bootanimation/part0/ligo_00055.png",
       "/system/media/bootanimation/part0/ligo_00056.png",
       "/system/media/bootanimation/part0/ligo_00057.png",
       "/system/media/bootanimation/part0/ligo_00058.png",
       "/system/media/bootanimation/part0/ligo_00059.png",
       "/system/media/bootanimation/part0/ligo_00060.png",
       "/system/media/bootanimation/part0/ligo_00061.png",
       "/system/media/bootanimation/part0/ligo_00062.png",
       "/system/media/bootanimation/part0/ligo_00063.png",
       "/system/media/bootanimation/part0/ligo_00064.png",
       "/system/media/bootanimation/part0/ligo_00065.png",
       "/system/media/bootanimation/part0/ligo_00066.png",
       "/system/media/bootanimation/part0/ligo_00067.png",
       "/system/media/bootanimation/part0/ligo_00068.png",
       "/system/media/bootanimation/part0/ligo_00069.png",
       "/system/media/bootanimation/part0/ligo_00070.png",
       "/system/media/bootanimation/part0/ligo_00071.png",
       "/system/media/bootanimation/part0/ligo_00072.png",
       "/system/media/bootanimation/part0/ligo_00073.png",
       "/system/media/bootanimation/part0/ligo_00074.png",
       "/system/media/bootanimation/part0/ligo_00075.png",
       "/system/media/bootanimation/part0/ligo_00076.png",
       "/system/media/bootanimation/part0/ligo_00077.png",
       "/system/media/bootanimation/part0/ligo_00078.png",
       "/system/media/bootanimation/part0/ligo_00079.png",
       "/system/media/bootanimation/part0/ligo_00080.png",
       "/system/media/bootanimation/part0/ligo_00081.png",
       "/system/media/bootanimation/part0/ligo_00082.png",
       "/system/media/bootanimation/part0/ligo_00083.png",
       "/system/media/bootanimation/part0/ligo_00084.png",
       "/system/media/bootanimation/part0/ligo_00085.png",
       "/system/media/bootanimation/part0/ligo_00086.png",
       "/system/media/bootanimation/part0/ligo_00087.png",
       "/system/media/bootanimation/part0/ligo_00088.png",
       "/system/media/bootanimation/part0/ligo_00089.png",
       "/system/media/bootanimation/part0/ligo_00090.png",
       "/system/media/bootanimation/part0/ligo_00091.png",
       "/system/media/bootanimation/part0/ligo_00092.png",
       "/system/media/bootanimation/part0/ligo_00093.png",
       "/system/media/bootanimation/part0/ligo_00094.png",
       "/system/media/bootanimation/part0/ligo_00095.png",
       "/system/media/bootanimation/part0/ligo_00096.png",
       "/system/media/bootanimation/part0/ligo_00097.png",
       "/system/media/bootanimation/part0/ligo_00098.png",
       "/system/media/bootanimation/part0/ligo_00099.png",
       "/system/media/bootanimation/part0/ligo_00100.png",
       "/system/media/bootanimation/part0/ligo_00101.png",
       "/system/media/bootanimation/part0/ligo_00102.png",
       "/system/media/bootanimation/part1/",
       "/system/media/bootanimation/part1/ligo_00102.png",
       "/system/media/theme/miui_mod_icons/com.android.fileexplorer.KuaipanActivity.png",
       "/system/recovery.img");
show_progress(0.800000, 0);
ui_print("Patching system files...");
apply_patch("/data/preinstall_apps/Userbook.apk", "-",
            e79941e1f934d95266444d0fac2cb88ca5e47ea6, 23159192,
            a64146a94101ac6698945ead2a407526d1bb0447, package_extract_file("patch/data/preinstall_apps/Userbook.apk.p"));
set_progress(0.144552);
apply_patch("/data/preinstall_apps/VoiceAssist.apk", "-",
            948fc7696b3e0323ffefd75e492740485a05ea17, 11028231,
            40e1b899baa77796d79c2f9054fad4af30e2cf2b, package_extract_file("patch/data/preinstall_apps/VoiceAssist.apk.p"));
set_progress(0.213387);
apply_patch("/system/app/AntiSpam.apk", "-",
            465d2681dd485fb8eac76b8949eb80f47fe37231, 136470,
            3f6c7d238a7f98efbf674130cf29968cc8513332, package_extract_file("patch/system/app/AntiSpam.apk.p"));
set_progress(0.214239);
apply_patch("/system/app/Backup.apk", "-",
            12dfe62327053b94ca60a8906932a74471506478, 1901173,
            6f53b939958f64684ebc67a79dff2b39b2a27ef1, package_extract_file("patch/system/app/Backup.apk.p"));
set_progress(0.226106);
apply_patch("/system/app/Browser.apk", "-",
            4d2a75616f6f5e2e23004579bdc95bda7972df61, 7570912,
            8bfcb5634b9320b7652ab6bc7c5d83f7d2bee58b, package_extract_file("patch/system/app/Browser.apk.p"));
set_progress(0.273361);
apply_patch("/system/app/BugReport.apk", "-",
            3059847e733861c7e447329b7379dd106b0a535d, 178895,
            49ef378f5f8473f0f6f27be79b6d7840f7893606, package_extract_file("patch/system/app/BugReport.apk.p"));
set_progress(0.274477);
apply_patch("/system/app/Calculator.apk", "-",
            f73e99e3c3daddbd9e0bb732ea45a9a28dd66599, 2645506,
            f203fcdfe2016c4cd67292b6a07e17ec39cdd5e4, package_extract_file("patch/system/app/Calculator.apk.p"));
set_progress(0.290990);
apply_patch("/system/app/CloudService.apk", "-",
            ec053b73c3099773f0bc992de6401a39432bec35, 259771,
            26d3daad28998eac343763480afac5c1cea6492c, package_extract_file("patch/system/app/CloudService.apk.p"));
set_progress(0.292611);
apply_patch("/system/app/Contacts.apk", "-",
            4572a0b32f498eabab2a0f3d1124fb4ea2111af1, 4291237,
            ac09c3031e48352b3214fdc4f83fcf7e8db60bdb, package_extract_file("patch/system/app/Contacts.apk.p"));
set_progress(0.319396);
apply_patch("/system/app/DeskClock.apk", "-",
            914cdfc4ae384d65d80822c3c480e65985b72c45, 1522813,
            d4b1bc8261c8a0d8898a757fb0c63d53aba016f9, package_extract_file("patch/system/app/DeskClock.apk.p"));
set_progress(0.328901);
apply_patch("/system/app/DownloadProvider.apk", "-",
            1f3875c066d0705eafd6610319adc67eef6642cf, 130062,
            bce55abdc7f4249eaaae1b9f786caf2ba6e657d5, package_extract_file("patch/system/app/DownloadProvider.apk.p"));
set_progress(0.329713);
apply_patch("/system/app/DownloadProviderUi.apk", "-",
            6829827de89ede1626088210442405bf895fee3a, 248282,
            519571445f8ca37834dcd3bba239ff4989e06820, package_extract_file("patch/system/app/DownloadProviderUi.apk.p"));
set_progress(0.331262);
apply_patch("/system/app/Email.apk", "-",
            ca107b52767bf92811ce673c8ab6a9dc6ce0806a, 3087023,
            74fda4d41a52caaba04fef351e259ac4ad3526b1, package_extract_file("patch/system/app/Email.apk.p"));
set_progress(0.350531);
apply_patch("/system/app/EngineerMode.apk", "-",
            b47f1bdc9d599b14ff22f7926175458e0e2f606b, 868327,
            bfbdeb71b9e68be148548d45f6708f077ebaae4b, package_extract_file("patch/system/app/EngineerMode.apk.p"));
set_progress(0.355950);
apply_patch("/system/app/FileExplorer.apk", "-",
            3b3eaf6b9aa14d1b748d2784fcead1d5646b771c, 2094840,
            99e4582e01463522f1dd30ca8a60766aea4176e5, package_extract_file("patch/system/app/FileExplorer.apk.p"));
set_progress(0.369026);
apply_patch("/system/app/MediaProvider.apk", "-",
            2a4dd76c29b5facc0c236b38d98bfd7f49c58642, 144861,
            85c0a9711eb59b5538cf6d811657a258eb6a7e4e, package_extract_file("patch/system/app/MediaProvider.apk.p"));
set_progress(0.369930);
apply_patch("/system/app/MiuiGallery.apk", "-",
            2277133edd7ba64a09b4de321d8b1830339ed9d0, 3060356,
            c68ba6af945779439b1062d9a1887126cc21f0f3, package_extract_file("patch/system/app/MiuiGallery.apk.p"));
set_progress(0.389032);
apply_patch("/system/app/MiuiHome.apk", "-",
            2a981c773529433e0c1f57c7985b6418efa60035, 3983649,
            c1c6ca568cba396e619499744afa9bb71eb80cea, package_extract_file("patch/system/app/MiuiHome.apk.p"));
set_progress(0.413896);
apply_patch("/system/app/MiuiSystemUI.apk", "-",
            32db0e8c41af1c021df863e9f71025f1b1ab2a0f, 1958592,
            a04d4735c924eec3afed92b305ce87c70d6f135b, package_extract_file("patch/system/app/MiuiSystemUI.apk.p"));
set_progress(0.426121);
apply_patch("/system/app/Mms.apk", "-",
            599dd2f4085fbcfa791b2cc20b113e06ac326ac4, 2802563,
            d1f6263cedc07720b473729ef22c3d2a6d8fbadb, package_extract_file("patch/system/app/Mms.apk.p"));
set_progress(0.443614);
apply_patch("/system/app/MtkBt.apk", "-",
            124cba685b6e7f121fd7c4b2403aef1c02391ff5, 1194124,
            451a7935e0746aced0c2e9fe5808b9911c30e958, package_extract_file("patch/system/app/MtkBt.apk.p"));
set_progress(0.451067);
apply_patch("/system/app/Music.apk", "-",
            8141b7b2aebd68e6b48da7811c9f0730ea5bc6af, 6963395,
            53164f179b2f1355e3307462a1fe1dd2e1ffaa2f, package_extract_file("patch/system/app/Music.apk.p"));
set_progress(0.494531);
apply_patch("/system/app/Notes.apk", "-",
            6262e9c54482d77b8b669b05ead79676c82940d8, 10336721,
            6cb41e0138b2f507ed5c6950eda88f8f202dc290, package_extract_file("patch/system/app/Notes.apk.p"));
set_progress(0.559049);
apply_patch("/system/app/Phone.apk", "-",
            3178e3e0f79ffcb2823162146e3f117aa94701a3, 5074127,
            1f4795f58bdeb5af47d59b192838f0658005bf29, package_extract_file("patch/system/app/Phone.apk.p"));
set_progress(0.590720);
apply_patch("/system/app/Provision.apk", "-",
            dcda9d90c90a91f687edcaf408295c5d4f593acd, 1089057,
            610abe95fe92f87c8bbbe11051bcbdc408ed7e19, package_extract_file("patch/system/app/Provision.apk.p"));
set_progress(0.597518);
apply_patch("/system/app/QuickSearchBox.apk", "-",
            851c2a92a362d9dece85a287b8ad61242d79985b, 1045685,
            cce79c1fdbff820ecf462bc17c0d892f8338f9d6, package_extract_file("patch/system/app/QuickSearchBox.apk.p"));
set_progress(0.604045);
apply_patch("/system/app/Settings.apk", "-",
            445b814d7d7271abb391ad34f391e2e9f7e2bdd5, 14819108,
            8e77618eeedfd6d62ee39a3ee4d90461f50d053c, package_extract_file("patch/system/app/Settings.apk.p"));
set_progress(0.696541);
apply_patch("/system/app/SoundRecorder.apk", "-",
            1a7234890ff00f7e71c4af9d76f208a04e6cfbfd, 3615833,
            34f5bf1ef8bc39a25df335f2c3bd22dc57b93710, package_extract_file("patch/system/app/SoundRecorder.apk.p"));
set_progress(0.719110);
apply_patch("/system/app/StockSettings.apk", "-",
            92e05d47852158cf1119c7e02bbbf1340b78ae85, 495165,
            ebd721eaed8f9ccbfb1fcc186c8315bbc3178ab1, package_extract_file("patch/system/app/StockSettings.apk.p"));
set_progress(0.722201);
apply_patch("/system/app/SuperMarket.apk", "-",
            aad855e845bf143e6e6f04a49f5177651a9823e0, 632258,
            ae44a0deeea4edd34349dac94f7aaf0296f095ca, package_extract_file("patch/system/app/SuperMarket.apk.p"));
set_progress(0.726147);
apply_patch("/system/app/ThemeManager.apk", "-",
            f47f287c18060ee05a83c89b88a07d8afba220d4, 1898262,
            f4901d0e9df7b8406b62a63a58827ae6cd503e25, package_extract_file("patch/system/app/ThemeManager.apk.p"));
set_progress(0.737995);
apply_patch("/system/app/Updater.apk", "-",
            b0f8229be3a78694425d3e8bc63ebf5d0c10ed83, 1704512,
            97f944c9f8eb5cef126c1558112404f394c31ade, package_extract_file("patch/system/app/Updater.apk.p"));
set_progress(0.748634);
apply_patch("/system/app/Weather.apk", "-",
            35e94770061bba48200ec464967fd3b0981503e4, 1930877,
            7ad224d2af1f71ca091cd2b53c21306a1f7c8f03, package_extract_file("patch/system/app/Weather.apk.p"));
set_progress(0.760686);
apply_patch("/system/app/WeatherProvider.apk", "-",
            076736de5ee93dd76e64f7ff971af8c4ba1c63c9, 10195,
            2d7ec43db347c29bbd84000880cd7067df4f5f17, package_extract_file("patch/system/app/WeatherProvider.apk.p"));
set_progress(0.760750);
apply_patch("/system/app/XiaomiServiceFramework.apk", "-",
            3f808c6772ba059f598578e4034d4da44f8a862e, 3872096,
            027d9f8ec1ef79924fdef2e1af4ab45500730d17, package_extract_file("patch/system/app/XiaomiServiceFramework.apk.p"));
set_progress(0.784918);
apply_patch("/system/app/YGPS.apk", "-",
            7ddd6a2dd1ad3c17a11e741826751dc70b78c961, 60387,
            1315fda0faa457957f1148b486dbd9e8986d8172, package_extract_file("patch/system/app/YGPS.apk.p"));
set_progress(0.785295);
apply_patch("/system/etc/fallback_fonts.xml", "-",
            f378c0d63b456eb400dca30c4ecf259b853dbfdf, 4467,
            c53f498cc9e82966c6543563c30ce0f837489ead, package_extract_file("patch/system/etc/fallback_fonts.xml.p"));
set_progress(0.785323);
apply_patch("/system/etc/weather_city.db", "-",
            d0e574aca052ae4f8950dd0665356e3b40c31a6f, 296960,
            c48944f9914cf13f3f45f9b465b2a4abadaace7f, package_extract_file("patch/system/etc/weather_city.db.p"));
set_progress(0.787177);
apply_patch("/system/framework/android.policy.jar", "-",
            b9469f1c2b08be0a5b351e41f4661f8bdadfe286, 458143,
            2424cc38438786ebe6cc2005eef4a08d9e8ebbbd, package_extract_file("patch/system/framework/android.policy.jar.p"));
set_progress(0.790036);
apply_patch("/system/framework/framework-miui-res.apk", "-",
            cb0308c78c1d005f45b7580362a71f7e496e982f, 9399518,
            aadedea1e7ce03aa50a0c5798911382915df208e, package_extract_file("patch/system/framework/framework-miui-res.apk.p"));
set_progress(0.848705);
apply_patch("/system/framework/framework-res.apk", "-",
            fe3a5986f917f0e1975b0fbedd0eb7ed2219d3b7, 13628871,
            b3338920eff563486bb7b3b851843f93a11fc0f8, package_extract_file("patch/system/framework/framework-res.apk.p"));
set_progress(0.933772);
apply_patch("/system/framework/framework.jar", "-",
            21e334c4f2173cb6e988fbbe1ee7b79f40849ce8, 4205571,
            bed169d422e205f2bcf302075c1b90f48e87bc24, package_extract_file("patch/system/framework/framework.jar.p"));
set_progress(0.960022);
apply_patch("/system/framework/mediatek-framework.jar", "-",
            fb05d9066859fc73632067eac60907949aecfcbb, 152529,
            df527f64b7d9641346e2b3334cacb13ac99734ea, package_extract_file("patch/system/framework/mediatek-framework.jar.p"));
set_progress(0.960974);
apply_patch("/system/framework/secondary-framework.jar", "-",
            572cfb71f0fc8222571be041e4a601d19f509ace, 2152042,
            b35e5627a00494a3cebdddc6d765e03d8cc9378f, package_extract_file("patch/system/framework/secondary-framework.jar.p"));
set_progress(0.974407);
apply_patch("/system/framework/services.jar", "-",
            9a1f2d3e2ae23a6995cc70cbf668294573bd886b, 1363999,
            a7cfcbc36c803f7797ae16462a8e188bdc4ac2bb, package_extract_file("patch/system/framework/services.jar.p"));
set_progress(0.982920);
apply_patch("/system/lib/libhwui.so", "-",
            d54d1079b754951b26d44e2d0f3999a806a2dcea, 194480,
            135c21cb2fd49d12078f2f98e22b8600f29df813, package_extract_file("patch/system/lib/libhwui.so.p"));
set_progress(0.984134);
apply_patch("/system/lib/libskia.so", "-",
            f296be9e3aeb3d28075b76eac1e4f1bfb27ae458, 1459660,
            58a61b39b883defe05e4c75a5d4aebd40393382b, package_extract_file("patch/system/lib/libskia.so.p"));
set_progress(0.993245);
apply_patch("/system/media/theme/default/alarmscreen", "-",
            14000f00473695795e462804259a93fc7cd09884, 638705,
            9966038d3a7a4e688be7c029a39638576fd020ab, package_extract_file("patch/system/media/theme/default/alarmscreen.p"));
set_progress(0.997231);
apply_patch("/system/media/theme/default/icons", "-",
            d358fbd98b5c82eee8d9d7fcf7e4a3746415b0c0, 440011,
            de18479ca921b12e91a6bdea388116be262fe359, package_extract_file("patch/system/media/theme/default/icons.p"));
set_progress(0.999978);
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");
delete("/system/fonts/EmojiPlaceholder.ttf", "/system/xbin/[",
       "/system/xbin/[[", "/system/xbin/adjtimex", "/system/xbin/arp",
       "/system/xbin/ash", "/system/xbin/awk", "/system/xbin/base64",
       "/system/xbin/basename", "/system/xbin/bbconfig", "/system/xbin/blkid",
       "/system/xbin/blockdev", "/system/xbin/brctl", "/system/xbin/bunzip2",
       "/system/xbin/bzcat", "/system/xbin/bzip2", "/system/xbin/cal",
       "/system/xbin/cat", "/system/xbin/catv", "/system/xbin/chattr",
       "/system/xbin/chgrp", "/system/xbin/chmod", "/system/xbin/chown",
       "/system/xbin/chroot", "/system/xbin/clear", "/system/xbin/cmp",
       "/system/xbin/comm", "/system/xbin/cp", "/system/xbin/cpio",
       "/system/xbin/crond", "/system/xbin/crontab", "/system/xbin/cut",
       "/system/xbin/date", "/system/xbin/dc", "/system/xbin/dd",
       "/system/xbin/depmod", "/system/xbin/devmem", "/system/xbin/df",
       "/system/xbin/diff", "/system/xbin/dirname", "/system/xbin/dmesg",
       "/system/xbin/dnsd", "/system/xbin/dos2unix", "/system/xbin/du",
       "/system/xbin/echo", "/system/xbin/ed", "/system/xbin/egrep",
       "/system/xbin/env", "/system/xbin/expand", "/system/xbin/expr",
       "/system/xbin/false", "/system/xbin/fdisk", "/system/xbin/fgrep",
       "/system/xbin/find", "/system/xbin/flash_lock",
       "/system/xbin/flash_unlock", "/system/xbin/flashcp",
       "/system/xbin/flock", "/system/xbin/fold", "/system/xbin/free",
       "/system/xbin/freeramdisk", "/system/xbin/fsync", "/system/xbin/ftpget",
       "/system/xbin/ftpput", "/system/xbin/fuser", "/system/xbin/getopt",
       "/system/xbin/grep", "/system/xbin/groups", "/system/xbin/gunzip",
       "/system/xbin/gzip", "/system/xbin/halt", "/system/xbin/head",
       "/system/xbin/hexdump", "/system/xbin/id", "/system/xbin/ifconfig",
       "/system/xbin/inetd", "/system/xbin/insmod", "/system/xbin/install",
       "/system/xbin/iostat", "/system/xbin/ip", "/system/xbin/kill",
       "/system/xbin/killall", "/system/xbin/killall5", "/system/xbin/length",
       "/system/xbin/less", "/system/xbin/ln", "/system/xbin/losetup",
       "/system/xbin/ls", "/system/xbin/lsattr", "/system/xbin/lsmod",
       "/system/xbin/lsusb", "/system/xbin/lzcat", "/system/xbin/lzma",
       "/system/xbin/lzop", "/system/xbin/lzopcat", "/system/xbin/man",
       "/system/xbin/md5sum", "/system/xbin/mesg", "/system/xbin/mkdir",
       "/system/xbin/mke2fs", "/system/xbin/mkfifo", "/system/xbin/mkfs.ext2",
       "/system/xbin/mkfs.vfat", "/system/xbin/mknod", "/system/xbin/mkswap",
       "/system/xbin/mktemp", "/system/xbin/modinfo", "/system/xbin/modprobe",
       "/system/xbin/more", "/system/xbin/mount", "/system/xbin/mountpoint",
       "/system/xbin/mpstat", "/system/xbin/mv", "/system/xbin/nanddump",
       "/system/xbin/nandwrite", "/system/xbin/netstat", "/system/xbin/nice",
       "/system/xbin/nohup", "/system/xbin/nslookup", "/system/xbin/ntpd",
       "/system/xbin/od", "/system/xbin/patch", "/system/xbin/pgrep",
       "/system/xbin/pidof", "/system/xbin/ping", "/system/xbin/pkill",
       "/system/xbin/pmap", "/system/xbin/poweroff", "/system/xbin/printenv",
       "/system/xbin/printf", "/system/xbin/ps", "/system/xbin/pstree",
       "/system/xbin/pwd", "/system/xbin/pwdx", "/system/xbin/rdev",
       "/system/xbin/readlink", "/system/xbin/realpath", "/system/xbin/renice",
       "/system/xbin/reset", "/system/xbin/resize", "/system/xbin/rev",
       "/system/xbin/rm", "/system/xbin/rmdir", "/system/xbin/rmmod",
       "/system/xbin/route", "/system/xbin/run-parts", "/system/xbin/rx",
       "/system/xbin/sed", "/system/xbin/seq", "/system/xbin/setconsole",
       "/system/xbin/setserial", "/system/xbin/setsid", "/system/xbin/sh",
       "/system/xbin/sha1sum", "/system/xbin/sha256sum",
       "/system/xbin/sha512sum", "/system/xbin/sleep", "/system/xbin/sort",
       "/system/xbin/split", "/system/xbin/stat", "/system/xbin/strings",
       "/system/xbin/stty", "/system/xbin/sum", "/system/xbin/swapoff",
       "/system/xbin/swapon", "/system/xbin/sync", "/system/xbin/sysctl",
       "/system/xbin/tac", "/system/xbin/tail", "/system/xbin/tar",
       "/system/xbin/taskset", "/system/xbin/tee", "/system/xbin/telnet",
       "/system/xbin/telnetd", "/system/xbin/test", "/system/xbin/tftp",
       "/system/xbin/tftpd", "/system/xbin/time", "/system/xbin/timeout",
       "/system/xbin/top", "/system/xbin/touch", "/system/xbin/tr",
       "/system/xbin/traceroute", "/system/xbin/true", "/system/xbin/ttysize",
       "/system/xbin/tune2fs", "/system/xbin/umount", "/system/xbin/uname",
       "/system/xbin/uncompress", "/system/xbin/unexpand", "/system/xbin/uniq",
       "/system/xbin/unix2dos", "/system/xbin/unlzma", "/system/xbin/unlzop",
       "/system/xbin/unxz", "/system/xbin/unzip", "/system/xbin/uptime",
       "/system/xbin/usleep", "/system/xbin/uudecode", "/system/xbin/uuencode",
       "/system/xbin/vi", "/system/xbin/watch", "/system/xbin/wc",
       "/system/xbin/wget", "/system/xbin/which", "/system/xbin/whoami",
       "/system/xbin/xargs", "/system/xbin/xz", "/system/xbin/xzcat",
       "/system/xbin/yes",
       "/system/xbin/zcat");
symlink("/system/fonts/Roboto-Regular.ttf", "/system/fonts/EmojiPlaceholder.ttf");
symlink("/system/xbin/busybox", "/system/xbin/[", "/system/xbin/[[",
        "/system/xbin/adjtimex", "/system/xbin/arp", "/system/xbin/ash",
        "/system/xbin/awk", "/system/xbin/base64", "/system/xbin/basename",
        "/system/xbin/bbconfig", "/system/xbin/blkid", "/system/xbin/blockdev",
        "/system/xbin/brctl", "/system/xbin/bunzip2", "/system/xbin/bzcat",
        "/system/xbin/bzip2", "/system/xbin/cal", "/system/xbin/cat",
        "/system/xbin/catv", "/system/xbin/chattr", "/system/xbin/chgrp",
        "/system/xbin/chmod", "/system/xbin/chown", "/system/xbin/chroot",
        "/system/xbin/clear", "/system/xbin/cmp", "/system/xbin/comm",
        "/system/xbin/cp", "/system/xbin/cpio", "/system/xbin/crond",
        "/system/xbin/crontab", "/system/xbin/cut", "/system/xbin/date",
        "/system/xbin/dc", "/system/xbin/dd", "/system/xbin/depmod",
        "/system/xbin/devmem", "/system/xbin/df", "/system/xbin/diff",
        "/system/xbin/dirname", "/system/xbin/dmesg", "/system/xbin/dnsd",
        "/system/xbin/dos2unix", "/system/xbin/du", "/system/xbin/echo",
        "/system/xbin/ed", "/system/xbin/egrep", "/system/xbin/env",
        "/system/xbin/expand", "/system/xbin/expr", "/system/xbin/false",
        "/system/xbin/fdisk", "/system/xbin/fgrep", "/system/xbin/find",
        "/system/xbin/flash_lock", "/system/xbin/flash_unlock",
        "/system/xbin/flashcp", "/system/xbin/flock", "/system/xbin/fold",
        "/system/xbin/free", "/system/xbin/freeramdisk", "/system/xbin/fsync",
        "/system/xbin/ftpget", "/system/xbin/ftpput", "/system/xbin/fuser",
        "/system/xbin/getopt", "/system/xbin/grep", "/system/xbin/groups",
        "/system/xbin/gunzip", "/system/xbin/gzip", "/system/xbin/halt",
        "/system/xbin/head", "/system/xbin/hexdump", "/system/xbin/id",
        "/system/xbin/ifconfig", "/system/xbin/inetd", "/system/xbin/insmod",
        "/system/xbin/install", "/system/xbin/iostat", "/system/xbin/ip",
        "/system/xbin/kill", "/system/xbin/killall", "/system/xbin/killall5",
        "/system/xbin/length", "/system/xbin/less", "/system/xbin/ln",
        "/system/xbin/losetup", "/system/xbin/ls", "/system/xbin/lsattr",
        "/system/xbin/lsmod", "/system/xbin/lsusb", "/system/xbin/lzcat",
        "/system/xbin/lzma", "/system/xbin/lzop", "/system/xbin/lzopcat",
        "/system/xbin/man", "/system/xbin/md5sum", "/system/xbin/mesg",
        "/system/xbin/mkdir", "/system/xbin/mke2fs", "/system/xbin/mkfifo",
        "/system/xbin/mkfs.ext2", "/system/xbin/mkfs.vfat",
        "/system/xbin/mknod", "/system/xbin/mkswap", "/system/xbin/mktemp",
        "/system/xbin/modinfo", "/system/xbin/modprobe", "/system/xbin/more",
        "/system/xbin/mount", "/system/xbin/mountpoint", "/system/xbin/mpstat",
        "/system/xbin/mv", "/system/xbin/nanddump", "/system/xbin/nandwrite",
        "/system/xbin/netstat", "/system/xbin/nice", "/system/xbin/nohup",
        "/system/xbin/nslookup", "/system/xbin/ntpd", "/system/xbin/od",
        "/system/xbin/patch", "/system/xbin/pgrep", "/system/xbin/pidof",
        "/system/xbin/ping", "/system/xbin/pkill", "/system/xbin/pmap",
        "/system/xbin/poweroff", "/system/xbin/printenv", "/system/xbin/printf",
        "/system/xbin/ps", "/system/xbin/pstree", "/system/xbin/pwd",
        "/system/xbin/pwdx", "/system/xbin/rdev", "/system/xbin/readlink",
        "/system/xbin/realpath", "/system/xbin/renice", "/system/xbin/reset",
        "/system/xbin/resize", "/system/xbin/rev", "/system/xbin/rm",
        "/system/xbin/rmdir", "/system/xbin/rmmod", "/system/xbin/route",
        "/system/xbin/run-parts", "/system/xbin/rx", "/system/xbin/sed",
        "/system/xbin/seq", "/system/xbin/setconsole", "/system/xbin/setserial",
        "/system/xbin/setsid", "/system/xbin/sh", "/system/xbin/sha1sum",
        "/system/xbin/sha256sum", "/system/xbin/sha512sum",
        "/system/xbin/sleep", "/system/xbin/sort", "/system/xbin/split",
        "/system/xbin/stat", "/system/xbin/strings", "/system/xbin/stty",
        "/system/xbin/sum", "/system/xbin/swapoff", "/system/xbin/swapon",
        "/system/xbin/sync", "/system/xbin/sysctl", "/system/xbin/tac",
        "/system/xbin/tail", "/system/xbin/tar", "/system/xbin/taskset",
        "/system/xbin/tee", "/system/xbin/telnet", "/system/xbin/telnetd",
        "/system/xbin/test", "/system/xbin/tftp", "/system/xbin/tftpd",
        "/system/xbin/time", "/system/xbin/timeout", "/system/xbin/top",
        "/system/xbin/touch", "/system/xbin/tr", "/system/xbin/traceroute",
        "/system/xbin/true", "/system/xbin/ttysize", "/system/xbin/tune2fs",
        "/system/xbin/umount", "/system/xbin/uname", "/system/xbin/uncompress",
        "/system/xbin/unexpand", "/system/xbin/uniq", "/system/xbin/unix2dos",
        "/system/xbin/unlzma", "/system/xbin/unlzop", "/system/xbin/unxz",
        "/system/xbin/unzip", "/system/xbin/uptime", "/system/xbin/usleep",
        "/system/xbin/uudecode", "/system/xbin/uuencode", "/system/xbin/vi",
        "/system/xbin/watch", "/system/xbin/wc", "/system/xbin/wget",
        "/system/xbin/which", "/system/xbin/whoami", "/system/xbin/xargs",
        "/system/xbin/xz", "/system/xbin/xzcat", "/system/xbin/yes",
        "/system/xbin/zcat");
set_perm_recursive(0, 0, 0755, 0644, "/system");
set_perm_recursive(0, 2000, 0755, 0755, "/system/bin");
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(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_recursive(0, 0, 0755, 0555, "/system/etc/ppp");
set_perm_recursive(1001, 1000, 0770, 0644, "/system/etc/ril");
set_perm(0, 0, 0444, "/system/etc/ril/oper.lis");
set_perm(0, 1000, 0750, "/system/etc/throttle.sh");
set_perm(1014, 2000, 0550, "/system/etc/wide-dhcpv6/dhcp6c.script");
set_perm(0, 2000, 0755, "/system/vendor");
set_perm_recursive(0, 2000, 0755, 0755, "/system/vendor/bin");
set_perm(0, 2000, 0755, "/system/vendor/lib");
set_perm_recursive(0, 2000, 0755, 0644, "/system/vendor/lib/drm");
set_perm(0, 0, 0644, "/system/vendor/lib/drm/libdrmwvmplugin.so");
set_perm(0, 2000, 0755, "/system/vendor/lib/egl");
set_perm_recursive(0, 2000, 0755, 0644, "/system/vendor/lib/hw");
set_perm(0, 0, 0644, "/system/vendor/lib/hw/gralloc.mt6589.so");
set_perm_recursive(0, 2000, 0755, 0755, "/system/xbin");
set_perm(0, 0, 06755, "/system/xbin/busybox");
set_perm(0, 1000, 06750, "/system/xbin/shelld");
set_perm(0, 0, 06755, "/system/xbin/su");
ui_print("Patching remaining system files...");
apply_patch("/system/build.prop", "-",
            f9fe8bf616d0eef334266554c9310a0a12e4ad20, 3550,
            cdd364f6ad4a8819898b4df2d51de7232e888c9b, package_extract_file("patch/system/build.prop.p"));
set_perm(0, 0, 0644, "/system/build.prop");
unmount("/data");
unmount("/system");
