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/KMV78N/1245698:user/release-keys" ||
    file_getprop("/system/build.prop", "ro.build.fingerprint") == "lge/platina/dory:4.4W/KMV78V/1259044:user/release-keys" ||
    abort("Package expects build fingerprint of lge/platina/dory:4.4W/KMV78N/1245698:user/release-keys or lge/platina/dory:4.4W/KMV78V/1259044: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", "97948a897ee1d7d7f5d17623121eb40e2febc0f5", "ffc3c620c29621a94047f8099b1067bf3dbc8cf7") || abort("\"/system/app/Bluetooth.apk\" has unexpected contents.");
set_progress(0.006213);
apply_patch_check("/system/app/CertInstaller.apk", "ee8960ddd6a059a6139729e3777001ff49dce074", "1983fd67cf6e3d7a6e71017c6ae976a9a40205c0") || abort("\"/system/app/CertInstaller.apk\" has unexpected contents.");
set_progress(0.007980);
apply_patch_check("/system/app/ClockworkFitness.apk", "6ba213e1374873a8ff54c7b49e641107b5e58235", "767c798c72318ba23b22334fcd27359e26076f94") || abort("\"/system/app/ClockworkFitness.apk\" has unexpected contents.");
set_progress(0.017815);
apply_patch_check("/system/app/ClockworkFitness.odex", "ae2aaa7a3f7cae362bc430f9c8dd04a8298d31db", "a2db9936bd71f26d4d3d110f6d129db0e25c2169") || abort("\"/system/app/ClockworkFitness.odex\" has unexpected contents.");
set_progress(0.037963);
apply_patch_check("/system/app/DeskClockMicroApp.apk", "dde923b3811e69a382ed2c6705df65716b88bd3e", "153613a452d7d00380f15d2a07acb1c4763a90d2") || abort("\"/system/app/DeskClockMicroApp.apk\" has unexpected contents.");
set_progress(0.053331);
apply_patch_check("/system/app/LgeWorldClock.apk", "3887a96836be80af235ef4849ddbd97201ffd8d6", "20d538af50db3c23b80df57927a344ee73b0a175") || abort("\"/system/app/LgeWorldClock.apk\" has unexpected contents.");
set_progress(0.059857);
apply_patch_check("/system/app/UserDictionaryProvider.apk", "97e821831789b8103351260ecfcc5d067dd1f904", "63fe9768233fb7d8fbb63ec3b1e3d3e46a93448a") || abort("\"/system/app/UserDictionaryProvider.apk\" has unexpected contents.");
set_progress(0.059900);
apply_patch_check("/system/bin/debuggerd", "8587fa67fd1b3fe88c33b193c6760511715fe6c7", "6ee3771d7f7ef06fe17e50298093ce06ab99eb63") || abort("\"/system/bin/debuggerd\" has unexpected contents.");
set_progress(0.060219);
apply_patch_check("/system/build.prop", "391656b6cdac7986a5aaab270b399c6314a0ea78", "3c4cc9ae4380f91becb50e397665c983b0396a02") || abort("\"/system/build.prop\" has unexpected contents.");
set_progress(0.060237);
apply_patch_check("/system/etc/NOTICE.html.gz", "b35bcf2e1b6ba407844b716f286ed9b743c459b1", "a8a00c3f298370cbb805c29adb08deec48d7e35f") || abort("\"/system/etc/NOTICE.html.gz\" has unexpected contents.");
set_progress(0.061517);
apply_patch_check("/system/etc/recovery-resource.dat", "9ffd83acf6e876b083d1f032b7093b5fa1acccec", "6539974dd9934121083c5ad7eee24f859a20071e") || abort("\"/system/etc/recovery-resource.dat\" has unexpected contents.");
set_progress(0.067646);
apply_patch_check("/system/framework/am.jar", "5bffcb26c1eec3b1d61e6a10ad53c92770db8537", "fdb70dfcfdd1e897ce61998a20d86859a4a785d8") || abort("\"/system/framework/am.jar\" has unexpected contents.");
set_progress(0.067650);
apply_patch_check("/system/framework/am.odex", "61b281c24310994032358d043abe3fed838fd0b9", "81dfe391b39d4221008563eb4cf9c0d3867e20d4") || abort("\"/system/framework/am.odex\" has unexpected contents.");
set_progress(0.068251);
apply_patch_check("/system/framework/android.policy.jar", "7e035aebd4615d21c9c358957bff8b81d83bb4fc", "9f795c691d7aa74b365e745eeed35b827a6eea2b") || abort("\"/system/framework/android.policy.jar\" has unexpected contents.");
set_progress(0.068255);
apply_patch_check("/system/framework/android.policy.odex", "863814053dae039f6bfb89a225ea1dc744f4cd97", "d6970c8827e027385c9f0b12a0292c37bb2c2f07") || abort("\"/system/framework/android.policy.odex\" has unexpected contents.");
set_progress(0.071479);
apply_patch_check("/system/framework/android.test.runner.jar", "4760b5b3aeba655fb5adb0136446bd96b8eac5d9", "8f71d8ab0c8d6437752b7e6001ddf90b495af11b") || abort("\"/system/framework/android.test.runner.jar\" has unexpected contents.");
set_progress(0.071483);
apply_patch_check("/system/framework/android.test.runner.odex", "4e652bc8f369a72e44ebedc9bc3506617ebb5c6c", "f702413fe6dc62c416d1527485e12de46d632a79") || abort("\"/system/framework/android.test.runner.odex\" has unexpected contents.");
set_progress(0.073818);
apply_patch_check("/system/framework/apache-xml.jar", "0a8d30872d004943aabd0738465ac5ce3a9c07d0", "a90292cf5d7b5118067c09af094fdce52f7d64cb") || abort("\"/system/framework/apache-xml.jar\" has unexpected contents.");
set_progress(0.074040);
apply_patch_check("/system/framework/apache-xml.odex", "94292e7fd6604fb1af1e818dfb331e94042ee23e", "7d2d1dd9ffd355d028817dca82b11e0b30eba809") || abort("\"/system/framework/apache-xml.odex\" has unexpected contents.");
set_progress(0.090999);
apply_patch_check("/system/framework/bmgr.jar", "1fb5b6109feea379f3e982579f22d7a67eae66a2", "fdb70dfcfdd1e897ce61998a20d86859a4a785d8") || abort("\"/system/framework/bmgr.jar\" has unexpected contents.");
set_progress(0.091003);
apply_patch_check("/system/framework/bmgr.odex", "220c260cbfb57fd6034e27e1184a8b41813440a2", "47c42933f9eeee1da8c3b50b42bc3add787f9833") || abort("\"/system/framework/bmgr.odex\" has unexpected contents.");
set_progress(0.091191);
apply_patch_check("/system/framework/bouncycastle.jar", "13e47da83a88baabca0782cab1ca5db8ae888f92", "acd5d744334aae12a0a78adff2da12aa4c797b6c") || abort("\"/system/framework/bouncycastle.jar\" has unexpected contents.");
set_progress(0.091195);
apply_patch_check("/system/framework/bouncycastle.odex", "e8e3224b2272acb942ca4f2158780fd32aeba089", "f87c3d679373df81e0caeeb1110b619f357e9566") || abort("\"/system/framework/bouncycastle.odex\" has unexpected contents.");
set_progress(0.105846);
apply_patch_check("/system/framework/bu.jar", "1fb5b6109feea379f3e982579f22d7a67eae66a2", "fdb70dfcfdd1e897ce61998a20d86859a4a785d8") || abort("\"/system/framework/bu.jar\" has unexpected contents.");
set_progress(0.105850);
apply_patch_check("/system/framework/bu.odex", "1b7d1df96fcbca023c6b480bbf312ec4f472ccf2", "7fa861677fe35a7bd064c9c29bcd8897121c3e2f") || abort("\"/system/framework/bu.odex\" has unexpected contents.");
set_progress(0.105915);
apply_patch_check("/system/framework/com.android.location.provider.jar", "1fb5b6109feea379f3e982579f22d7a67eae66a2", "fdb70dfcfdd1e897ce61998a20d86859a4a785d8") || abort("\"/system/framework/com.android.location.provider.jar\" has unexpected contents.");
set_progress(0.105919);
apply_patch_check("/system/framework/com.android.location.provider.odex", "bbfbcca777637c09f86691d897cdd15607a3ebdd", "08303b10f4e87833fe0b9e59210665cca746c973") || abort("\"/system/framework/com.android.location.provider.odex\" has unexpected contents.");
set_progress(0.106188);
apply_patch_check("/system/framework/conscrypt.jar", "55a2594e32eefbb13c70c204a7e8e1c4685c118b", "bee49f4538db76464a0e04f714352b1bf6cbb841") || abort("\"/system/framework/conscrypt.jar\" has unexpected contents.");
set_progress(0.106192);
apply_patch_check("/system/framework/conscrypt.odex", "33d726d0eb5c92624b1585b5826e15a278d99d11", "537e401c58044ed9cebe975ece53f2fded3376f7") || abort("\"/system/framework/conscrypt.odex\" has unexpected contents.");
set_progress(0.110671);
apply_patch_check("/system/framework/content.jar", "1fb5b6109feea379f3e982579f22d7a67eae66a2", "fdb70dfcfdd1e897ce61998a20d86859a4a785d8") || abort("\"/system/framework/content.jar\" has unexpected contents.");
set_progress(0.110675);
apply_patch_check("/system/framework/content.odex", "6b65f1451907ff747a4bfa3d023dbbf9f98d9afd", "efd9ec973d9fa4a84102c0ba1203658015817aef") || abort("\"/system/framework/content.odex\" has unexpected contents.");
set_progress(0.110895);
apply_patch_check("/system/framework/core-junit.jar", "2e4e123fed87b9e45ae8dd94cc5338a937317da5", "1ff3f00bfe038d1a59201112e286c50098109d29") || abort("\"/system/framework/core-junit.jar\" has unexpected contents.");
set_progress(0.110898);
apply_patch_check("/system/framework/core-junit.odex", "2bc65ba0f2902c9e89f655e6e560a0979e48d221", "bf041d748e26b551c8b4d7bac6185d096fc729bd") || abort("\"/system/framework/core-junit.odex\" has unexpected contents.");
set_progress(0.111239);
apply_patch_check("/system/framework/core.jar", "a77773e3ba7e736919e5771b46035d0915190566", "456f942e63c86221d5fdad51b4a31f3c1dd2cc7e") || abort("\"/system/framework/core.jar\" has unexpected contents.");
set_progress(0.111277);
apply_patch_check("/system/framework/core.odex", "b0fe6c97d84dc3dfcbd222124ed28ba8616e4c43", "296005c7e5351f8a8e18aa9a6c9a28049e2e915d") || abort("\"/system/framework/core.odex\" has unexpected contents.");
set_progress(0.151872);
apply_patch_check("/system/framework/ext.jar", "e09fbf8b8eb9630e07d9d64d45259fb483d904ee", "ad84795c2fb05c3acf58970c626d75d4f34f54c8") || abort("\"/system/framework/ext.jar\" has unexpected contents.");
set_progress(0.160073);
apply_patch_check("/system/framework/ext.odex", "ed3819987d8ca4eb47878900d47f6aaef202daf5", "4dce6b18f430fa5fad382870317609e89b032b46") || abort("\"/system/framework/ext.odex\" has unexpected contents.");
set_progress(0.178652);
apply_patch_check("/system/framework/framework-res.apk", "fc192d3a305d06ad2a15698ce3a0adf34a753ccb", "e061652144b2727657f2fa15a2d691335e1e56b1") || abort("\"/system/framework/framework-res.apk\" has unexpected contents.");
set_progress(0.321266);
apply_patch_check("/system/framework/framework.jar", "8600e292eb3ee097b2063fd52c95dbd28dc5bb3c", "8d9df04f5d1154c5ef5764ef990630c45e55a69c") || abort("\"/system/framework/framework.jar\" has unexpected contents.");
set_progress(0.321390);
apply_patch_check("/system/framework/framework.odex", "f805434d35b532c807fd351043c28815d19f8272", "93d6fc852bc672b01e58d5d61a5692f67d82b57b") || abort("\"/system/framework/framework.odex\" has unexpected contents.");
set_progress(0.440676);
apply_patch_check("/system/framework/framework2.jar", "5bffcb26c1eec3b1d61e6a10ad53c92770db8537", "45ce106238247590b49dc5abaf65864788bfa909") || abort("\"/system/framework/framework2.jar\" has unexpected contents.");
set_progress(0.440680);
apply_patch_check("/system/framework/framework2.odex", "a191be2ee08f4a9e6220c34a86d950dcc941f864", "a5581a4f2f21f48755d7dc00545cf7906c1d3c29") || abort("\"/system/framework/framework2.odex\" has unexpected contents.");
set_progress(0.460361);
apply_patch_check("/system/framework/ime.jar", "1fb5b6109feea379f3e982579f22d7a67eae66a2", "fdb70dfcfdd1e897ce61998a20d86859a4a785d8") || abort("\"/system/framework/ime.jar\" has unexpected contents.");
set_progress(0.460364);
apply_patch_check("/system/framework/ime.odex", "2a203d7c3d44061c304f0c5bac51a63240a61905", "c3f926fb5ef0ea41cd372c5d0babb8159bf5abae") || abort("\"/system/framework/ime.odex\" has unexpected contents.");
set_progress(0.460451);
apply_patch_check("/system/framework/input.jar", "1fb5b6109feea379f3e982579f22d7a67eae66a2", "fdb70dfcfdd1e897ce61998a20d86859a4a785d8") || abort("\"/system/framework/input.jar\" has unexpected contents.");
set_progress(0.460455);
apply_patch_check("/system/framework/input.odex", "a1ae8dc10338208b19eab5632861342dca37aa9e", "c05a2b2e6aa380a8f8c425424c249719f2068695") || abort("\"/system/framework/input.odex\" has unexpected contents.");
set_progress(0.460570);
apply_patch_check("/system/framework/javax.obex.jar", "ca22c0fcdbf0922608a849decdad49bb1eb0957c", "aa8ccbdc4f0d32c1247a6bd9f1c431f64cea9282") || abort("\"/system/framework/javax.obex.jar\" has unexpected contents.");
set_progress(0.460574);
apply_patch_check("/system/framework/javax.obex.odex", "dc8135abf4b07ff2f323f1831f48cb4164888ed6", "b15f2a15e2e604cfe1428dcf8b464ef2a842ca70") || abort("\"/system/framework/javax.obex.odex\" has unexpected contents.");
set_progress(0.461299);
apply_patch_check("/system/framework/media_cmd.jar", "1fb5b6109feea379f3e982579f22d7a67eae66a2", "cd39e446629c45f12f234da15a142e504ad4659f") || abort("\"/system/framework/media_cmd.jar\" has unexpected contents.");
set_progress(0.461303);
apply_patch_check("/system/framework/media_cmd.odex", "2c77daf76519f4bc412703c3661f16381af46100", "a809f8803728a992d89e0ee9e325213938c9bae4") || abort("\"/system/framework/media_cmd.odex\" has unexpected contents.");
set_progress(0.461414);
apply_patch_check("/system/framework/mms-common.jar", "a0f83edf7475da3b8271d023eb3df23ff2662ec7", "81dc1d302e9f9b3d92bfb854bbf2613fa103d338") || abort("\"/system/framework/mms-common.jar\" has unexpected contents.");
set_progress(0.461418);
apply_patch_check("/system/framework/mms-common.odex", "be85e4b06628510a6dd7db5678bc0bc2d4d68768", "dbaa50b82586b63e32f26984b376369d3fde9847") || abort("\"/system/framework/mms-common.odex\" has unexpected contents.");
set_progress(0.463026);
apply_patch_check("/system/framework/monkey.jar", "bc72a71f975d49a578f1c87a2c4ebcf7f455c894", "9f795c691d7aa74b365e745eeed35b827a6eea2b") || abort("\"/system/framework/monkey.jar\" has unexpected contents.");
set_progress(0.463030);
apply_patch_check("/system/framework/monkey.odex", "a4433e7d3ec65f8afe35b11e004f308f05c3294b", "a64bed165a0c06152c22cd1c80998a8334a24494") || abort("\"/system/framework/monkey.odex\" has unexpected contents.");
set_progress(0.464510);
apply_patch_check("/system/framework/nullwebview.jar", "7e035aebd4615d21c9c358957bff8b81d83bb4fc", "93bbfac6306ebb10778342849dcab06e6fd9b0b4") || abort("\"/system/framework/nullwebview.jar\" has unexpected contents.");
set_progress(0.464514);
apply_patch_check("/system/framework/nullwebview.odex", "6afce4c1233ef3af27e51488de5971c4a3847f96", "409cab5e0f8f9aa72b03efe04aeb417a45ca76eb") || abort("\"/system/framework/nullwebview.odex\" has unexpected contents.");
set_progress(0.464548);
apply_patch_check("/system/framework/okhttp.jar", "55a2594e32eefbb13c70c204a7e8e1c4685c118b", "1325e6348239dc19365abeb0b198d734e7e1b1eb") || abort("\"/system/framework/okhttp.jar\" has unexpected contents.");
set_progress(0.464552);
apply_patch_check("/system/framework/okhttp.odex", "9de9d1ab5a1a28ee69a8b7274c988253484b74a2", "e1e095ce8b7aeba34962f70ead022d25b6300b9a") || abort("\"/system/framework/okhttp.odex\" has unexpected contents.");
set_progress(0.467489);
apply_patch_check("/system/framework/pm.jar", "5bffcb26c1eec3b1d61e6a10ad53c92770db8537", "cd39e446629c45f12f234da15a142e504ad4659f") || abort("\"/system/framework/pm.jar\" has unexpected contents.");
set_progress(0.467493);
apply_patch_check("/system/framework/pm.odex", "ac551a83e57189caa9dfdfb1720629648a8ec6ee", "46940604b0493d14b934d38698debcbddbd14121") || abort("\"/system/framework/pm.odex\" has unexpected contents.");
set_progress(0.468005);
apply_patch_check("/system/framework/services.jar", "00e4a6314946256ef973874b6e3f07b00a68a8bd", "1fd84f05e944e4de014823ac0002d6256a8e9306") || abort("\"/system/framework/services.jar\" has unexpected contents.");
set_progress(0.468009);
apply_patch_check("/system/framework/services.odex", "9509bf0d51e2ec0743f8858afbeca55e06ee7925", "6e48d8167c63ae980488d06fa5562ebdde625cd8") || abort("\"/system/framework/services.odex\" has unexpected contents.");
set_progress(0.511987);
apply_patch_check("/system/framework/settings.jar", "1fb5b6109feea379f3e982579f22d7a67eae66a2", "cd39e446629c45f12f234da15a142e504ad4659f") || abort("\"/system/framework/settings.jar\" has unexpected contents.");
set_progress(0.511990);
apply_patch_check("/system/framework/settings.odex", "105a7b6596e94b800494408733e76982ab5af69b", "10bcc45bee18289107a4b818e76de36cb20e67c7") || abort("\"/system/framework/settings.odex\" has unexpected contents.");
set_progress(0.512094);
apply_patch_check("/system/framework/svc.jar", "29fbe8cc68c0ad2c4a47a32fc484948e488b1a40", "cd39e446629c45f12f234da15a142e504ad4659f") || abort("\"/system/framework/svc.jar\" has unexpected contents.");
set_progress(0.512097);
apply_patch_check("/system/framework/svc.odex", "675b48bb38a86a6359bfd089beb394349f44a01c", "c13fc0f4c17035209851a8a78f8fe1710d5db931") || abort("\"/system/framework/svc.odex\" has unexpected contents.");
set_progress(0.512228);
apply_patch_check("/system/framework/telephony-common.jar", "5643e5fec80238650e395d0fccc9ae131d599590", "4b8c2b3533b29382b423653e4b7915915e610662") || abort("\"/system/framework/telephony-common.jar\" has unexpected contents.");
set_progress(0.512232);
apply_patch_check("/system/framework/telephony-common.odex", "3a6796c157d5061600f04896fab15f5fd911e356", "f3de0c5119852f47369dcf196e67ddcd9d950d88") || abort("\"/system/framework/telephony-common.odex\" has unexpected contents.");
set_progress(0.528183);
apply_patch_check("/system/framework/uiautomator.jar", "c6fe18a4f1a34dc1298d20fdaced2f5e69eb7f60", "36979a5666d34ed8e9224f64af5bb142e38fee0c") || abort("\"/system/framework/uiautomator.jar\" has unexpected contents.");
set_progress(0.528187);
apply_patch_check("/system/framework/uiautomator.odex", "e8babf85b49c6188c16def9086cb891bdce41394", "26b3fe6104b747118abafbf05382085ccd21c3fe") || abort("\"/system/framework/uiautomator.odex\" has unexpected contents.");
set_progress(0.529601);
apply_patch_check("/system/framework/voip-common.jar", "bc72a71f975d49a578f1c87a2c4ebcf7f455c894", "cd39e446629c45f12f234da15a142e504ad4659f") || abort("\"/system/framework/voip-common.jar\" has unexpected contents.");
set_progress(0.529605);
apply_patch_check("/system/framework/voip-common.odex", "a3f22edcbb856cf4a25877c9533e50b68b1e4e62", "ba2aa48cda70e286a86b0884b857c1ca502ea4e8") || abort("\"/system/framework/voip-common.odex\" has unexpected contents.");
set_progress(0.531718);
apply_patch_check("/system/framework/wm.jar", "29fbe8cc68c0ad2c4a47a32fc484948e488b1a40", "cd39e446629c45f12f234da15a142e504ad4659f") || abort("\"/system/framework/wm.jar\" has unexpected contents.");
set_progress(0.531722);
apply_patch_check("/system/framework/wm.odex", "8dc5a91d5bee223402f390c29a9176104251310f", "fa204aa1c014d4799e08514e3e2ba540b013ab74") || abort("\"/system/framework/wm.odex\" has unexpected contents.");
set_progress(0.531807);
apply_patch_check("/system/lib/hw/sensors.invensense.so", "498eebb4e0edcfa64a8f87e2184fcffb493033eb", "4c2f1763595f662b3deaad6065065fd5b97a611c") || abort("\"/system/lib/hw/sensors.invensense.so\" has unexpected contents.");
set_progress(0.531924);
apply_patch_check("/system/lib/libLLVM.so", "2dfc112dc0dbc9453fc720c2c4b22f9c060c7415", "243128d31a3143598194a67ae29f75a62ea90f8a") || abort("\"/system/lib/libLLVM.so\" has unexpected contents.");
set_progress(0.635550);
apply_patch_check("/system/lib/libbcc.sha1.so", "0bd9a1ce6f437da3a98aedb24ef8b06e4843f813", "306ba1c15775dee8f0f06bc02ee27c72aa07143b") || abort("\"/system/lib/libbcc.sha1.so\" has unexpected contents.");
set_progress(0.635613);
apply_patch_check("/system/lib/libbcc.so", "98462f275201a2ee0958b19fdd29307113fa8a49", "30b899beaabab2efca9b0363349ee69441c6c57d") || abort("\"/system/lib/libbcc.so\" has unexpected contents.");
set_progress(0.637242);
apply_patch_check("/system/lib/libinvensense_hal.so", "72c4d039b7b4384be6b98a56dac8d0272397b72f", "f147b16d73b3d6180081d9b8b362ea57f17d5efe") || abort("\"/system/lib/libinvensense_hal.so\" has unexpected contents.");
set_progress(0.638629);
apply_patch_check("/system/lib/libmdnssd.so", "1d422f4a8cabfb8faf05195ca3de28eadc458c98", "2aa40113f2058fcf563af4b74b4b4f73dd0e6f32") || abort("\"/system/lib/libmdnssd.so\" has unexpected contents.");
set_progress(0.638896);
apply_patch_check("/system/priv-app/BackupRestoreConfirmation.apk", "e6198a55e24beb21ea4f0a94a45b2895dbf3a996", "5a393247f36c21477605a17a067177386bec5b53") || abort("\"/system/priv-app/BackupRestoreConfirmation.apk\" has unexpected contents.");
set_progress(0.640501);
apply_patch_check("/system/priv-app/CalendarProvider.apk", "dac61635083f7184c3598ca5f3e5b6795a4061db", "cdb3a515cf243b1afed78eb628e6c63c6942fdc6") || abort("\"/system/priv-app/CalendarProvider.apk\" has unexpected contents.");
set_progress(0.641593);
apply_patch_check("/system/priv-app/ClockworkBugReportSender.apk", "6e633aebc8c06dcb3029839e5af35a0c45f9eca8", "afcb0026d159fd828f4180360be405f93f5542a7") || abort("\"/system/priv-app/ClockworkBugReportSender.apk\" has unexpected contents.");
set_progress(0.644507);
apply_patch_check("/system/priv-app/ClockworkHomeGoogle.apk", "3e652be76cb8d5370631e97a5a79cb6d012dca9c", "7ceaff6c5c74695b13c4f64c891411934c70938f") || abort("\"/system/priv-app/ClockworkHomeGoogle.apk\" has unexpected contents.");
set_progress(0.873572);
apply_patch_check("/system/priv-app/ClockworkHomeGoogle.odex", "2de679a9974689fcd28524f35dea7198712497a3", "8e9123f19ab5d2738b08a42aeda33c70eb091c01") || abort("\"/system/priv-app/ClockworkHomeGoogle.odex\" has unexpected contents.");
set_progress(0.922776);
apply_patch_check("/system/priv-app/ClockworkPackageInstaller.apk", "f285243d1647d897edc6bed96ae71120c6c4a894", "c6e024942bf25382bdfb3abd2288a88ab59c785a") || abort("\"/system/priv-app/ClockworkPackageInstaller.apk\" has unexpected contents.");
set_progress(0.925547);
apply_patch_check("/system/priv-app/ClockworkPhotosWatchFace.apk", "41e557c816eb266f1785c4d3f6abd3500fcf572b", "575b07b3978913e9c7583e92323d2cf48c877d50") || abort("\"/system/priv-app/ClockworkPhotosWatchFace.apk\" has unexpected contents.");
set_progress(0.956546);
apply_patch_check("/system/priv-app/ClockworkSettings.apk", "fb3ec80b97219a7e3436fcebb7088d21305fc464", "49c5f08a468ba1bf624313845e7244d6416e0452") || abort("\"/system/priv-app/ClockworkSettings.apk\" has unexpected contents.");
set_progress(0.960882);
apply_patch_check("/system/priv-app/ClockworkSetup.apk", "03566b5bc2f4059dd0812759e065d81f39cfe764", "98a02b86fbf08e3984e82241a62ffbe05d9397a1") || abort("\"/system/priv-app/ClockworkSetup.apk\" has unexpected contents.");
set_progress(0.964377);
apply_patch_check("/system/priv-app/ContactsProvider.apk", "b4b1d110cbf08b3a2a96f650a8c1b9f41ca000c3", "df1e0b118bc455e7a2f8a4ed138bbf5ad1530249") || abort("\"/system/priv-app/ContactsProvider.apk\" has unexpected contents.");
set_progress(0.965748);
apply_patch_check("/system/priv-app/DefaultContainerService.apk", "a5889c88e28787743b8db9c767f8c0aa0c6850a0", "ea2143001535a01f8decdc6199024c245f8dd0d3") || abort("\"/system/priv-app/DefaultContainerService.apk\" has unexpected contents.");
set_progress(0.965870);
apply_patch_check("/system/priv-app/DownloadProvider.apk", "24197152ec70b32ecc362a3f1db710968a86db9d", "cd429a88fb9f81506a5ed163e81f44f2409f4050") || abort("\"/system/priv-app/DownloadProvider.apk\" has unexpected contents.");
set_progress(0.969746);
apply_patch_check("/system/priv-app/FusedLocation.apk", "d20dbb923c37b22a8ec6474997766934ef601b54", "6899fcb996c87f75f9ed0b378346207cebe1d7ef") || abort("\"/system/priv-app/FusedLocation.apk\" has unexpected contents.");
set_progress(0.969853);
apply_patch_check("/system/priv-app/GoogleServicesFramework.apk", "03dfcf2a582b8226eff71a1507b61f5c39b1a101", "0e91d61f6e0b1a269d0f09c8b750f1ba18ad3aa4") || abort("\"/system/priv-app/GoogleServicesFramework.apk\" has unexpected contents.");
set_progress(0.990932);
apply_patch_check("/system/priv-app/InputDevices.apk", "656386163c52d7c9e5ff40aa67f576b635425b4d", "f30a1b433d5fb310c82baa68f1660d770618ceaf") || abort("\"/system/priv-app/InputDevices.apk\" has unexpected contents.");
set_progress(0.992556);
apply_patch_check("/system/priv-app/MediaProvider.apk", "0e6387bd38aa4435fb984dab0e8595d0c9c72d8a", "2abbe5ef62dabad54bbc3591332e217c28bddcc9") || abort("\"/system/priv-app/MediaProvider.apk\" has unexpected contents.");
set_progress(0.993299);
apply_patch_check("/system/priv-app/MinModWatchfaces.apk", "a2a0a55f32b0308c4fc5f086f0b3d00863b8500e", "b5616a52ac794fa411b50d5feb27c25f5792dfee") || abort("\"/system/priv-app/MinModWatchfaces.apk\" has unexpected contents.");
set_progress(0.998377);
apply_patch_check("/system/priv-app/SettingsProvider.apk", "103bf2d7b19fa2399bbb8825ca1767ac28b1214e", "74758315a4373dabf24ebd26420cd98612916c3f") || abort("\"/system/priv-app/SettingsProvider.apk\" has unexpected contents.");
set_progress(0.999511);
apply_patch_check("/system/priv-app/Shell.apk", "14ec3ba2d4231c102ad1b840549871c48ed7f211", "e4499730959fa192569f9724af421300bcc1ae2f") || abort("\"/system/priv-app/Shell.apk\" has unexpected contents.");
set_progress(1.000000);
apply_patch_space(18623900) || 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", "-",
            97948a897ee1d7d7f5d17623121eb40e2febc0f5, 505127,
            ffc3c620c29621a94047f8099b1067bf3dbc8cf7, package_extract_file("patch/system/app/Bluetooth.apk.p"));
set_progress(0.006213);
apply_patch("/system/app/CertInstaller.apk", "-",
            ee8960ddd6a059a6139729e3777001ff49dce074, 143720,
            1983fd67cf6e3d7a6e71017c6ae976a9a40205c0, package_extract_file("patch/system/app/CertInstaller.apk.p"));
set_progress(0.007980);
apply_patch("/system/app/ClockworkFitness.apk", "-",
            6ba213e1374873a8ff54c7b49e641107b5e58235, 799630,
            767c798c72318ba23b22334fcd27359e26076f94, package_extract_file("patch/system/app/ClockworkFitness.apk.p"));
set_progress(0.017816);
apply_patch("/system/app/ClockworkFitness.odex", "-",
            ae2aaa7a3f7cae362bc430f9c8dd04a8298d31db, 1637808,
            a2db9936bd71f26d4d3d110f6d129db0e25c2169, package_extract_file("patch/system/app/ClockworkFitness.odex.p"));
set_progress(0.037960);
apply_patch("/system/app/DeskClockMicroApp.apk", "-",
            dde923b3811e69a382ed2c6705df65716b88bd3e, 1249523,
            153613a452d7d00380f15d2a07acb1c4763a90d2, package_extract_file("patch/system/app/DeskClockMicroApp.apk.p"));
set_progress(0.053328);
apply_patch("/system/app/LgeWorldClock.apk", "-",
            3887a96836be80af235ef4849ddbd97201ffd8d6, 530912,
            20d538af50db3c23b80df57927a344ee73b0a175, package_extract_file("patch/system/app/LgeWorldClock.apk.p"));
set_progress(0.059858);
apply_patch("/system/app/UserDictionaryProvider.apk", "-",
            97e821831789b8103351260ecfcc5d067dd1f904, 3517,
            63fe9768233fb7d8fbb63ec3b1e3d3e46a93448a, package_extract_file("patch/system/app/UserDictionaryProvider.apk.p"));
set_progress(0.059901);
apply_patch("/system/bin/debuggerd", "-",
            8587fa67fd1b3fe88c33b193c6760511715fe6c7, 25892,
            6ee3771d7f7ef06fe17e50298093ce06ab99eb63, package_extract_file("patch/system/bin/debuggerd.p"));
set_progress(0.060220);
apply_patch("/system/etc/NOTICE.html.gz", "-",
            b35bcf2e1b6ba407844b716f286ed9b743c459b1, 104605,
            a8a00c3f298370cbb805c29adb08deec48d7e35f, package_extract_file("patch/system/etc/NOTICE.html.gz.p"));
set_progress(0.061506);
apply_patch("/system/etc/recovery-resource.dat", "-",
            9ffd83acf6e876b083d1f032b7093b5fa1acccec, 498365,
            6539974dd9934121083c5ad7eee24f859a20071e, package_extract_file("patch/system/etc/recovery-resource.dat.p"));
set_progress(0.067636);
apply_patch("/system/framework/am.jar", "-",
            5bffcb26c1eec3b1d61e6a10ad53c92770db8537, 313,
            fdb70dfcfdd1e897ce61998a20d86859a4a785d8, package_extract_file("patch/system/framework/am.jar.p"));
set_progress(0.067640);
apply_patch("/system/framework/am.odex", "-",
            61b281c24310994032358d043abe3fed838fd0b9, 48840,
            81dfe391b39d4221008563eb4cf9c0d3867e20d4, package_extract_file("patch/system/framework/am.odex.p"));
set_progress(0.068241);
apply_patch("/system/framework/android.policy.jar", "-",
            7e035aebd4615d21c9c358957bff8b81d83bb4fc, 313,
            9f795c691d7aa74b365e745eeed35b827a6eea2b, package_extract_file("patch/system/framework/android.policy.jar.p"));
set_progress(0.068245);
apply_patch("/system/framework/android.policy.odex", "-",
            863814053dae039f6bfb89a225ea1dc744f4cd97, 262128,
            d6970c8827e027385c9f0b12a0292c37bb2c2f07, package_extract_file("patch/system/framework/android.policy.odex.p"));
set_progress(0.071469);
apply_patch("/system/framework/android.test.runner.jar", "-",
            4760b5b3aeba655fb5adb0136446bd96b8eac5d9, 313,
            8f71d8ab0c8d6437752b7e6001ddf90b495af11b, package_extract_file("patch/system/framework/android.test.runner.jar.p"));
set_progress(0.071472);
apply_patch("/system/framework/android.test.runner.odex", "-",
            4e652bc8f369a72e44ebedc9bc3506617ebb5c6c, 189888,
            f702413fe6dc62c416d1527485e12de46d632a79, package_extract_file("patch/system/framework/android.test.runner.odex.p"));
set_progress(0.073808);
apply_patch("/system/framework/apache-xml.jar", "-",
            0a8d30872d004943aabd0738465ac5ce3a9c07d0, 18027,
            a90292cf5d7b5118067c09af094fdce52f7d64cb, package_extract_file("patch/system/framework/apache-xml.jar.p"));
set_progress(0.074030);
apply_patch("/system/framework/apache-xml.odex", "-",
            94292e7fd6604fb1af1e818dfb331e94042ee23e, 1378880,
            7d2d1dd9ffd355d028817dca82b11e0b30eba809, package_extract_file("patch/system/framework/apache-xml.odex.p"));
set_progress(0.090989);
apply_patch("/system/framework/bmgr.jar", "-",
            1fb5b6109feea379f3e982579f22d7a67eae66a2, 313,
            fdb70dfcfdd1e897ce61998a20d86859a4a785d8, package_extract_file("patch/system/framework/bmgr.jar.p"));
set_progress(0.090993);
apply_patch("/system/framework/bmgr.odex", "-",
            220c260cbfb57fd6034e27e1184a8b41813440a2, 15272,
            47c42933f9eeee1da8c3b50b42bc3add787f9833, package_extract_file("patch/system/framework/bmgr.odex.p"));
set_progress(0.091181);
apply_patch("/system/framework/bouncycastle.jar", "-",
            13e47da83a88baabca0782cab1ca5db8ae888f92, 313,
            acd5d744334aae12a0a78adff2da12aa4c797b6c, package_extract_file("patch/system/framework/bouncycastle.jar.p"));
set_progress(0.091185);
apply_patch("/system/framework/bouncycastle.odex", "-",
            e8e3224b2272acb942ca4f2158780fd32aeba089, 1191216,
            f87c3d679373df81e0caeeb1110b619f357e9566, package_extract_file("patch/system/framework/bouncycastle.odex.p"));
set_progress(0.105836);
apply_patch("/system/framework/bu.jar", "-",
            1fb5b6109feea379f3e982579f22d7a67eae66a2, 313,
            fdb70dfcfdd1e897ce61998a20d86859a4a785d8, package_extract_file("patch/system/framework/bu.jar.p"));
set_progress(0.105840);
apply_patch("/system/framework/bu.odex", "-",
            1b7d1df96fcbca023c6b480bbf312ec4f472ccf2, 5304,
            7fa861677fe35a7bd064c9c29bcd8897121c3e2f, package_extract_file("patch/system/framework/bu.odex.p"));
set_progress(0.105905);
apply_patch("/system/framework/com.android.location.provider.jar",
            "-", 1fb5b6109feea379f3e982579f22d7a67eae66a2, 313,
            fdb70dfcfdd1e897ce61998a20d86859a4a785d8, package_extract_file("patch/system/framework/com.android.location.provider.jar.p"));
set_progress(0.105909);
apply_patch("/system/framework/com.android.location.provider.odex",
            "-", bbfbcca777637c09f86691d897cdd15607a3ebdd, 21848,
            08303b10f4e87833fe0b9e59210665cca746c973, package_extract_file("patch/system/framework/com.android.location.provider.odex.p"));
set_progress(0.106178);
apply_patch("/system/framework/conscrypt.jar", "-",
            55a2594e32eefbb13c70c204a7e8e1c4685c118b, 313,
            bee49f4538db76464a0e04f714352b1bf6cbb841, package_extract_file("patch/system/framework/conscrypt.jar.p"));
set_progress(0.106182);
apply_patch("/system/framework/conscrypt.odex", "-",
            33d726d0eb5c92624b1585b5826e15a278d99d11, 364208,
            537e401c58044ed9cebe975ece53f2fded3376f7, package_extract_file("patch/system/framework/conscrypt.odex.p"));
set_progress(0.110661);
apply_patch("/system/framework/content.jar", "-",
            1fb5b6109feea379f3e982579f22d7a67eae66a2, 313,
            fdb70dfcfdd1e897ce61998a20d86859a4a785d8, package_extract_file("patch/system/framework/content.jar.p"));
set_progress(0.110665);
apply_patch("/system/framework/content.odex", "-",
            6b65f1451907ff747a4bfa3d023dbbf9f98d9afd, 17832,
            efd9ec973d9fa4a84102c0ba1203658015817aef, package_extract_file("patch/system/framework/content.odex.p"));
set_progress(0.110884);
apply_patch("/system/framework/core-junit.jar", "-",
            2e4e123fed87b9e45ae8dd94cc5338a937317da5, 313,
            1ff3f00bfe038d1a59201112e286c50098109d29, package_extract_file("patch/system/framework/core-junit.jar.p"));
set_progress(0.110888);
apply_patch("/system/framework/core-junit.odex", "-",
            2bc65ba0f2902c9e89f655e6e560a0979e48d221, 27688,
            bf041d748e26b551c8b4d7bac6185d096fc729bd, package_extract_file("patch/system/framework/core-junit.odex.p"));
set_progress(0.111229);
apply_patch("/system/framework/core.jar", "-",
            a77773e3ba7e736919e5771b46035d0915190566, 3121,
            456f942e63c86221d5fdad51b4a31f3c1dd2cc7e, package_extract_file("patch/system/framework/core.jar.p"));
set_progress(0.111267);
apply_patch("/system/framework/core.odex", "-",
            b0fe6c97d84dc3dfcbd222124ed28ba8616e4c43, 3300488,
            296005c7e5351f8a8e18aa9a6c9a28049e2e915d, package_extract_file("patch/system/framework/core.odex.p"));
set_progress(0.151861);
apply_patch("/system/framework/ext.jar", "-",
            e09fbf8b8eb9630e07d9d64d45259fb483d904ee, 666790,
            ad84795c2fb05c3acf58970c626d75d4f34f54c8, package_extract_file("patch/system/framework/ext.jar.p"));
set_progress(0.160063);
apply_patch("/system/framework/ext.odex", "-",
            ed3819987d8ca4eb47878900d47f6aaef202daf5, 1510528,
            4dce6b18f430fa5fad382870317609e89b032b46, package_extract_file("patch/system/framework/ext.odex.p"));
set_progress(0.178641);
apply_patch("/system/framework/framework-res.apk", "-",
            fc192d3a305d06ad2a15698ce3a0adf34a753ccb, 11595173,
            e061652144b2727657f2fa15a2d691335e1e56b1, package_extract_file("patch/system/framework/framework-res.apk.p"));
set_progress(0.321256);
apply_patch("/system/framework/framework.jar", "-",
            8600e292eb3ee097b2063fd52c95dbd28dc5bb3c, 10051,
            8d9df04f5d1154c5ef5764ef990630c45e55a69c, package_extract_file("patch/system/framework/framework.jar.p"));
set_progress(0.321380);
apply_patch("/system/framework/framework.odex", "-",
            f805434d35b532c807fd351043c28815d19f8272, 9698456,
            93d6fc852bc672b01e58d5d61a5692f67d82b57b, package_extract_file("patch/system/framework/framework.odex.p"));
set_progress(0.440666);
apply_patch("/system/framework/framework2.jar", "-",
            5bffcb26c1eec3b1d61e6a10ad53c92770db8537, 313,
            45ce106238247590b49dc5abaf65864788bfa909, package_extract_file("patch/system/framework/framework2.jar.p"));
set_progress(0.440670);
apply_patch("/system/framework/framework2.odex", "-",
            a191be2ee08f4a9e6220c34a86d950dcc941f864, 1600112,
            a5581a4f2f21f48755d7dc00545cf7906c1d3c29, package_extract_file("patch/system/framework/framework2.odex.p"));
set_progress(0.460350);
apply_patch("/system/framework/ime.jar", "-",
            1fb5b6109feea379f3e982579f22d7a67eae66a2, 313,
            fdb70dfcfdd1e897ce61998a20d86859a4a785d8, package_extract_file("patch/system/framework/ime.jar.p"));
set_progress(0.460354);
apply_patch("/system/framework/ime.odex", "-",
            2a203d7c3d44061c304f0c5bac51a63240a61905, 7056,
            c3f926fb5ef0ea41cd372c5d0babb8159bf5abae, package_extract_file("patch/system/framework/ime.odex.p"));
set_progress(0.460441);
apply_patch("/system/framework/input.jar", "-",
            1fb5b6109feea379f3e982579f22d7a67eae66a2, 313,
            fdb70dfcfdd1e897ce61998a20d86859a4a785d8, package_extract_file("patch/system/framework/input.jar.p"));
set_progress(0.460445);
apply_patch("/system/framework/input.odex", "-",
            a1ae8dc10338208b19eab5632861342dca37aa9e, 9352,
            c05a2b2e6aa380a8f8c425424c249719f2068695, package_extract_file("patch/system/framework/input.odex.p"));
set_progress(0.460560);
apply_patch("/system/framework/javax.obex.jar", "-",
            ca22c0fcdbf0922608a849decdad49bb1eb0957c, 313,
            aa8ccbdc4f0d32c1247a6bd9f1c431f64cea9282, package_extract_file("patch/system/framework/javax.obex.jar.p"));
set_progress(0.460564);
apply_patch("/system/framework/javax.obex.odex", "-",
            dc8135abf4b07ff2f323f1831f48cb4164888ed6, 58952,
            b15f2a15e2e604cfe1428dcf8b464ef2a842ca70, package_extract_file("patch/system/framework/javax.obex.odex.p"));
set_progress(0.461289);
apply_patch("/system/framework/media_cmd.jar", "-",
            1fb5b6109feea379f3e982579f22d7a67eae66a2, 313,
            cd39e446629c45f12f234da15a142e504ad4659f, package_extract_file("patch/system/framework/media_cmd.jar.p"));
set_progress(0.461293);
apply_patch("/system/framework/media_cmd.odex", "-",
            2c77daf76519f4bc412703c3661f16381af46100, 9048,
            a809f8803728a992d89e0ee9e325213938c9bae4, package_extract_file("patch/system/framework/media_cmd.odex.p"));
set_progress(0.461404);
apply_patch("/system/framework/mms-common.jar", "-",
            a0f83edf7475da3b8271d023eb3df23ff2662ec7, 313,
            81dc1d302e9f9b3d92bfb854bbf2613fa103d338, package_extract_file("patch/system/framework/mms-common.jar.p"));
set_progress(0.461408);
apply_patch("/system/framework/mms-common.odex", "-",
            be85e4b06628510a6dd7db5678bc0bc2d4d68768, 130736,
            dbaa50b82586b63e32f26984b376369d3fde9847, package_extract_file("patch/system/framework/mms-common.odex.p"));
set_progress(0.463016);
apply_patch("/system/framework/monkey.jar", "-",
            bc72a71f975d49a578f1c87a2c4ebcf7f455c894, 313,
            9f795c691d7aa74b365e745eeed35b827a6eea2b, package_extract_file("patch/system/framework/monkey.jar.p"));
set_progress(0.463020);
apply_patch("/system/framework/monkey.odex", "-",
            a4433e7d3ec65f8afe35b11e004f308f05c3294b, 120384,
            a64bed165a0c06152c22cd1c80998a8334a24494, package_extract_file("patch/system/framework/monkey.odex.p"));
set_progress(0.464500);
apply_patch("/system/framework/nullwebview.jar", "-",
            7e035aebd4615d21c9c358957bff8b81d83bb4fc, 313,
            93bbfac6306ebb10778342849dcab06e6fd9b0b4, package_extract_file("patch/system/framework/nullwebview.jar.p"));
set_progress(0.464504);
apply_patch("/system/framework/nullwebview.odex", "-",
            6afce4c1233ef3af27e51488de5971c4a3847f96, 2720,
            409cab5e0f8f9aa72b03efe04aeb417a45ca76eb, package_extract_file("patch/system/framework/nullwebview.odex.p"));
set_progress(0.464537);
apply_patch("/system/framework/okhttp.jar", "-",
            55a2594e32eefbb13c70c204a7e8e1c4685c118b, 313,
            1325e6348239dc19365abeb0b198d734e7e1b1eb, package_extract_file("patch/system/framework/okhttp.jar.p"));
set_progress(0.464541);
apply_patch("/system/framework/okhttp.odex", "-",
            9de9d1ab5a1a28ee69a8b7274c988253484b74a2, 238816,
            e1e095ce8b7aeba34962f70ead022d25b6300b9a, package_extract_file("patch/system/framework/okhttp.odex.p"));
set_progress(0.467479);
apply_patch("/system/framework/pm.jar", "-",
            5bffcb26c1eec3b1d61e6a10ad53c92770db8537, 313,
            cd39e446629c45f12f234da15a142e504ad4659f, package_extract_file("patch/system/framework/pm.jar.p"));
set_progress(0.467483);
apply_patch("/system/framework/pm.odex", "-",
            ac551a83e57189caa9dfdfb1720629648a8ec6ee, 41624,
            46940604b0493d14b934d38698debcbddbd14121, package_extract_file("patch/system/framework/pm.odex.p"));
set_progress(0.467994);
apply_patch("/system/framework/services.jar", "-",
            00e4a6314946256ef973874b6e3f07b00a68a8bd, 313,
            1fd84f05e944e4de014823ac0002d6256a8e9306, package_extract_file("patch/system/framework/services.jar.p"));
set_progress(0.467998);
apply_patch("/system/framework/services.odex", "-",
            9509bf0d51e2ec0743f8858afbeca55e06ee7925, 3575600,
            6e48d8167c63ae980488d06fa5562ebdde625cd8, package_extract_file("patch/system/framework/services.odex.p"));
set_progress(0.511976);
apply_patch("/system/framework/settings.jar", "-",
            1fb5b6109feea379f3e982579f22d7a67eae66a2, 313,
            cd39e446629c45f12f234da15a142e504ad4659f, package_extract_file("patch/system/framework/settings.jar.p"));
set_progress(0.511980);
apply_patch("/system/framework/settings.odex", "-",
            105a7b6596e94b800494408733e76982ab5af69b, 8376,
            10bcc45bee18289107a4b818e76de36cb20e67c7, package_extract_file("patch/system/framework/settings.odex.p"));
set_progress(0.512083);
apply_patch("/system/framework/svc.jar", "-",
            29fbe8cc68c0ad2c4a47a32fc484948e488b1a40, 313,
            cd39e446629c45f12f234da15a142e504ad4659f, package_extract_file("patch/system/framework/svc.jar.p"));
set_progress(0.512087);
apply_patch("/system/framework/svc.odex", "-",
            675b48bb38a86a6359bfd089beb394349f44a01c, 10632,
            c13fc0f4c17035209851a8a78f8fe1710d5db931, package_extract_file("patch/system/framework/svc.odex.p"));
set_progress(0.512218);
apply_patch("/system/framework/telephony-common.jar", "-",
            5643e5fec80238650e395d0fccc9ae131d599590, 313,
            4b8c2b3533b29382b423653e4b7915915e610662, package_extract_file("patch/system/framework/telephony-common.jar.p"));
set_progress(0.512222);
apply_patch("/system/framework/telephony-common.odex", "-",
            3a6796c157d5061600f04896fab15f5fd911e356, 1296912,
            f3de0c5119852f47369dcf196e67ddcd9d950d88, package_extract_file("patch/system/framework/telephony-common.odex.p"));
set_progress(0.528173);
apply_patch("/system/framework/uiautomator.jar", "-",
            c6fe18a4f1a34dc1298d20fdaced2f5e69eb7f60, 313,
            36979a5666d34ed8e9224f64af5bb142e38fee0c, package_extract_file("patch/system/framework/uiautomator.jar.p"));
set_progress(0.528177);
apply_patch("/system/framework/uiautomator.odex", "-",
            e8babf85b49c6188c16def9086cb891bdce41394, 114928,
            26b3fe6104b747118abafbf05382085ccd21c3fe, package_extract_file("patch/system/framework/uiautomator.odex.p"));
set_progress(0.529590);
apply_patch("/system/framework/voip-common.jar", "-",
            bc72a71f975d49a578f1c87a2c4ebcf7f455c894, 313,
            cd39e446629c45f12f234da15a142e504ad4659f, package_extract_file("patch/system/framework/voip-common.jar.p"));
set_progress(0.529594);
apply_patch("/system/framework/voip-common.odex", "-",
            a3f22edcbb856cf4a25877c9533e50b68b1e4e62, 171856,
            ba2aa48cda70e286a86b0884b857c1ca502ea4e8, package_extract_file("patch/system/framework/voip-common.odex.p"));
set_progress(0.531708);
apply_patch("/system/framework/wm.jar", "-",
            29fbe8cc68c0ad2c4a47a32fc484948e488b1a40, 313,
            cd39e446629c45f12f234da15a142e504ad4659f, package_extract_file("patch/system/framework/wm.jar.p"));
set_progress(0.531712);
apply_patch("/system/framework/wm.odex", "-",
            8dc5a91d5bee223402f390c29a9176104251310f, 6880,
            fa204aa1c014d4799e08514e3e2ba540b013ab74, package_extract_file("patch/system/framework/wm.odex.p"));
set_progress(0.531797);
apply_patch("/system/lib/hw/sensors.invensense.so", "-",
            498eebb4e0edcfa64a8f87e2184fcffb493033eb, 9544,
            4c2f1763595f662b3deaad6065065fd5b97a611c, package_extract_file("patch/system/lib/hw/sensors.invensense.so.p"));
set_progress(0.531914);
apply_patch("/system/lib/libLLVM.so", "-",
            2dfc112dc0dbc9453fc720c2c4b22f9c060c7415, 8425180,
            243128d31a3143598194a67ae29f75a62ea90f8a, package_extract_file("patch/system/lib/libLLVM.so.p"));
set_progress(0.635539);
apply_patch("/system/lib/libbcc.sha1.so", "-",
            0bd9a1ce6f437da3a98aedb24ef8b06e4843f813, 5152,
            306ba1c15775dee8f0f06bc02ee27c72aa07143b, package_extract_file("patch/system/lib/libbcc.sha1.so.p"));
set_progress(0.635603);
apply_patch("/system/lib/libbcc.so", "-",
            98462f275201a2ee0958b19fdd29307113fa8a49, 132412,
            30b899beaabab2efca9b0363349ee69441c6c57d, package_extract_file("patch/system/lib/libbcc.so.p"));
set_progress(0.637231);
apply_patch("/system/lib/libinvensense_hal.so", "-",
            72c4d039b7b4384be6b98a56dac8d0272397b72f, 112808,
            f147b16d73b3d6180081d9b8b362ea57f17d5efe, package_extract_file("patch/system/lib/libinvensense_hal.so.p"));
set_progress(0.638619);
apply_patch("/system/lib/libmdnssd.so", "-",
            1d422f4a8cabfb8faf05195ca3de28eadc458c98, 21684,
            2aa40113f2058fcf563af4b74b4b4f73dd0e6f32, package_extract_file("patch/system/lib/libmdnssd.so.p"));
set_progress(0.638886);
apply_patch("/system/priv-app/BackupRestoreConfirmation.apk", "-",
            e6198a55e24beb21ea4f0a94a45b2895dbf3a996, 130521,
            5a393247f36c21477605a17a067177386bec5b53, package_extract_file("patch/system/priv-app/BackupRestoreConfirmation.apk.p"));
set_progress(0.640491);
apply_patch("/system/priv-app/CalendarProvider.apk", "-",
            dac61635083f7184c3598ca5f3e5b6795a4061db, 88750,
            cdb3a515cf243b1afed78eb628e6c63c6942fdc6, package_extract_file("patch/system/priv-app/CalendarProvider.apk.p"));
set_progress(0.641582);
apply_patch("/system/priv-app/ClockworkBugReportSender.apk", "-",
            6e633aebc8c06dcb3029839e5af35a0c45f9eca8, 236946,
            afcb0026d159fd828f4180360be405f93f5542a7, package_extract_file("patch/system/priv-app/ClockworkBugReportSender.apk.p"));
set_progress(0.644497);
apply_patch("/system/priv-app/ClockworkHomeGoogle.apk", "-",
            3e652be76cb8d5370631e97a5a79cb6d012dca9c, 18622129,
            7ceaff6c5c74695b13c4f64c891411934c70938f, package_extract_file("patch/system/priv-app/ClockworkHomeGoogle.apk.p"));
set_progress(0.873540);
apply_patch("/system/priv-app/ClockworkHomeGoogle.odex", "-",
            2de679a9974689fcd28524f35dea7198712497a3, 4000464,
            8e9123f19ab5d2738b08a42aeda33c70eb091c01, package_extract_file("patch/system/priv-app/ClockworkHomeGoogle.odex.p"));
set_progress(0.922743);
apply_patch("/system/priv-app/ClockworkPackageInstaller.apk", "-",
            f285243d1647d897edc6bed96ae71120c6c4a894, 225292,
            c6e024942bf25382bdfb3abd2288a88ab59c785a, package_extract_file("patch/system/priv-app/ClockworkPackageInstaller.apk.p"));
set_progress(0.925514);
apply_patch("/system/priv-app/ClockworkPhotosWatchFace.apk", "-",
            41e557c816eb266f1785c4d3f6abd3500fcf572b, 2520272,
            575b07b3978913e9c7583e92323d2cf48c877d50, package_extract_file("patch/system/priv-app/ClockworkPhotosWatchFace.apk.p"));
set_progress(0.956512);
apply_patch("/system/priv-app/ClockworkSettings.apk", "-",
            fb3ec80b97219a7e3436fcebb7088d21305fc464, 352432,
            49c5f08a468ba1bf624313845e7244d6416e0452, package_extract_file("patch/system/priv-app/ClockworkSettings.apk.p"));
set_progress(0.960847);
apply_patch("/system/priv-app/ClockworkSetup.apk", "-",
            03566b5bc2f4059dd0812759e065d81f39cfe764, 284167,
            98a02b86fbf08e3984e82241a62ffbe05d9397a1, package_extract_file("patch/system/priv-app/ClockworkSetup.apk.p"));
set_progress(0.964342);
apply_patch("/system/priv-app/ContactsProvider.apk", "-",
            b4b1d110cbf08b3a2a96f650a8c1b9f41ca000c3, 111526,
            df1e0b118bc455e7a2f8a4ed138bbf5ad1530249, package_extract_file("patch/system/priv-app/ContactsProvider.apk.p"));
set_progress(0.965714);
apply_patch("/system/priv-app/DefaultContainerService.apk", "-",
            a5889c88e28787743b8db9c767f8c0aa0c6850a0, 9908,
            ea2143001535a01f8decdc6199024c245f8dd0d3, package_extract_file("patch/system/priv-app/DefaultContainerService.apk.p"));
set_progress(0.965836);
apply_patch("/system/priv-app/DownloadProvider.apk", "-",
            24197152ec70b32ecc362a3f1db710968a86db9d, 315080,
            cd429a88fb9f81506a5ed163e81f44f2409f4050, package_extract_file("patch/system/priv-app/DownloadProvider.apk.p"));
set_progress(0.969711);
apply_patch("/system/priv-app/FusedLocation.apk", "-",
            d20dbb923c37b22a8ec6474997766934ef601b54, 8686,
            6899fcb996c87f75f9ed0b378346207cebe1d7ef, package_extract_file("patch/system/priv-app/FusedLocation.apk.p"));
set_progress(0.969818);
apply_patch("/system/priv-app/GoogleServicesFramework.apk", "-",
            03dfcf2a582b8226eff71a1507b61f5c39b1a101, 1713854,
            0e91d61f6e0b1a269d0f09c8b750f1ba18ad3aa4, package_extract_file("patch/system/priv-app/GoogleServicesFramework.apk.p"));
set_progress(0.990897);
apply_patch("/system/priv-app/InputDevices.apk", "-",
            656386163c52d7c9e5ff40aa67f576b635425b4d, 132055,
            f30a1b433d5fb310c82baa68f1660d770618ceaf, package_extract_file("patch/system/priv-app/InputDevices.apk.p"));
set_progress(0.992522);
apply_patch("/system/priv-app/MediaProvider.apk", "-",
            0e6387bd38aa4435fb984dab0e8595d0c9c72d8a, 60392,
            2abbe5ef62dabad54bbc3591332e217c28bddcc9, package_extract_file("patch/system/priv-app/MediaProvider.apk.p"));
set_progress(0.993264);
apply_patch("/system/priv-app/MinModWatchfaces.apk", "-",
            a2a0a55f32b0308c4fc5f086f0b3d00863b8500e, 412883,
            b5616a52ac794fa411b50d5feb27c25f5792dfee, package_extract_file("patch/system/priv-app/MinModWatchfaces.apk.p"));
set_progress(0.998343);
apply_patch("/system/priv-app/SettingsProvider.apk", "-",
            103bf2d7b19fa2399bbb8825ca1767ac28b1214e, 92145,
            74758315a4373dabf24ebd26420cd98612916c3f, package_extract_file("patch/system/priv-app/SettingsProvider.apk.p"));
set_progress(0.999476);
apply_patch("/system/priv-app/Shell.apk", "-",
            14ec3ba2d4231c102ad1b840549871c48ed7f211, 39775,
            e4499730959fa192569f9724af421300bcc1ae2f, package_extract_file("patch/system/priv-app/Shell.apk.p"));
set_progress(0.999965);
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("Patching remaining system files...");
apply_patch("/system/build.prop", "-",
            391656b6cdac7986a5aaab270b399c6314a0ea78, 1487,
            3c4cc9ae4380f91becb50e397665c983b0396a02, package_extract_file("patch/system/build.prop.p"));
set_metadata("/system/build.prop", "uid", 0, "gid", 0, "mode", 0644, "capabilities", 0x0);
unmount("/system");
