mount("ext4", "EMMC", "/dev/block/platform/sdhci-tegra.3/by-name/APP", "/system");
mount("ext4", "EMMC", "/dev/block/platform/sdhci-tegra.3/by-name/UDA", "/data");
assert(file_getprop("/system/build.prop", "ro.build.fingerprint") == "generic/ventana/ventana:4.1.2/JZ054K/user.ztetd.20130129.014726:user/release-keys" ||
       file_getprop("/system/build.prop", "ro.build.fingerprint") == "generic/ventana/ventana:4.1.2/JZ054K/user.ztetd.20130129.014726:user/release-keys");
assert(getprop("ro.product.device") == "ventana" ||
       getprop("ro.build.product") == "ventana" || getprop("ro.product.model") == "ZTE U970" ||  getprop("ro.product.board") == "ventana");
ui_print("Verifying current system...");
show_progress(0.100000, 0);
assert(apply_patch_check("/system/app/AntiSpam.apk", "3323c58c5591765485951b4c10297bfee60c7e8f", "d0f6606e703fa613d854d6509aac4a4ad561c0f4"));
set_progress(0.001275);
assert(apply_patch_check("/system/app/Backup.apk", "cefced6821bc91e384fdda072904893bf48aa732", "d66987bc3774b5380faf8f5f85b405f68ca0a6f0"));
set_progress(0.009659);
assert(apply_patch_check("/system/app/Bluetooth.apk", "4ee62852b4be9f2736cf0bbc90e4b665b459367d", "e44a1b41969d9779eb9e249bb2c2804e04350bcf"));
set_progress(0.011455);
assert(apply_patch_check("/system/app/Browser.apk", "aa84c43400cb189a59e405321661d5fecb08f1f2", "52a95555ff5bd3dabf8569fe5edddb05c5b7b35a"));
set_progress(0.091280);
assert(apply_patch_check("/system/app/BugReport.apk", "c66957072209e74716cc696b9d3f304d287eb24c", "021dd3a1f6678931342861f17399d355ece0a18f"));
set_progress(0.093341);
assert(apply_patch_check("/system/app/Calculator.apk", "65590aa36c12d3c61d95a9e9d3736a9df61ea234", "34684b4ea9527d54afec4cba3dbde184227e2bd4"));
set_progress(0.104836);
assert(apply_patch_check("/system/app/Calendar.apk", "0651083eab746ef21f497ef9bb7b51338607ea02", "d259efb1406bd29855e0ee637c00ba3be0c805c7"));
set_progress(0.116718);
assert(apply_patch_check("/system/app/CalendarProvider.apk", "ae0a70f230a0a9222310daafd1588e62af0cc7e9", "f4d03eac16212f015befb881964ff69999d78898"));
set_progress(0.118729);
assert(apply_patch_check("/system/app/CloudService.apk", "d15a53447a23473b612dfbda295eee4e3d58f98b", "ce3bebf1ea339c295689ff539f142c1cbe8014e1"));
set_progress(0.121968);
assert(apply_patch_check("/system/app/Contacts.apk", "60659d650bde9ace23d9721392c573ff00b5a97c", "58dc126dcbc9c766566d278de56c6d3e663bc4d1"));
set_progress(0.163384);
assert(apply_patch_check("/system/app/ContactsProvider.apk", "db3846cb6b4c5d473f3934e3d220ca914918683a", "d73b84a2142b4fe754e2fed0f829854c271ca634"));
set_progress(0.167382);
assert(apply_patch_check("/system/app/DataHubProvider.apk", "caaae8f076950d9c5dcb3e0ce41f49a9e40d8128", "1653081de6be9a79f9df5b3fa055dc5a2e44b98a"));
set_progress(0.167520);
assert(apply_patch_check("/system/app/DeskClock.apk", "33f256cdc97b3596969845a10d9d2212ba65921e", "b54086091694ae1cb0d339f30019cd3c68b67d3e"));
set_progress(0.180558);
assert(apply_patch_check("/system/app/DownloadProvider.apk", "200a73d073cba6c8a063055aee3a5ef300cfb77c", "a92082b6c0834eb9c07d5c26c60b3ac30fe402d4"));
set_progress(0.182180);
assert(apply_patch_check("/system/app/DownloadProviderUi.apk", "3b21ea6930815c177979e9489174ae67f9e480f2", "4acfc29aac5b1fadad5abe8806b9a2af66c8c25f"));
set_progress(0.183226);
assert(apply_patch_check("/system/app/Email.apk", "32851fce2dc9a434c31cfa3b27ad9d7282402e00", "5fe19e987e9836fb14820da4a20c44007b1b7e9b"));
set_progress(0.206190);
assert(apply_patch_check("/system/app/Exchange2.apk", "7f8ba7d6332953653059fbb8b77f081f91e03292", "50d8ebee63f67385202581af164d1e94a01cd1da"));
set_progress(0.216052);
assert(apply_patch_check("/system/app/MediaProvider.apk", "e1aa6db86ba893826d135cdb1877c643b7c5583e", "4d225f3509c61ede2c1ace18b2fa75daaf713788"));
set_progress(0.216902);
assert(apply_patch_check("/system/app/MiuiGallery.apk", "538f4e9edec3a87c55e024f6ef0e02d5a70d5cb2", "2f1564712e183cafd5a8b05a67db4df414228b7f"));
set_progress(0.250692);
assert(apply_patch_check("/system/app/MiuiHome.apk", "b7358f7da56d8478ddb0afa694ccdc139ee80435", "d0ae04797384c8ec0cfac213cd1461b0a98194a4"));
set_progress(0.282373);
assert(apply_patch_check("/system/app/MiuiSystemUI.apk", "674390a5b502737e59691417be251e42b2b3c88d", "f78a2e0ee348f86fb45094ebb916ba7ab043cafe"));
set_progress(0.305082);
assert(apply_patch_check("/system/app/Mms.apk", "942cbfe6190f9d6c75c6dded72a94c1bdb1d71d0", "61273a0a6e1a1dcd0fdb4757de825809c35973d6"));
set_progress(0.329906);
assert(apply_patch_check("/system/app/Music.apk", "84f3ae81352c30bf53d5561c27c47799af8dd67c", "33ea549aeb335e70ed5bcd1b198cdf5e1f19eb12"));
set_progress(0.375476);
assert(apply_patch_check("/system/app/Notes.apk", "f1ff1d1e99a9ec4f5ee7f347a48b324432ff7a84", "1b514f89775a93d81bccf86d64f12ab0ae316d8f"));
set_progress(0.399477);
assert(apply_patch_check("/system/app/PackageInstaller.apk", "cc2bbe3c344251f6c56f4b432f01690ab3dd2af8", "3faed460dfbdaf5ce55f20c169085470bd27e0f6"));
set_progress(0.401369);
assert(apply_patch_check("/system/app/Phone.apk", "213f94282692465d73375dbeaad21fa84c21ed70", "e32fda11124f14e79ba955b1f05ac947d50a4c75"));
set_progress(0.427495);
assert(apply_patch_check("/system/app/Provision.apk", "ca735595822ddeafc988f797e5b051d9da022a13", "3820fe77e8878b751b491d89bd58c936bef2446b"));
set_progress(0.435689);
assert(apply_patch_check("/system/app/QuickSearchBox.apk", "e111f69447824dccee575e733c9c1ef280e1af79", "717d0acacb1e7a7aa5003c46f094fbc7be2eef56"));
set_progress(0.440540);
assert(apply_patch_check("/system/app/Settings.apk", "786a3986c15713d0f37f45fafb664d4b4d824d62", "4efa355f48b7f09e31b341c999cb60850e4ba1f8"));
set_progress(0.500202);
assert(apply_patch_check("/system/app/SettingsProvider.apk", "d3dc3768b57688d67db24fa887b7c45ec52f3bbb", "3d7f830eea35425156b7fd4e37ef8fb5611cc252"));
set_progress(0.501159);
assert(apply_patch_check("/system/app/TelephonyProvider.apk", "588a6f5b9e05567bb94e939cd4a1576a8b67ce22", "982d2d84719a30c514a490be9f732f7d150698e3"));
set_progress(0.502246);
assert(apply_patch_check("/system/app/ThemeManager.apk", "1ed6ddff090657b596328598681831c95d3ea9c5", "a2270a97d065b567b3ba819fabc2d090f40b3d92"));
set_progress(0.513545);
assert(apply_patch_check("/system/app/Updater.apk", "bfaa509b1de047bc04ae416dc952415ce0895596", "ad4700b02abf17f43bb38e8ce2442911550a1c44"));
set_progress(0.532125);
assert(apply_patch_check("/system/app/VpnDialogs.apk", "b5fb078633d3510d49a5ee24607813198732e436", "5495bd1f303bdde704be08447524fc477611f97c"));
set_progress(0.532280);
assert(apply_patch_check("/system/app/WeatherProvider.apk", "2c32cb206b560427d3b0bbb91799197255c246f9", "a43a44966826ba939b8df460895982a60d6c7c8a"));
set_progress(0.532407);
assert(apply_patch_check("/system/app/XiaomiServiceFramework.apk", "9aa25a8726f5df4d2ff565d0c4fbebafd52f3277", "c362026d40de8b6134274039a4ffcf9db6b8fcf4"));
set_progress(0.568733);
assert(apply_patch_check("/system/app/YellowPage.apk", "354eda7e61fd27afdbdbad319000eee5a03bf2b1", "471603d8051d4ef62c7a76f7cd433febcb53a013"));
set_progress(0.577979);
assert(apply_patch_check("/system/build.prop", "979a85c2ab298eb49595ad3883817aa789f8f84c", "7e149825e139322b84d1d17cf928692aa1369407"));
set_progress(0.578009);
assert(apply_patch_check("/system/etc/telocation.idf", "8062499dd599e709f8fda14af4c3e66ff1e661fd", "5a6fde8c484e5a28f82385bd94878d60f02d9852"));
set_progress(0.608079);
assert(apply_patch_check("/system/framework/android.policy.jar", "b55404a3e20787b030f8c1baf63066981f8d0f77", "db6a7a369783fb46eb4b9ea48fdad92aa9f5d980"));
set_progress(0.610576);
assert(apply_patch_check("/system/framework/framework-miui-res.apk", "b4bba67324354fcb31986ca226e5626f6c6a808a", "1f6494dcb81f08ead1e0375f7406e99ed5c94cf4"));
set_progress(0.726126);
assert(apply_patch_check("/system/framework/framework-res.apk", "9116bbd1d64e42e6d3a5622a832ab379a31a7198", "ca8106781a8e4db9f4ef392e826a1681a7e9cb0d"));
set_progress(0.836044);
assert(apply_patch_check("/system/framework/framework.jar", "575e2c8a06cd0359a57a206734f935ac9a3bafa1", "bedbbbd4236e3b346053307438848c197c910d2f"));
set_progress(0.890322);
assert(apply_patch_check("/system/framework/framework2.jar", "cf302764b920c59d706c1569e6c7a0c90bc1e8db", "4de7c127c4b446458c7c6f8bded131fa70227a3b"));
set_progress(0.904521);
assert(apply_patch_check("/system/framework/services.jar", "829d3a36bd4fb772b2dbb9ba619afccdfe09229a", "09f6b45b2d791ec1a51404649128c33fcbc0a83c"));
set_progress(0.917260);
assert(apply_patch_check("/system/lib/libMiuiGalleryJNI.so", "fced54dac0945905b21989266697b2476b6da0fe", "3de6b2ecae7c7e5f62defc9cd96b37ed30acfe65"));
set_progress(0.920239);
assert(apply_patch_check("/system/lib/libffmpeg_xm.so", "3f8a3fb54cb169cd121beceeb35531567ae06a44", "47d79453c3a8f7fcff8cf9c7d400bafb30854ef2"));
set_progress(0.968118);
assert(apply_patch_check("/system/media/lockscreen/lockscreen_000.jpg", "7d76319837a8314dfb0babfafa9ec91a0001a16c", "16e64bdb36cbcec7f93ee50a0ccd457febb3ea96"));
set_progress(0.969346);
assert(apply_patch_check("/system/media/lockscreen/lockscreen_001.jpg", "26638e3d06dcabebbb4bf1202dd12207bd573b21", "c339435bb01113687b24f34e0fbd2b46c20584db"));
set_progress(0.973494);
assert(apply_patch_check("/system/media/lockscreen/lockscreen_002.jpg", "0fe121618377d7f4bdc7482821c18941d2d523cb", "e130f4775e4ac31d91b1aca52ba9c0e561ccfacc"));
set_progress(0.975223);
assert(apply_patch_check("/system/media/theme/.data/preview/default/preview_alarmscreen_0.jpg", "1912d6674fffdb7e1a40266d4ce6de47f3e86540", "369b2a6a350dd2751f466e96f2575db0b8b29d20"));
set_progress(0.975862);
assert(apply_patch_check("/system/media/theme/.data/preview/default/preview_animation_0.png", "db1cfe956149d8da7ce7e7ea7f22cf98f1a4fdbd", "d405863cae5978ebf3afe8d529198da36d0a0034"));
set_progress(0.975934);
assert(apply_patch_check("/system/media/theme/.data/preview/default/preview_contact_0.jpg", "89959cf80be0b3f5686c9b8147e06a604d39e70e", "cbd6a17e1bffacbefb8c6efeccc346c9ad0f96db"));
set_progress(0.976594);
assert(apply_patch_check("/system/media/theme/.data/preview/default/preview_mms_0.jpg", "359ca2a9d7a3ef95cd0c16e85a3a2e0f1dd69bbe", "0bb6b12da32dd1acf45c9a91145a8692db488a6f"));
set_progress(0.977241);
assert(apply_patch_check("/system/media/theme/.data/preview/default/preview_mms_1.jpg", "679ac44ce32c87ac1df3d91808e38768b6a0191c", "ff6bb4c3ce98d4fb59c3830715eb9a5dbcdf23bd"));
set_progress(0.977929);
assert(apply_patch_check("/system/media/theme/.data/preview/default/preview_statusbar_1.jpg", "4a7f6015c16dec073ffeeab446c43ba976343a78", "b4e38055e8933e9b4755d6cc82a8b421a914b2bd"));
set_progress(0.978620);
assert(apply_patch_check("/system/media/theme/default/alarmscreen", "0aa649dc6902163ed19618c43a41273225e045eb", "d61c1f18de852dbc96e40e12a15e5c4b20e353b9"));
set_progress(0.986288);
assert(apply_patch_check("/system/media/theme/default/icons", "d4a1e52181b618253117731b41dde00c6b935e0b", "dbe9b2fdb9450ac4bca42922c46f245fbadbeac6"));
set_progress(0.989529);
assert(apply_patch_check("/system/media/theme/default/lockscreen", "c001a1927de3910cfb8c7daacc2891d9e2a03f8a", "1d9223599f60b218e24893fcd32ad1b4345354cc"));
set_progress(0.996163);
assert(apply_patch_check("/system/media/wallpaper/wallpaper_000.jpg", "14d3033024530ff9c1ed886c6007c4efb1f966a4", "bdebd62ce75b1010077e29b13484cbda4e3a1375"));
set_progress(0.997642);
assert(apply_patch_check("/system/media/wallpaper/wallpaper_002.jpg", "03f98216fff0971f568f4c41a302a5edc5526344", "881e13a7ae06b64d494bfa30f913d6dd98760b13"));
set_progress(1.000000);
assert(apply_patch_space(9268332));

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

ui_print("Removing unneeded files...");
delete("/system/app/MiWallpaper.apk",
       "/system/media/theme/miui_mod_icons/com.android.stk.StkLauncherActivityII.png",
       "/system/media/theme/miui_mod_icons/com.google.android.apps.chrome.Main.png",
       "/system/media/theme/miui_mod_icons/com.google.android.apps.plus.phone.ConversationListActivity.png",
       "/system/media/theme/miui_mod_icons/com.google.android.apps.plus.phone.HomeActivity.png",
       "/system/media/theme/miui_mod_icons/com.google.android.gms.common.settings.GoogleSettingsActivity.png",
       "/system/media/theme/miui_mod_icons/com.google.android.googlequicksearchbox.VoiceSearchActivity.png",
       "/system/media/theme/miui_mod_icons/com.google.android.maps.MapsActivity.png~95a2bdc... update miui mod icons for 1080p",
       "/system/media/theme/miui_mod_icons/com.google.android.youtube.png",
       "/system/media/lockscreen/lockscreen_003.jpg",
       "/system/media/lockscreen/lockscreen_004.jpg",
       "/system/media/lockscreen/lockscreen_005.jpg",
       "/system/media/theme/.data/preview/default/preview_fonts_0.png",
       "/system/media/theme/.data/preview/default/preview_fonts_small_0.png",
       "/system/media/theme/.data/preview/default/preview_icons_0.jpg",
       "/system/media/theme/.data/preview/default/preview_icons_1.jpg",
       "/system/media/theme/.data/preview/default/preview_icons_small_0.jpg",
       "/system/media/theme/.data/preview/default/preview_launcher_0.jpg",
       "/system/media/theme/.data/preview/default/preview_launcher_1.jpg",
       "/system/media/theme/.data/preview/default/preview_lockscreen_0.jpg",
       "/system/media/theme/.data/preview/default/preview_statusbar_0.jpg",
       "/system/media/theme/default/lock_wallpaper",
       "/system/media/theme/miui_mod_icons/com.google.android.apps.googlevoice.png",
       "/system/media/theme/miui_mod_icons/com.google.android.ears.png",
       "/system/media/theme/miui_mod_icons/com.google.android.gm.png",
       "/system/media/theme/miui_mod_icons/com.google.android.googlequicksearchbox.png",
       "/system/media/theme/miui_mod_icons/com.google.android.inputmethod.pinyin.png",
       "/system/media/theme/miui_mod_icons/com.google.android.maps.MapsActivity.png",
       "/system/media/theme/miui_mod_icons/com.google.android.maps.PlacesActivity.png",
       "/system/media/theme/miui_mod_icons/com.google.android.maps.driveabout.app.DestinationActivity.png",
       "/system/media/theme/miui_mod_icons/com.google.android.talk.png",
       "/system/media/wallpaper/wallpaper_001.jpg",
       "/system/media/wallpaper/wallpaper_003.jpg",
       "/system/media/wallpaper/wallpaper_004.jpg",
       "/system/media/wallpaper/wallpaper_005.jpg",
       "/system/media/lockscreen/lockscreen_006.jpg",
       "/system/media/wallpaper/wallpaper_006.jpg",
       "/system/recovery.img");
show_progress(0.800000, 0);
ui_print("Patching system files...");
apply_patch("/system/app/AntiSpam.apk", "-",
            3323c58c5591765485951b4c10297bfee60c7e8f, 103174,
            d0f6606e703fa613d854d6509aac4a4ad561c0f4, package_extract_file("patch/system/app/AntiSpam.apk.p"));
set_progress(0.001358);
apply_patch("/system/app/Backup.apk", "-",
            cefced6821bc91e384fdda072904893bf48aa732, 672826,
            d66987bc3774b5380faf8f5f85b405f68ca0a6f0, package_extract_file("patch/system/app/Backup.apk.p"));
set_progress(0.010210);
apply_patch("/system/app/Bluetooth.apk", "-",
            4ee62852b4be9f2736cf0bbc90e4b665b459367d, 144042,
            e44a1b41969d9779eb9e249bb2c2804e04350bcf, package_extract_file("patch/system/app/Bluetooth.apk.p"));
set_progress(0.012106);
apply_patch("/system/app/Browser.apk", "-",
            aa84c43400cb189a59e405321661d5fecb08f1f2, 3259473,
            52a95555ff5bd3dabf8569fe5edddb05c5b7b35a, package_extract_file("patch/system/app/Browser.apk.p"));
set_progress(0.054993);
apply_patch("/system/app/BugReport.apk", "-",
            c66957072209e74716cc696b9d3f304d287eb24c, 165357,
            021dd3a1f6678931342861f17399d355ece0a18f, package_extract_file("patch/system/app/BugReport.apk.p"));
set_progress(0.057169);
apply_patch("/system/app/Calculator.apk", "-",
            65590aa36c12d3c61d95a9e9d3736a9df61ea234, 430734,
            34684b4ea9527d54afec4cba3dbde184227e2bd4, package_extract_file("patch/system/app/Calculator.apk.p"));
set_progress(0.062836);
apply_patch("/system/app/Calendar.apk", "-",
            0651083eab746ef21f497ef9bb7b51338607ea02, 953092,
            d259efb1406bd29855e0ee637c00ba3be0c805c7, package_extract_file("patch/system/app/Calendar.apk.p"));
set_progress(0.075377);
apply_patch("/system/app/CalendarProvider.apk", "-",
            ae0a70f230a0a9222310daafd1588e62af0cc7e9, 161277,
            f4d03eac16212f015befb881964ff69999d78898, package_extract_file("patch/system/app/CalendarProvider.apk.p"));
set_progress(0.077499);
apply_patch("/system/app/CloudService.apk", "-",
            d15a53447a23473b612dfbda295eee4e3d58f98b, 259741,
            ce3bebf1ea339c295689ff539f142c1cbe8014e1, package_extract_file("patch/system/app/CloudService.apk.p"));
set_progress(0.080917);
apply_patch("/system/app/Contacts.apk", "-",
            60659d650bde9ace23d9721392c573ff00b5a97c, 2885580,
            58dc126dcbc9c766566d278de56c6d3e663bc4d1, package_extract_file("patch/system/app/Contacts.apk.p"));
set_progress(0.118884);
apply_patch("/system/app/ContactsProvider.apk", "-",
            db3846cb6b4c5d473f3934e3d220ca914918683a, 320669,
            d73b84a2142b4fe754e2fed0f829854c271ca634, package_extract_file("patch/system/app/ContactsProvider.apk.p"));
set_progress(0.123104);
apply_patch("/system/app/DataHubProvider.apk", "-",
            caaae8f076950d9c5dcb3e0ce41f49a9e40d8128, 11011,
            1653081de6be9a79f9df5b3fa055dc5a2e44b98a, package_extract_file("patch/system/app/DataHubProvider.apk.p"));
set_progress(0.123248);
apply_patch("/system/app/DeskClock.apk", "-",
            33f256cdc97b3596969845a10d9d2212ba65921e, 956272,
            b54086091694ae1cb0d339f30019cd3c68b67d3e, package_extract_file("patch/system/app/DeskClock.apk.p"));
set_progress(0.135831);
apply_patch("/system/app/DownloadProvider.apk", "-",
            200a73d073cba6c8a063055aee3a5ef300cfb77c, 130130,
            a92082b6c0834eb9c07d5c26c60b3ac30fe402d4, package_extract_file("patch/system/app/DownloadProvider.apk.p"));
set_progress(0.137543);
apply_patch("/system/app/DownloadProviderUi.apk", "-",
            3b21ea6930815c177979e9489174ae67f9e480f2, 83910,
            4acfc29aac5b1fadad5abe8806b9a2af66c8c25f, package_extract_file("patch/system/app/DownloadProviderUi.apk.p"));
set_progress(0.138647);
apply_patch("/system/app/Email.apk", "-",
            32851fce2dc9a434c31cfa3b27ad9d7282402e00, 1834995,
            5fe19e987e9836fb14820da4a20c44007b1b7e9b, package_extract_file("patch/system/app/Email.apk.p"));
set_progress(0.162792);
apply_patch("/system/app/Exchange2.apk", "-",
            7f8ba7d6332953653059fbb8b77f081f91e03292, 791201,
            50d8ebee63f67385202581af164d1e94a01cd1da, package_extract_file("patch/system/app/Exchange2.apk.p"));
set_progress(0.173202);
apply_patch("/system/app/MediaProvider.apk", "-",
            e1aa6db86ba893826d135cdb1877c643b7c5583e, 68153,
            4d225f3509c61ede2c1ace18b2fa75daaf713788, package_extract_file("patch/system/app/MediaProvider.apk.p"));
set_progress(0.174099);
apply_patch("/system/app/MiuiGallery.apk", "-",
            538f4e9edec3a87c55e024f6ef0e02d5a70d5cb2, 2711722,
            2f1564712e183cafd5a8b05a67db4df414228b7f, package_extract_file("patch/system/app/MiuiGallery.apk.p"));
set_progress(0.209779);
apply_patch("/system/app/MiuiHome.apk", "-",
            b7358f7da56d8478ddb0afa694ccdc139ee80435, 2541146,
            d0ae04797384c8ec0cfac213cd1461b0a98194a4, package_extract_file("patch/system/app/MiuiHome.apk.p"));
set_progress(0.243215);
apply_patch("/system/app/MiuiSystemUI.apk", "-",
            674390a5b502737e59691417be251e42b2b3c88d, 1822556,
            f78a2e0ee348f86fb45094ebb916ba7ab043cafe, package_extract_file("patch/system/app/MiuiSystemUI.apk.p"));
set_progress(0.267196);
apply_patch("/system/app/Mms.apk", "-",
            942cbfe6190f9d6c75c6dded72a94c1bdb1d71d0, 1991469,
            61273a0a6e1a1dcd0fdb4757de825809c35973d6, package_extract_file("patch/system/app/Mms.apk.p"));
set_progress(0.293399);
apply_patch("/system/app/Music.apk", "-",
            84f3ae81352c30bf53d5561c27c47799af8dd67c, 3655148,
            33ea549aeb335e70ed5bcd1b198cdf5e1f19eb12, package_extract_file("patch/system/app/Music.apk.p"));
set_progress(0.341492);
apply_patch("/system/app/Notes.apk", "-",
            f1ff1d1e99a9ec4f5ee7f347a48b324432ff7a84, 1925177,
            1b514f89775a93d81bccf86d64f12ab0ae316d8f, package_extract_file("patch/system/app/Notes.apk.p"));
set_progress(0.366823);
apply_patch("/system/app/PackageInstaller.apk", "-",
            cc2bbe3c344251f6c56f4b432f01690ab3dd2af8, 151754,
            3faed460dfbdaf5ce55f20c169085470bd27e0f6, package_extract_file("patch/system/app/PackageInstaller.apk.p"));
set_progress(0.368820);
apply_patch("/system/app/Phone.apk", "-",
            213f94282692465d73375dbeaad21fa84c21ed70, 2097999,
            e32fda11124f14e79ba955b1f05ac947d50a4c75, package_extract_file("patch/system/app/Phone.apk.p"));
set_progress(0.396425);
apply_patch("/system/app/Provision.apk", "-",
            ca735595822ddeafc988f797e5b051d9da022a13, 657168,
            3820fe77e8878b751b491d89bd58c936bef2446b, package_extract_file("patch/system/app/Provision.apk.p"));
set_progress(0.405072);
apply_patch("/system/app/QuickSearchBox.apk", "-",
            e111f69447824dccee575e733c9c1ef280e1af79, 389107,
            717d0acacb1e7a7aa5003c46f094fbc7be2eef56, package_extract_file("patch/system/app/QuickSearchBox.apk.p"));
set_progress(0.410192);
apply_patch("/system/app/Settings.apk", "-",
            786a3986c15713d0f37f45fafb664d4b4d824d62, 4786968,
            4efa355f48b7f09e31b341c999cb60850e4ba1f8, package_extract_file("patch/system/app/Settings.apk.p"));
set_progress(0.473178);
apply_patch("/system/app/SettingsProvider.apk", "-",
            d3dc3768b57688d67db24fa887b7c45ec52f3bbb, 76758,
            3d7f830eea35425156b7fd4e37ef8fb5611cc252, package_extract_file("patch/system/app/SettingsProvider.apk.p"));
set_progress(0.474188);
apply_patch("/system/app/TelephonyProvider.apk", "-",
            588a6f5b9e05567bb94e939cd4a1576a8b67ce22, 87176,
            982d2d84719a30c514a490be9f732f7d150698e3, package_extract_file("patch/system/app/TelephonyProvider.apk.p"));
set_progress(0.475335);
apply_patch("/system/app/ThemeManager.apk", "-",
            1ed6ddff090657b596328598681831c95d3ea9c5, 906315,
            a2270a97d065b567b3ba819fabc2d090f40b3d92, package_extract_file("patch/system/app/ThemeManager.apk.p"));
set_progress(0.487260);
apply_patch("/system/app/Updater.apk", "-",
            bfaa509b1de047bc04ae416dc952415ce0895596, 1490554,
            ad4700b02abf17f43bb38e8ce2442911550a1c44, package_extract_file("patch/system/app/Updater.apk.p"));
set_progress(0.506872);
apply_patch("/system/app/VpnDialogs.apk", "-",
            b5fb078633d3510d49a5ee24607813198732e436, 12390,
            5495bd1f303bdde704be08447524fc477611f97c, package_extract_file("patch/system/app/VpnDialogs.apk.p"));
set_progress(0.507035);
apply_patch("/system/app/WeatherProvider.apk", "-",
            2c32cb206b560427d3b0bbb91799197255c246f9, 10223,
            a43a44966826ba939b8df460895982a60d6c7c8a, package_extract_file("patch/system/app/WeatherProvider.apk.p"));
set_progress(0.507170);
apply_patch("/system/app/XiaomiServiceFramework.apk", "-",
            9aa25a8726f5df4d2ff565d0c4fbebafd52f3277, 2913667,
            c362026d40de8b6134274039a4ffcf9db6b8fcf4, package_extract_file("patch/system/app/XiaomiServiceFramework.apk.p"));
set_progress(0.545507);
apply_patch("/system/app/YellowPage.apk", "-",
            354eda7e61fd27afdbdbad319000eee5a03bf2b1, 741561,
            471603d8051d4ef62c7a76f7cd433febcb53a013, package_extract_file("patch/system/app/YellowPage.apk.p"));
set_progress(0.555264);
apply_patch("/system/etc/telocation.idf", "-",
            8062499dd599e709f8fda14af4c3e66ff1e661fd, 2411892,
            5a6fde8c484e5a28f82385bd94878d60f02d9852, package_extract_file("patch/system/etc/telocation.idf.p"));
set_progress(0.586999);
apply_patch("/system/framework/android.policy.jar", "-",
            b55404a3e20787b030f8c1baf63066981f8d0f77, 200566,
            db6a7a369783fb46eb4b9ea48fdad92aa9f5d980, package_extract_file("patch/system/framework/android.policy.jar.p"));
set_progress(0.589638);
apply_patch("/system/framework/framework-miui-res.apk", "-",
            b4bba67324354fcb31986ca226e5626f6c6a808a, 9273283,
            1f6494dcb81f08ead1e0375f7406e99ed5c94cf4, package_extract_file("patch/system/framework/framework-miui-res.apk.p"));
set_progress(0.711654);
apply_patch("/system/framework/framework-res.apk", "-",
            9116bbd1d64e42e6d3a5622a832ab379a31a7198, 9033381,
            ca8106781a8e4db9f4ef392e826a1681a7e9cb0d, package_extract_file("patch/system/framework/framework-res.apk.p"));
set_progress(0.830513);
apply_patch("/system/framework/framework.jar", "-",
            575e2c8a06cd0359a57a206734f935ac9a3bafa1, 4373153,
            bedbbbd4236e3b346053307438848c197c910d2f, package_extract_file("patch/system/framework/framework.jar.p"));
set_progress(0.888054);
apply_patch("/system/framework/framework2.jar", "-",
            cf302764b920c59d706c1569e6c7a0c90bc1e8db, 1138552,
            4de7c127c4b446458c7c6f8bded131fa70227a3b, package_extract_file("patch/system/framework/framework2.jar.p"));
set_progress(0.903035);
apply_patch("/system/framework/services.jar", "-",
            829d3a36bd4fb772b2dbb9ba619afccdfe09229a, 1021657,
            09f6b45b2d791ec1a51404649128c33fcbc0a83c, package_extract_file("patch/system/framework/services.jar.p"));
set_progress(0.916478);
apply_patch("/system/lib/libMiuiGalleryJNI.so", "-",
            fced54dac0945905b21989266697b2476b6da0fe, 238952,
            3de6b2ecae7c7e5f62defc9cd96b37ed30acfe65, package_extract_file("patch/system/lib/libMiuiGalleryJNI.so.p"));
set_progress(0.919622);
apply_patch("/system/lib/libffmpeg_xm.so", "-",
            3f8a3fb54cb169cd121beceeb35531567ae06a44, 3840396,
            47d79453c3a8f7fcff8cf9c7d400bafb30854ef2, package_extract_file("patch/system/lib/libffmpeg_xm.so.p"));
set_progress(0.970153);
apply_patch("/system/media/lockscreen/lockscreen_000.jpg", "-",
            7d76319837a8314dfb0babfafa9ec91a0001a16c, 105113,
            16e64bdb36cbcec7f93ee50a0ccd457febb3ea96, package_extract_file("patch/system/media/lockscreen/lockscreen_000.jpg.p"));
set_progress(0.971536);
apply_patch("/system/media/lockscreen/lockscreen_001.jpg", "-",
            26638e3d06dcabebbb4bf1202dd12207bd573b21, 113345,
            c339435bb01113687b24f34e0fbd2b46c20584db, package_extract_file("patch/system/media/lockscreen/lockscreen_001.jpg.p"));
set_progress(0.973027);
apply_patch("/system/media/lockscreen/lockscreen_002.jpg", "-",
            0fe121618377d7f4bdc7482821c18941d2d523cb, 61585,
            e130f4775e4ac31d91b1aca52ba9c0e561ccfacc, package_extract_file("patch/system/media/lockscreen/lockscreen_002.jpg.p"));
set_progress(0.973838);
apply_patch("/system/media/theme/.data/preview/default/preview_alarmscreen_0.jpg",
            "-", 1912d6674fffdb7e1a40266d4ce6de47f3e86540, 42374,
            369b2a6a350dd2751f466e96f2575db0b8b29d20, package_extract_file("patch/system/media/theme/.data/preview/default/preview_alarmscreen_0.jpg.p"));
set_progress(0.974395);
apply_patch("/system/media/theme/.data/preview/default/preview_animation_0.png",
            "-", db1cfe956149d8da7ce7e7ea7f22cf98f1a4fdbd, 7417,
            d405863cae5978ebf3afe8d529198da36d0a0034, package_extract_file("patch/system/media/theme/.data/preview/default/preview_animation_0.png.p"));
set_progress(0.974493);
apply_patch("/system/media/theme/.data/preview/default/preview_contact_0.jpg",
            "-", 89959cf80be0b3f5686c9b8147e06a604d39e70e, 54667,
            cbd6a17e1bffacbefb8c6efeccc346c9ad0f96db, package_extract_file("patch/system/media/theme/.data/preview/default/preview_contact_0.jpg.p"));
set_progress(0.975212);
apply_patch("/system/media/theme/.data/preview/default/preview_mms_0.jpg",
            "-", 359ca2a9d7a3ef95cd0c16e85a3a2e0f1dd69bbe, 58252,
            0bb6b12da32dd1acf45c9a91145a8692db488a6f, package_extract_file("patch/system/media/theme/.data/preview/default/preview_mms_0.jpg.p"));
set_progress(0.975978);
apply_patch("/system/media/theme/.data/preview/default/preview_mms_1.jpg",
            "-", 679ac44ce32c87ac1df3d91808e38768b6a0191c, 62635,
            ff6bb4c3ce98d4fb59c3830715eb9a5dbcdf23bd, package_extract_file("patch/system/media/theme/.data/preview/default/preview_mms_1.jpg.p"));
set_progress(0.976803);
apply_patch("/system/media/theme/.data/preview/default/preview_statusbar_1.jpg",
            "-", 4a7f6015c16dec073ffeeab446c43ba976343a78, 64248,
            b4e38055e8933e9b4755d6cc82a8b421a914b2bd, package_extract_file("patch/system/media/theme/.data/preview/default/preview_statusbar_1.jpg.p"));
set_progress(0.977648);
apply_patch("/system/media/theme/default/alarmscreen", "-",
            0aa649dc6902163ed19618c43a41273225e045eb, 615045,
            d61c1f18de852dbc96e40e12a15e5c4b20e353b9, package_extract_file("patch/system/media/theme/default/alarmscreen.p"));
set_progress(0.985741);
apply_patch("/system/media/theme/default/icons", "-",
            d4a1e52181b618253117731b41dde00c6b935e0b, 264618,
            dbe9b2fdb9450ac4bca42922c46f245fbadbeac6, package_extract_file("patch/system/media/theme/default/icons.p"));
set_progress(0.989222);
apply_patch("/system/media/theme/default/lockscreen", "-",
            c001a1927de3910cfb8c7daacc2891d9e2a03f8a, 542506,
            1d9223599f60b218e24893fcd32ad1b4345354cc, package_extract_file("patch/system/media/theme/default/lockscreen.p"));
set_progress(0.996361);
apply_patch("/system/media/wallpaper/wallpaper_000.jpg", "-",
            14d3033024530ff9c1ed886c6007c4efb1f966a4, 159820,
            bdebd62ce75b1010077e29b13484cbda4e3a1375, package_extract_file("patch/system/media/wallpaper/wallpaper_000.jpg.p"));
set_progress(0.998463);
apply_patch("/system/media/wallpaper/wallpaper_002.jpg", "-",
            03f98216fff0971f568f4c41a302a5edc5526344, 114326,
            881e13a7ae06b64d494bfa30f913d6dd98760b13, package_extract_file("patch/system/media/wallpaper/wallpaper_002.jpg.p"));
set_progress(0.999968);
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_recursive(0, 0, 0711, 0644, "/system/bin/.ext");
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_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(0, 0, 0644, "/system/etc/bluetooth/bdaddr");
set_perm(3002, 3002, 0444, "/system/etc/bluetooth/blacklist.conf");
set_perm(1002, 1002, 0440, "/system/etc/dbus.conf");
set_perm(1014, 2000, 0550, "/system/etc/dhcpcd/dhcpcd-run-hooks");
set_perm_recursive(0, 2000, 0755, 0750, "/system/etc/init.d");
set_perm(0, 0, 0755, "/system/etc/init.d");
set_perm(0, 2000, 0550, "/system/etc/init.goldfish.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(0, 2000, 0755, "/system/vendor/firmware/bcm4329");
set_perm(0, 2000, 0755, "/system/vendor/firmware/bcm4330");
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_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", "-",
            979a85c2ab298eb49595ad3883817aa789f8f84c, 2457,
            7e149825e139322b84d1d17cf928692aa1369407, package_extract_file("patch/system/build.prop.p"));
symlink("su", "/system/bin/su");
set_perm(0, 0, 0644, "/system/build.prop");
unmount("/data");
unmount("/system");
