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.050.P0.130425.5890:user/release-keys" ||
       file_getprop("/system/build.prop", "ro.build.fingerprint") == "Coolpad/Coolpad5890/Coolpad5890:4.1.2/JZO54K/4.1.050.P0.130425.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/AntiSpam.apk", "554d193f5fd30416ffb762ccc64f02bd1fa97158", "8eecf85e36e38e20e703b391153d499dfa451e60"));
set_progress(0.001329);
assert(apply_patch_check("/system/app/Backup.apk", "6728e6f6f7084b6ea9ddda0d9170c335fc1d60a6", "583f5f95d1f19038bf2cde3a92f9b9a8c12d539b"));
set_progress(0.008807);
assert(apply_patch_check("/system/app/Browser.apk", "ed2fe06f610b3da996df0d07cc1ea9e3f2b7bb31", "e84b2dbb43359c57f74ac6d0cd78fda8025449cf"));
set_progress(0.073864);
assert(apply_patch_check("/system/app/BugReport.apk", "e1da8bf33fc6657fd22d74028d3f0e9884ee3995", "9ad516c7fa93b75df7e7ef185c80d52cc623c01d"));
set_progress(0.075693);
assert(apply_patch_check("/system/app/Calculator.apk", "e701f3cc3badebb5678f3dac93c1663b4a27eaeb", "bd468444f5e9023723dcde6caa1da5e40f4dbb51"));
set_progress(0.085912);
assert(apply_patch_check("/system/app/Calendar.apk", "ba34fd68ee61b3d28eb606bec2f6500cc74f99b4", "772265964aaf3933cc17c114e6708959169bbe94"));
set_progress(0.096439);
assert(apply_patch_check("/system/app/CalendarProvider.apk", "c12cf8c67667f5789850d66c5ebaee17a6542304", "0dd73cb97199a4e869db8c101a8b632a254a2b3b"));
set_progress(0.098180);
assert(apply_patch_check("/system/app/CloudService.apk", "8d60e60dba43495ecae35c408cebe5946b7120a0", "0109c2e6672fd8559265b1898185e17b5360c0e3"));
set_progress(0.101044);
assert(apply_patch_check("/system/app/Contacts.apk", "a3797f02281f9447ef507a17218b9ee1711a4395", "cf1ba730b1b971f87eeb67ee2574ebc070e2fc34"));
set_progress(0.137888);
assert(apply_patch_check("/system/app/ContactsProvider.apk", "25716ea8fbbb66601b42859d30e58287feba4484", "a2ac5d9f9c637f1027cd610065972ba760546316"));
set_progress(0.141441);
assert(apply_patch_check("/system/app/DataHubProvider.apk", "ec3422d35293faa45f420f6296b32d1d4bee58d6", "852728889b6afa1bb8400094aa31209e0aaaecf9"));
set_progress(0.141564);
assert(apply_patch_check("/system/app/DeskClock.apk", "922e99dd3af883ca65b6d0d33535436e918ce354", "890d57072d1328c1266d92574a485d7be7f4c779"));
set_progress(0.151235);
assert(apply_patch_check("/system/app/DownloadProvider.apk", "c66b61fd83a90943dcc6e211c0f7c36703b75c6b", "aa7f3065d4dc9ef9650747f2f2d95b3822b84f1e"));
set_progress(0.152676);
assert(apply_patch_check("/system/app/DownloadProviderUi.apk", "1052b67f7b7e4897f4c8d4d2dcec196d53c828cc", "3cccc2b9cc991bc8a2b8c4e1d7b486318f9fb860"));
set_progress(0.153777);
assert(apply_patch_check("/system/app/FileExplorer.apk", "b466431f41880068c8a0302ff23442041f59bd42", "6463d59a99affdf596eba8545fbb604e0676834b"));
set_progress(0.173082);
assert(apply_patch_check("/system/app/MediaProvider.apk", "e544bdf49ed76c447465a281d5f9ac53acb0700d", "390e4723948ee4c191f48757346803257d265bb3"));
set_progress(0.173838);
assert(apply_patch_check("/system/app/MiuiGallery.apk", "49c46cca4911c77a64ec506f20e9cd5ab923de55", "7b098ec5c98f4e73243f6fc41a5ad0762e62e11c"));
set_progress(0.196146);
assert(apply_patch_check("/system/app/MiuiHome.apk", "95f3f2fcb7681f9d3fe4653faffb2b114825affb", "413c4f7b1b353c7563412398f49f00b997642e5e"));
set_progress(0.232675);
assert(apply_patch_check("/system/app/MiuiSystemUI.apk", "41a1942f2804cc4371332364bab373f8dc4f1e61", "381183ef99340ca658b3c79a04e1dea7e915e602"));
set_progress(0.247650);
assert(apply_patch_check("/system/app/MiuiVideoPlayer.apk", "a67dbf6e1cc4c9c0f9ce77c65c87fcd6aaab80e0", "103d76c8e26aebfe8ae34c3853e68c06ae1c650d"));
set_progress(0.258585);
assert(apply_patch_check("/system/app/Mms.apk", "24a16981c2c03ce007e22e4a9d68afcb3682affb", "e42fb50031888370629cbea19a34f2310a983f36"));
set_progress(0.277900);
assert(apply_patch_check("/system/app/Music.apk", "147d009dc07488c8b94376e40dda280f6f428702", "346dd42abb5fd1f87eb7ab8aef8ec3fe51f7cb3a"));
set_progress(0.316992);
assert(apply_patch_check("/system/app/Notes.apk", "83312bb7904291e3332c3c4305b5decd891fa254", "691d05aa891a13c343ffa293f1cef6d6e8c9f2cb"));
set_progress(0.346326);
assert(apply_patch_check("/system/app/PackageInstaller.apk", "4d33f92dc40660c1279541f21f438cd224c77d98", "fa279d87a46d8e87b4ae24089e04b7b1949b7761"));
set_progress(0.348010);
assert(apply_patch_check("/system/app/Phone.apk", "45c64d4f3e1d73f87ce9dc1f9e4b4d20dbbe3ba8", "4929043576444c1f6c36134b223a9b058f688185"));
set_progress(0.371212);
assert(apply_patch_check("/system/app/Provision.apk", "6dabb3cfa25b8a52fa4b70f6222b7149c6bdb759", "a598c7a04ca05f8334854190a86d1ed9911cbda3"));
set_progress(0.378503);
assert(apply_patch_check("/system/app/QuickSearchBox.apk", "f05f89853ecc4c640302086d2c4403ef1e95dbc9", "7baea2017c1924494402c90d88de336fa047b87d"));
set_progress(0.382823);
assert(apply_patch_check("/system/app/Settings.apk", "84789a419ad43d3b9849c006a84ed42bd31e2e90", "afca130c1b4e7fe0d5a3c5c7a068fbe3b8ab375a"));
set_progress(0.435300);
assert(apply_patch_check("/system/app/SettingsProvider.apk", "d85b7ebd570256a60d5c2d933c3711c9ed385228", "d9846d394fca18a832d0ffae14cf226447c92a7d"));
set_progress(0.435795);
assert(apply_patch_check("/system/app/SoundRecorder.apk", "b7adc00855b9a5a133ffc84dce8e6d6e6a1abe69", "ef6160eb75ad655f3323610f0adc03a139f31d0a"));
set_progress(0.453484);
assert(apply_patch_check("/system/app/TelephonyProvider.apk", "a8ff23c0a63724b2ee580f82cf8f03e4f8e819f6", "0161607964713b172af25344484a4bcc0cd85fb2"));
set_progress(0.455609);
assert(apply_patch_check("/system/app/ThemeManager.apk", "97e8f8812100e01419fb9c7a0f0422fcfd0ae83d", "42be384d5487f5a601c2819b9c992fb05615d1c5"));
set_progress(0.465677);
assert(apply_patch_check("/system/app/Transfer.apk", "da3f4c0359bf99ece1b5099709072db11f3b44c3", "1840e88a73866deac3028f0f7c7e39652f3ca241"));
set_progress(0.474815);
assert(apply_patch_check("/system/app/Updater.apk", "4530faff2eedf61583859091a6e0c4643ff1e451", "c5643b65e0aa2b9c0a075fd70d041f7f213ce2ea"));
set_progress(0.496012);
assert(apply_patch_check("/system/app/VpnDialogs.apk", "e8ef0c7db01ec8f837adb8055a3c619c39ec48b8", "825f4fc7e001a73c2239835837313511220187b6"));
set_progress(0.496149);
assert(apply_patch_check("/system/app/Weather.apk", "afeef24a7491d020a50a788e81004d0e37449648", "ea4484080db79f3f2ffc459a1454fd57196dead1"));
set_progress(0.508609);
assert(apply_patch_check("/system/app/WeatherProvider.apk", "184f6ddc6e84e142961f668adf94cec0801a5840", "d3cea97a2da70332b7f3a49aeb025e0a1b2da784"));
set_progress(0.508713);
assert(apply_patch_check("/system/app/XiaomiServiceFramework.apk", "0803c34a6c8b362287c08e3c096e269916667e09", "c8ecf3fd7c2f07040e5cb8b6439d26b3bfe391ac"));
set_progress(0.541329);
assert(apply_patch_check("/system/app/YellowPage.apk", "eef560dc69197f357e2011380a8b800193c6da03", "c0ef50a2061e6d3f86bc140084d981f3636a56c0"));
set_progress(0.547928);
assert(apply_patch_check("/system/build.prop", "4d17b7e0eb06b4d74333c88b5dfbed0d664431b6", "8ef0d0073a3effd936868244a20280ade0b35841"));
set_progress(0.548021);
assert(apply_patch_check("/system/framework/android.policy.jar", "4d43cda072ed0e4dd29722627e0cd544979cf7c9", "e0721b147933c4776e1c2c275684409a573d376c"));
set_progress(0.550997);
assert(apply_patch_check("/system/framework/framework-miui-res.apk", "a9bf644993efd1f96db17556ff58d2abd20a3323", "b231c6c105a086de35ea82e63d20a1c5b885f03e"));
set_progress(0.650716);
assert(apply_patch_check("/system/framework/framework-res.apk", "6fafc4c5ff1448c56d6c2b611a25cf9d47ea7a21", "fdf8c712834b6144a46c61a8f6bddd2e52e6af8c"));
set_progress(0.735152);
assert(apply_patch_check("/system/framework/framework.jar", "5013f1934c12e1ef435a9d8a0d725cedd2e52228", "ba5f0cbb22c202c56126c2118573c3bc051f7a70"));
set_progress(0.784913);
assert(apply_patch_check("/system/framework/framework_ext.jar", "a453449c6fafb7716d56a0df243dbb212d2e1cd2", "c58857de7c00845c923aba3a0a7f899d129c6c48"));
set_progress(0.801799);
assert(apply_patch_check("/system/framework/services.jar", "4d38070f6534aa7c551b1eda96c680f1e0f13857", "4006ae74c06fdeb9cbacd7712a30693225212cfa"));
set_progress(0.814592);
assert(apply_patch_check("/system/lib/libffmpeg_xm.so", "47d79453c3a8f7fcff8cf9c7d400bafb30854ef2", "3f8a3fb54cb169cd121beceeb35531567ae06a44"));
set_progress(0.857226);
assert(apply_patch_check("/system/media/theme/default/alarmscreen", "822aafc4da19913571c6a5651627622995257ee3", "b7b02e4aa2ab399842fd07678e1bcecc2b002a77"));
set_progress(0.864316);
assert(apply_patch_check("/system/media/theme/default/icons", "35c9fbdc34545b967b2be1f34b3cbbda2f0e0f09", "78afd1464584020cc3e28b7927256ac1f212cafd"));
set_progress(0.869177);
assert(apply_patch_check("/system/media/theme/default/lockscreen", "dae31089e60aa6396dd7d7aa2f71be2cb7dbe626", "ec8fac142c2510be11370a1427f102af76ae1169"));
set_progress(0.877496);
assert(apply_patch_space(11035070));

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

ui_print("Removing unneeded files...");
delete("/data/preinstall_apps/MiuiVideo.apk",
       "/system/recovery.img");
show_progress(0.800000, 0);
ui_print("Patching system files...");
apply_patch("/data/preinstall_apps/VoiceAssist.apk", "-",
            a8757a495117138f6e81b9471cc208fd1f33c590, 11035082,
            b603699888b292ecb89758e43b5d0ce1f2e0b2ff, package_extract_file("patch/data/preinstall_apps/VoiceAssist.apk.p"));
set_progress(0.122245);
apply_patch("/system/app/AntiSpam.apk", "-",
            554d193f5fd30416ffb762ccc64f02bd1fa97158, 120717,
            8eecf85e36e38e20e703b391153d499dfa451e60, package_extract_file("patch/system/app/AntiSpam.apk.p"));
set_progress(0.123583);
apply_patch("/system/app/Backup.apk", "-",
            6728e6f6f7084b6ea9ddda0d9170c335fc1d60a6, 673618,
            583f5f95d1f19038bf2cde3a92f9b9a8c12d539b, package_extract_file("patch/system/app/Backup.apk.p"));
set_progress(0.131045);
apply_patch("/system/app/Browser.apk", "-",
            ed2fe06f610b3da996df0d07cc1ea9e3f2b7bb31, 5860618,
            e84b2dbb43359c57f74ac6d0cd78fda8025449cf, package_extract_file("patch/system/app/Browser.apk.p"));
set_progress(0.195968);
apply_patch("/system/app/BugReport.apk", "-",
            e1da8bf33fc6657fd22d74028d3f0e9884ee3995, 164764,
            9ad516c7fa93b75df7e7ef185c80d52cc623c01d, package_extract_file("patch/system/app/BugReport.apk.p"));
set_progress(0.197793);
apply_patch("/system/app/Calculator.apk", "-",
            e701f3cc3badebb5678f3dac93c1663b4a27eaeb, 920483,
            bd468444f5e9023723dcde6caa1da5e40f4dbb51, package_extract_file("patch/system/app/Calculator.apk.p"));
set_progress(0.207990);
apply_patch("/system/app/Calendar.apk", "-",
            ba34fd68ee61b3d28eb606bec2f6500cc74f99b4, 952240,
            772265964aaf3933cc17c114e6708959169bbe94, package_extract_file("patch/system/app/Calendar.apk.p"));
set_progress(0.218539);
apply_patch("/system/app/CalendarProvider.apk", "-",
            c12cf8c67667f5789850d66c5ebaee17a6542304, 161281,
            0dd73cb97199a4e869db8c101a8b632a254a2b3b, package_extract_file("patch/system/app/CalendarProvider.apk.p"));
set_progress(0.220326);
apply_patch("/system/app/CloudService.apk", "-",
            8d60e60dba43495ecae35c408cebe5946b7120a0, 258041,
            0109c2e6672fd8559265b1898185e17b5360c0e3, package_extract_file("patch/system/app/CloudService.apk.p"));
set_progress(0.223184);
apply_patch("/system/app/Contacts.apk", "-",
            a3797f02281f9447ef507a17218b9ee1711a4395, 3320182,
            cf1ba730b1b971f87eeb67ee2574ebc070e2fc34, package_extract_file("patch/system/app/Contacts.apk.p"));
set_progress(0.259965);
apply_patch("/system/app/ContactsProvider.apk", "-",
            25716ea8fbbb66601b42859d30e58287feba4484, 320045,
            a2ac5d9f9c637f1027cd610065972ba760546316, package_extract_file("patch/system/app/ContactsProvider.apk.p"));
set_progress(0.263510);
apply_patch("/system/app/DataHubProvider.apk", "-",
            ec3422d35293faa45f420f6296b32d1d4bee58d6, 11031,
            852728889b6afa1bb8400094aa31209e0aaaecf9, package_extract_file("patch/system/app/DataHubProvider.apk.p"));
set_progress(0.263633);
apply_patch("/system/app/DeskClock.apk", "-",
            922e99dd3af883ca65b6d0d33535436e918ce354, 868964,
            890d57072d1328c1266d92574a485d7be7f4c779, package_extract_file("patch/system/app/DeskClock.apk.p"));
set_progress(0.273259);
apply_patch("/system/app/DownloadProvider.apk", "-",
            c66b61fd83a90943dcc6e211c0f7c36703b75c6b, 129814,
            aa7f3065d4dc9ef9650747f2f2d95b3822b84f1e, package_extract_file("patch/system/app/DownloadProvider.apk.p"));
set_progress(0.274697);
apply_patch("/system/app/DownloadProviderUi.apk", "-",
            1052b67f7b7e4897f4c8d4d2dcec196d53c828cc, 99135,
            3cccc2b9cc991bc8a2b8c4e1d7b486318f9fb860, package_extract_file("patch/system/app/DownloadProviderUi.apk.p"));
set_progress(0.275795);
apply_patch("/system/app/FileExplorer.apk", "-",
            b466431f41880068c8a0302ff23442041f59bd42, 1739115,
            6463d59a99affdf596eba8545fbb604e0676834b, package_extract_file("patch/system/app/FileExplorer.apk.p"));
set_progress(0.295061);
apply_patch("/system/app/MediaProvider.apk", "-",
            e544bdf49ed76c447465a281d5f9ac53acb0700d, 68161,
            390e4723948ee4c191f48757346803257d265bb3, package_extract_file("patch/system/app/MediaProvider.apk.p"));
set_progress(0.295816);
apply_patch("/system/app/MiuiGallery.apk", "-",
            49c46cca4911c77a64ec506f20e9cd5ab923de55, 2010302,
            7b098ec5c98f4e73243f6fc41a5ad0762e62e11c, package_extract_file("patch/system/app/MiuiGallery.apk.p"));
set_progress(0.318086);
apply_patch("/system/app/MiuiHome.apk", "-",
            95f3f2fcb7681f9d3fe4653faffb2b114825affb, 3293491,
            413c4f7b1b353c7563412398f49f00b997642e5e, package_extract_file("patch/system/app/MiuiHome.apk.p"));
set_progress(0.354571);
apply_patch("/system/app/MiuiSystemUI.apk", "-",
            41a1942f2804cc4371332364bab373f8dc4f1e61, 1358116,
            381183ef99340ca658b3c79a04e1dea7e915e602, package_extract_file("patch/system/app/MiuiSystemUI.apk.p"));
set_progress(0.369616);
apply_patch("/system/app/MiuiVideoPlayer.apk", "-",
            a67dbf6e1cc4c9c0f9ce77c65c87fcd6aaab80e0, 985110,
            103d76c8e26aebfe8ae34c3853e68c06ae1c650d, package_extract_file("patch/system/app/MiuiVideoPlayer.apk.p"));
set_progress(0.380529);
apply_patch("/system/app/Mms.apk", "-",
            24a16981c2c03ce007e22e4a9d68afcb3682affb, 1741243,
            e42fb50031888370629cbea19a34f2310a983f36, package_extract_file("patch/system/app/Mms.apk.p"));
set_progress(0.399818);
apply_patch("/system/app/Music.apk", "-",
            147d009dc07488c8b94376e40dda280f6f428702, 3651036,
            346dd42abb5fd1f87eb7ab8aef8ec3fe51f7cb3a, package_extract_file("patch/system/app/Music.apk.p"));
set_progress(0.440264);
apply_patch("/system/app/Notes.apk", "-",
            83312bb7904291e3332c3c4305b5decd891fa254, 2642373,
            691d05aa891a13c343ffa293f1cef6d6e8c9f2cb, package_extract_file("patch/system/app/Notes.apk.p"));
set_progress(0.469536);
apply_patch("/system/app/PackageInstaller.apk", "-",
            4d33f92dc40660c1279541f21f438cd224c77d98, 151710,
            fa279d87a46d8e87b4ae24089e04b7b1949b7761, package_extract_file("patch/system/app/PackageInstaller.apk.p"));
set_progress(0.471216);
apply_patch("/system/app/Phone.apk", "-",
            45c64d4f3e1d73f87ce9dc1f9e4b4d20dbbe3ba8, 2086947,
            4929043576444c1f6c36134b223a9b058f688185, package_extract_file("patch/system/app/Phone.apk.p"));
set_progress(0.494335);
apply_patch("/system/app/Provision.apk", "-",
            6dabb3cfa25b8a52fa4b70f6222b7149c6bdb759, 656912,
            a598c7a04ca05f8334854190a86d1ed9911cbda3, package_extract_file("patch/system/app/Provision.apk.p"));
set_progress(0.501613);
apply_patch("/system/app/QuickSearchBox.apk", "-",
            f05f89853ecc4c640302086d2c4403ef1e95dbc9, 389123,
            7baea2017c1924494402c90d88de336fa047b87d, package_extract_file("patch/system/app/QuickSearchBox.apk.p"));
set_progress(0.505923);
apply_patch("/system/app/Settings.apk", "-",
            84789a419ad43d3b9849c006a84ed42bd31e2e90, 4725409,
            afca130c1b4e7fe0d5a3c5c7a068fbe3b8ab375a, package_extract_file("patch/system/app/Settings.apk.p"));
set_progress(0.558271);
apply_patch("/system/app/SettingsProvider.apk", "-",
            d85b7ebd570256a60d5c2d933c3711c9ed385228, 44650,
            d9846d394fca18a832d0ffae14cf226447c92a7d, package_extract_file("patch/system/app/SettingsProvider.apk.p"));
set_progress(0.558765);
apply_patch("/system/app/SoundRecorder.apk", "-",
            b7adc00855b9a5a133ffc84dce8e6d6e6a1abe69, 1594227,
            ef6160eb75ad655f3323610f0adc03a139f31d0a, package_extract_file("patch/system/app/SoundRecorder.apk.p"));
set_progress(0.576426);
apply_patch("/system/app/TelephonyProvider.apk", "-",
            a8ff23c0a63724b2ee580f82cf8f03e4f8e819f6, 191580,
            0161607964713b172af25344484a4bcc0cd85fb2, package_extract_file("patch/system/app/TelephonyProvider.apk.p"));
set_progress(0.578548);
apply_patch("/system/app/ThemeManager.apk", "-",
            97e8f8812100e01419fb9c7a0f0422fcfd0ae83d, 906899,
            42be384d5487f5a601c2819b9c992fb05615d1c5, package_extract_file("patch/system/app/ThemeManager.apk.p"));
set_progress(0.588595);
apply_patch("/system/app/Transfer.apk", "-",
            da3f4c0359bf99ece1b5099709072db11f3b44c3, 831809,
            1840e88a73866deac3028f0f7c7e39652f3ca241, package_extract_file("patch/system/app/Transfer.apk.p"));
set_progress(0.597810);
apply_patch("/system/app/Updater.apk", "-",
            4530faff2eedf61583859091a6e0c4643ff1e451, 1935491,
            c5643b65e0aa2b9c0a075fd70d041f7f213ce2ea, package_extract_file("patch/system/app/Updater.apk.p"));
set_progress(0.619251);
apply_patch("/system/app/VpnDialogs.apk", "-",
            e8ef0c7db01ec8f837adb8055a3c619c39ec48b8, 12402,
            825f4fc7e001a73c2239835837313511220187b6, package_extract_file("patch/system/app/VpnDialogs.apk.p"));
set_progress(0.619388);
apply_patch("/system/app/Weather.apk", "-",
            afeef24a7491d020a50a788e81004d0e37449648, 1137682,
            ea4484080db79f3f2ffc459a1454fd57196dead1, package_extract_file("patch/system/app/Weather.apk.p"));
set_progress(0.631991);
apply_patch("/system/app/WeatherProvider.apk", "-",
            184f6ddc6e84e142961f668adf94cec0801a5840, 9403,
            d3cea97a2da70332b7f3a49aeb025e0a1b2da784, package_extract_file("patch/system/app/WeatherProvider.apk.p"));
set_progress(0.632095);
apply_patch("/system/app/XiaomiServiceFramework.apk", "-",
            0803c34a6c8b362287c08e3c096e269916667e09, 2909879,
            c8ecf3fd7c2f07040e5cb8b6439d26b3bfe391ac, package_extract_file("patch/system/app/XiaomiServiceFramework.apk.p"));
set_progress(0.664331);
apply_patch("/system/app/YellowPage.apk", "-",
            eef560dc69197f357e2011380a8b800193c6da03, 599987,
            c0ef50a2061e6d3f86bc140084d981f3636a56c0, package_extract_file("patch/system/app/YellowPage.apk.p"));
set_progress(0.670977);
apply_patch("/system/framework/android.policy.jar", "-",
            4d43cda072ed0e4dd29722627e0cd544979cf7c9, 268075,
            e0721b147933c4776e1c2c275684409a573d376c, package_extract_file("patch/system/framework/android.policy.jar.p"));
set_progress(0.673947);
apply_patch("/system/framework/framework-miui-res.apk", "-",
            a9bf644993efd1f96db17556ff58d2abd20a3323, 8987038,
            b231c6c105a086de35ea82e63d20a1c5b885f03e, package_extract_file("patch/system/framework/framework-miui-res.apk.p"));
set_progress(0.773504);
apply_patch("/system/framework/framework-res.apk", "-",
            6fafc4c5ff1448c56d6c2b611a25cf9d47ea7a21, 7605944,
            fdf8c712834b6144a46c61a8f6bddd2e52e6af8c, package_extract_file("patch/system/framework/framework-res.apk.p"));
set_progress(0.857762);
apply_patch("/system/framework/framework.jar", "-",
            5013f1934c12e1ef435a9d8a0d725cedd2e52228, 4482329,
            ba5f0cbb22c202c56126c2118573c3bc051f7a70, package_extract_file("patch/system/framework/framework.jar.p"));
set_progress(0.907417);
apply_patch("/system/framework/framework_ext.jar", "-",
            a453449c6fafb7716d56a0df243dbb212d2e1cd2, 1529762,
            c58857de7c00845c923aba3a0a7f899d129c6c48, package_extract_file("patch/system/framework/framework_ext.jar.p"));
set_progress(0.924363);
apply_patch("/system/framework/services.jar", "-",
            4d38070f6534aa7c551b1eda96c680f1e0f13857, 1153141,
            4006ae74c06fdeb9cbacd7712a30693225212cfa, package_extract_file("patch/system/framework/services.jar.p"));
set_progress(0.937138);
apply_patch("/system/lib/libffmpeg_xm.so", "-",
            47d79453c3a8f7fcff8cf9c7d400bafb30854ef2, 3840396,
            3f8a3fb54cb169cd121beceeb35531567ae06a44, package_extract_file("patch/system/lib/libffmpeg_xm.so.p"));
set_progress(0.979681);
apply_patch("/system/media/theme/default/alarmscreen", "-",
            822aafc4da19913571c6a5651627622995257ee3, 638705,
            b7b02e4aa2ab399842fd07678e1bcecc2b002a77, package_extract_file("patch/system/media/theme/default/alarmscreen.p"));
set_progress(0.986757);
apply_patch("/system/media/theme/default/icons", "-",
            35c9fbdc34545b967b2be1f34b3cbbda2f0e0f09, 437835,
            78afd1464584020cc3e28b7927256ac1f212cafd, package_extract_file("patch/system/media/theme/default/icons.p"));
set_progress(0.991607);
apply_patch("/system/media/theme/default/lockscreen", "-",
            dae31089e60aa6396dd7d7aa2f71be2cb7dbe626, 749325,
            ec8fac142c2510be11370a1427f102af76ae1169, package_extract_file("patch/system/media/theme/default/lockscreen.p"));
set_progress(0.999908);
show_progress(0.100000, 10);
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, 3003, 02750, "/system/bin/netcfg");
set_perm(0, 3004, 02755, "/system/bin/ping");
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, 0, 0755, 0755, "/system/xbin");
set_perm(0, 2000, 0755, "/system/xbin");
set_perm(0, 2000, 0755, "/system/xbin/alljoyn-daemon");
set_perm(0, 0, 06755, "/system/xbin/busybox");
set_perm(0, 2000, 0755, "/system/xbin/dexdump");
set_perm(0, 0, 0644, "/system/xbin/getfilesysteminfo");
set_perm(0, 2000, 0755, "/system/xbin/hcidump");
set_perm(0, 2000, 0755, "/system/xbin/qlogd");
set_perm(0, 1000, 06750, "/system/xbin/shelld");
set_perm(0, 2000, 0755, "/system/xbin/showmap");
set_perm(0, 0, 06755, "/system/xbin/su");
ui_print("Patching remaining system files...");
apply_patch("/system/build.prop", "-",
            4d17b7e0eb06b4d74333c88b5dfbed0d664431b6, 8316,
            8ef0d0073a3effd936868244a20280ade0b35841, 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");
