ui_print("***********************************************");
ui_print("        SlimLP mini GApps for Android 5.1");
ui_print("***********************************************");

run_program("/sbin/busybox", "mount", "/system");
ui_print("performing space calculations");
show_progress(1, 15);
package_extract_file("space.sh", "/tmp/space.sh");
set_perm(0, 0, 0777, "/tmp/space.sh");
run_program("/tmp/space.sh");

ifelse(
    file_getprop("/tmp/build.prop", "ro.gapps.install.status") == "10",
        (
            ui_print("WARNING - GAPPS ARE BEING FORCIBLY INSTALLED");
            ui_print("DUE TO CERTAIN MET CRITERIA IN YOUR BUILD.PROP!");
            ui_print("gapps installation will now proceed...");

            ui_print("Installing files...");
            show_progress(1, 15);
            package_extract_dir("system", "/system");
            set_perm(0, 0, 0755, "/system/addon.d/80-gapps.sh");
            show_progress(1, 15);
            package_extract_dir("dynamic", "/tmp");
            package_extract_file("dynamic.sh", "/tmp/dynamic.sh");
            set_perm(0, 0, 0777, "/tmp/dynamic.sh");
            run_program("/tmp/dynamic.sh", "");
            show_progress(1, 15);
            ui_print("Cleaning up and setting metadata...");
            set_metadata_recursive("/system/addon.d", "uid", 0, "gid", 0, "dmode", 0755, "fmode", 0755, "capabilities", 0x0, "selabel", "u:object_r:system_file:s0");
            set_metadata_recursive("/system/app", "uid", 0, "gid", 0, "dmode", 0755, "fmode", 0644, "capabilities", 0x0, "selabel", "u:object_r:system_file:s0");
            set_metadata_recursive("/system/priv-app", "uid", 0, "gid", 0, "dmode", 0755, "fmode", 0644, "capabilities", 0x0, "selabel", "u:object_r:system_file:s0");
            set_metadata_recursive("/system/etc/permissions", "uid", 0, "gid", 0, "dmode", 0755, "fmode", 0755, "capabilities", 0x0, "selabel", "u:object_r:system_file:s0");
            set_metadata_recursive("/system/etc/preferred-apps", "uid", 0, "gid", 0, "dmode", 0755, "fmode", 0755, "capabilities", 0x0, "selabel", "u:object_r:system_file:s0");
            set_metadata("/system/etc/g.prop", "uid", 0, "gid", 0, "mode", 0755, "capabilities", 0x0, "selabel", "u:object_r:system_file:s0");
            set_metadata_recursive("/system/framework", "uid", 0, "gid", 0, "dmode", 0755, "fmode", 0644, "capabilities", 0x0, "selabel", "u:object_r:system_file:s0");
            set_metadata_recursive("/system/lib", "uid", 0, "gid", 0, "dmode", 0755, "fmode", 0644, "capabilities", 0x0, "selabel", "u:object_r:system_file:s0");
            set_metadata_recursive("/system/usr/srec/en-US", "uid", 0, "gid", 0, "dmode", 0755, "fmode", 0644, "capabilities", 0x0, "selabel", "u:object_r:system_file:s0");
            set_metadata_recursive("/system/vendor/pittpatt", "uid", 0, "gid", 0, "dmode", 0755, "fmode", 0644, "capabilities", 0x0, "selabel", "u:object_r:system_file:s0");
            run_program("/sbin/busybox", "umount", "/system");
            ui_print("Installation complete!");
        )
);

ifelse(
    file_getprop("/tmp/build.prop", "ro.gapps.install.status") == "0",
        (
            ui_print("free space check passed!");
            ui_print("gapps installation will now proceed...");
            ui_print("Removing old GApps...");
            delete(
            "/system/addon.d/80-gapps.sh",
"/system/addon.d/space.sh",
"/system/app/ConfigUpdater/ConfigUpdater.apk",
"/system/app/ExchangeServices/ExchangeServices.apk",
"/system/app/GoogleCalendarSyncAdapter/GoogleCalendarSyncAdapter.apk",
"/system/app/GoogleContactsSyncAdapter/GoogleContactsSyncAdapter.apk",
"/system/etc/permissions/com.google.android.camera2.xml",
"/system/etc/permissions/com.google.android.dialer.support.xml",
"/system/etc/permissions/com.google.android.maps.xml",
"/system/etc/permissions/com.google.android.media.effects.xml",
"/system/etc/permissions/com.google.widevine.software.drm.xml",
"/system/etc/permissions/features.xml",
"/system/etc/preferred-apps/google.xml",
"/system/framework/com.google.android.camera2.jar",
"/system/framework/com.google.android.dialer.support.jar",
"/system/framework/com.google.android.maps.jar",
"/system/framework/com.google.android.media.effects.jar",
"/system/framework/com.google.widevine.software.drm.jar",
"/system/lib/libfilterpack_facedetect.so",
"/system/priv-app/GoogleBackupTransport/GoogleBackupTransport.apk",
"/system/priv-app/GoogleFeedback/GoogleFeedback.apk",
"/system/priv-app/GoogleLoginService/GoogleLoginService.apk",
"/system/priv-app/GoogleOneTimeInitializer/GoogleOneTimeInitializer.apk",
"/system/priv-app/GooglePartnerSetup/GooglePartnerSetup.apk",
"/system/priv-app/GoogleServicesFramework/GoogleServicesFramework.apk",
"/system/priv-app/Phonesky/Phonesky.apk",
"/system/priv-app/SetupWizard/SetupWizard.apk",
"/system/priv-app/talkback/talkback.apk",
"/system/tts/lang_pico/de-DE_gl0_sg.bin",
"/system/tts/lang_pico/de-DE_ta.bin",
"/system/tts/lang_pico/es-ES_ta.bin",
"/system/tts/lang_pico/es-ES_zl0_sg.bin",
"/system/tts/lang_pico/fr-FR_nk0_sg.bin",
"/system/tts/lang_pico/fr-FR_ta.bin",
"/system/tts/lang_pico/it-IT_cm0_sg.bin",
"/system/tts/lang_pico/it-IT_ta.bin"
            );

            ui_print("Installing files...");
            show_progress(1, 15);
            package_extract_dir("system", "/system");
            set_perm(0, 0, 0755, "/system/addon.d/80-gapps.sh");
            show_progress(1, 15);
            package_extract_dir("dynamic", "/tmp");
            package_extract_file("dynamic.sh", "/tmp/dynamic.sh");
            set_perm(0, 0, 0777, "/tmp/dynamic.sh");
            run_program("/tmp/dynamic.sh", "");
            show_progress(1, 15);
            ui_print("Cleaning up and setting metadata...");
            set_metadata_recursive("/system/addon.d", "uid", 0, "gid", 0, "dmode", 0755, "fmode", 0755, "capabilities", 0x0, "selabel", "u:object_r:system_file:s0");
            set_metadata_recursive("/system/app", "uid", 0, "gid", 0, "dmode", 0755, "fmode", 0644, "capabilities", 0x0, "selabel", "u:object_r:system_file:s0");
            set_metadata_recursive("/system/priv-app", "uid", 0, "gid", 0, "dmode", 0755, "fmode", 0644, "capabilities", 0x0, "selabel", "u:object_r:system_file:s0");
            set_metadata_recursive("/system/etc/permissions", "uid", 0, "gid", 0, "dmode", 0755, "fmode", 0755, "capabilities", 0x0, "selabel", "u:object_r:system_file:s0");
            set_metadata_recursive("/system/etc/preferred-apps", "uid", 0, "gid", 0, "dmode", 0755, "fmode", 0755, "capabilities", 0x0, "selabel", "u:object_r:system_file:s0");
            set_metadata("/system/etc/g.prop", "uid", 0, "gid", 0, "mode", 0755, "capabilities", 0x0, "selabel", "u:object_r:system_file:s0");
            set_metadata_recursive("/system/framework", "uid", 0, "gid", 0, "dmode", 0755, "fmode", 0644, "capabilities", 0x0, "selabel", "u:object_r:system_file:s0");
            set_metadata_recursive("/system/lib", "uid", 0, "gid", 0, "dmode", 0755, "fmode", 0644, "capabilities", 0x0, "selabel", "u:object_r:system_file:s0");
            set_metadata_recursive("/system/usr/srec/en-US", "uid", 0, "gid", 0, "dmode", 0755, "fmode", 0644, "capabilities", 0x0, "selabel", "u:object_r:system_file:s0");
            set_metadata_recursive("/system/vendor/pittpatt", "uid", 0, "gid", 0, "dmode", 0755, "fmode", 0644, "capabilities", 0x0, "selabel", "u:object_r:system_file:s0");
            run_program("/sbin/busybox", "umount", "/system");
            ui_print("Installation complete!");
        )
);

ifelse(
    file_getprop("/tmp/build.prop", "ro.gapps.install.status") == "1",
        (
            ui_print("* not enough free space on system *");
            ui_print("plz try a smaller package.");
            ui_print("if you believe this to be a mistake, submit");
            ui_print("recovery.log from your root storage after choosing");
            ui_print("Advanced > Copy log to SD");
            ui_print("from TWRP.");
            ui_print("******* gapps Installation failed *******");
            ui_print("no changes were made to your device");
            ui_print(" ");
            ui_print("now exiting...");
            run_program("/sbin/busybox", "umount", "/system");
        )
);

ifelse(
    file_getprop("/tmp/build.prop", "ro.gapps.install.status") == "2",
        (
            ui_print("* old or incompatible gapps currently installed *");
            ui_print("please wipe your system partition in recovery,");
            ui_print("re-flash rom, and then flash gapps again.");
            ui_print("you'll only have to do this once.");
            ui_print("if you believe this to be a mistake, submit");
            ui_print("recovery.log from your root storage after choosing");
            ui_print("Advanced > Copy log to SD");
            ui_print("from TWRP.");
            ui_print("******* gapps Installation failed *******");
            ui_print("no changes were made to your device");
            ui_print(" ");
            ui_print("now exiting...");
            run_program("/sbin/busybox", "umount", "/system");
        )
);

ifelse(
    file_getprop("/tmp/build.prop", "ro.gapps.install.status") == "3",
        (
            ui_print("no rom installed. please flash rom before gapps.");
            ui_print("if you believe this to be a mistake, submit");
            ui_print("recovery.log from your root storage after choosing");
            ui_print("Advanced > Copy log to SD");
            ui_print("from TWRP.");
            ui_print("******* gapps Installation failed *******");
            ui_print("no changes were made to your device");
            ui_print(" ");
            ui_print("now exiting...");
            run_program("/sbin/busybox", "umount", "/system");
        )
);

ifelse(
    file_getprop("/tmp/build.prop", "ro.gapps.install.status") == "4",
        (
            ui_print("rom and gapps versions do not match.");
            ui_print("if you believe this to be a mistake, submit");
            ui_print("recovery.log from your root storage after choosing");
            ui_print("Advanced > Copy log to SD");
            ui_print("from TWRP.");
            ui_print("******* gapps Installation failed *******");
            ui_print("no changes were made to your device");
            ui_print(" ");
            ui_print("now exiting...");
            run_program("/sbin/busybox", "umount", "/system");
        )
);
