ui_print("Eagle FOTA Tools (Eagle-1A1-delta-gentools)
  Version
     v3.4 : Using High compression option 
  Contact : <ramos.zhang@eagle.com>
");
mount("ubifs", "UBI", "system", "/system");
usb_remount();
ui_print("Verifying current system...");
show_progress(0.100000, 0);
assert(apply_patch_check("/system/bin/busybox", "5070c96b7b2e622d5b059b5b29fe440f0149709a", "b894c2c5210deab80dd6a26b1cf2e71e4d8a7400"));
set_progress(0.026313);
assert(apply_patch_check("/system/firmware/image/mba.mbn", "19b0f7eba38a44e2e4bb738c50fd468d0f4f51a4", "c83aad9c110fa472f55b4d7aa58e851b6b511a2a"));
set_progress(0.031262);
assert(apply_patch_check("/system/firmware/image/modem.b00", "4cc45c2526979304eb9f71b8f8bae8a7b96ef5e4", "164fa1d9a0300a57dfe601ba951470127dd2007d"));
set_progress(0.031281);
assert(apply_patch_check("/system/firmware/image/modem.b01", "c620258d3896f5d556cf75690119fa50a5c39f37", "96c9f76da33024c3e792d23811eebc246e9af3b0"));
set_progress(0.031431);
assert(apply_patch_check("/system/firmware/image/modem.b09", "fe3e2852c86cd07d37f830a03ec0a62b504d84bb", "00acfcdd59f99775aa9f425605499ca51001a2a9"));
set_progress(0.035817);
assert(apply_patch_check("/system/firmware/image/modem.b10", "de2446d1bb8ab7a3b533c09ca252424c32a84d54", "2a360eac1ca888dcd21817a5321b042023da6816"));
set_progress(0.051067);
assert(apply_patch_check("/system/firmware/image/modem.b11", "76721d05829ee84f2fc9573cd2891b7373811179", "079c8e117736121e22820f55df8582cf7a2383d3"));
set_progress(0.073100);
assert(apply_patch_check("/system/firmware/image/modem.b12", "80eab78692253ce62a909e76e1aeb69dc3ba794f", "0428cbbfc0cf60aff22c8174d92fa0d1c5a14f9b"));
set_progress(0.400076);
assert(apply_patch_check("/system/firmware/image/modem.b14", "c4e9f9c29a505324edcdd64769f828772bf72807", "d8c98a0297b9d3c83204bccd8e493f9a364ac7d1"));
set_progress(0.510105);
assert(apply_patch_check("/system/firmware/image/modem.b15", "bb37226f32633c2208d97e2aad61ca8c90c17f87", "3cf237b0e446a06ffafe1aac98ea390e805bba48"));
set_progress(0.547316);
assert(apply_patch_check("/system/firmware/image/modem.b19", "392edd7b53545262d7d7bc413ce9306697ca9747", "7a1f3802cd6801314372fcda2d4f8256e30804ae"));
set_progress(0.549021);
assert(apply_patch_check("/system/firmware/image/modem.b21", "155f6dcbe0bf78efc431232eab47298276d9d523", "ba51b79f8fd3ad9e4f4a1eaa2afd3eb7b94d8adb", "c4f7d49f08140747cfa616c0a989edb038fc6485", "bce44cc397daebc8c0b504a0b80028e37acbc7fe"));
set_progress(0.908897);
assert(apply_patch_check("/system/firmware/image/modem.b22", "cf90209857f3c88fb4647ec1d5e1ded9eba1ed31", "c7f78109332a49200a0b843a64cd71eeff0ab09b"));
set_progress(0.910598);
assert(apply_patch_check("/system/firmware/image/modem.b23", "7eadccf8b765229d2f7a177443b06d565e6d6fa8", "69bc75cb7eb1e8052bc1ee18829e50495ec184c8"));
set_progress(0.921480);
assert(apply_patch_check("/system/firmware/image/modem.mdt", "6fdd4871b4abe8d5f148c828e5fa03d73ebc94fc", "8d6d589b0cb4bcf612150d35fb67c7ff0ad825ce"));
set_progress(0.921649);
assert(apply_patch_check("/system/usr/bin/eagle_daemon", "03095f97140b6e90e6ecd5b286dcb5e7947b2c41", "f1c11eac195dda5694c0bfbfefb5450ba7ff62a3"));
set_progress(0.923230);
assert(apply_patch_check("MTD:boot:3698688:8dc90b136e77365109de71c4072356d2256a8c1a:3698688:c4d42a1d4ce4de8e638ed2a95e9a7ef48882ea47"));
set_progress(1.000000);

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

ui_print("Removing unneeded files...");
delete("/system/bin/login.shadow", "/system/bin/mountpoint.sysvinit",
       "/system/etc/General_cal.acdb", "/system/etc/Global_cal.acdb",
       "/system/etc/Handset_cal.acdb", "/system/etc/Hdmi_cal.acdb",
       "/system/etc/Headset_cal.acdb", "/system/etc/host.conf",
       "/system/etc/inetd.conf", "/system/etc/init.d/find_partitions.sh",
       "/system/etc/init.d/start_qti_le", "/system/etc/inittab",
       "/system/etc/issue.net", "/system/etc/login.defs",
       "/system/etc/mdev.conf", "/system/etc/nsswitch.conf",
       "/system/etc/pimd.conf", "/system/etc/shadow", "/system/etc/sysctl.conf",
       "/system/etc/syslog.conf.busybox",
       "/system/firmware/image/modem_dict.bin", "/system/sbin/powerapp",
       "/system/sbin/sys_reboot", "/system/sbin/sys_shutdown",
       "/system/sbin/usb/compositions/9025", "/system/build.prop",
       "/system/etc/eagle-project-subversion",
       "/system/etc/eagle-project-version", "/system/etc/issue",
       "/system/etc/timestamp",
       "/system/etc/version");
delete("/system/recovery.img", "/system/sbin/powerapp",
       "/system/sbin/sys_reboot", "/system/sbin/sys_shutdown",
       "/system/usr/bin/gdb",
       "/system/usr/sbin/tcpdump");
show_progress(0.800000, 0);
ui_print("Patching system files...");
apply_patch("/system/bin/busybox", "-",
            5070c96b7b2e622d5b059b5b29fe440f0149709a, 1267708,
            b894c2c5210deab80dd6a26b1cf2e71e4d8a7400, package_extract_file("patch/system/bin/busybox.p"));
set_progress(0.026303);
apply_patch("/system/firmware/image/mba.mbn", "-",
            19b0f7eba38a44e2e4bb738c50fd468d0f4f51a4, 238464,
            c83aad9c110fa472f55b4d7aa58e851b6b511a2a, package_extract_file("patch/system/firmware/image/mba.mbn.p"));
set_progress(0.031251);
apply_patch("/system/firmware/image/modem.b00", "-",
            4cc45c2526979304eb9f71b8f8bae8a7b96ef5e4, 884,
            164fa1d9a0300a57dfe601ba951470127dd2007d, package_extract_file("patch/system/firmware/image/modem.b00.p"));
set_progress(0.031269);
apply_patch("/system/firmware/image/modem.b01", "-",
            c620258d3896f5d556cf75690119fa50a5c39f37, 7272,
            96c9f76da33024c3e792d23811eebc246e9af3b0, package_extract_file("patch/system/firmware/image/modem.b01.p"));
set_progress(0.031420);
apply_patch("/system/firmware/image/modem.b09", "-",
            fe3e2852c86cd07d37f830a03ec0a62b504d84bb, 211276,
            00acfcdd59f99775aa9f425605499ca51001a2a9, package_extract_file("patch/system/firmware/image/modem.b09.p"));
set_progress(0.035804);
apply_patch("/system/firmware/image/modem.b10", "-",
            de2446d1bb8ab7a3b533c09ca252424c32a84d54, 734716,
            2a360eac1ca888dcd21817a5321b042023da6816, package_extract_file("patch/system/firmware/image/modem.b10.p"));
set_progress(0.051048);
apply_patch("/system/firmware/image/modem.b11", "-",
            76721d05829ee84f2fc9573cd2891b7373811179, 1061524,
            079c8e117736121e22820f55df8582cf7a2383d3, package_extract_file("patch/system/firmware/image/modem.b11.p"));
set_progress(0.073074);
apply_patch("/system/firmware/image/modem.b12", "-",
            80eab78692253ce62a909e76e1aeb69dc3ba794f, 15753328,
            0428cbbfc0cf60aff22c8174d92fa0d1c5a14f9b, package_extract_file("patch/system/firmware/image/modem.b12.p"));
set_progress(0.399935);
apply_patch("/system/firmware/image/modem.b14", "-",
            c4e9f9c29a505324edcdd64769f828772bf72807, 5301183,
            d8c98a0297b9d3c83204bccd8e493f9a364ac7d1, package_extract_file("patch/system/firmware/image/modem.b14.p"));
set_progress(0.509927);
apply_patch("/system/firmware/image/modem.b15", "-",
            bb37226f32633c2208d97e2aad61ca8c90c17f87, 1792756,
            3cf237b0e446a06ffafe1aac98ea390e805bba48, package_extract_file("patch/system/firmware/image/modem.b15.p"));
set_progress(0.547124);
apply_patch("/system/firmware/image/modem.b19", "-",
            392edd7b53545262d7d7bc413ce9306697ca9747, 82176,
            7a1f3802cd6801314372fcda2d4f8256e30804ae, package_extract_file("patch/system/firmware/image/modem.b19.p"));
set_progress(0.548830);
apply_patch("/system/firmware/image/modem.b21", "-",
            155f6dcbe0bf78efc431232eab47298276d9d523, 17355322,
            ba51b79f8fd3ad9e4f4a1eaa2afd3eb7b94d8adb, package_extract_file("patch/system/firmware/image/modem.b21.p"));
set_progress(0.908930);
apply_patch("/system/firmware/image/modem.b22", "-",
            cf90209857f3c88fb4647ec1d5e1ded9eba1ed31, 81920,
            c7f78109332a49200a0b843a64cd71eeff0ab09b, package_extract_file("patch/system/firmware/image/modem.b22.p"));
set_progress(0.910629);
apply_patch("/system/firmware/image/modem.b23", "-",
            7eadccf8b765229d2f7a177443b06d565e6d6fa8, 524288,
            69bc75cb7eb1e8052bc1ee18829e50495ec184c8, package_extract_file("patch/system/firmware/image/modem.b23.p"));
set_progress(0.921508);
apply_patch("/system/firmware/image/modem.mdt", "-",
            6fdd4871b4abe8d5f148c828e5fa03d73ebc94fc, 8156,
            8d6d589b0cb4bcf612150d35fb67c7ff0ad825ce, package_extract_file("patch/system/firmware/image/modem.mdt.p"));
set_progress(0.921677);
apply_patch("/system/usr/bin/eagle_daemon", "-",
            03095f97140b6e90e6ecd5b286dcb5e7947b2c41, 76156,
            f1c11eac195dda5694c0bfbfefb5450ba7ff62a3, package_extract_file("patch/system/usr/bin/eagle_daemon.p"));
set_progress(0.923257);
ui_print("Patching boot image...");
apply_patch("MTD:boot:3698688:8dc90b136e77365109de71c4072356d2256a8c1a:3698688:c4d42a1d4ce4de8e638ed2a95e9a7ef48882ea47",
            "-", c4d42a1d4ce4de8e638ed2a95e9a7ef48882ea47, 3698688,
            8dc90b136e77365109de71c4072356d2256a8c1a, package_extract_file("patch/boot.img.p"));
set_progress(1.000000);
delete("/system/recovery-from-boot.p",
       "/system/etc/install-recovery.sh");
show_progress(0.100000, 10);
ui_print("Unpacking new files...");
package_extract_dir("system", "/system");
ui_print("Unpacking new recovery...");
package_extract_dir("recovery", "/system");
ui_print("Symlinks and permissions...");
set_perm(0, 0, 0755, "/system/firmware/image/mba.mbn");
set_perm(0, 0, 0755, "/system/etc/Global_cal.acdb");
set_perm(0, 0, 0644, "/system/etc/inittab");
set_perm(0, 0, 0755, "/system/etc/login.defs");
set_perm(0, 0, 0644, "/system/etc/mdev.conf");
set_perm(0, 0, 0644, "/system/firmware/image/modem.b15");
set_perm(0, 0, 0644, "/system/etc/inetd.conf");
set_perm(0, 0, 0755, "/system/etc/init.d/find_partitions.sh");
set_perm(0, 0, 0600, "/system/etc/shadow");
set_perm(0, 0, 0644, "/system/etc/pimd.conf");
set_perm(0, 0, 0644, "/system/build.prop");
set_perm(0, 0, 0755, "/system/sbin/powerapp");
set_perm(0, 0, 0755, "/system/usr/bin/eagle_daemon");
set_perm(0, 0, 0644, "/system/firmware/image/modem.b23");
set_perm(0, 0, 0755, "/system/bin/busybox");
set_perm(0, 0, 0644, "/system/firmware/image/modem.b22");
set_perm(0, 0, 0644, "/system/firmware/image/modem.b14");
set_perm(0, 0, 0755, "/system/etc/init.d/start_qti_le");
set_perm(0, 0, 0644, "/system/etc/issue");
set_perm(0, 0, 0644, "/system/etc/timestamp");
set_perm(0, 0, 0644, "/system/firmware/image/modem.b12");
set_perm(0, 0, 0644, "/system/firmware/image/modem.b10");
set_perm(0, 0, 0644, "/system/firmware/image/modem.b11");
set_perm(0, 0, 0755, "/system/etc/Headset_cal.acdb");
set_perm(0, 0, 0644, "/system/firmware/image/modem.b19");
set_perm(0, 0, 0644, "/system/etc/host.conf");
set_perm(0, 0, 0644, "/system/etc/syslog.conf.busybox");
set_perm(0, 0, 0755, "/system/etc/General_cal.acdb");
set_perm(0, 0, 0644, "/system/firmware/image/modem.mdt");
set_perm(0, 0, 0755, "/system/sbin/usb/compositions/9025");
set_perm(0, 0, 0644, "/system/etc/eagle-project-subversion");
set_perm(0, 0, 0644, "/system/etc/nsswitch.conf");
set_perm(0, 0, 0755, "/system/sbin/sys_shutdown");
set_perm(0, 0, 0755, "/system/sbin/sys_reboot");
set_perm(0, 0, 0644, "/system/etc/issue.net");
set_perm(0, 0, 0755, "/system/bin/login.shadow");
set_perm(0, 0, 0755, "/system/bin/mountpoint.sysvinit");
set_perm(0, 0, 0755, "/system/firmware/image/modem_dict.bin");
set_perm(0, 0, 0644, "/system/firmware/image/modem.b09");
set_perm(0, 0, 0644, "/system/etc/version");
set_perm(0, 0, 0644, "/system/firmware/image/modem.b21");
set_perm(0, 0, 0644, "/system/etc/sysctl.conf");
set_perm(0, 0, 0644, "/system/etc/eagle-project-version");
set_perm(0, 0, 0755, "/system/etc/Handset_cal.acdb");
set_perm(0, 0, 0644, "/system/firmware/image/modem.b01");
set_perm(0, 0, 0644, "/system/firmware/image/modem.b00");
set_perm(0, 0, 0755, "/system/etc/Hdmi_cal.acdb");
ui_print("Patching remaining system files...");
unmount("/system");
