mount("yaffs2", "MTD", "system", "/system");
assert(file_getprop("/system/build.prop", "ro.build.fingerprint") == "ZTE/u880/u880:2.3.7/GWK74/eng.LeWa.20130530.145148:eng/test-keys" ||
       file_getprop("/system/build.prop", "ro.build.fingerprint") == "ZTE/u880/u880:2.3.7/GWK74/eng.LeWa.20131212.220134:eng/test-keys");
assert(getprop("ro.product.device") == "u880" ||
       getprop("ro.build.product") == "u880");
ui_print("Verifying current system...");
show_progress(0.100000, 0);
assert(apply_patch_check("/system/app/LewaLauncher.apk", "df4b65f50a25e04e773313a084c718203278c6b3", "b0d6c8d339713517220b54177918ab231e7cc7ed"));
set_progress(0.133012);
assert(apply_patch_check("/system/etc/security/otacerts.zip", "f4d8702e84979146d0074558f8b2d472a6f62ff6", "4741c82984f2d2e8f69b1264c1257e8f90cbee40"));
set_progress(0.133115);
assert(apply_patch_check("/system/framework/am.jar", "1b0acaa7ff888a08052d2080334548a13d6e8777", "3c509f6219cf3e251e673364a0ecff8f4f1522fb"));
set_progress(0.134213);
assert(apply_patch_check("/system/framework/android.policy.jar", "1e497f534f18b56dd88c40270796f22d9bbff112", "f6608fd0ba4b035424235239d73c66541a85919a"));
set_progress(0.146238);
assert(apply_patch_check("/system/framework/android.test.runner.jar", "612762f4a98457dcc1f545995c3e8bf3ef5d9f73", "2bff03517224d2565f675babda5591b9826a5eeb"));
set_progress(0.153224);
assert(apply_patch_check("/system/framework/bmgr.jar", "8d2deb31fd562f1a991751f4c71149fdfcf68158", "564bf2bc776b42f624bd1da287a03ab509749253"));
set_progress(0.153794);
assert(apply_patch_check("/system/framework/bouncycastle.jar", "ad5ae8c058efc3785d1b67ced87ed0739b5a51fa", "af5b78bf39172ab44ccbaf9408e164b68e900047"));
set_progress(0.180393);
assert(apply_patch_check("/system/framework/com.android.location.provider.jar", "aa0026ce5c5b9ad6251e5cf90d580f1a257b5a4c", "048664df087c02c527d9259c78b588845059f213"));
set_progress(0.180687);
assert(apply_patch_check("/system/framework/com.marvell.fmmanager.jar", "bd842e219fe3897942f04d58cc6be2b8a1f7573e", "79205a28f98b3c48cfb9e77c56aa307a49e21add"));
set_progress(0.181482);
assert(apply_patch_check("/system/framework/core-junit.jar", "8ffcfec2ace2cd5eee2437fac809883aeb5a448d", "0e3d6d3d76323485bca8d05eb8f66eb2469e4aca"));
set_progress(0.182401);
assert(apply_patch_check("/system/framework/core.jar", "c0f3d23d12a3a5a83a2e0ec955e4bb9711f4fc77", "e92402b8bf3cd876582cff6200a4e170050c18aa"));
set_progress(0.352891);
assert(apply_patch_check("/system/framework/ext.jar", "d437c489abb99f72f78b3b0a8cfc626ee23a112e", "23e4083419c6612b3e92d80236388167eca6ede3"));
set_progress(0.400048);
assert(apply_patch_check("/system/framework/framework.jar", "e034b1119afcda10bb2164b51c474c6bcdb78677", "0aed2c214a4b0983e8a8d29bc0cec6e30a8fdc5f"));
set_progress(0.712408);
assert(apply_patch_check("/system/framework/ime.jar", "2ded5603540dc0df9eb18f9239b0fdcffb302eac", "005cc4c8a56abcb28167694616af91b4e81d604b"));
set_progress(0.712713);
assert(apply_patch_check("/system/framework/input.jar", "a778be1525e1569fde89427c1fb487bac73b6c26", "8c2890ff9bc229e8bb4191890276b9ab80355c39"));
set_progress(0.712936);
assert(apply_patch_check("/system/framework/javax.obex.jar", "8e8164e101d64b3ddb9e67c1f17df157476f230e", "a6b2bf04d6fcda7419d41bc471b2ca43b5b829cc"));
set_progress(0.715418);
assert(apply_patch_check("/system/framework/monkey.jar", "f5756699a24e6a8191d9229854dbcfa4f103687c", "e11cac6ab45c54ca3ba42b2b99a0cfd51a269e9a"));
set_progress(0.718844);
assert(apply_patch_check("/system/framework/pm.jar", "a92a96a689c0c72c90f22e94587e181d28451984", "04a9565c471e14de90401daeb74b18615b1bdafb"));
set_progress(0.719968);
assert(apply_patch_check("/system/framework/services.jar", "e93e9e43661e2c7608cdc03c96a85ddd2e559c90", "1b2304bc4fb8c9f0e5f46d28a618a3fb3e0c46dd"));
set_progress(0.783025);
assert(apply_patch_check("/system/framework/sqlite-jdbc.jar", "4c9f94c71633fcdecaafbb3b51f6cd566a87c0e1", "ef27329b35f39ad85b2f16dbcff2164b1f490f0b"));
set_progress(0.788014);
assert(apply_patch_check("/system/framework/svc.jar", "27862f6dce325c4055baf83d19bb5523a6278195", "06289bd02178628e0c204cc08e8e39e72a10e200"));
set_progress(0.788362);
assert(apply_patch_check("/system/lib/libmock_ril.so", "06eac498981b9d32caf622ee1dd168e5e158e7c9", "e172da6299df7ed0e6cc22a0db1f102e45df8c02"));
set_progress(0.994243);
assert(apply_patch_check("/system/xbin/crasher", "b71c3f4f54ba08f6ea1737a50d34b5272c5dee04", "6a6bfc5724cfe652c87b290959e9198eacf1fd15"));
set_progress(0.994749);
assert(apply_patch_check("/system/xbin/oprofiled", "cb2dd3f137bab23f6ff28b1b38fe733680c4d388", "8a1487e40be4d1aef4b87b968208119ccf9975df"));
set_progress(1.000000);
assert(apply_patch_space(3413647));

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

ui_print("Removing unneeded files...");
delete("/system/app/AppStore.apk", "/system/app/AppStoreService.apk",
       "/system/build.prop", "/system/app/BaiduSearch.apk",
       "/system/app/lewamarket.apk", "/system/lib/libAesArithmetic.so",
       "/system/lib/libBDVoiceSearchClient_V2.so",
       "/system/lib/libMoplusMD5.so", "/system/lib/libbase64encoder_v1_3.so",
       "/system/lib/libcyberplayer.so", "/system/lib/libffmpeg.so",
       "/system/lib/libgetcpuspec.so", "/system/lib/liblocSDK3.so",
       "/system/lib/libp2p-jni.so", "/system/lib/librabjni.so",
       "/system/lib/libsapi_V5_0.so", "/system/lib/libstlport_shared.so",
       "/system/recovery.img");
delete("/system/bin/rm", "/system/bin/mkdir",
       "/system/bin/chmod");
show_progress(0.800000, 0);
ui_print("Patching system files...");
apply_patch("/system/app/LewaLauncher.apk", "-",
            df4b65f50a25e04e773313a084c718203278c6b3, 1450584,
            b0d6c8d339713517220b54177918ab231e7cc7ed, package_extract_file("patch/system/app/LewaLauncher.apk.p"));
set_progress(0.132770);
apply_patch("/system/etc/security/otacerts.zip", "-",
            f4d8702e84979146d0074558f8b2d472a6f62ff6, 1125,
            4741c82984f2d2e8f69b1264c1257e8f90cbee40, package_extract_file("patch/system/etc/security/otacerts.zip.p"));
set_progress(0.132873);
apply_patch("/system/framework/am.jar", "-",
            1b0acaa7ff888a08052d2080334548a13d6e8777, 12007,
            3c509f6219cf3e251e673364a0ecff8f4f1522fb, package_extract_file("patch/system/framework/am.jar.p"));
set_progress(0.133972);
apply_patch("/system/framework/android.policy.jar", "-",
            1e497f534f18b56dd88c40270796f22d9bbff112, 131408,
            f6608fd0ba4b035424235239d73c66541a85919a, package_extract_file("patch/system/framework/android.policy.jar.p"));
set_progress(0.146000);
apply_patch("/system/framework/android.test.runner.jar", "-",
            612762f4a98457dcc1f545995c3e8bf3ef5d9f73, 76348,
            2bff03517224d2565f675babda5591b9826a5eeb, package_extract_file("patch/system/framework/android.test.runner.jar.p"));
set_progress(0.152988);
apply_patch("/system/framework/bmgr.jar", "-",
            8d2deb31fd562f1a991751f4c71149fdfcf68158, 6235,
            564bf2bc776b42f624bd1da287a03ab509749253, package_extract_file("patch/system/framework/bmgr.jar.p"));
set_progress(0.153559);
apply_patch("/system/framework/bouncycastle.jar", "-",
            ad5ae8c058efc3785d1b67ced87ed0739b5a51fa, 290685,
            af5b78bf39172ab44ccbaf9408e164b68e900047, package_extract_file("patch/system/framework/bouncycastle.jar.p"));
set_progress(0.180165);
apply_patch("/system/framework/com.android.location.provider.jar",
            "-", aa0026ce5c5b9ad6251e5cf90d580f1a257b5a4c, 3216,
            048664df087c02c527d9259c78b588845059f213, package_extract_file("patch/system/framework/com.android.location.provider.jar.p"));
set_progress(0.180459);
apply_patch("/system/framework/com.marvell.fmmanager.jar", "-",
            bd842e219fe3897942f04d58cc6be2b8a1f7573e, 8680,
            79205a28f98b3c48cfb9e77c56aa307a49e21add, package_extract_file("patch/system/framework/com.marvell.fmmanager.jar.p"));
set_progress(0.181253);
apply_patch("/system/framework/core-junit.jar", "-",
            8ffcfec2ace2cd5eee2437fac809883aeb5a448d, 10044,
            0e3d6d3d76323485bca8d05eb8f66eb2469e4aca, package_extract_file("patch/system/framework/core-junit.jar.p"));
set_progress(0.182173);
apply_patch("/system/framework/core.jar", "-",
            c0f3d23d12a3a5a83a2e0ec955e4bb9711f4fc77, 1863211,
            e92402b8bf3cd876582cff6200a4e170050c18aa, package_extract_file("patch/system/framework/core.jar.p"));
set_progress(0.352710);
apply_patch("/system/framework/ext.jar", "-",
            d437c489abb99f72f78b3b0a8cfc626ee23a112e, 515360,
            23e4083419c6612b3e92d80236388167eca6ede3, package_extract_file("patch/system/framework/ext.jar.p"));
set_progress(0.399881);
apply_patch("/system/framework/framework.jar", "-",
            e034b1119afcda10bb2164b51c474c6bcdb78677, 3413647,
            0aed2c214a4b0983e8a8d29bc0cec6e30a8fdc5f, package_extract_file("patch/system/framework/framework.jar.p"));
set_progress(0.712328);
apply_patch("/system/framework/ime.jar", "-",
            2ded5603540dc0df9eb18f9239b0fdcffb302eac, 3332,
            005cc4c8a56abcb28167694616af91b4e81d604b, package_extract_file("patch/system/framework/ime.jar.p"));
set_progress(0.712633);
apply_patch("/system/framework/input.jar", "-",
            a778be1525e1569fde89427c1fb487bac73b6c26, 2441,
            8c2890ff9bc229e8bb4191890276b9ab80355c39, package_extract_file("patch/system/framework/input.jar.p"));
set_progress(0.712856);
apply_patch("/system/framework/javax.obex.jar", "-",
            8e8164e101d64b3ddb9e67c1f17df157476f230e, 27122,
            a6b2bf04d6fcda7419d41bc471b2ca43b5b829cc, package_extract_file("patch/system/framework/javax.obex.jar.p"));
set_progress(0.715339);
apply_patch("/system/framework/monkey.jar", "-",
            f5756699a24e6a8191d9229854dbcfa4f103687c, 37442,
            e11cac6ab45c54ca3ba42b2b99a0cfd51a269e9a, package_extract_file("patch/system/framework/monkey.jar.p"));
set_progress(0.718766);
apply_patch("/system/framework/pm.jar", "-",
            a92a96a689c0c72c90f22e94587e181d28451984, 12281,
            04a9565c471e14de90401daeb74b18615b1bdafb, package_extract_file("patch/system/framework/pm.jar.p"));
set_progress(0.719890);
apply_patch("/system/framework/services.jar", "-",
            e93e9e43661e2c7608cdc03c96a85ddd2e559c90, 689125,
            1b2304bc4fb8c9f0e5f46d28a618a3fb3e0c46dd, package_extract_file("patch/system/framework/services.jar.p"));
set_progress(0.782965);
apply_patch("/system/framework/sqlite-jdbc.jar", "-",
            4c9f94c71633fcdecaafbb3b51f6cd566a87c0e1, 54526,
            ef27329b35f39ad85b2f16dbcff2164b1f490f0b, package_extract_file("patch/system/framework/sqlite-jdbc.jar.p"));
set_progress(0.787955);
apply_patch("/system/framework/svc.jar", "-",
            27862f6dce325c4055baf83d19bb5523a6278195, 3798,
            06289bd02178628e0c204cc08e8e39e72a10e200, package_extract_file("patch/system/framework/svc.jar.p"));
set_progress(0.788303);
apply_patch("/system/lib/libmock_ril.so", "-",
            06eac498981b9d32caf622ee1dd168e5e158e7c9, 2249988,
            e172da6299df7ed0e6cc22a0db1f102e45df8c02, package_extract_file("patch/system/lib/libmock_ril.so.p"));
set_progress(0.994242);
apply_patch("/system/xbin/crasher", "-",
            b71c3f4f54ba08f6ea1737a50d34b5272c5dee04, 5524,
            6a6bfc5724cfe652c87b290959e9198eacf1fd15, package_extract_file("patch/system/xbin/crasher.p"));
set_progress(0.994747);
apply_patch("/system/xbin/oprofiled", "-",
            cb2dd3f137bab23f6ff28b1b38fe733680c4d388, 57388,
            8a1487e40be4d1aef4b87b968208119ccf9975df, package_extract_file("patch/system/xbin/oprofiled.p"));
set_progress(1.000000);
show_progress(0.100000, 10);
ui_print("Unpacking new files...");
package_extract_dir("system", "/system");
ui_print("Symlinks and permissions...");
set_perm_recursive(0, 0, 0755, 0644, "/system");
set_perm_recursive(0, 2000, 0755, 0755, "/system/bin");
set_perm(0, 3003, 02750, "/system/bin/netcfg");
set_perm(0, 3004, 02755, "/system/bin/ping");
set_perm(0, 1001, 04770, "/system/bin/pppd");
set_perm(0, 2000, 06750, "/system/bin/run-as");
set_perm(1000, 1003, 02755, "/system/bin/screenshot");
set_perm(0, 0, 06755, "/system/bin/su0");
set_perm_recursive(1002, 1002, 0755, 0440, "/system/etc/bluetooth");
set_perm(0, 0, 0755, "/system/etc/bluetooth");
set_perm(1000, 1000, 0640, "/system/etc/bluetooth/auto_pairing.conf");
set_perm(3002, 3002, 0444, "/system/etc/bluetooth/blacklist.conf");
set_perm(1002, 1002, 0440, "/system/etc/dbus.conf");
set_perm(1014, 2000, 0550, "/system/etc/dhcpcd/dhcpcd-run-hooks");
set_perm_recursive(0, 2000, 0755, 0750, "/system/etc/init.d");
set_perm(0, 0, 0755, "/system/etc/init.d");
set_perm(0, 2000, 0550, "/system/etc/init.goldfish.sh");
set_perm_recursive(0, 0, 0755, 0555, "/system/etc/ppp");
set_perm_recursive(0, 2000, 0755, 0755, "/system/xbin");
set_perm(0, 0, 06755, "/system/xbin/hcitool");
set_perm(0, 0, 06755, "/system/xbin/librank");
set_perm(0, 0, 06755, "/system/xbin/procmem");
set_perm(0, 0, 06755, "/system/xbin/procrank");
set_perm(0, 0, 06755, "/system/xbin/su");
set_perm(0, 0, 06755, "/system/xbin/tcpdump");
unmount("/system");
