[Android] Modding.MyMind:
Bringing back an old thread but thanks to the ideas here it allow me to put together a script for my vrTheme template.

Basically the layout of this script goes as followed:

It will copy and paste the backup.sh file over to the /tmp folder of the recovery.

It will then run a security check of that backup.sh file when commanded to run it.

If the file does not run like it is suppose to (which means the file wasn't copied over properly) then it will abort the installation immediately and notify the user on the screen as well as giving a suggestion that they review their recovery log.

If the backup.sh runs then it will proceed forward with the installation.

The backup.sh will copy your build.prop file over to the /tmp folder of your recovery.

Then the updater-script will read the fingerprint found within the build.prop file.

If the fingerprint does not match then it will delete the copied backup.sh and build.prop file, abort the installation, and let the user know that their Rom is incompatible.

If the fingerprint does match then it will give an ok to proceed forward with the installation.

At this point some other scripts will be applied to the device for assisting with injecting the themes whether images or xml files in to their respectable apk's and push back to their respectable locations.

This script was exactly what I needed to keep it device specific and insuring integrity.

Click below to review:

##########################################################################################
# Script By Modding.MyMind	#
# K2_CL Partition Info	#
#	#
# Highly recommended to research and put your own phone's partition info here	#
# so you have a handy reference when editing the updater-script.	#
#	#
# mmcblk0p22: "misc"	#
# mmcblk0p21: "recovery"	#
# mmcblk0p20: "boot"	#
# mmcblk0p35: "system"	#
# mmcblk0p29: "local"	#
# mmcblk0p36: "cache"	#
# mmcblk0p37: "userdata"	#
# mmcblk0p25: "devlog"	#
# mmcblk0p27: "pdata"	#
# mmcblk0p38: "fat"	#
# mmcblk0p30: "extra"	#
# mmcblk0p32: "carrier"	#
# mmcblk0p16: "radio"	#
# mmcblk0p17: "adsp"	#
# mmcblk0p15: "dsps"	#
# mmcblk0p18: "wcnss"	#
# mmcblk0p19: "radio_config"	#
# mmcblk0p23: "modem_st1"	#
# mmcblk0p24: "modem_st2"	#
# mmcblk0p31: "skylink"	#
# mmcblk0p33: "cdma_record"	#
# mmcblk0p34: "reserve"	#
#	#
# Modifications to make this a smart updater.	#
# 1: Backup build.prop so it can be accessed after installing /system	#
# or so the device can be properly confirmed in general.	#
# 2: Check if backup.sh is already installed for security checks and rom compatibility. #
#	#
#	#
#	#
##########################################################################################
package_extract_file("backup.sh", "/tmp/backup.sh");
set_perm(0, 0, 0777, "/tmp/backup.sh");
run_program("/sbin/busybox", "mount", "/system");
ifelse(
run_program("/tmp/backup.sh"),
(
ui_print(" ");
ui_print("Checking For Compatibility!");

ifelse(
file_getprop("/tmp/build.prop", "ro.build.fingerprint") == "htc/sprint_wwe_boost/k2cl:4.1.2/JZO54K/209682.6:user/release-keys",
(
ui_print(" ");
ui_print("Compatible Rom Detected!");

delete("/tmp/backup.sh");
delete("/tmp/build.prop");

ui_print("--Ok to proceed!");
ui_print(" ");

ifelse(
is_mounted("/system") == "/system", unmount("/system")
);
ifelse(
is_mounted("/data") == "/data", unmount("/data")
);
ifelse(
is_mounted("/cache") == "/cache", unmount("/cache")
);

ui_print(" ");
ui_print("Preparing To Inject Theme.");
#####################################################################
# Double checking to insure they are unmounted! Harmless procedure. #
#####################################################################
ui_print(" ");

ifelse(
is_mounted("/system") == "/system", unmount("/system")
);
ifelse(
is_mounted("/data") == "/data", unmount("/data")
);
ifelse(
is_mounted("/cache") == "/cache", unmount("/cache")
);
#############################################################
# Beginning the injection of modified images and xml files. #
#############################################################
ui_print(" ");
ui_print("Final Preparations...");
ui_print(" ");
ui_print(" ");

run_program("/sbin/busybox", "mount", "/system");
run_program("/sbin/busybox", "mount", "/data");
run_program("/sbin/busybox", "mount", "/cache");

ui_print("Injecting!!!");

package_extract_dir("vrtheme", "/cache/vrtheme");

set_perm(0, 0, 0755, "/cache/vrtheme/installtheme.sh");
set_perm(0, 0, 0755, "/cache/vrtheme/zip");
set_perm(0, 0, 0755, "/cache/vrtheme/cleanup.sh");
set_perm(0, 0, 0755, "/cache/vrtheme/zipalign");

run_program("/cache/vrtheme/installtheme.sh");

ui_print(" ");
ui_print("Theming Completed!");
ui_print(" ");
#######################
# Performing cleanup. #
#######################
run_program("/cache/vrtheme/cleanup.sh");
######################
# Unmounting mounts. #
######################
ui_print("--> Unmounting partitions");

run_program("/sbin/umount", "/system");
run_program("/sbin/umount", "/data");
#################################################
# Let user know that the injection is complete. #
#################################################
ui_print(" ");
ui_print("Injection Done!");
),
(
##############################################################################################################
# Rom found incompatible so remove copied build.prop and backup.sh file then unmount and abort installation. #
# Notify user of the current status.	#
##############################################################################################################
ui_print(" ");
ui_print(" ");

delete("/tmp/backup.sh");
delete("/tmp/build.prop");

run_program("/sbin/umount", "/system");
run_program("/sbin/umount", "/data");

ui_print("Incompatible Rom Detected!");
ui_print("Not Recommended To Continue!");
)
);
),
(
run_program("/sbin/umount", "/system");

ui_print("ERROR READING YOUR ROM'S FINGERPRINT!");
ui_print("Please review your recovery.log!");
ui_print(" ");
ui_print("This Installation Will Be Aborted!");
)
);