mount("ext4", "EMMC", "/dev/block/platform/msm_sdcc.1/by-name/system", "/system");
mount("ext4", "EMMC", "/dev/block/platform/msm_sdcc.1/by-name/userdata", "/data");
assert(file_getprop("/system/build.prop", "ro.build.fingerprint") == "msm8960-user 4.2.2 JDQ39 eng.root.20131122.141101 release-keys,release-keys" ||
       file_getprop("/system/build.prop", "ro.build.fingerprint") == "msm8960-user 4.2.2 JDQ39 eng.root.20131122.141101 release-keys,release-keys");
assert(getprop("ro.product.device") == "N1T" || getprop("ro.build.product") == "N1T");
ui_print("Verifying current system...");
show_progress(0.100000, 0);
assert(apply_patch_check("/system/app/CalendarProvider.apk", "7df550a33064ce12a37a35d96cbcf8472bbb1f90", "1b9d909b0f4103f27c40b0b158a2a916faa04a4f"));
set_progress(0.007363);
assert(apply_patch_check("/system/app/ContactsProvider.apk", "4eab9c01d1b3bd9957b564631855053c212cbab2", "64bdc476639f41d50ac7bd2ef3c6dfeb86b7076f"));
set_progress(0.017666);
assert(apply_patch_check("/system/app/DownloadProvider.apk", "9f4d0190806ea0b58c6e0ac9acb60bfa09aa4cd2", "d19f56b3fcdedb204736f2a651ff81578642260e"));
set_progress(0.023971);
assert(apply_patch_check("/system/app/DownloadProviderUi.apk", "d76c894d965acede85a621d3ac0bbd1a5defcab0", "b6c4569f9a7aa6b8e7dd2abe4c17200a38d523fb"));
set_progress(0.027028);
assert(apply_patch_check("/system/app/FusedLocation.apk", "3517474e44b1e0b774a1ba7ba0d15a611ab8ebc8", "521484cd3cdf149b967bf135d143b983f4b1fd28"));
set_progress(0.027122);
assert(apply_patch_check("/system/app/LatinIME.apk", "75579eaae8b878b859a29c0e0e7faa485e61d163", "e231fe94467e087c5421fa8085d857adf42e9bbd"));
set_progress(0.139815);
assert(apply_patch_check("/system/app/LewaCalculator.apk", "1b306de842e96c877f5788cc2e5efdb8ef7fe412", "cf17a2d843aadcbde5dd2855513332b249ef0327"));
set_progress(0.158784);
assert(apply_patch_check("/system/app/LewaFlashlight.apk", "c78217cffedc4e7af3d8b85c075fc3d735295902", "da8907fbc51239750de8d488173b8d712e235d91"));
set_progress(0.191967);
assert(apply_patch_check("/system/app/LewaIntercept.apk", "e7d279cce71715b8dfef0c3f445a7ae033433073", "c84f002e312ea8e4fc225df0c6a7b7f91ceebdfd"));
set_progress(0.197172);
assert(apply_patch_check("/system/app/LewaLabiSync.apk", "774206d0346d8e14f1cafcae3eb8211b18f5bbab", "e4ac10936df55dee4afa7e1a1279a8b72042b791"));
set_progress(0.198671);
assert(apply_patch_check("/system/app/LewaLauncherX.apk", "ca4ba8a654c2cc01ad6c234d65349d621f253eea", "ffb7c33c5a2d2b51228e653b4b9a948c6e4c211b"));
set_progress(0.229688);
assert(apply_patch_check("/system/app/LewaPackageInstaller.apk", "cf369a0046b496ccbd337e5bc5099064ea26d522", "0633d24bbe69b142b9fa1b80d7777569ee5be1b6"));
set_progress(0.231849);
assert(apply_patch_check("/system/app/LewaSensorProvider.apk", "9e19f62fff60764260416e959e551ef7c86095d9", "9ada5bc30ef1a2132dc63fe85730dd6a55de3230"));
set_progress(0.232650);
assert(apply_patch_check("/system/app/LewaSoundRecorder.apk", "41b01e0dd909484e896566c41f33435291d45133", "95ff64ac7a29ba4bb58673ad8444abe4fde81e91"));
set_progress(0.256539);
assert(apply_patch_check("/system/app/LocationProvider.apk", "b0e08154e16a9d2f1da44c16591b2665e8c203a3", "3a8d7feb3c9f25331de2322cd878d1c79bea6d80"));
set_progress(0.279276);
assert(apply_patch_check("/system/app/MediaProvider.apk", "589e42cc2780e9bec9db684ebcbada730598d13b", "a91c7df64d9e230d54aa5c8cd2d4bd40e3015529"));
set_progress(0.280434);
assert(apply_patch_check("/system/app/MmsFavoriteProvider.apk", "9ac9654e430671e95c6059212344826f8c6fa9ef", "147f8b6a4c9bda9ec2a0085151f4489a9a7f1e85"));
set_progress(0.281489);
assert(apply_patch_check("/system/app/PIM.apk", "e381958070986907b38e3adae0b22f6078cd550e", "6f39ec158c23f60881623fe8de78a477fbf9fe6c"));
set_progress(0.424739);
assert(apply_patch_check("/system/app/Phone.apk", "ab3f37a621568e2bcdb5a29c7217474f0da70cd8", "1b667cc47b3cfc19d37be5ef1354f134fd5fdfcc"));
set_progress(0.459935);
assert(apply_patch_check("/system/app/Provision.apk", "969311d151fdb593b17ba589d361af15860e29da", "1c0fbec046cbe86277a99f86ab19377d421957a4"));
set_progress(0.459972);
assert(apply_patch_check("/system/app/Settings.apk", "921fca0e8a78cbe3e924a0650889f86ec069c52e", "f3f3abec5b169e94465afa45255f94a736c49aea"));
set_progress(0.526455);
assert(apply_patch_check("/system/app/SettingsProvider.apk", "4d6fa895bb2f8239ed05e20f8f24365dcb30b029", "a2691583cfda8e8342533d705496acf0a4f18ee4"));
set_progress(0.527115);
assert(apply_patch_check("/system/app/SystemUI.apk", "c21c5d066e8647d3a2df95b6e55d20aa55ea9497", "61b1c4a1e10aef3adc4289dad22a0faf9b290da9"));
set_progress(0.571736);
assert(apply_patch_check("/system/app/TelephonyProvider.apk", "e09747523b208991699472c0758872efed222a2b", "1beb173d44d84e060c104875ffa354d4438270d1"));
set_progress(0.573357);
assert(apply_patch_check("/system/framework/android.policy.jar", "73e208ee5252ba62070e353956a998681e354c49", "5eafc372fda54f3874b953cb8f68f37b5498f2f6"));
set_progress(0.576910);
assert(apply_patch_check("/system/framework/framework-res.apk", "6f8d3b52fc138e02e1b86f2208e62cf080f6adf3", "cd504d15e80cdec893c4cea3be882d9b6aee07de"));
set_progress(0.764027);
assert(apply_patch_check("/system/framework/framework.jar", "422b3b0773f32c269e2da1a0d550480c39fc796d", "c2acac57705d32be4fadb22db8132e758d5aa06e"));
set_progress(0.809669);
assert(apply_patch_check("/system/framework/framework_ext.jar", "8a303d13e1a1475a62b8e84e41eeb6b2989e584d", "bbce53baa8ee88e5a8ad995fb4ff7573fd399c12"));
set_progress(0.817010);
assert(apply_patch_check("/system/framework/lewa-framework.jar", "e7c3aa47cf037f51b4b1f252dfbfec16b28654c4", "e2adab39bb8de6e8b46529f33f1042c249e24ea1"));
set_progress(0.823587);
assert(apply_patch_check("/system/framework/lewa-res.apk", "6d8c91b22cd3ff78bdcab09ea4fbda47ca89c8ab", "672d6a129743280a1eacb38c3a182e83faaddd06"));
set_progress(0.981005);
assert(apply_patch_check("/system/framework/services.jar", "fa10e0cffd71c2a759e4e6c13c719d5cbdc036ab", "a38d022dc5f312f4f6463926b110990840aac271"));
set_progress(0.993754);
assert(apply_patch_check("/system/framework/telephony-common.jar", "07a1468a4ea2d345b5d82cd01c1faaf73cc4282c", "d5bec71a69660bd56ce54a57bcd0ff5e4054685b"));
set_progress(1.000000);
assert(apply_patch_space(18577063));

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

ui_print("Removing unneeded files...");
delete("/system/build.prop",
       "/system/recovery.img");
show_progress(0.800000, 0);
ui_print("Patching system files...");
apply_patch("/system/app/CalendarProvider.apk", "-",
            7df550a33064ce12a37a35d96cbcf8472bbb1f90, 730957,
            1b9d909b0f4103f27c40b0b158a2a916faa04a4f, package_extract_file("patch/system/app/CalendarProvider.apk.p"));
set_progress(0.007363);
apply_patch("/system/app/ContactsProvider.apk", "-",
            4eab9c01d1b3bd9957b564631855053c212cbab2, 1022902,
            64bdc476639f41d50ac7bd2ef3c6dfeb86b7076f, package_extract_file("patch/system/app/ContactsProvider.apk.p"));
set_progress(0.017666);
apply_patch("/system/app/DownloadProvider.apk", "-",
            9f4d0190806ea0b58c6e0ac9acb60bfa09aa4cd2, 625999,
            d19f56b3fcdedb204736f2a651ff81578642260e, package_extract_file("patch/system/app/DownloadProvider.apk.p"));
set_progress(0.023971);
apply_patch("/system/app/DownloadProviderUi.apk", "-",
            d76c894d965acede85a621d3ac0bbd1a5defcab0, 303525,
            b6c4569f9a7aa6b8e7dd2abe4c17200a38d523fb, package_extract_file("patch/system/app/DownloadProviderUi.apk.p"));
set_progress(0.027028);
apply_patch("/system/app/FusedLocation.apk", "-",
            3517474e44b1e0b774a1ba7ba0d15a611ab8ebc8, 9251,
            521484cd3cdf149b967bf135d143b983f4b1fd28, package_extract_file("patch/system/app/FusedLocation.apk.p"));
set_progress(0.027122);
apply_patch("/system/app/LatinIME.apk", "-",
            75579eaae8b878b859a29c0e0e7faa485e61d163, 11188259,
            e231fe94467e087c5421fa8085d857adf42e9bbd, package_extract_file("patch/system/app/LatinIME.apk.p"));
set_progress(0.139815);
apply_patch("/system/app/LewaCalculator.apk", "-",
            1b306de842e96c877f5788cc2e5efdb8ef7fe412, 1883167,
            cf17a2d843aadcbde5dd2855513332b249ef0327, package_extract_file("patch/system/app/LewaCalculator.apk.p"));
set_progress(0.158784);
apply_patch("/system/app/LewaFlashlight.apk", "-",
            c78217cffedc4e7af3d8b85c075fc3d735295902, 3294444,
            da8907fbc51239750de8d488173b8d712e235d91, package_extract_file("patch/system/app/LewaFlashlight.apk.p"));
set_progress(0.191967);
apply_patch("/system/app/LewaIntercept.apk", "-",
            e7d279cce71715b8dfef0c3f445a7ae033433073, 516719,
            c84f002e312ea8e4fc225df0c6a7b7f91ceebdfd, package_extract_file("patch/system/app/LewaIntercept.apk.p"));
set_progress(0.197171);
apply_patch("/system/app/LewaLabiSync.apk", "-",
            774206d0346d8e14f1cafcae3eb8211b18f5bbab, 148890,
            e4ac10936df55dee4afa7e1a1279a8b72042b791, package_extract_file("patch/system/app/LewaLabiSync.apk.p"));
set_progress(0.198671);
apply_patch("/system/app/LewaLauncherX.apk", "-",
            ca4ba8a654c2cc01ad6c234d65349d621f253eea, 3079397,
            ffb7c33c5a2d2b51228e653b4b9a948c6e4c211b, package_extract_file("patch/system/app/LewaLauncherX.apk.p"));
set_progress(0.229688);
apply_patch("/system/app/LewaPackageInstaller.apk", "-",
            cf369a0046b496ccbd337e5bc5099064ea26d522, 214540,
            0633d24bbe69b142b9fa1b80d7777569ee5be1b6, package_extract_file("patch/system/app/LewaPackageInstaller.apk.p"));
set_progress(0.231849);
apply_patch("/system/app/LewaSensorProvider.apk", "-",
            9e19f62fff60764260416e959e551ef7c86095d9, 79427,
            9ada5bc30ef1a2132dc63fe85730dd6a55de3230, package_extract_file("patch/system/app/LewaSensorProvider.apk.p"));
set_progress(0.232649);
apply_patch("/system/app/LewaSoundRecorder.apk", "-",
            41b01e0dd909484e896566c41f33435291d45133, 2371770,
            95ff64ac7a29ba4bb58673ad8444abe4fde81e91, package_extract_file("patch/system/app/LewaSoundRecorder.apk.p"));
set_progress(0.256539);
apply_patch("/system/app/LocationProvider.apk", "-",
            b0e08154e16a9d2f1da44c16591b2665e8c203a3, 2257275,
            3a8d7feb3c9f25331de2322cd878d1c79bea6d80, package_extract_file("patch/system/app/LocationProvider.apk.p"));
set_progress(0.279275);
apply_patch("/system/app/MediaProvider.apk", "-",
            589e42cc2780e9bec9db684ebcbada730598d13b, 114958,
            a91c7df64d9e230d54aa5c8cd2d4bd40e3015529, package_extract_file("patch/system/app/MediaProvider.apk.p"));
set_progress(0.280433);
apply_patch("/system/app/MmsFavoriteProvider.apk", "-",
            9ac9654e430671e95c6059212344826f8c6fa9ef, 104795,
            147f8b6a4c9bda9ec2a0085151f4489a9a7f1e85, package_extract_file("patch/system/app/MmsFavoriteProvider.apk.p"));
set_progress(0.281489);
apply_patch("/system/app/PIM.apk", "-",
            e381958070986907b38e3adae0b22f6078cd550e, 14221918,
            6f39ec158c23f60881623fe8de78a477fbf9fe6c, package_extract_file("patch/system/app/PIM.apk.p"));
set_progress(0.424739);
apply_patch("/system/app/Phone.apk", "-",
            ab3f37a621568e2bcdb5a29c7217474f0da70cd8, 3494272,
            1b667cc47b3cfc19d37be5ef1354f134fd5fdfcc, package_extract_file("patch/system/app/Phone.apk.p"));
set_progress(0.459935);
apply_patch("/system/app/Provision.apk", "-",
            969311d151fdb593b17ba589d361af15860e29da, 3656,
            1c0fbec046cbe86277a99f86ab19377d421957a4, package_extract_file("patch/system/app/Provision.apk.p"));
set_progress(0.459972);
apply_patch("/system/app/Settings.apk", "-",
            921fca0e8a78cbe3e924a0650889f86ec069c52e, 6600386,
            f3f3abec5b169e94465afa45255f94a736c49aea, package_extract_file("patch/system/app/Settings.apk.p"));
set_progress(0.526455);
apply_patch("/system/app/SettingsProvider.apk", "-",
            4d6fa895bb2f8239ed05e20f8f24365dcb30b029, 65579,
            a2691583cfda8e8342533d705496acf0a4f18ee4, package_extract_file("patch/system/app/SettingsProvider.apk.p"));
set_progress(0.527115);
apply_patch("/system/app/SystemUI.apk", "-",
            c21c5d066e8647d3a2df95b6e55d20aa55ea9497, 4429959,
            61b1c4a1e10aef3adc4289dad22a0faf9b290da9, package_extract_file("patch/system/app/SystemUI.apk.p"));
set_progress(0.571736);
apply_patch("/system/app/TelephonyProvider.apk", "-",
            e09747523b208991699472c0758872efed222a2b, 160974,
            1beb173d44d84e060c104875ffa354d4438270d1, package_extract_file("patch/system/app/TelephonyProvider.apk.p"));
set_progress(0.573357);
apply_patch("/system/framework/android.policy.jar", "-",
            73e208ee5252ba62070e353956a998681e354c49, 352673,
            5eafc372fda54f3874b953cb8f68f37b5498f2f6, package_extract_file("patch/system/framework/android.policy.jar.p"));
set_progress(0.576910);
apply_patch("/system/framework/framework-res.apk", "-",
            6f8d3b52fc138e02e1b86f2208e62cf080f6adf3, 18577063,
            cd504d15e80cdec893c4cea3be882d9b6aee07de, package_extract_file("patch/system/framework/framework-res.apk.p"));
set_progress(0.764027);
apply_patch("/system/framework/framework.jar", "-",
            422b3b0773f32c269e2da1a0d550480c39fc796d, 4531279,
            c2acac57705d32be4fadb22db8132e758d5aa06e, package_extract_file("patch/system/framework/framework.jar.p"));
set_progress(0.809668);
apply_patch("/system/framework/framework_ext.jar", "-",
            8a303d13e1a1475a62b8e84e41eeb6b2989e584d, 728848,
            bbce53baa8ee88e5a8ad995fb4ff7573fd399c12, package_extract_file("patch/system/framework/framework_ext.jar.p"));
set_progress(0.817010);
apply_patch("/system/framework/lewa-framework.jar", "-",
            e7c3aa47cf037f51b4b1f252dfbfec16b28654c4, 653007,
            e2adab39bb8de6e8b46529f33f1042c249e24ea1, package_extract_file("patch/system/framework/lewa-framework.jar.p"));
set_progress(0.823587);
apply_patch("/system/framework/lewa-res.apk", "-",
            6d8c91b22cd3ff78bdcab09ea4fbda47ca89c8ab, 15628449,
            672d6a129743280a1eacb38c3a182e83faaddd06, package_extract_file("patch/system/framework/lewa-res.apk.p"));
set_progress(0.981005);
apply_patch("/system/framework/services.jar", "-",
            fa10e0cffd71c2a759e4e6c13c719d5cbdc036ab, 1265742,
            a38d022dc5f312f4f6463926b110990840aac271, package_extract_file("patch/system/framework/services.jar.p"));
set_progress(0.993754);
apply_patch("/system/framework/telephony-common.jar", "-",
            07a1468a4ea2d345b5d82cd01c1faaf73cc4282c, 620105,
            d5bec71a69660bd56ce54a57bcd0ff5e4054685b, package_extract_file("patch/system/framework/telephony-common.jar.p"));
set_progress(1.000000);
show_progress(0.100000, 10);
ui_print("Unpacking new files...");
package_extract_dir("system", "/system");
package_extract_dir("data", "/data");
ui_print("Symlinks and permissions...");
set_perm_recursive(1000, 1000, 0755, 0644, "/data/preinstall_apps");
set_perm_recursive(0, 0, 0755, 0644, "/system");
set_perm_recursive(0, 2000, 0755, 0755, "/system/bin");
set_perm(0, 1000, 04750, "/system/bin/diag_mdlog");
set_perm(0, 3003, 02750, "/system/bin/netcfg");
set_perm(0, 3004, 02755, "/system/bin/ping");
set_perm(0, 2000, 06750, "/system/bin/run-as");
set_perm(0, 0, 06755, "/system/bin/su0");
set_perm(1002, 1002, 0440, "/system/etc/dbus.conf");
set_perm(1014, 2000, 0550, "/system/etc/dhcpcd/dhcpcd-run-hooks");
set_perm(0, 2000, 0550, "/system/etc/init.goldfish.sh");
set_perm(0, 0, 06755, "/system/xbin/busybox");
set_perm(0, 0, 06755, "/system/xbin/su");
ui_print("Patching remaining system files...");
set_perm(0, 0, 0644, "/system/build.prop");
unmount("/data");
unmount("/system");
