ui_print("**********************XT ROM TWRP WIFI SCRIPT *****************");
ui_print("*** Install kernel and drivers for QCA9377 wireless chipset ***");
ui_print("*                                                             *");

# Confirm we're working on the right device and ROM version
ui_print("* Checking target device...                                   *");
show_progress(0.1, 2);
mount("ext4", "EMMC", "/dev/block/system", "/system");
assert(file_getprop("/system/build.prop", "ro.product.board") == "p212");
assert(file_getprop("/system/build.prop", "ro.build.id") == "MHC19J");
ui_print("  Found: " + file_getprop("/system/build.prop", "ro.product.model") + ", " + file_getprop("/system/build.prop", "ro.build.description"));

# Copy over the system update package
ui_print("* Updating system drivers and services...                     *");
show_progress(0.5, 10);
package_extract_dir("system", "/system");

# Delete the old drivers (more to remove, check later)
ui_print ("* Deleting unuseful libs and drivers...                      *");
show_progress(0.1, 2);
delete("/system/lib/dhd.ko");
delete("/system/lib/lib_driver_load.ko");
delete("/system/lib/8188eu.ko");
delete("/system/lib/8188fu.ko");
delete("/system/lib/8189es.ko");
delete("/system/lib/8189fs.ko");
delete("/system/lib/8192es.ko");
delete("/system/lib/8192eu.ko");
delete("/system/lib/8723bs.ko");
delete("/system/lib/8812au.ko");
delete("/system/lib/9082xs.ko");
delete("/system/lib/mt7601usta.ko");
delete("/system/lib/mt7603usta.ko");
delete("/system/lib/mtprealloc.ko");
set_progress(0.6);

# Fix up the permissions
ui_print("* Cleaning up and setting geek stuffs...                      *");
show_progress(0.1, 2);
set_metadata_recursive("/system/app", "uid", 0, "gid", 0, "dmode", 0755, "fmode", 0644, "capabilities", 0x0);
set_metadata_recursive("/system/priv-app", "uid", 0, "gid", 0, "dmode", 0755, "fmode", 0644, "capabilities", 0x0);
set_metadata_recursive("/system/etc/permissions", "uid", 0, "gid", 0, "dmode", 0755, "fmode", 0755, "capabilities", 0x0);
set_metadata_recursive("/system/etc/preferred-apps", "uid", 0, "gid", 0, "dmode", 0755, "fmode", 0755, "capabilities", 0x0);
set_metadata_recursive("/system/etc/sysconfig", "uid", 0, "gid", 0, "dmode", 0755, "fmode", 0755, "capabilities", 0x0);
set_metadata_recursive("/system/framework", "uid", 0, "gid", 0, "dmode", 0755, "fmode", 0644, "capabilities", 0x0);
set_metadata_recursive("/system/lib", "uid", 0, "gid", 0, "dmode", 0755, "fmode", 0644, "capabilities", 0x0);
unmount("/system");

# Update the boot partition with new kernel and ramdisk
ui_print ("* Installing QCA9377 kernel...                               *");
show_progress(0.2, 3);
write_raw_image(package_extract_file("boot.img"), "boot");
set_progress(1.0);

ui_print ("*                                                            *");
ui_print ("* !Installation successful! Not sure but... :D               *");
ui_print ("**************************************************************");
