mount("ext4", "EMMC", "/dev/block/platform/msm_sdcc.1/by-name/system", "/system");
file_getprop("/system/build.prop", "ro.build.fingerprint") == "lge/platina/dory:4.4W/KMV78V/1259044:user/release-keys" ||
    file_getprop("/system/build.prop", "ro.build.fingerprint") == "lge/platina/dory:4.4W/KMV78Y/1304082:user/release-keys" ||
    abort("Package expects build fingerprint of lge/platina/dory:4.4W/KMV78V/1259044:user/release-keys or lge/platina/dory:4.4W/KMV78Y/1304082:user/release-keys; this device has " + getprop("ro.build.fingerprint") + ".");
getprop("ro.product.device") == "dory" || abort("This package is for \"dory\" devices; this is a \"" + getprop("ro.product.device") + "\".");
ui_print("Verifying current system...");
show_progress(0.100000, 0);
apply_patch_check("/system/app/Bluetooth.apk", "3f2a2595e04351d7067d3794d15490277e51be95", "97948a897ee1d7d7f5d17623121eb40e2febc0f5") || abort("\"/system/app/Bluetooth.apk\" has unexpected contents.");
set_progress(0.005976);
apply_patch_check("/system/app/CertInstaller.apk", "7db26e41845137334d1e5a018af24389ed972f50", "ee8960ddd6a059a6139729e3777001ff49dce074") || abort("\"/system/app/CertInstaller.apk\" has unexpected contents.");
set_progress(0.007676);
apply_patch_check("/system/app/DeskClockMicroApp.apk", "bd59dd1e955f7dfdf936abf8fca55e663537bd95", "dde923b3811e69a382ed2c6705df65716b88bd3e") || abort("\"/system/app/DeskClockMicroApp.apk\" has unexpected contents.");
set_progress(0.022458);
apply_patch_check("/system/app/UserDictionaryProvider.apk", "8d05efb781f47beaa0ffb4f33095e0fb0a13a6f9", "97e821831789b8103351260ecfcc5d067dd1f904") || abort("\"/system/app/UserDictionaryProvider.apk\" has unexpected contents.");
set_progress(0.022500);
apply_patch_check("/system/bin/debuggerd", "e2693002aac389ec86f9291b2d0565687c48f3e6", "8587fa67fd1b3fe88c33b193c6760511715fe6c7") || abort("\"/system/bin/debuggerd\" has unexpected contents.");
set_progress(0.022806);
apply_patch_check("/system/build.prop", "1581072e21f91500587bb018d237eae933ba9b22", "391656b6cdac7986a5aaab270b399c6314a0ea78") || abort("\"/system/build.prop\" has unexpected contents.");
set_progress(0.022824);
apply_patch_check("/system/etc/NOTICE.html.gz", "ecafc91ed63fb29d95b07da7199ea7e65833aac2", "b35bcf2e1b6ba407844b716f286ed9b743c459b1") || abort("\"/system/etc/NOTICE.html.gz\" has unexpected contents.");
set_progress(0.024061);
apply_patch_check("/system/etc/recovery-resource.dat", "c7208868f3ac905c402774e68d0a7bb664908902", "9ffd83acf6e876b083d1f032b7093b5fa1acccec") || abort("\"/system/etc/recovery-resource.dat\" has unexpected contents.");
set_progress(0.029957);
apply_patch_check("/system/etc/security/otacerts.zip", "94527bc8ac38fc2fb92ac099d9478eb9ef7be196", "33f81edbd5394a235113426c601b23fbefa3f49a") || abort("\"/system/etc/security/otacerts.zip\" has unexpected contents.");
set_progress(0.029975);
apply_patch_check("/system/framework/am.jar", "56d774409e8f8b62c9ba6280e3fc71d876db00d8", "5bffcb26c1eec3b1d61e6a10ad53c92770db8537") || abort("\"/system/framework/am.jar\" has unexpected contents.");
set_progress(0.029979);
apply_patch_check("/system/framework/am.odex", "fa69c46a6d44f28d2843f9364611b36884ea3208", "61b281c24310994032358d043abe3fed838fd0b9") || abort("\"/system/framework/am.odex\" has unexpected contents.");
set_progress(0.030557);
apply_patch_check("/system/framework/android.policy.jar", "f1d43b5813f0f02599a3a02cbd53285bda070a7f", "7e035aebd4615d21c9c358957bff8b81d83bb4fc") || abort("\"/system/framework/android.policy.jar\" has unexpected contents.");
set_progress(0.030560);
apply_patch_check("/system/framework/android.policy.odex", "ef1c31497d54f20e3b9883f15bae209b32a0f135", "863814053dae039f6bfb89a225ea1dc744f4cd97") || abort("\"/system/framework/android.policy.odex\" has unexpected contents.");
set_progress(0.033661);
apply_patch_check("/system/framework/android.test.runner.jar", "f3eaa9e978d1ae848dbcefbfba94eaad4a50a012", "4760b5b3aeba655fb5adb0136446bd96b8eac5d9") || abort("\"/system/framework/android.test.runner.jar\" has unexpected contents.");
set_progress(0.033665);
apply_patch_check("/system/framework/android.test.runner.odex", "9518fd4cac702e20dc73b3fba6f3850844b77497", "4e652bc8f369a72e44ebedc9bc3506617ebb5c6c") || abort("\"/system/framework/android.test.runner.odex\" has unexpected contents.");
set_progress(0.035911);
apply_patch_check("/system/framework/apache-xml.jar", "7d6b276b80ef03600632ab2691ff8addff0c280e", "0a8d30872d004943aabd0738465ac5ce3a9c07d0") || abort("\"/system/framework/apache-xml.jar\" has unexpected contents.");
set_progress(0.036125);
apply_patch_check("/system/framework/apache-xml.odex", "aef9dfc1c57ed7c26cc6a1f237618321dc2aa344", "94292e7fd6604fb1af1e818dfb331e94042ee23e") || abort("\"/system/framework/apache-xml.odex\" has unexpected contents.");
set_progress(0.052437);
apply_patch_check("/system/framework/bmgr.jar", "56d774409e8f8b62c9ba6280e3fc71d876db00d8", "1fb5b6109feea379f3e982579f22d7a67eae66a2") || abort("\"/system/framework/bmgr.jar\" has unexpected contents.");
set_progress(0.052441);
apply_patch_check("/system/framework/bmgr.odex", "90405e7b2819410020a000c52e6cd067e340b850", "220c260cbfb57fd6034e27e1184a8b41813440a2") || abort("\"/system/framework/bmgr.odex\" has unexpected contents.");
set_progress(0.052621);
apply_patch_check("/system/framework/bouncycastle.jar", "59fbc0b18d9714e98f50aed0c976ec32a6444f3d", "13e47da83a88baabca0782cab1ca5db8ae888f92") || abort("\"/system/framework/bouncycastle.jar\" has unexpected contents.");
set_progress(0.052625);
apply_patch_check("/system/framework/bouncycastle.odex", "39572823dd27b3685177553ae4d59d89f58ce909", "e8e3224b2272acb942ca4f2158780fd32aeba089") || abort("\"/system/framework/bouncycastle.odex\" has unexpected contents.");
set_progress(0.066717);
apply_patch_check("/system/framework/bu.jar", "56d774409e8f8b62c9ba6280e3fc71d876db00d8", "1fb5b6109feea379f3e982579f22d7a67eae66a2") || abort("\"/system/framework/bu.jar\" has unexpected contents.");
set_progress(0.066721);
apply_patch_check("/system/framework/bu.odex", "b408833f495ec22ecfccfeb9fd6c263143b11b6e", "1b7d1df96fcbca023c6b480bbf312ec4f472ccf2") || abort("\"/system/framework/bu.odex\" has unexpected contents.");
set_progress(0.066784);
apply_patch_check("/system/framework/com.android.location.provider.jar", "56d774409e8f8b62c9ba6280e3fc71d876db00d8", "1fb5b6109feea379f3e982579f22d7a67eae66a2") || abort("\"/system/framework/com.android.location.provider.jar\" has unexpected contents.");
set_progress(0.066788);
apply_patch_check("/system/framework/com.android.location.provider.odex", "4306af1151ea423eae367b888da89cfea0dccd55", "bbfbcca777637c09f86691d897cdd15607a3ebdd") || abort("\"/system/framework/com.android.location.provider.odex\" has unexpected contents.");
set_progress(0.067046);
apply_patch_check("/system/framework/conscrypt.jar", "ab1fbb135be127e368b2476dd8017c759c4cb6be", "55a2594e32eefbb13c70c204a7e8e1c4685c118b") || abort("\"/system/framework/conscrypt.jar\" has unexpected contents.");
set_progress(0.067050);
apply_patch_check("/system/framework/conscrypt.odex", "49124540aaaff8061a409c73ef47d26a70a41dc1", "33d726d0eb5c92624b1585b5826e15a278d99d11") || abort("\"/system/framework/conscrypt.odex\" has unexpected contents.");
set_progress(0.071358);
apply_patch_check("/system/framework/content.jar", "56d774409e8f8b62c9ba6280e3fc71d876db00d8", "1fb5b6109feea379f3e982579f22d7a67eae66a2") || abort("\"/system/framework/content.jar\" has unexpected contents.");
set_progress(0.071362);
apply_patch_check("/system/framework/content.odex", "c44b0273e81034b0a39380eb34288b308c1ff215", "6b65f1451907ff747a4bfa3d023dbbf9f98d9afd") || abort("\"/system/framework/content.odex\" has unexpected contents.");
set_progress(0.071573);
apply_patch_check("/system/framework/core-junit.jar", "0371a0715d388d30157f0fb15b50e240c82e107a", "2e4e123fed87b9e45ae8dd94cc5338a937317da5") || abort("\"/system/framework/core-junit.jar\" has unexpected contents.");
set_progress(0.071577);
apply_patch_check("/system/framework/core-junit.odex", "95160fc479aed8fd56a176bc136ad8816d29540b", "2bc65ba0f2902c9e89f655e6e560a0979e48d221") || abort("\"/system/framework/core-junit.odex\" has unexpected contents.");
set_progress(0.071904);
apply_patch_check("/system/framework/core.jar", "7a791a978e2c5b31073918a711b747c7fa25f845", "a77773e3ba7e736919e5771b46035d0915190566") || abort("\"/system/framework/core.jar\" has unexpected contents.");
set_progress(0.071941);
apply_patch_check("/system/framework/core.odex", "338745c7d2f86c1dd8733f9da366dd8d5118da96", "b0fe6c97d84dc3dfcbd222124ed28ba8616e4c43") || abort("\"/system/framework/core.odex\" has unexpected contents.");
set_progress(0.110987);
apply_patch_check("/system/framework/ext.jar", "36068802964cefd11710f2c5ec970493811ae94a", "e09fbf8b8eb9630e07d9d64d45259fb483d904ee") || abort("\"/system/framework/ext.jar\" has unexpected contents.");
set_progress(0.118875);
apply_patch_check("/system/framework/ext.odex", "4dde1e0fd74ab97a9ec9b8f820a0a14cc5dc33f8", "ed3819987d8ca4eb47878900d47f6aaef202daf5") || abort("\"/system/framework/ext.odex\" has unexpected contents.");
set_progress(0.136745);
apply_patch_check("/system/framework/framework-res.apk", "6d1a964550ab52150798bce52f0f21181d6ca1bf", "fc192d3a305d06ad2a15698ce3a0adf34a753ccb") || abort("\"/system/framework/framework-res.apk\" has unexpected contents.");
set_progress(0.273917);
apply_patch_check("/system/framework/framework.jar", "01b148201c92a2a86d8345cb1624e3c4de1477df", "8600e292eb3ee097b2063fd52c95dbd28dc5bb3c") || abort("\"/system/framework/framework.jar\" has unexpected contents.");
set_progress(0.274036);
apply_patch_check("/system/framework/framework.odex", "43f018869f6ac9c2886223c2ef1da6cc5f18f3ae", "f805434d35b532c807fd351043c28815d19f8272") || abort("\"/system/framework/framework.odex\" has unexpected contents.");
set_progress(0.388771);
apply_patch_check("/system/framework/framework2.jar", "0aa411aa08cc3dc79d785ac84b30f33f1b7a03cb", "5bffcb26c1eec3b1d61e6a10ad53c92770db8537") || abort("\"/system/framework/framework2.jar\" has unexpected contents.");
set_progress(0.388774);
apply_patch_check("/system/framework/framework2.odex", "d84ac1050c093dc09245a0e4ad70896f117f4e22", "a191be2ee08f4a9e6220c34a86d950dcc941f864") || abort("\"/system/framework/framework2.odex\" has unexpected contents.");
set_progress(0.407704);
apply_patch_check("/system/framework/ime.jar", "56d774409e8f8b62c9ba6280e3fc71d876db00d8", "1fb5b6109feea379f3e982579f22d7a67eae66a2") || abort("\"/system/framework/ime.jar\" has unexpected contents.");
set_progress(0.407708);
apply_patch_check("/system/framework/ime.odex", "8d4690218bc1902694bfaa07e94b40295a8a315b", "2a203d7c3d44061c304f0c5bac51a63240a61905") || abort("\"/system/framework/ime.odex\" has unexpected contents.");
set_progress(0.407791);
apply_patch_check("/system/framework/input.jar", "56d774409e8f8b62c9ba6280e3fc71d876db00d8", "1fb5b6109feea379f3e982579f22d7a67eae66a2") || abort("\"/system/framework/input.jar\" has unexpected contents.");
set_progress(0.407795);
apply_patch_check("/system/framework/input.odex", "83c0e5d51d511d967b8ea0ff1404b12738884891", "a1ae8dc10338208b19eab5632861342dca37aa9e") || abort("\"/system/framework/input.odex\" has unexpected contents.");
set_progress(0.407905);
apply_patch_check("/system/framework/javax.obex.jar", "0aa411aa08cc3dc79d785ac84b30f33f1b7a03cb", "ca22c0fcdbf0922608a849decdad49bb1eb0957c") || abort("\"/system/framework/javax.obex.jar\" has unexpected contents.");
set_progress(0.407909);
apply_patch_check("/system/framework/javax.obex.odex", "f575bba85c704552ce449ecb607922681e54f94e", "dc8135abf4b07ff2f323f1831f48cb4164888ed6") || abort("\"/system/framework/javax.obex.odex\" has unexpected contents.");
set_progress(0.408606);
apply_patch_check("/system/framework/media_cmd.jar", "56d774409e8f8b62c9ba6280e3fc71d876db00d8", "1fb5b6109feea379f3e982579f22d7a67eae66a2") || abort("\"/system/framework/media_cmd.jar\" has unexpected contents.");
set_progress(0.408610);
apply_patch_check("/system/framework/media_cmd.odex", "7dba9dbc03f2ecde0dac3ee52a67472afe9ad314", "2c77daf76519f4bc412703c3661f16381af46100") || abort("\"/system/framework/media_cmd.odex\" has unexpected contents.");
set_progress(0.408717);
apply_patch_check("/system/framework/mms-common.jar", "a27a8076b36454f8f725f6f825e93ab98b46e8aa", "a0f83edf7475da3b8271d023eb3df23ff2662ec7") || abort("\"/system/framework/mms-common.jar\" has unexpected contents.");
set_progress(0.408721);
apply_patch_check("/system/framework/mms-common.odex", "876133dc8321953a429027000d50bd86e221fa96", "be85e4b06628510a6dd7db5678bc0bc2d4d68768") || abort("\"/system/framework/mms-common.odex\" has unexpected contents.");
set_progress(0.410268);
apply_patch_check("/system/framework/monkey.jar", "46529a009190c7600c6c7492d2231003835159f5", "bc72a71f975d49a578f1c87a2c4ebcf7f455c894") || abort("\"/system/framework/monkey.jar\" has unexpected contents.");
set_progress(0.410271);
apply_patch_check("/system/framework/monkey.odex", "bc2cb6c494fe3006c98b100b5d6dd12b923726d0", "a4433e7d3ec65f8afe35b11e004f308f05c3294b") || abort("\"/system/framework/monkey.odex\" has unexpected contents.");
set_progress(0.411695);
apply_patch_check("/system/framework/nullwebview.jar", "56d774409e8f8b62c9ba6280e3fc71d876db00d8", "7e035aebd4615d21c9c358957bff8b81d83bb4fc") || abort("\"/system/framework/nullwebview.jar\" has unexpected contents.");
set_progress(0.411699);
apply_patch_check("/system/framework/nullwebview.odex", "d63b83ebe72d98975737c7f274797989b2aa4027", "6afce4c1233ef3af27e51488de5971c4a3847f96") || abort("\"/system/framework/nullwebview.odex\" has unexpected contents.");
set_progress(0.411731);
apply_patch_check("/system/framework/okhttp.jar", "ab1fbb135be127e368b2476dd8017c759c4cb6be", "55a2594e32eefbb13c70c204a7e8e1c4685c118b") || abort("\"/system/framework/okhttp.jar\" has unexpected contents.");
set_progress(0.411735);
apply_patch_check("/system/framework/okhttp.odex", "10190feca6b029db30199634fe97daa5231fe735", "9de9d1ab5a1a28ee69a8b7274c988253484b74a2") || abort("\"/system/framework/okhttp.odex\" has unexpected contents.");
set_progress(0.414560);
apply_patch_check("/system/framework/pm.jar", "6370a4da7f7eebaaa9f0f8aa6ce6074028267d9b", "5bffcb26c1eec3b1d61e6a10ad53c92770db8537") || abort("\"/system/framework/pm.jar\" has unexpected contents.");
set_progress(0.414564);
apply_patch_check("/system/framework/pm.odex", "a90a7ed4af5a48ee2b93b67f5664c762ef16fa68", "ac551a83e57189caa9dfdfb1720629648a8ec6ee") || abort("\"/system/framework/pm.odex\" has unexpected contents.");
set_progress(0.415056);
apply_patch_check("/system/framework/services.jar", "fb1ef3cebb60371123714508ad3861362632de34", "00e4a6314946256ef973874b6e3f07b00a68a8bd") || abort("\"/system/framework/services.jar\" has unexpected contents.");
set_progress(0.415060);
apply_patch_check("/system/framework/services.odex", "7d5de5fe3a84b6dd91c93b136d0f65116080251d", "9509bf0d51e2ec0743f8858afbeca55e06ee7925") || abort("\"/system/framework/services.odex\" has unexpected contents.");
set_progress(0.457360);
apply_patch_check("/system/framework/settings.jar", "29602e7acce03183157ef4ac8f58c8ea2bbc119c", "1fb5b6109feea379f3e982579f22d7a67eae66a2") || abort("\"/system/framework/settings.jar\" has unexpected contents.");
set_progress(0.457364);
apply_patch_check("/system/framework/settings.odex", "f3f5279bbcda0ab7ab01271d86163e02a50c82ce", "105a7b6596e94b800494408733e76982ab5af69b") || abort("\"/system/framework/settings.odex\" has unexpected contents.");
set_progress(0.457463);
apply_patch_check("/system/framework/svc.jar", "5577e7107970576e93998595e7ca7199ec42ef8c", "29fbe8cc68c0ad2c4a47a32fc484948e488b1a40") || abort("\"/system/framework/svc.jar\" has unexpected contents.");
set_progress(0.457466);
apply_patch_check("/system/framework/svc.odex", "ab2941095a80c5e08f4f4ac11ea0954942253aa2", "675b48bb38a86a6359bfd089beb394349f44a01c") || abort("\"/system/framework/svc.odex\" has unexpected contents.");
set_progress(0.457592);
apply_patch_check("/system/framework/telephony-common.jar", "56e8bcacb6a78ed9ef16fdd4d84d7257729045ee", "5643e5fec80238650e395d0fccc9ae131d599590") || abort("\"/system/framework/telephony-common.jar\" has unexpected contents.");
set_progress(0.457596);
apply_patch_check("/system/framework/telephony-common.odex", "3c5dd88de28e378f54a322d99c11d395cb99c938", "3a6796c157d5061600f04896fab15f5fd911e356") || abort("\"/system/framework/telephony-common.odex\" has unexpected contents.");
set_progress(0.472939);
apply_patch_check("/system/framework/uiautomator.jar", "5e3963f9674f85196f34a3532c997b15a45f2495", "c6fe18a4f1a34dc1298d20fdaced2f5e69eb7f60") || abort("\"/system/framework/uiautomator.jar\" has unexpected contents.");
set_progress(0.472942);
apply_patch_check("/system/framework/uiautomator.odex", "40947bea6593307b46ff11907c8099f669216f4f", "e8babf85b49c6188c16def9086cb891bdce41394") || abort("\"/system/framework/uiautomator.odex\" has unexpected contents.");
set_progress(0.474302);
apply_patch_check("/system/framework/voip-common.jar", "0aa411aa08cc3dc79d785ac84b30f33f1b7a03cb", "bc72a71f975d49a578f1c87a2c4ebcf7f455c894") || abort("\"/system/framework/voip-common.jar\" has unexpected contents.");
set_progress(0.474306);
apply_patch_check("/system/framework/voip-common.odex", "d3ed8491474517cef45dc4405dbb017d0994d658", "a3f22edcbb856cf4a25877c9533e50b68b1e4e62") || abort("\"/system/framework/voip-common.odex\" has unexpected contents.");
set_progress(0.476339);
apply_patch_check("/system/framework/wm.jar", "5577e7107970576e93998595e7ca7199ec42ef8c", "29fbe8cc68c0ad2c4a47a32fc484948e488b1a40") || abort("\"/system/framework/wm.jar\" has unexpected contents.");
set_progress(0.476342);
apply_patch_check("/system/framework/wm.odex", "e0adf19a82bda79554e95bbfdc23b4bcad586664", "8dc5a91d5bee223402f390c29a9176104251310f") || abort("\"/system/framework/wm.odex\" has unexpected contents.");
set_progress(0.476424);
apply_patch_check("/system/lib/libLLVM.so", "607c47779b6637c99d83cfc71bfb86f1411e027a", "2dfc112dc0dbc9453fc720c2c4b22f9c060c7415") || abort("\"/system/lib/libLLVM.so\" has unexpected contents.");
set_progress(0.576095);
apply_patch_check("/system/lib/libbcc.sha1.so", "f2ee82e718947153681e8399f6297c8cda9745f4", "0bd9a1ce6f437da3a98aedb24ef8b06e4843f813") || abort("\"/system/lib/libbcc.sha1.so\" has unexpected contents.");
set_progress(0.576156);
apply_patch_check("/system/lib/libbcc.so", "e252f8ac545d5a77cb2406e5f9d6df4b5efda266", "98462f275201a2ee0958b19fdd29307113fa8a49") || abort("\"/system/lib/libbcc.so\" has unexpected contents.");
set_progress(0.577722);
apply_patch_check("/system/lib/libmdnssd.so", "17a1ed062851c77e1f54cfa3155db901cea2edf2", "1d422f4a8cabfb8faf05195ca3de28eadc458c98") || abort("\"/system/lib/libmdnssd.so\" has unexpected contents.");
set_progress(0.577979);
apply_patch_check("/system/priv-app/BackupRestoreConfirmation.apk", "15dfbd5f10ebed2e75575fb76e5d781a4e93c252", "e6198a55e24beb21ea4f0a94a45b2895dbf3a996") || abort("\"/system/priv-app/BackupRestoreConfirmation.apk\" has unexpected contents.");
set_progress(0.579523);
apply_patch_check("/system/priv-app/CalendarProvider.apk", "2e4b476d92f97480ac6a918da2faadfa3a2476b4", "dac61635083f7184c3598ca5f3e5b6795a4061db") || abort("\"/system/priv-app/CalendarProvider.apk\" has unexpected contents.");
set_progress(0.580573);
apply_patch_check("/system/priv-app/ClockworkBugReportSender.apk", "43491ef836cc4fd9eaa1888a7cd6dc120d360686", "6e633aebc8c06dcb3029839e5af35a0c45f9eca8") || abort("\"/system/priv-app/ClockworkBugReportSender.apk\" has unexpected contents.");
set_progress(0.583376);
apply_patch_check("/system/priv-app/ClockworkHomeGoogle.apk", "2fb4c14c4f712a5ccbca10d29d5478fd2693a464", "3e652be76cb8d5370631e97a5a79cb6d012dca9c") || abort("\"/system/priv-app/ClockworkHomeGoogle.apk\" has unexpected contents.");
set_progress(0.803679);
apply_patch_check("/system/priv-app/ClockworkHomeGoogle.odex", "d60b557562c54000fb6f55670f0283f5a650361b", "2de679a9974689fcd28524f35dea7198712497a3") || abort("\"/system/priv-app/ClockworkHomeGoogle.odex\" has unexpected contents.");
set_progress(0.851005);
apply_patch_check("/system/priv-app/ClockworkPackageInstaller.apk", "909b0e7c92e9e374c8812db4f7c05342057a2e95", "f285243d1647d897edc6bed96ae71120c6c4a894") || abort("\"/system/priv-app/ClockworkPackageInstaller.apk\" has unexpected contents.");
set_progress(0.853670);
apply_patch_check("/system/priv-app/ClockworkPhotosWatchFace.apk", "c5e3db51f5f940b7815c735e001467e1d621daa6", "41e557c816eb266f1785c4d3f6abd3500fcf572b") || abort("\"/system/priv-app/ClockworkPhotosWatchFace.apk\" has unexpected contents.");
set_progress(0.883485);
apply_patch_check("/system/priv-app/ClockworkSettings.apk", "e53e539a9fbe7638b345c1521bc47a6aca3946e9", "fb3ec80b97219a7e3436fcebb7088d21305fc464") || abort("\"/system/priv-app/ClockworkSettings.apk\" has unexpected contents.");
set_progress(0.887655);
apply_patch_check("/system/priv-app/ClockworkSetup.apk", "b0664bac975bc5645a5d4812828118eb434327e1", "03566b5bc2f4059dd0812759e065d81f39cfe764") || abort("\"/system/priv-app/ClockworkSetup.apk\" has unexpected contents.");
set_progress(0.891017);
apply_patch_check("/system/priv-app/ContactsProvider.apk", "ec49619b1dad9f3f612e964726bafe720bac887b", "b4b1d110cbf08b3a2a96f650a8c1b9f41ca000c3") || abort("\"/system/priv-app/ContactsProvider.apk\" has unexpected contents.");
set_progress(0.892336);
apply_patch_check("/system/priv-app/DefaultContainerService.apk", "e1dc7e0938d007257df4135e0d9825996eaeed20", "a5889c88e28787743b8db9c767f8c0aa0c6850a0") || abort("\"/system/priv-app/DefaultContainerService.apk\" has unexpected contents.");
set_progress(0.892453);
apply_patch_check("/system/priv-app/DownloadProvider.apk", "d30c937e0d0c295f9c9225ae16dc350320d24007", "24197152ec70b32ecc362a3f1db710968a86db9d") || abort("\"/system/priv-app/DownloadProvider.apk\" has unexpected contents.");
set_progress(0.896181);
apply_patch_check("/system/priv-app/FusedLocation.apk", "4b4df4fb4afaf902a2b98eb28f435ed6283c2890", "d20dbb923c37b22a8ec6474997766934ef601b54") || abort("\"/system/priv-app/FusedLocation.apk\" has unexpected contents.");
set_progress(0.896283);
apply_patch_check("/system/priv-app/GoogleServicesFramework.apk", "6f205891b24c0f25cd0fb11d9d11a6f97efeeb51", "03dfcf2a582b8226eff71a1507b61f5c39b1a101") || abort("\"/system/priv-app/GoogleServicesFramework.apk\" has unexpected contents.");
set_progress(0.916559);
apply_patch_check("/system/priv-app/InputDevices.apk", "306c6534c062e881a3e382d8ddb66cc84e34b836", "656386163c52d7c9e5ff40aa67f576b635425b4d") || abort("\"/system/priv-app/InputDevices.apk\" has unexpected contents.");
set_progress(0.918121);
apply_patch_check("/system/priv-app/MediaProvider.apk", "2c5213c77f3fbec9d20af63209627496ed89d84e", "0e6387bd38aa4435fb984dab0e8595d0c9c72d8a") || abort("\"/system/priv-app/MediaProvider.apk\" has unexpected contents.");
set_progress(0.918835);
apply_patch_check("/system/priv-app/MinModWatchfaces.apk", "de76721abcbba7ea8cc3886a0c9b9d477df31202", "a2a0a55f32b0308c4fc5f086f0b3d00863b8500e") || abort("\"/system/priv-app/MinModWatchfaces.apk\" has unexpected contents.");
set_progress(0.923720);
apply_patch_check("/system/priv-app/SettingsProvider.apk", "82b1810eaf094797dc7cc334c4dedcf5738f52ea", "103bf2d7b19fa2399bbb8825ca1767ac28b1214e") || abort("\"/system/priv-app/SettingsProvider.apk\" has unexpected contents.");
set_progress(0.924810);
apply_patch_check("/system/priv-app/Shell.apk", "19a07a161388d28f56f2ab1c138998977b0bac21", "14ec3ba2d4231c102ad1b840549871c48ed7f211") || abort("\"/system/priv-app/Shell.apk\" has unexpected contents.");
set_progress(0.925280);
apply_patch_check("EMMC:/dev/block/platform/msm_sdcc.1/by-name/boot:6316032:2bee11ed878e81036bbb1f71d93073f5c4bd86f7:6320128:0a0dc4bf2b4aef9102a79dfa66fd1492a343d187") || abort("\"EMMC:/dev/block/platform/msm_sdcc.1/by-name/boot:6316032:2bee11ed878e81036bbb1f71d93073f5c4bd86f7:6320128:0a0dc4bf2b4aef9102a79dfa66fd1492a343d187\" has unexpected contents.");
set_progress(1.000000);
apply_patch_space(18622129) || abort("Not enough free space on /system to apply patches.");

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

ui_print("Removing unneeded files...");
delete("/system/recovery.img");
show_progress(0.800000, 0);
ui_print("Patching system files...");
apply_patch("/system/app/Bluetooth.apk", "-",
            3f2a2595e04351d7067d3794d15490277e51be95, 505127,
            97948a897ee1d7d7f5d17623121eb40e2febc0f5, package_extract_file("patch/system/app/Bluetooth.apk.p"));
set_progress(0.005975);
apply_patch("/system/app/CertInstaller.apk", "-",
            7db26e41845137334d1e5a018af24389ed972f50, 143723,
            ee8960ddd6a059a6139729e3777001ff49dce074, package_extract_file("patch/system/app/CertInstaller.apk.p"));
set_progress(0.007676);
apply_patch("/system/app/DeskClockMicroApp.apk", "-",
            bd59dd1e955f7dfdf936abf8fca55e663537bd95, 1249521,
            dde923b3811e69a382ed2c6705df65716b88bd3e, package_extract_file("patch/system/app/DeskClockMicroApp.apk.p"));
set_progress(0.022457);
apply_patch("/system/app/UserDictionaryProvider.apk", "-",
            8d05efb781f47beaa0ffb4f33095e0fb0a13a6f9, 3518,
            97e821831789b8103351260ecfcc5d067dd1f904, package_extract_file("patch/system/app/UserDictionaryProvider.apk.p"));
set_progress(0.022499);
apply_patch("/system/bin/debuggerd", "-",
            e2693002aac389ec86f9291b2d0565687c48f3e6, 25892,
            8587fa67fd1b3fe88c33b193c6760511715fe6c7, package_extract_file("patch/system/bin/debuggerd.p"));
set_progress(0.022805);
apply_patch("/system/etc/NOTICE.html.gz", "-",
            ecafc91ed63fb29d95b07da7199ea7e65833aac2, 98593,
            b35bcf2e1b6ba407844b716f286ed9b743c459b1, package_extract_file("patch/system/etc/NOTICE.html.gz.p"));
set_progress(0.023971);
apply_patch("/system/etc/recovery-resource.dat", "-",
            c7208868f3ac905c402774e68d0a7bb664908902, 498365,
            9ffd83acf6e876b083d1f032b7093b5fa1acccec, package_extract_file("patch/system/etc/recovery-resource.dat.p"));
set_progress(0.029867);
apply_patch("/system/etc/security/otacerts.zip", "-",
            94527bc8ac38fc2fb92ac099d9478eb9ef7be196, 1552,
            33f81edbd5394a235113426c601b23fbefa3f49a, package_extract_file("patch/system/etc/security/otacerts.zip.p"));
set_progress(0.029885);
apply_patch("/system/framework/am.jar", "-",
            56d774409e8f8b62c9ba6280e3fc71d876db00d8, 313,
            5bffcb26c1eec3b1d61e6a10ad53c92770db8537, package_extract_file("patch/system/framework/am.jar.p"));
set_progress(0.029889);
apply_patch("/system/framework/am.odex", "-",
            fa69c46a6d44f28d2843f9364611b36884ea3208, 48840,
            61b281c24310994032358d043abe3fed838fd0b9, package_extract_file("patch/system/framework/am.odex.p"));
set_progress(0.030466);
apply_patch("/system/framework/android.policy.jar", "-",
            f1d43b5813f0f02599a3a02cbd53285bda070a7f, 313,
            7e035aebd4615d21c9c358957bff8b81d83bb4fc, package_extract_file("patch/system/framework/android.policy.jar.p"));
set_progress(0.030470);
apply_patch("/system/framework/android.policy.odex", "-",
            ef1c31497d54f20e3b9883f15bae209b32a0f135, 262128,
            863814053dae039f6bfb89a225ea1dc744f4cd97, package_extract_file("patch/system/framework/android.policy.odex.p"));
set_progress(0.033571);
apply_patch("/system/framework/android.test.runner.jar", "-",
            f3eaa9e978d1ae848dbcefbfba94eaad4a50a012, 313,
            4760b5b3aeba655fb5adb0136446bd96b8eac5d9, package_extract_file("patch/system/framework/android.test.runner.jar.p"));
set_progress(0.033575);
apply_patch("/system/framework/android.test.runner.odex", "-",
            9518fd4cac702e20dc73b3fba6f3850844b77497, 189888,
            4e652bc8f369a72e44ebedc9bc3506617ebb5c6c, package_extract_file("patch/system/framework/android.test.runner.odex.p"));
set_progress(0.035821);
apply_patch("/system/framework/apache-xml.jar", "-",
            7d6b276b80ef03600632ab2691ff8addff0c280e, 18027,
            0a8d30872d004943aabd0738465ac5ce3a9c07d0, package_extract_file("patch/system/framework/apache-xml.jar.p"));
set_progress(0.036034);
apply_patch("/system/framework/apache-xml.odex", "-",
            aef9dfc1c57ed7c26cc6a1f237618321dc2aa344, 1378880,
            94292e7fd6604fb1af1e818dfb331e94042ee23e, package_extract_file("patch/system/framework/apache-xml.odex.p"));
set_progress(0.052346);
apply_patch("/system/framework/bmgr.jar", "-",
            56d774409e8f8b62c9ba6280e3fc71d876db00d8, 313,
            1fb5b6109feea379f3e982579f22d7a67eae66a2, package_extract_file("patch/system/framework/bmgr.jar.p"));
set_progress(0.052350);
apply_patch("/system/framework/bmgr.odex", "-",
            90405e7b2819410020a000c52e6cd067e340b850, 15272,
            220c260cbfb57fd6034e27e1184a8b41813440a2, package_extract_file("patch/system/framework/bmgr.odex.p"));
set_progress(0.052530);
apply_patch("/system/framework/bouncycastle.jar", "-",
            59fbc0b18d9714e98f50aed0c976ec32a6444f3d, 313,
            13e47da83a88baabca0782cab1ca5db8ae888f92, package_extract_file("patch/system/framework/bouncycastle.jar.p"));
set_progress(0.052534);
apply_patch("/system/framework/bouncycastle.odex", "-",
            39572823dd27b3685177553ae4d59d89f58ce909, 1191216,
            e8e3224b2272acb942ca4f2158780fd32aeba089, package_extract_file("patch/system/framework/bouncycastle.odex.p"));
set_progress(0.066626);
apply_patch("/system/framework/bu.jar", "-",
            56d774409e8f8b62c9ba6280e3fc71d876db00d8, 313,
            1fb5b6109feea379f3e982579f22d7a67eae66a2, package_extract_file("patch/system/framework/bu.jar.p"));
set_progress(0.066629);
apply_patch("/system/framework/bu.odex", "-",
            b408833f495ec22ecfccfeb9fd6c263143b11b6e, 5304,
            1b7d1df96fcbca023c6b480bbf312ec4f472ccf2, package_extract_file("patch/system/framework/bu.odex.p"));
set_progress(0.066692);
apply_patch("/system/framework/com.android.location.provider.jar",
            "-", 56d774409e8f8b62c9ba6280e3fc71d876db00d8, 313,
            1fb5b6109feea379f3e982579f22d7a67eae66a2, package_extract_file("patch/system/framework/com.android.location.provider.jar.p"));
set_progress(0.066696);
apply_patch("/system/framework/com.android.location.provider.odex",
            "-", 4306af1151ea423eae367b888da89cfea0dccd55, 21848,
            bbfbcca777637c09f86691d897cdd15607a3ebdd, package_extract_file("patch/system/framework/com.android.location.provider.odex.p"));
set_progress(0.066954);
apply_patch("/system/framework/conscrypt.jar", "-",
            ab1fbb135be127e368b2476dd8017c759c4cb6be, 313,
            55a2594e32eefbb13c70c204a7e8e1c4685c118b, package_extract_file("patch/system/framework/conscrypt.jar.p"));
set_progress(0.066958);
apply_patch("/system/framework/conscrypt.odex", "-",
            49124540aaaff8061a409c73ef47d26a70a41dc1, 364208,
            33d726d0eb5c92624b1585b5826e15a278d99d11, package_extract_file("patch/system/framework/conscrypt.odex.p"));
set_progress(0.071266);
apply_patch("/system/framework/content.jar", "-",
            56d774409e8f8b62c9ba6280e3fc71d876db00d8, 313,
            1fb5b6109feea379f3e982579f22d7a67eae66a2, package_extract_file("patch/system/framework/content.jar.p"));
set_progress(0.071270);
apply_patch("/system/framework/content.odex", "-",
            c44b0273e81034b0a39380eb34288b308c1ff215, 17832,
            6b65f1451907ff747a4bfa3d023dbbf9f98d9afd, package_extract_file("patch/system/framework/content.odex.p"));
set_progress(0.071481);
apply_patch("/system/framework/core-junit.jar", "-",
            0371a0715d388d30157f0fb15b50e240c82e107a, 313,
            2e4e123fed87b9e45ae8dd94cc5338a937317da5, package_extract_file("patch/system/framework/core-junit.jar.p"));
set_progress(0.071485);
apply_patch("/system/framework/core-junit.odex", "-",
            95160fc479aed8fd56a176bc136ad8816d29540b, 27688,
            2bc65ba0f2902c9e89f655e6e560a0979e48d221, package_extract_file("patch/system/framework/core-junit.odex.p"));
set_progress(0.071812);
apply_patch("/system/framework/core.jar", "-",
            7a791a978e2c5b31073918a711b747c7fa25f845, 3121,
            a77773e3ba7e736919e5771b46035d0915190566, package_extract_file("patch/system/framework/core.jar.p"));
set_progress(0.071849);
apply_patch("/system/framework/core.odex", "-",
            338745c7d2f86c1dd8733f9da366dd8d5118da96, 3300488,
            b0fe6c97d84dc3dfcbd222124ed28ba8616e4c43, package_extract_file("patch/system/framework/core.odex.p"));
set_progress(0.110892);
apply_patch("/system/framework/ext.jar", "-",
            36068802964cefd11710f2c5ec970493811ae94a, 666790,
            e09fbf8b8eb9630e07d9d64d45259fb483d904ee, package_extract_file("patch/system/framework/ext.jar.p"));
set_progress(0.118780);
apply_patch("/system/framework/ext.odex", "-",
            4dde1e0fd74ab97a9ec9b8f820a0a14cc5dc33f8, 1510528,
            ed3819987d8ca4eb47878900d47f6aaef202daf5, package_extract_file("patch/system/framework/ext.odex.p"));
set_progress(0.136649);
apply_patch("/system/framework/framework-res.apk", "-",
            6d1a964550ab52150798bce52f0f21181d6ca1bf, 11595178,
            fc192d3a305d06ad2a15698ce3a0adf34a753ccb, package_extract_file("patch/system/framework/framework-res.apk.p"));
set_progress(0.273815);
apply_patch("/system/framework/framework.jar", "-",
            01b148201c92a2a86d8345cb1624e3c4de1477df, 10051,
            8600e292eb3ee097b2063fd52c95dbd28dc5bb3c, package_extract_file("patch/system/framework/framework.jar.p"));
set_progress(0.273934);
apply_patch("/system/framework/framework.odex", "-",
            43f018869f6ac9c2886223c2ef1da6cc5f18f3ae, 9698456,
            f805434d35b532c807fd351043c28815d19f8272, package_extract_file("patch/system/framework/framework.odex.p"));
set_progress(0.388663);
apply_patch("/system/framework/framework2.jar", "-",
            0aa411aa08cc3dc79d785ac84b30f33f1b7a03cb, 313,
            5bffcb26c1eec3b1d61e6a10ad53c92770db8537, package_extract_file("patch/system/framework/framework2.jar.p"));
set_progress(0.388667);
apply_patch("/system/framework/framework2.odex", "-",
            d84ac1050c093dc09245a0e4ad70896f117f4e22, 1600112,
            a191be2ee08f4a9e6220c34a86d950dcc941f864, package_extract_file("patch/system/framework/framework2.odex.p"));
set_progress(0.407595);
apply_patch("/system/framework/ime.jar", "-",
            56d774409e8f8b62c9ba6280e3fc71d876db00d8, 313,
            1fb5b6109feea379f3e982579f22d7a67eae66a2, package_extract_file("patch/system/framework/ime.jar.p"));
set_progress(0.407599);
apply_patch("/system/framework/ime.odex", "-",
            8d4690218bc1902694bfaa07e94b40295a8a315b, 7056,
            2a203d7c3d44061c304f0c5bac51a63240a61905, package_extract_file("patch/system/framework/ime.odex.p"));
set_progress(0.407683);
apply_patch("/system/framework/input.jar", "-",
            56d774409e8f8b62c9ba6280e3fc71d876db00d8, 313,
            1fb5b6109feea379f3e982579f22d7a67eae66a2, package_extract_file("patch/system/framework/input.jar.p"));
set_progress(0.407686);
apply_patch("/system/framework/input.odex", "-",
            83c0e5d51d511d967b8ea0ff1404b12738884891, 9352,
            a1ae8dc10338208b19eab5632861342dca37aa9e, package_extract_file("patch/system/framework/input.odex.p"));
set_progress(0.407797);
apply_patch("/system/framework/javax.obex.jar", "-",
            0aa411aa08cc3dc79d785ac84b30f33f1b7a03cb, 313,
            ca22c0fcdbf0922608a849decdad49bb1eb0957c, package_extract_file("patch/system/framework/javax.obex.jar.p"));
set_progress(0.407801);
apply_patch("/system/framework/javax.obex.odex", "-",
            f575bba85c704552ce449ecb607922681e54f94e, 58952,
            dc8135abf4b07ff2f323f1831f48cb4164888ed6, package_extract_file("patch/system/framework/javax.obex.odex.p"));
set_progress(0.408498);
apply_patch("/system/framework/media_cmd.jar", "-",
            56d774409e8f8b62c9ba6280e3fc71d876db00d8, 313,
            1fb5b6109feea379f3e982579f22d7a67eae66a2, package_extract_file("patch/system/framework/media_cmd.jar.p"));
set_progress(0.408502);
apply_patch("/system/framework/media_cmd.odex", "-",
            7dba9dbc03f2ecde0dac3ee52a67472afe9ad314, 9048,
            2c77daf76519f4bc412703c3661f16381af46100, package_extract_file("patch/system/framework/media_cmd.odex.p"));
set_progress(0.408609);
apply_patch("/system/framework/mms-common.jar", "-",
            a27a8076b36454f8f725f6f825e93ab98b46e8aa, 313,
            a0f83edf7475da3b8271d023eb3df23ff2662ec7, package_extract_file("patch/system/framework/mms-common.jar.p"));
set_progress(0.408612);
apply_patch("/system/framework/mms-common.odex", "-",
            876133dc8321953a429027000d50bd86e221fa96, 130736,
            be85e4b06628510a6dd7db5678bc0bc2d4d68768, package_extract_file("patch/system/framework/mms-common.odex.p"));
set_progress(0.410159);
apply_patch("/system/framework/monkey.jar", "-",
            46529a009190c7600c6c7492d2231003835159f5, 313,
            bc72a71f975d49a578f1c87a2c4ebcf7f455c894, package_extract_file("patch/system/framework/monkey.jar.p"));
set_progress(0.410163);
apply_patch("/system/framework/monkey.odex", "-",
            bc2cb6c494fe3006c98b100b5d6dd12b923726d0, 120384,
            a4433e7d3ec65f8afe35b11e004f308f05c3294b, package_extract_file("patch/system/framework/monkey.odex.p"));
set_progress(0.411587);
apply_patch("/system/framework/nullwebview.jar", "-",
            56d774409e8f8b62c9ba6280e3fc71d876db00d8, 313,
            7e035aebd4615d21c9c358957bff8b81d83bb4fc, package_extract_file("patch/system/framework/nullwebview.jar.p"));
set_progress(0.411591);
apply_patch("/system/framework/nullwebview.odex", "-",
            d63b83ebe72d98975737c7f274797989b2aa4027, 2720,
            6afce4c1233ef3af27e51488de5971c4a3847f96, package_extract_file("patch/system/framework/nullwebview.odex.p"));
set_progress(0.411623);
apply_patch("/system/framework/okhttp.jar", "-",
            ab1fbb135be127e368b2476dd8017c759c4cb6be, 313,
            55a2594e32eefbb13c70c204a7e8e1c4685c118b, package_extract_file("patch/system/framework/okhttp.jar.p"));
set_progress(0.411626);
apply_patch("/system/framework/okhttp.odex", "-",
            10190feca6b029db30199634fe97daa5231fe735, 238816,
            9de9d1ab5a1a28ee69a8b7274c988253484b74a2, package_extract_file("patch/system/framework/okhttp.odex.p"));
set_progress(0.414451);
apply_patch("/system/framework/pm.jar", "-",
            6370a4da7f7eebaaa9f0f8aa6ce6074028267d9b, 313,
            5bffcb26c1eec3b1d61e6a10ad53c92770db8537, package_extract_file("patch/system/framework/pm.jar.p"));
set_progress(0.414455);
apply_patch("/system/framework/pm.odex", "-",
            a90a7ed4af5a48ee2b93b67f5664c762ef16fa68, 41624,
            ac551a83e57189caa9dfdfb1720629648a8ec6ee, package_extract_file("patch/system/framework/pm.odex.p"));
set_progress(0.414948);
apply_patch("/system/framework/services.jar", "-",
            fb1ef3cebb60371123714508ad3861362632de34, 313,
            00e4a6314946256ef973874b6e3f07b00a68a8bd, package_extract_file("patch/system/framework/services.jar.p"));
set_progress(0.414951);
apply_patch("/system/framework/services.odex", "-",
            7d5de5fe3a84b6dd91c93b136d0f65116080251d, 3575600,
            9509bf0d51e2ec0743f8858afbeca55e06ee7925, package_extract_file("patch/system/framework/services.odex.p"));
set_progress(0.457249);
apply_patch("/system/framework/settings.jar", "-",
            29602e7acce03183157ef4ac8f58c8ea2bbc119c, 313,
            1fb5b6109feea379f3e982579f22d7a67eae66a2, package_extract_file("patch/system/framework/settings.jar.p"));
set_progress(0.457253);
apply_patch("/system/framework/settings.odex", "-",
            f3f5279bbcda0ab7ab01271d86163e02a50c82ce, 8376,
            105a7b6596e94b800494408733e76982ab5af69b, package_extract_file("patch/system/framework/settings.odex.p"));
set_progress(0.457352);
apply_patch("/system/framework/svc.jar", "-",
            5577e7107970576e93998595e7ca7199ec42ef8c, 313,
            29fbe8cc68c0ad2c4a47a32fc484948e488b1a40, package_extract_file("patch/system/framework/svc.jar.p"));
set_progress(0.457356);
apply_patch("/system/framework/svc.odex", "-",
            ab2941095a80c5e08f4f4ac11ea0954942253aa2, 10632,
            675b48bb38a86a6359bfd089beb394349f44a01c, package_extract_file("patch/system/framework/svc.odex.p"));
set_progress(0.457481);
apply_patch("/system/framework/telephony-common.jar", "-",
            56e8bcacb6a78ed9ef16fdd4d84d7257729045ee, 313,
            5643e5fec80238650e395d0fccc9ae131d599590, package_extract_file("patch/system/framework/telephony-common.jar.p"));
set_progress(0.457485);
apply_patch("/system/framework/telephony-common.odex", "-",
            3c5dd88de28e378f54a322d99c11d395cb99c938, 1296912,
            3a6796c157d5061600f04896fab15f5fd911e356, package_extract_file("patch/system/framework/telephony-common.odex.p"));
set_progress(0.472827);
apply_patch("/system/framework/uiautomator.jar", "-",
            5e3963f9674f85196f34a3532c997b15a45f2495, 313,
            c6fe18a4f1a34dc1298d20fdaced2f5e69eb7f60, package_extract_file("patch/system/framework/uiautomator.jar.p"));
set_progress(0.472831);
apply_patch("/system/framework/uiautomator.odex", "-",
            40947bea6593307b46ff11907c8099f669216f4f, 114928,
            e8babf85b49c6188c16def9086cb891bdce41394, package_extract_file("patch/system/framework/uiautomator.odex.p"));
set_progress(0.474190);
apply_patch("/system/framework/voip-common.jar", "-",
            0aa411aa08cc3dc79d785ac84b30f33f1b7a03cb, 313,
            bc72a71f975d49a578f1c87a2c4ebcf7f455c894, package_extract_file("patch/system/framework/voip-common.jar.p"));
set_progress(0.474194);
apply_patch("/system/framework/voip-common.odex", "-",
            d3ed8491474517cef45dc4405dbb017d0994d658, 171856,
            a3f22edcbb856cf4a25877c9533e50b68b1e4e62, package_extract_file("patch/system/framework/voip-common.odex.p"));
set_progress(0.476227);
apply_patch("/system/framework/wm.jar", "-",
            5577e7107970576e93998595e7ca7199ec42ef8c, 313,
            29fbe8cc68c0ad2c4a47a32fc484948e488b1a40, package_extract_file("patch/system/framework/wm.jar.p"));
set_progress(0.476231);
apply_patch("/system/framework/wm.odex", "-",
            e0adf19a82bda79554e95bbfdc23b4bcad586664, 6880,
            8dc5a91d5bee223402f390c29a9176104251310f, package_extract_file("patch/system/framework/wm.odex.p"));
set_progress(0.476312);
apply_patch("/system/lib/libLLVM.so", "-",
            607c47779b6637c99d83cfc71bfb86f1411e027a, 8425180,
            2dfc112dc0dbc9453fc720c2c4b22f9c060c7415, package_extract_file("patch/system/lib/libLLVM.so.p"));
set_progress(0.575979);
apply_patch("/system/lib/libbcc.sha1.so", "-",
            f2ee82e718947153681e8399f6297c8cda9745f4, 5152,
            0bd9a1ce6f437da3a98aedb24ef8b06e4843f813, package_extract_file("patch/system/lib/libbcc.sha1.so.p"));
set_progress(0.576039);
apply_patch("/system/lib/libbcc.so", "-",
            e252f8ac545d5a77cb2406e5f9d6df4b5efda266, 132412,
            98462f275201a2ee0958b19fdd29307113fa8a49, package_extract_file("patch/system/lib/libbcc.so.p"));
set_progress(0.577606);
apply_patch("/system/lib/libmdnssd.so", "-",
            17a1ed062851c77e1f54cfa3155db901cea2edf2, 21684,
            1d422f4a8cabfb8faf05195ca3de28eadc458c98, package_extract_file("patch/system/lib/libmdnssd.so.p"));
set_progress(0.577862);
apply_patch("/system/priv-app/BackupRestoreConfirmation.apk", "-",
            15dfbd5f10ebed2e75575fb76e5d781a4e93c252, 130522,
            e6198a55e24beb21ea4f0a94a45b2895dbf3a996, package_extract_file("patch/system/priv-app/BackupRestoreConfirmation.apk.p"));
set_progress(0.579406);
apply_patch("/system/priv-app/CalendarProvider.apk", "-",
            2e4b476d92f97480ac6a918da2faadfa3a2476b4, 88752,
            dac61635083f7184c3598ca5f3e5b6795a4061db, package_extract_file("patch/system/priv-app/CalendarProvider.apk.p"));
set_progress(0.580456);
apply_patch("/system/priv-app/ClockworkBugReportSender.apk", "-",
            43491ef836cc4fd9eaa1888a7cd6dc120d360686, 236946,
            6e633aebc8c06dcb3029839e5af35a0c45f9eca8, package_extract_file("patch/system/priv-app/ClockworkBugReportSender.apk.p"));
set_progress(0.583259);
apply_patch("/system/priv-app/ClockworkHomeGoogle.apk", "-",
            2fb4c14c4f712a5ccbca10d29d5478fd2693a464, 18622129,
            3e652be76cb8d5370631e97a5a79cb6d012dca9c, package_extract_file("patch/system/priv-app/ClockworkHomeGoogle.apk.p"));
set_progress(0.803551);
apply_patch("/system/priv-app/ClockworkHomeGoogle.odex", "-",
            d60b557562c54000fb6f55670f0283f5a650361b, 4000616,
            2de679a9974689fcd28524f35dea7198712497a3, package_extract_file("patch/system/priv-app/ClockworkHomeGoogle.odex.p"));
set_progress(0.850877);
apply_patch("/system/priv-app/ClockworkPackageInstaller.apk", "-",
            909b0e7c92e9e374c8812db4f7c05342057a2e95, 225293,
            f285243d1647d897edc6bed96ae71120c6c4a894, package_extract_file("patch/system/priv-app/ClockworkPackageInstaller.apk.p"));
set_progress(0.853542);
apply_patch("/system/priv-app/ClockworkPhotosWatchFace.apk", "-",
            c5e3db51f5f940b7815c735e001467e1d621daa6, 2520275,
            41e557c816eb266f1785c4d3f6abd3500fcf572b, package_extract_file("patch/system/priv-app/ClockworkPhotosWatchFace.apk.p"));
set_progress(0.883356);
apply_patch("/system/priv-app/ClockworkSettings.apk", "-",
            e53e539a9fbe7638b345c1521bc47a6aca3946e9, 352429,
            fb3ec80b97219a7e3436fcebb7088d21305fc464, package_extract_file("patch/system/priv-app/ClockworkSettings.apk.p"));
set_progress(0.887525);
apply_patch("/system/priv-app/ClockworkSetup.apk", "-",
            b0664bac975bc5645a5d4812828118eb434327e1, 284168,
            03566b5bc2f4059dd0812759e065d81f39cfe764, package_extract_file("patch/system/priv-app/ClockworkSetup.apk.p"));
set_progress(0.890887);
apply_patch("/system/priv-app/ContactsProvider.apk", "-",
            ec49619b1dad9f3f612e964726bafe720bac887b, 111526,
            b4b1d110cbf08b3a2a96f650a8c1b9f41ca000c3, package_extract_file("patch/system/priv-app/ContactsProvider.apk.p"));
set_progress(0.892206);
apply_patch("/system/priv-app/DefaultContainerService.apk", "-",
            e1dc7e0938d007257df4135e0d9825996eaeed20, 9913,
            a5889c88e28787743b8db9c767f8c0aa0c6850a0, package_extract_file("patch/system/priv-app/DefaultContainerService.apk.p"));
set_progress(0.892323);
apply_patch("/system/priv-app/DownloadProvider.apk", "-",
            d30c937e0d0c295f9c9225ae16dc350320d24007, 315074,
            24197152ec70b32ecc362a3f1db710968a86db9d, package_extract_file("patch/system/priv-app/DownloadProvider.apk.p"));
set_progress(0.896050);
apply_patch("/system/priv-app/FusedLocation.apk", "-",
            4b4df4fb4afaf902a2b98eb28f435ed6283c2890, 8695,
            d20dbb923c37b22a8ec6474997766934ef601b54, package_extract_file("patch/system/priv-app/FusedLocation.apk.p"));
set_progress(0.896153);
apply_patch("/system/priv-app/GoogleServicesFramework.apk", "-",
            6f205891b24c0f25cd0fb11d9d11a6f97efeeb51, 1713855,
            03dfcf2a582b8226eff71a1507b61f5c39b1a101, package_extract_file("patch/system/priv-app/GoogleServicesFramework.apk.p"));
set_progress(0.916427);
apply_patch("/system/priv-app/InputDevices.apk", "-",
            306c6534c062e881a3e382d8ddb66cc84e34b836, 132057,
            656386163c52d7c9e5ff40aa67f576b635425b4d, package_extract_file("patch/system/priv-app/InputDevices.apk.p"));
set_progress(0.917990);
apply_patch("/system/priv-app/MediaProvider.apk", "-",
            2c5213c77f3fbec9d20af63209627496ed89d84e, 60395,
            0e6387bd38aa4435fb984dab0e8595d0c9c72d8a, package_extract_file("patch/system/priv-app/MediaProvider.apk.p"));
set_progress(0.918704);
apply_patch("/system/priv-app/MinModWatchfaces.apk", "-",
            de76721abcbba7ea8cc3886a0c9b9d477df31202, 412883,
            a2a0a55f32b0308c4fc5f086f0b3d00863b8500e, package_extract_file("patch/system/priv-app/MinModWatchfaces.apk.p"));
set_progress(0.923588);
apply_patch("/system/priv-app/SettingsProvider.apk", "-",
            82b1810eaf094797dc7cc334c4dedcf5738f52ea, 92144,
            103bf2d7b19fa2399bbb8825ca1767ac28b1214e, package_extract_file("patch/system/priv-app/SettingsProvider.apk.p"));
set_progress(0.924678);
apply_patch("/system/priv-app/Shell.apk", "-",
            19a07a161388d28f56f2ab1c138998977b0bac21, 39775,
            14ec3ba2d4231c102ad1b840549871c48ed7f211, package_extract_file("patch/system/priv-app/Shell.apk.p"));
set_progress(0.925149);
ui_print("Patching boot image...");
apply_patch("EMMC:/dev/block/platform/msm_sdcc.1/by-name/boot:6316032:2bee11ed878e81036bbb1f71d93073f5c4bd86f7:6320128:0a0dc4bf2b4aef9102a79dfa66fd1492a343d187",
            "-", 0a0dc4bf2b4aef9102a79dfa66fd1492a343d187, 6320128,
            2bee11ed878e81036bbb1f71d93073f5c4bd86f7, package_extract_file("patch/boot.img.p"));
set_progress(0.999913);
delete("/system/recovery-from-boot.p",
       "/system/etc/install-recovery.sh");
show_progress(0.100000, 10);
ui_print("Unpacking new recovery...");
package_extract_dir("recovery", "/system");
ui_print("Symlinks and permissions...");
set_metadata_recursive("/system", "uid", 0, "gid", 0, "dmode", 0755, "fmode", 0644, "capabilities", 0x0, "selabel", "u:object_r:system_file:s0");
set_metadata_recursive("/system/bin", "uid", 0, "gid", 2000, "dmode", 0755, "fmode", 0755, "capabilities", 0x0, "selabel", "u:object_r:system_file:s0");
set_metadata("/system/bin/ClockworkProxy", "uid", 0, "gid", 2000, "mode", 0755, "capabilities", 0x0, "selabel", "u:object_r:clockwork_proxy_exec:s0");
set_metadata("/system/bin/app_process", "uid", 0, "gid", 2000, "mode", 0755, "capabilities", 0x0, "selabel", "u:object_r:zygote_exec:s0");
set_metadata("/system/bin/batteryd", "uid", 0, "gid", 2000, "mode", 0755, "capabilities", 0x0, "selabel", "u:object_r:batteryd_exec:s0");
set_metadata("/system/bin/bootanimation", "uid", 0, "gid", 2000, "mode", 0755, "capabilities", 0x0, "selabel", "u:object_r:bootanim_exec:s0");
set_metadata("/system/bin/clatd", "uid", 0, "gid", 2000, "mode", 0755, "capabilities", 0x0, "selabel", "u:object_r:clatd_exec:s0");
set_metadata("/system/bin/debuggerd", "uid", 0, "gid", 2000, "mode", 0755, "capabilities", 0x0, "selabel", "u:object_r:debuggerd_exec:s0");
set_metadata("/system/bin/dhcpcd", "uid", 0, "gid", 2000, "mode", 0755, "capabilities", 0x0, "selabel", "u:object_r:dhcp_exec:s0");
set_metadata("/system/bin/dnsmasq", "uid", 0, "gid", 2000, "mode", 0755, "capabilities", 0x0, "selabel", "u:object_r:dnsmasq_exec:s0");
set_metadata("/system/bin/dumpstate", "uid", 0, "gid", 2000, "mode", 0755, "capabilities", 0x0, "selabel", "u:object_r:dumpstate_exec:s0");
set_metadata("/system/bin/installd", "uid", 0, "gid", 2000, "mode", 0755, "capabilities", 0x0, "selabel", "u:object_r:installd_exec:s0");
set_metadata("/system/bin/keystore", "uid", 0, "gid", 2000, "mode", 0755, "capabilities", 0x0, "selabel", "u:object_r:keystore_exec:s0");
set_metadata("/system/bin/lmkd", "uid", 0, "gid", 2000, "mode", 0755, "capabilities", 0x0, "selabel", "u:object_r:lmkd_exec:s0");
set_metadata("/system/bin/mediaserver", "uid", 0, "gid", 2000, "mode", 0755, "capabilities", 0x0, "selabel", "u:object_r:mediaserver_exec:s0");
set_metadata("/system/bin/mtpd", "uid", 0, "gid", 2000, "mode", 0755, "capabilities", 0x0, "selabel", "u:object_r:mtp_exec:s0");
set_metadata("/system/bin/netcfg", "uid", 0, "gid", 3003, "mode", 02750, "capabilities", 0x0, "selabel", "u:object_r:system_file:s0");
set_metadata("/system/bin/netd", "uid", 0, "gid", 2000, "mode", 0755, "capabilities", 0x0, "selabel", "u:object_r:netd_exec:s0");
set_metadata("/system/bin/ping", "uid", 0, "gid", 0, "mode", 0755, "capabilities", 0x0, "selabel", "u:object_r:system_file:s0");
set_metadata("/system/bin/pppd", "uid", 0, "gid", 2000, "mode", 0755, "capabilities", 0x0, "selabel", "u:object_r:ppp_exec:s0");
set_metadata("/system/bin/racoon", "uid", 0, "gid", 2000, "mode", 0755, "capabilities", 0x0, "selabel", "u:object_r:racoon_exec:s0");
set_metadata("/system/bin/run-as", "uid", 0, "gid", 2000, "mode", 0750, "capabilities", 0xc0, "selabel", "u:object_r:runas_exec:s0");
set_metadata("/system/bin/sdcard", "uid", 0, "gid", 2000, "mode", 0755, "capabilities", 0x0, "selabel", "u:object_r:sdcardd_exec:s0");
set_metadata("/system/bin/servicemanager", "uid", 0, "gid", 2000, "mode", 0755, "capabilities", 0x0, "selabel", "u:object_r:servicemanager_exec:s0");
set_metadata("/system/bin/sh", "uid", 0, "gid", 2000, "mode", 0755, "capabilities", 0x0, "selabel", "u:object_r:shell_exec:s0");
set_metadata("/system/bin/surfaceflinger", "uid", 0, "gid", 2000, "mode", 0755, "capabilities", 0x0, "selabel", "u:object_r:surfaceflinger_exec:s0");
set_metadata("/system/bin/trig", "uid", 0, "gid", 2000, "mode", 0755, "capabilities", 0x0, "selabel", "u:object_r:tilt_detect_exec:s0");
set_metadata("/system/bin/vold", "uid", 0, "gid", 2000, "mode", 0755, "capabilities", 0x0, "selabel", "u:object_r:vold_exec:s0");
set_metadata("/system/etc/dhcpcd/dhcpcd-run-hooks", "uid", 1014, "gid", 2000, "mode", 0550, "capabilities", 0x0, "selabel", "u:object_r:system_file:s0");
set_metadata("/system/etc/install-recovery.sh", "uid", 0, "gid", 0, "mode", 0544, "capabilities", 0x0);
set_metadata_recursive("/system/etc/ppp", "uid", 0, "gid", 0, "dmode", 0755, "fmode", 0555, "capabilities", 0x0, "selabel", "u:object_r:system_file:s0");
set_metadata("/system/recovery-from-boot.p", "uid", 0, "gid", 0, "mode", 0644, "capabilities", 0x0);
set_metadata("/system/vendor", "uid", 0, "gid", 2000, "mode", 0755, "capabilities", 0x0, "selabel", "u:object_r:system_file:s0");
set_metadata("/system/vendor/firmware", "uid", 0, "gid", 2000, "mode", 0755, "capabilities", 0x0, "selabel", "u:object_r:system_file:s0");
set_metadata("/system/vendor/lib", "uid", 0, "gid", 2000, "mode", 0755, "capabilities", 0x0, "selabel", "u:object_r:system_file:s0");
set_metadata("/system/vendor/lib/egl", "uid", 0, "gid", 2000, "mode", 0755, "capabilities", 0x0, "selabel", "u:object_r:system_file:s0");
set_metadata_recursive("/system/xbin", "uid", 0, "gid", 2000, "dmode", 0755, "fmode", 0755, "capabilities", 0x0, "selabel", "u:object_r:system_file:s0");
ui_print("Writing bootloader...");
package_extract_file("bootloader-flag.txt", "/dev/block/platform/msm_sdcc.1/by-name/misc");
package_extract_file("bootloader.aboot.img", "/dev/block/platform/msm_sdcc.1/by-name/aboot");
package_extract_file("bootloader.rpm.img", "/dev/block/platform/msm_sdcc.1/by-name/rpm");
package_extract_file("bootloader.tz.img", "/dev/block/platform/msm_sdcc.1/by-name/tz");
package_extract_file("bootloader.sbl1.img", "/dev/block/platform/msm_sdcc.1/by-name/sbl1");
package_extract_file("bootloader.sdi.img", "/dev/block/platform/msm_sdcc.1/by-name/sdi");
package_extract_file("bootloader.imgdata.img", "/dev/block/platform/msm_sdcc.1/by-name/imgdata");
package_extract_file("bootloader-flag-clear.txt", "/dev/block/platform/msm_sdcc.1/by-name/misc");
ui_print("Patching remaining system files...");
apply_patch("/system/build.prop", "-",
            1581072e21f91500587bb018d237eae933ba9b22, 1488,
            391656b6cdac7986a5aaab270b399c6314a0ea78, package_extract_file("patch/system/build.prop.p"));
set_metadata("/system/build.prop", "uid", 0, "gid", 0, "mode", 0644, "capabilities", 0x0);
unmount("/system");
