[TUTO][PATERN]AROMA - NORMAL - DUALBOOT - ADDONS - MODs and VRTHEME

Search This thread

Troubadour666

Inactive Recognized Contributor
Aug 3, 2012
3,140
7,035
43.7031 - 7.2661
Hi,

always trying to be perfect for my dualbooters followers and maybe other user, i try some experiences with universal flasher and i want to share my result and idea with all my friends.

i have an aroma-config and an updater-script you can use to manage your own ROM FLAHSER. Just inform yourself with the descriptions above :

This AROMA is based on @_Sale_ META-INF and has 5 kernels choice to flash too.

This AROMA you can adapt with addition of three MODs or maybe more (that have VRTHEME process too)

This AROMA give you choice to flash :

- ROM (modem+kernel too)
- ROM + 1 MOD in one step (modem+kernel too)
- only choice to SWAP between 3 MODs, on the ROM flashed before

you have to download the entire pack to adapt it for your future management of ZIP FLASHER.
my zip have MS4 modem inside but you can replace in folder with your own.
it have all kernels from NeatRom aroma 6.3 + @dorimanx old 8.43v76 and new @StanTRC 8.43v112 recovery.

About structure folder/files i pushed in the 50Mo pack zip you need :

IN BLUE, FIX untouchable NAMED folder and files.
IN RED, FOLDER you have to manage with modem.bin and zImage extracted from original rom ZIP

Code:
[COLOR="Blue"]+---META-INF
|   \---com
|       \---google
|           \---android
|               \---aroma
|                   +---exec_demo
|                   +---fonts
|                   +---icons
|                   +---langs
|                   +---splash
|                   +---themes
|                   |   +---ics
|                   +---ttf
|                   \---unicode[/COLOR]


[COLOR="Blue"]+---FIXDORI
|   \---system
|       \---lib
---------------libsavsff.so
---------------libsavsvc.so
---------------libsdmbc.so
---------------libvwengine.so[/COLOR]


[COLOR="Blue"]+---kernels
|   +---apolo
|   |   +---light
----------------zImage
|   |   \---regular
----------------zImage
|   +---dorimanx
------------zImage
|   +---dorimanxstan
------------zImage
|   +---philz
------------zImage[/COLOR]
[COLOR="Red"]|   \---ROMKERNEL
------------zImage  (extracted from original zip rom and pushed here)
[/COLOR]

[COLOR="Blue"]+---Trouba
---------dbinstalltheme
---------efs_backup.sh
---------flash_image
---------installtheme.sh
---------symlink_dualboot
---------symlink_preload[/COLOR]
[COLOR="Red"]---------modem.bin (extracted from original zip rom and pushed here)[/COLOR]

[COLOR="Blue"]+---vrtheme
---------cleanup.sh
---------zip
---------zipalign[/COLOR]

Use this folder if you have some addons to add with the 4.1.2 rom you have choose.
[COLOR="Red"]
+---Addons
|   +---data
|   |   +---app
|   |   \---local
|   +---preload
|   |   \---symlink
|   |       \---system
|   |           \---app
|   \---system
|       +---app
|       +---bin
|       +---etc
|       +---framework
|       \---lib[/COLOR]

Use this folder if you have one 2nd complete mod/theme to add with the 4.1.2 rom you have choose and extrated on your PC to fill here
it can have VRTHEME folder too. If mod/theme is XMORPH, it simple to add too.
[COLOR="Red"]
+---mod1
|   +---data
|   |   +---app
|   |   \---local
|   +---preload
|   |   \---symlink
|   |       \---system
|   |           \---app
|   +---system
|   |   +---app
|   |   +---bin
|   |   +---etc
|   |   +---framework
|   |   \---lib
|   \---vrtheme
|       +---data
|       |   \---app
|       +---preload
|       |   \---symlink
|       |       \---system
|       |           \---app
|       |               \---SystemUI.apk
|       |                    \----drawable
|       \---system
|           +---app
|           |   \---LidroidSettings.apk
|           |        \----drawable
|           \---framework
|               \---framework-res.apk
|                    \----drawable[/COLOR]

Use this folder if you have one 2nd complete mod/theme to add with the 4.1.2 rom you have choose and extrated on your PC to fill here.
[COLOR="Red"]
+---mod2
|   +---data
|   |   +---app
|   |   \---local
|   +---preload
|   |   \---symlink
|   |       \---system
|   |           \---app
|   +---system
|   |   +---app
|   |   +---bin
|   |   +---etc
|   |   +---framework
|   |   \---lib
|   \---vrtheme
|       +---data
|       |   \---app
|       +---preload
|       |   \---symlink
|       |       \---system
|       |           \---app
|       |               \---SystemUI.apk (ist a vrtheme sample named folder)
|       |                    \----drawable
|       \---system
|           +---app
|           |   \---LidroidSettings.apk (ist a vrtheme sample named folder)
|           |        \----drawable
|           \---framework
|               \---framework-res.apk (ist a vrtheme sample named folder)
|                     \----drawable
[/COLOR]

Use this folder if you have one 2nd complete mod/theme to add with the 4.1.2 rom you have choose and extrated on your PC to fill here
[COLOR="Red"]+---mod3
|   +---data
|   |   +---app
|   |   \---local
|   +---preload
|   |   \---symlink
|   |       \---system
|   |           \---app
|   +---system
|   |   +---app
|   |   +---bin
|   |   +---etc
|   |   +---framework
|   |   \---lib
|   \---vrtheme
|       +---data
|       |   \---app
|       +---preload
|       |   \---symlink
|       |       \---system
|       |           \---app
|       |               \---SystemUI.apk
|       |                    \----drawable
|       \---system
|           +---app
|           |   \---LidroidSettings.apk
|           |         \----drawable
|           \---framework
|                \---framework-res.apk
|                      \----drawable[/COLOR]


AROMA-CONFIG i manage for you :
all RED LINES are for your personal use
Code:
menubox(
  "Install",
  "",
  "@icon.apps",
  "installtype.prop",
  "Normal use","",1,
  "DualBoot use","",0
);
menubox(
  "Install",
  "Flash Rom with or without 1 MOD",
  "@icon.apps",
  "global.prop",
  "Whole Rom","",1,
  "Apply 1 MODs on your ROM","",0
);
menubox(
	"Need Wipe during flash",
	"systemui secsettings cleaner",
	"@icon.apps",
	"wipe.prop",
	"Yes","",0,
	"No Skip","",1
);
menubox(
	"Swap to 1 MOD",
	"",
	"@icon.apps",
	"mod.prop",
	"[COLOR="Red"]Mod 1[/COLOR]","",0,
	"[COLOR="Red"]Mod 2[/COLOR]","",0,
	"[COLOR="Red"]Mod 3[/COLOR]","",0,
	"Skip","",1
);
if prop("mod.prop","selected")=="1" then
	splash(5000, "splash/[COLOR="Red"]imageMOD1[/COLOR]");  [B](change and rename png image in META-INF\com\google\android\aroma\splash)[/B]
endif;
if prop("mod.prop","selected")=="2" then
	 splash(5000, "splash/[COLOR="Red"]imageMOD2[/COLOR]"); [B](change and rename png image in META-INF\com\google\android\aroma\splash)[/B]
endif;
if prop("mod.prop","selected")=="3" then
	 splash(5000, "splash/[COLOR="Red"]imageMOD3[/COLOR]"); [B](change and rename png image in META-INF\com\google\android\aroma\splash)[/B]
endif;
if prop("global.prop","selected")=="1" then
	menubox(
		"Kernels",
		"tick to choose",
		"@icon.apps",
		"kernels.prop",
		"XWMS3 PhilZ Kernel","",0,
		"Apolo Light v4.14","",0,
		"Apolo Regular v4.14","",0,
		"DorimanX 8.43v76","",0,
		"DorimanX 8.43v112","",0,
		"ROM KERNEL","",1 [B](choice kernel extracted from original zip rom and pushed in kernels\ROMKERNEL folder of zip)[/B]
	);
endif;

updater-script : nothing to change.
Code:
show_progress(0.500000, 0);
ui_print("");
ui_print("Universal Flasher");
ui_print("Aroma and Script based");
ui_print("On idea from Troubadour666 from XDA");
unmount("/system");
unmount("/cache");
unmount("/preload");
run_program("/sbin/mount", "/dev/block/mmcblk0p9", "/system");
run_program("/sbin/mount", "/dev/block/mmcblk0p10", "/data");
run_program("/sbin/mount", "/dev/block/mmcblk0p7", "/cache");
run_program("/sbin/mount", "/dev/block/mmcblk0p12", "/preload");
run_program("/sbin/mount", "/dev/block/mmcblk0p11", "/sdcard");
run_program("/sbin/rm", "-rf", "/sdcard/vrtheme/");
ui_print(" Please wait... Extracting needed tools to vrtheme...");
package_extract_dir("vrtheme", "/sdcard/vrtheme");
package_extract_file("Trouba/installtheme.sh", "/sdcard/vrtheme/installtheme.sh");
if file_getprop("/tmp/aroma/installtype.prop","selected.1") == "2" then
	package_extract_file("Trouba/dbinstalltheme.sh", "/sdcard/vrtheme/installtheme.sh");
endif;
set_perm(0, 0, 0777, "/sdcard/vrtheme/installtheme.sh");
set_perm(0, 0, 0777, "/sdcard/vrtheme/zip");
set_perm(0, 0, 0777, "/sdcard/vrtheme/cleanup.sh");
set_perm(0, 0, 0777, "/sdcard/vrtheme/zipalign");
package_extract_file("Trouba/symlink_preload", "/tmp/symlink_preload");
if file_getprop("/tmp/aroma/installtype.prop","selected") == "2" then
	package_extract_file("Trouba/symlink_dualboot", "/tmp/symlink_preload");
endif;
if file_getprop("/tmp/aroma/wipe.prop","selected") == "1" then
	delete_recursive("/data/data/com.android.providers.settings");
	delete_recursive("/data/data/com.android.settings");
	delete_recursive("/data/data/com.android.systemui");
endif;
if file_getprop("/tmp/aroma/global.prop","selected") == "1" then
	package_extract_file("Trouba/efs_backup.sh", "/tmp/efs_backup.sh");
	set_perm(0, 0, 0755, "/tmp/efs_backup.sh");
	run_program("/tmp/efs_backup.sh");
	delete("/tmp/efs_backup.sh");
	delete_recursive("/system");
	delete_recursive("/cache");
	delete_recursive("/data/dalvik-cache");
	delete("/data/system/batterystats.bin");
	ui_print("Install System ROM");
	ui_print(".................");
	package_extract_dir("system", "/system");
	if file_getprop("/tmp/aroma/kernels.prop","selected") == "4" ||file_getprop("/tmp/aroma/kernels.prop","selected") == "5" then
		ui_print("@ fix libs videoplayer for DorimanX");
		package_extract_dir("FIXDORI/system", "/system");
	endif;
	if file_getprop("/tmp/aroma/installtype.prop","selected") == "1" then
		delete_recursive("/preload");
		package_extract_dir("preload", "/preload");
		package_extract_dir("Addons/preload", "/preload");
	endif;
	if file_getprop("/tmp/aroma/installtype.prop","selected") == "2" then
		delete_recursive("/data/sec_data");
		package_extract_dir("preload/symlink/system/app", "/data/sec_data");
		package_extract_dir("Addons/preload/symlink/system/app", "/data/sec_data");
	endif;
	if file_getprop("/tmp/aroma/mod.prop","selected") == "4" then
		package_extract_dir("Addons/data", "/data");
		package_extract_dir("Addons/system", "/system");
	endif;
endif;
if file_getprop("/tmp/aroma/mod.prop","selected") == "1" then
	ui_print("@ Installing MOD 1");
	if file_getprop("/tmp/aroma/installtype.prop","selected") == "1" then
		package_extract_dir("mod1/preload", "/preload");
	endif;
	if file_getprop("/tmp/aroma/installtype.prop","selected") == "2" then
		package_extract_dir("mod1/preload/symlink/system/app", "/data/sec_data");
	endif;
	package_extract_dir("mod1/data", "/data");
	package_extract_dir("mod1/system", "/system");
	package_extract_dir("mod1/vrtheme", "/sdcard/vrtheme");
	run_program("/sdcard/vrtheme/installtheme.sh");
	run_program("/sdcard/vrtheme/cleanup.sh");
endif;
if file_getprop("/tmp/aroma/mod.prop","selected") == "2" then
	ui_print("@ Installing MOD 2");
	if file_getprop("/tmp/aroma/installtype.prop","selected") == "1" then
		package_extract_dir("mod2/preload", "/preload");
	endif;
	if file_getprop("/tmp/aroma/installtype.prop","selected") == "2" then
		package_extract_dir("mod2/preload/symlink/system/app", "/data/sec_data");
	endif;
	package_extract_dir("mod2/data", "/data");
	package_extract_dir("mod2/system", "/system");
	package_extract_dir("mod2/vrtheme", "/sdcard/vrtheme");
	run_program("/sdcard/vrtheme/installtheme.sh");
	run_program("/sdcard/vrtheme/cleanup.sh");
endif;
if file_getprop("/tmp/aroma/mod.prop","selected") == "3" then
	ui_print("@ Installing MOD 3");
	if file_getprop("/tmp/aroma/installtype.prop","selected") == "1" then
		package_extract_dir("mod3/preload", "/preload");
	endif;
	if file_getprop("/tmp/aroma/installtype.prop","selected") == "2" then
		package_extract_dir("mod3/preload/symlink/system/app", "/data/sec_data");
	endif;
	package_extract_dir("mod3/data", "/data");
	package_extract_dir("mod3/system", "/system");
	package_extract_dir("mod3/vrtheme", "/sdcard/vrtheme");
	run_program("/sdcard/vrtheme/installtheme.sh");
	run_program("/sdcard/vrtheme/cleanup.sh");
endif;
[COLOR="Red"]
# if file_getprop("/tmp/aroma/mod.prop","selected") == "1" ||  file_getprop("/tmp/aroma/mod.prop","selected") == "2" || file_getprop("/tmp/aroma/mod.prop","selected") == "3" then
#	delete("/system/framework/filexxx.jar");
#	[B]delete("/system/framework/filexxx.apk");[/B]
#	[B]delete("/system/app/filexxx.apk");[/B]
#	[B]delete("/system/xxxxx/filexxx.xxx");[/B]
#	[B]delete_recursive("/system/folderxxxx");[/B]
#	if file_getprop("/tmp/aroma/installtype.prop","selected") == "1" then
#		[B]delete("/preload/symlink/system/app/filexxxxx.apk");[/B]
#	endif;
#	if file_getprop("/tmp/aroma/installtype.prop","selected") == "2" then
#		[B]delete("/data/sec_data/filexxxx.apk");[/B]
#	endif;
# endif;
[/COLOR]
[COLOR="Blue"]uncomment these # lines if you want to manage some deletation, then change[/COLOR] [B]filexxxxx.ap[/B]k or [B]xxxx[/B] f[COLOR="Blue"]older by the good path from your /system/, /preload/ /data/sec_data/ or other folders. you have to reproduce these bolded individual[/COLOR] [B]deleters[/B] [COLOR="Blue"]lines for each files or folders you need to delete during rom installation.[/COLOR]

set_perm(2000, 2000, 0771, "/data/local");
set_perm_recursive(1000, 1000, 0771, 0644, "/data/app");
if file_getprop("/tmp/aroma/global.prop","selected") == "1" then
	symlink("Roboto-Bold.ttf", "/system/fonts/DroidSans-Bold.ttf");
	symlink("Roboto-Regular.ttf", "/system/fonts/DroidSans.ttf");
	symlink("busybox", "/system/xbin/[", "/system/xbin/[[",
        "/system/xbin/adjtimex", "/system/xbin/arp", "/system/xbin/ash",
        "/system/xbin/awk", "/system/xbin/base64", "/system/xbin/basename",
        "/system/xbin/bbconfig", "/system/xbin/blkid", "/system/xbin/blockdev",
        "/system/xbin/brctl", "/system/xbin/bunzip2", "/system/xbin/bzcat",
        "/system/xbin/bzip2", "/system/xbin/cal", "/system/xbin/cat",
        "/system/xbin/catv", "/system/xbin/chattr", "/system/xbin/chgrp",
        "/system/xbin/chmod", "/system/xbin/chown", "/system/xbin/chroot",
        "/system/xbin/clear", "/system/xbin/cmp", "/system/xbin/comm",
        "/system/xbin/cp", "/system/xbin/cpio", "/system/xbin/crond",
        "/system/xbin/crontab", "/system/xbin/cut", "/system/xbin/date",
        "/system/xbin/dc", "/system/xbin/dd", "/system/xbin/depmod",
        "/system/xbin/devmem", "/system/xbin/df", "/system/xbin/diff",
        "/system/xbin/dirname", "/system/xbin/dmesg", "/system/xbin/dnsd",
        "/system/xbin/dos2unix", "/system/xbin/du", "/system/xbin/echo",
        "/system/xbin/ed", "/system/xbin/egrep", "/system/xbin/env",
        "/system/xbin/expand", "/system/xbin/expr", "/system/xbin/false",
        "/system/xbin/fdisk", "/system/xbin/fgrep", "/system/xbin/find",
        "/system/xbin/flash_lock", "/system/xbin/flash_unlock",
        "/system/xbin/flashcp", "/system/xbin/flock", "/system/xbin/fold",
        "/system/xbin/free", "/system/xbin/freeramdisk", "/system/xbin/fsync",
        "/system/xbin/ftpget", "/system/xbin/ftpput", "/system/xbin/fuser",
        "/system/xbin/getopt", "/system/xbin/grep", "/system/xbin/groups",
        "/system/xbin/gunzip", "/system/xbin/gzip", "/system/xbin/halt",
        "/system/xbin/head", "/system/xbin/hexdump", "/system/xbin/id",
        "/system/xbin/ifconfig", "/system/xbin/inetd", "/system/xbin/insmod",
        "/system/xbin/install", "/system/xbin/iostat", "/system/xbin/ip",
        "/system/xbin/kill", "/system/xbin/killall", "/system/xbin/killall5",
        "/system/xbin/length", "/system/xbin/less", "/system/xbin/ln",
        "/system/xbin/losetup", "/system/xbin/ls", "/system/xbin/lsattr",
        "/system/xbin/lsmod", "/system/xbin/lsusb", "/system/xbin/lzcat",
        "/system/xbin/lzma", "/system/xbin/lzop", "/system/xbin/lzopcat",
        "/system/xbin/man", "/system/xbin/md5sum", "/system/xbin/mesg",
        "/system/xbin/mkdir", "/system/xbin/mke2fs", "/system/xbin/mkfifo",
        "/system/xbin/mkfs.ext2", "/system/xbin/mkfs.vfat",
        "/system/xbin/mknod", "/system/xbin/mkswap", "/system/xbin/mktemp",
        "/system/xbin/modinfo", "/system/xbin/modprobe", "/system/xbin/more",
        "/system/xbin/mount", "/system/xbin/mountpoint", "/system/xbin/mpstat",
        "/system/xbin/mv", "/system/xbin/nanddump", "/system/xbin/nandwrite",
        "/system/xbin/netstat", "/system/xbin/nice", "/system/xbin/nohup",
        "/system/xbin/nslookup", "/system/xbin/ntpd", "/system/xbin/od",
        "/system/xbin/patch", "/system/xbin/pgrep", "/system/xbin/pidof",
        "/system/xbin/ping", "/system/xbin/pkill", "/system/xbin/pmap",
        "/system/xbin/poweroff", "/system/xbin/printenv", "/system/xbin/printf",
        "/system/xbin/ps", "/system/xbin/pstree", "/system/xbin/pwd",
        "/system/xbin/pwdx", "/system/xbin/rdev", "/system/xbin/readlink",
        "/system/xbin/realpath", "/system/xbin/renice", "/system/xbin/reset",
        "/system/xbin/resize", "/system/xbin/rev", "/system/xbin/rm",
        "/system/xbin/rmdir", "/system/xbin/rmmod", "/system/xbin/route",
        "/system/xbin/run-parts", "/system/xbin/rx", "/system/xbin/sed",
        "/system/xbin/seq", "/system/xbin/setconsole", "/system/xbin/setserial",
        "/system/xbin/setsid", "/system/xbin/sh", "/system/xbin/sha1sum",
        "/system/xbin/sha256sum", "/system/xbin/sha512sum",
        "/system/xbin/sleep", "/system/xbin/sort", "/system/xbin/split",
        "/system/xbin/stat", "/system/xbin/strings", "/system/xbin/stty",
        "/system/xbin/sum", "/system/xbin/swapoff", "/system/xbin/swapon",
        "/system/xbin/sync", "/system/xbin/sysctl", "/system/xbin/tac",
        "/system/xbin/tail", "/system/xbin/tar", "/system/xbin/taskset",
        "/system/xbin/tee", "/system/xbin/telnet", "/system/xbin/telnetd",
        "/system/xbin/test", "/system/xbin/tftp", "/system/xbin/tftpd",
        "/system/xbin/time", "/system/xbin/timeout", "/system/xbin/top",
        "/system/xbin/touch", "/system/xbin/tr", "/system/xbin/traceroute",
        "/system/xbin/true", "/system/xbin/ttysize", "/system/xbin/tune2fs",
        "/system/xbin/umount", "/system/xbin/uname", "/system/xbin/uncompress",
        "/system/xbin/unexpand", "/system/xbin/uniq", "/system/xbin/unix2dos",
        "/system/xbin/unlzma", "/system/xbin/unlzop", "/system/xbin/unxz",
        "/system/xbin/unzip", "/system/xbin/uptime", "/system/xbin/usleep",
        "/system/xbin/uudecode", "/system/xbin/uuencode", "/system/xbin/vi",
        "/system/xbin/watch", "/system/xbin/wc", "/system/xbin/wget",
        "/system/xbin/which", "/system/xbin/whoami", "/system/xbin/xargs",
        "/system/xbin/xz", "/system/xbin/xzcat", "/system/xbin/yes",
        "/system/xbin/zcat");
symlink("mksh", "/system/bin/sh");
symlink("toolbox", "/system/bin/cat", "/system/bin/chmod",
        "/system/bin/chown", "/system/bin/cmp", "/system/bin/date",
        "/system/bin/dd", "/system/bin/df", "/system/bin/dmesg",
        "/system/bin/getevent", "/system/bin/getprop", "/system/bin/hd",
        "/system/bin/id", "/system/bin/ifconfig", "/system/bin/iftop",
        "/system/bin/insmod", "/system/bin/ioctl", "/system/bin/ionice",
        "/system/bin/kill", "/system/bin/ln", "/system/bin/log",
        "/system/bin/ls", "/system/bin/lsmod", "/system/bin/lsof",
        "/system/bin/md5", "/system/bin/mkdir", "/system/bin/mount",
        "/system/bin/mv", "/system/bin/nandread", "/system/bin/netstat",
        "/system/bin/newfs_msdos", "/system/bin/notify", "/system/bin/printenv",
        "/system/bin/ps", "/system/bin/r", "/system/bin/reboot",
        "/system/bin/renice", "/system/bin/rm", "/system/bin/rmdir",
        "/system/bin/rmmod", "/system/bin/route", "/system/bin/schedtop",
        "/system/bin/sendevent", "/system/bin/setconsole",
        "/system/bin/setprop", "/system/bin/sleep", "/system/bin/smd",
        "/system/bin/start", "/system/bin/stop", "/system/bin/sync",
        "/system/bin/top", "/system/bin/touch", "/system/bin/umount",
        "/system/bin/uptime", "/system/bin/vmstat", "/system/bin/watchprops",
        "/system/bin/wipe");
	ui_print("Setting Permissions");
	set_perm_recursive(0, 0, 0755, 0644, "/system");
	set_perm_recursive(0, 0, 0755, 0755, "/system/etc/init.d");
	set_perm_recursive(0, 2000, 0755, 0755, "/system/bin");
	set_perm(0, 3003, 06755, "/system/bin/ip");
	set_perm(0, 3003, 02750, "/system/bin/netcfg");
	set_perm(0, 3004, 02755, "/system/bin/ping");
	set_perm(0, 2000, 06750, "/system/bin/run-as");
	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(0, 2000, 0550, "/system/etc/init.goldfish.sh");
	set_perm_recursive(0, 0, 0755, 0555, "/system/etc/ppp");
	set_perm_recursive(0, 2000, 0755, 0644, "/system/vendor");
	set_perm_recursive(0, 0, 0755, 0644, "/system/vendor/firmware");
	set_perm(0, 2000, 0755, "/system/vendor/firmware");
	set_perm_recursive(0, 2000, 0755, 0755, "/system/xbin");
	set_perm(0, 0, 06755, "/system/xbin/su");
endif;
if file_getprop("/tmp/aroma/global.prop","selected") == "1" then
	ui_print("Flashing kernel ...");
	package_extract_file("Trouba/flash_image", "/tmp/flash_image");
	set_perm(0, 0, 0777, "/tmp/flash_image");
	if file_getprop("/tmp/aroma/kernels.prop","selected") == "1" then
		ui_print("@ Installing XWMS3 PhilZ Kernel");
		assert(package_extract_file("kernels/philz/zImage", "/tmp/zImage"),run_program("/tmp/flash_image", "/dev/block/mmcblk0p5", "/tmp/zImage"),delete("/tmp/zImage"));
	endif;
	if file_getprop("/tmp/aroma/kernels.prop","selected") == "2" then
		ui_print("@ Installing Apolo Light Kernel");
		assert(package_extract_file("kernels/apolo/light/zImage", "/tmp/zImage"),run_program("/tmp/flash_image", "/dev/block/mmcblk0p5", "/tmp/zImage"),delete("/tmp/zImage"));
	endif;
	if file_getprop("/tmp/aroma/kernels.prop","selected") == "3" then
		ui_print("@ Installing SensMe choice Apolo Regular Kernel");
		assert(package_extract_file("kernels/apolo/regular/zImage", "/tmp/zImage"),run_program("/tmp/flash_image", "/dev/block/mmcblk0p5", "/tmp/zImage"),delete("/tmp/zImage"));
	endif;
	if file_getprop("/tmp/aroma/kernels.prop","selected") == "4" then
		ui_print("@ Installing DorimanX 8.43v76");
		assert(package_extract_file("kernels/dorimanx/zImage", "/tmp/zImage"),run_program("/tmp/flash_image", "/dev/block/mmcblk0p5", "/tmp/zImage"),delete("/tmp/zImage"));
	endif;
	if file_getprop("/tmp/aroma/kernels.prop","selected") == "5" then
		ui_print("@ Installing DorimanX 8.43v112");
		assert(package_extract_file("kernels/dorimanxstan/zImage", "/tmp/zImage"),run_program("/tmp/flash_image", "/dev/block/mmcblk0p5", "/tmp/zImage"),delete("/tmp/zImage"));
	endif;
	if file_getprop("/tmp/aroma/kernels.prop","selected") == "6" then
		ui_print("@ Installing KERNEL FROM ROM");
		assert(package_extract_file("kernels/ROMKERNEL/zImage", "/tmp/zImage"),run_program("/tmp/flash_image", "/dev/block/mmcblk0p5", "/tmp/zImage"),delete("/tmp/zImage"));
	endif;
	delete("/tmp/flash_image");
endif;
if file_getprop("/tmp/aroma/global.prop","selected") == "1" then
	ui_print("Flash modem I9100XXMS4...");
	package_extract_file("Trouba/flash_image", "/tmp/flash_image");
	set_perm(0, 0, 0777, "/tmp/flash_image");
	assert(package_extract_file("Trouba/modem.bin", "/tmp/modem.bin"), run_program("/tmp/flash_image", "/dev/block/mmcblk0p8", "/tmp/modem.bin"), delete("/tmp/modem.bin"));
	delete("/tmp/flash_image");
endif;
set_perm(0, 0, 0777, "/tmp/symlink_preload");
run_program("/tmp/symlink_preload");
ui_print("Limpiando archivos temporales...");
delete("/tmp/symlink_preload");
delete("/tmp/cleanup.sh");
run_program("/sbin/umount", "/system");
run_program("/sbin/umount", "/data");
run_program("/sbin/umount", "/cache");
run_program("/sbin/umount", "/preload");
ui_print("");
ui_print("");
ui_print(" ");
ui_print("            Enjoy           ");
ui_print("        Please reboot       ");

link :

PATERN-AROMA-PATCH_install-ROM-and-3-MODs-WITH-vrtheme.zip - 49.23 MB

thanks.
 

Attachments

  • PATERN-AROMA-PATCH_install-ROM-and-3-MODs-WITH-vrtheme-(NO-zIMAGE-KERNEL-INDIDE).zip
    12.8 MB · Views: 77
Last edited:

Troubadour666

Inactive Recognized Contributor
Aug 3, 2012
3,140
7,035
43.7031 - 7.2661
Pattern to only flash mods+vrthemes

You will need to MIX some MODs (VRthemes too) in AllInOne ZIP.

I give you complete structure of ZIP + aroma-config + updater-script to mix 1, 2 or 3 mods you want to flash in one step. Soon , i explain here how to add more MODs in your new managed ZIP.

Now, imagine you have 2 or 3 MODs.zip and you want to mix them in one ZIP and have choice to flash both in one step.

- Decompile each mods in a folder on PC (one folder/mod)
- Delete META-INF in each extracted folder
- Normaly , for each mod extracted, you will have a folder similar with the following structure:

Code:
+---THE MOD EXTRACTED :

|   +---META-INF
|   |   +---blablabla
|   |         \------blablabla
|   |                \----blablabla
|   |                      \---- updater-script [COLOR="Red"](important file you have to examine about , the DEV can
                                                           delete some files in the installed rom before flashing his MOD,
                                                          check the delete lines too and report them in my updater-script)[/COLOR]
|   +---data
|   |   +---app
|   |   \---local
|   +---preload
|   |   \---symlink
|   |       \---system
|   |           \---app  [COLOR="Red"](<------- its a folder with apks)[/COLOR]
|   +---system
|   |   +---app [COLOR="Red"](<------- its a folder with apks)[/COLOR]
|   |   +---bin
|   |   +---etc
|   |   +---framework [COLOR="Red"](<------- its a folder with some jar files or framework-res.apk)[/COLOR]
|   |   \---lib
|   \---vrtheme
|       +---data
|       |   \---app
|       +---preload
|       |   \---symlink
|       |       \---system
|       |           \---app
|       |               \---xxxxxxxxx.apk  [COLOR="Red"](<------- its a folder decompiled apk)[/COLOR]
|       |                    \----drawable [COLOR="Red"](<------- its a sub-folder of decompiled apk)[/COLOR]
|       \---system
|           +---app
|            |    \---xxxxxxxxx.apk [COLOR="Red"](<------- its a folder decompiled apk)[/COLOR]
|            |        \----drawable [COLOR="Red"](<------- its a sub-folder of decompiled apk)[/COLOR]
|            |        \----xxxxxxxx [COLOR="Red"](<------- its a another sub-folder of decompiled apk)[/COLOR]
|           \---framework
|            |   \---framework-res.apk [COLOR="Red"](<------- its a folder decompiled apk)[/COLOR]
|            |        \----drawable [COLOR="Red"](<------- its a sub-folder of decompiled apk)[/COLOR]
|            |        \----xxxxxxxx [COLOR="Red"](<------- its a another sub-folder of decompiled apk)[/COLOR]

so, to use my aroma-config and my updater-script without many change , you have to copy each extracted MODs (on PC) in my ZIP in attachement, following the folder i try to show you .

Before i try to explain more (because english is not my native langage) , let me show partial aroma-config
Code:
menubox(
	"systemui secsettings cleaner",
	"Do you need a little wipe before flash",
	"@icon.apps",
	"wipe.prop",
	"Yes","",0,
	"No Skip","",1
);
menubox(
  "Install",
  "",
  "@icon.apps",
  "installtype.prop",
  "Normal use","",0,
  "DualBoot use","",0
);
if prop("installtype.prop","selected")=="1" || prop("installtype.prop","selected")=="2" then
	checkbox(
		"Check some MODs to flash",
		"Choose what to Install:",
		"@icon.apps",
		"mod.prop",
		"Selected MODs will be installed","",2,
		"Mod 1","",1,
		"Mod 2","",1,
[COLOR="DarkGreen"]		"Mod 3","",1[/COLOR]
(if you want add a mod, just add a " [B],[/B] " at end of this line and
add a new line with
[COLOR="Navy"]"Mod 4","",1[/COLOR] without " [B],[/B] " at end.
And if you want 5 , 6....just do the same thing.
dont forget to manage as well the " [B],[/B] " !
		);
else
	writetmpfile(
		"mod.prop",
		"item.1.1=0\n"+
		"item.1.1=1\n"
		);
endif;
if prop("mod.prop","item.1.1")=="1" then
	splash(5000, "splash/imageMOD1");
endif;
if prop("mod.prop","item.1.2")=="1" then
	 splash(5000, "splash/imageMOD2");
endif;
[COLOR="DarkGreen"]
if prop("mod.prop","item.1.3")=="1" then
	 splash(5000, "splash/imageMOD3");
endif;
[/COLOR]
for supplementary MOD you add, with image in /splash/ folder , just add this block like that :
[COLOR="Navy"]
if prop("mod.prop","item.1.4")=="1" then
	 splash(5000, "splash/imageMOD4");
endif;
[/COLOR]


and full updater-script :
Code:
ui_print("");
ui_print("Universal Flasher");
ui_print("Aroma and Script based");
ui_print("On idea from Troubadour666 from XDA");
unmount("/system");
unmount("/cache");
unmount("/preload");
run_program("/sbin/mount", "/dev/block/mmcblk0p9", "/system");
run_program("/sbin/mount", "/dev/block/mmcblk0p10", "/data");
run_program("/sbin/mount", "/dev/block/mmcblk0p7", "/cache");
run_program("/sbin/mount", "/dev/block/mmcblk0p12", "/preload");
run_program("/sbin/mount", "/dev/block/mmcblk0p11", "/sdcard");
run_program("/sbin/rm", "-rf", "/sdcard/vrtheme/");
ui_print(" Please wait... Extracting needed tools to vrtheme...");
package_extract_dir("vrtheme", "/sdcard/vrtheme");
package_extract_file("Trouba/installtheme.sh", "/sdcard/vrtheme/installtheme.sh");
if file_getprop("/tmp/aroma/installtype.prop","selected.1") == "2" then
	package_extract_file("Trouba/dbinstalltheme.sh", "/sdcard/vrtheme/installtheme.sh");
endif;
set_perm(0, 0, 0777, "/sdcard/vrtheme/installtheme.sh");
set_perm(0, 0, 0777, "/sdcard/vrtheme/zip");
set_perm(0, 0, 0777, "/sdcard/vrtheme/cleanup.sh");
set_perm(0, 0, 0777, "/sdcard/vrtheme/zipalign");
package_extract_file("Trouba/symlink_preload", "/tmp/symlink_preload");
if file_getprop("/tmp/aroma/installtype.prop","selected") == "2" then
	package_extract_file("Trouba/symlink_dualboot", "/tmp/symlink_preload");
endif;
if file_getprop("/tmp/aroma/wipe.prop","selected") == "1" then
	delete_recursive("/data/data/com.android.providers.settings");
	delete_recursive("/data/data/com.android.settings");
	delete_recursive("/data/data/com.android.systemui");
endif;
if file_getprop("/tmp/aroma/mod.prop","item.1.1") == "1" then
	ui_print("@ Installing MOD 1");
	if file_getprop("/tmp/aroma/installtype.prop","selected") == "1" then
		package_extract_dir("mod1/preload", "/preload");
	endif;
	if file_getprop("/tmp/aroma/installtype.prop","selected") == "2" then
		package_extract_dir("mod1/preload/symlink/system/app", "/data/sec_data");
	endif;
	package_extract_dir("mod1/data", "/data");
	package_extract_dir("mod1/system", "/system");
	package_extract_dir("mod1/vrtheme", "/sdcard/vrtheme");
	run_program("/sdcard/vrtheme/installtheme.sh");
	run_program("/sdcard/vrtheme/cleanup.sh");
endif;
if file_getprop("/tmp/aroma/mod.prop","item.1.2") == "1" then
	ui_print("@ Installing MOD 2");
	if file_getprop("/tmp/aroma/installtype.prop","selected") == "1" then
		package_extract_dir("mod2/preload", "/preload");
	endif;
	if file_getprop("/tmp/aroma/installtype.prop","selected") == "2" then
		package_extract_dir("mod2/preload/symlink/system/app", "/data/sec_data");
	endif;
	package_extract_dir("mod2/data", "/data");
	package_extract_dir("mod2/system", "/system");
	package_extract_dir("mod2/vrtheme", "/sdcard/vrtheme");
	run_program("/sdcard/vrtheme/installtheme.sh");
	run_program("/sdcard/vrtheme/cleanup.sh");
endif;
[COLOR="DarkGreen"]
if file_getprop("/tmp/aroma/mod.prop","item.1.3") == "1" then
	ui_print("@ Installing MOD 3");
	if file_getprop("/tmp/aroma/installtype.prop","selected") == "1" then
		package_extract_dir("mod3/preload", "/preload");
	endif;
	if file_getprop("/tmp/aroma/installtype.prop","selected") == "2" then
		package_extract_dir("mod3/preload/symlink/system/app", "/data/sec_data");
	endif;
	package_extract_dir("mod3/data", "/data");
	package_extract_dir("mod3/system", "/system");
	package_extract_dir("mod3/vrtheme", "/sdcard/vrtheme");
	run_program("/sdcard/vrtheme/installtheme.sh");
	run_program("/sdcard/vrtheme/cleanup.sh");
endif;
[/COLOR]
If you add a supplementary MOD in aroma-config to have 4 for example, you have to add these following lines too.
[COLOR="Navy"]
if file_getprop("/tmp/aroma/mod.prop","item.1.4") == "1" then
	ui_print("@ Installing MOD 4");
	if file_getprop("/tmp/aroma/installtype.prop","selected") == "1" then
		package_extract_dir("mod4/preload", "/preload");
	endif;
	if file_getprop("/tmp/aroma/installtype.prop","selected") == "2" then
		package_extract_dir("mod4/preload/symlink/system/app", "/data/sec_data");
	endif;
	package_extract_dir("mod4/data", "/data");
	package_extract_dir("mod4/system", "/system");
	package_extract_dir("mod4/vrtheme", "/sdcard/vrtheme");
	run_program("/sdcard/vrtheme/installtheme.sh");
	run_program("/sdcard/vrtheme/cleanup.sh");
endif;
[/COLOR]
set_perm(0, 0, 0777, "/tmp/symlink_preload");
run_program("/tmp/symlink_preload");
delete("/tmp/symlink_preload");
delete("/tmp/cleanup.sh");
run_program("/sbin/umount", "/system");
run_program("/sbin/umount", "/data");
run_program("/sbin/umount", "/cache");
run_program("/sbin/umount", "/preload");
ui_print("");
ui_print("");
ui_print(" ");
ui_print("            Enjoy           ");
ui_print("        Please reboot       ");

In attachements, the full little package to download and use only if you want some mods mixed in AllInOne CWM flasher.

Next step will explain how to add more MODs (by adding some block line (green line) inside updater-script and just 1, 2, 3 xxx lines in aroma-config (depending how many mods you add) to give choice to user to tick more than 3 mods to flash in one step)
in Navy color, the added lines if you need to know how to add more MODs to tick during aroma execution.

thanks.
 

Attachments

  • PATERN-AROMA-PATCH_install-ONLY-X-MODs-WITH-vrtheme.zip
    7.7 MB · Views: 15
Last edited:

Troubadour666

Inactive Recognized Contributor
Aug 3, 2012
3,140
7,035
43.7031 - 7.2661
use checkbox in aroma instead MenuBox fonction and made aroma-script only for MODs and VRTHEME, not whole ROM....in progress....
credit idea to @marjune23 ;)

Aroma master :) great work mate :thumbup::thumbup:

Sent from my NeatRom'ed GT-I9300 wifi hotspoting from my NeatRom'ed GT-I9100

always here my friend :)
 
Last edited:
  • Like
Reactions: It_ler and _Sale_

Troubadour666

Inactive Recognized Contributor
Aug 3, 2012
3,140
7,035
43.7031 - 7.2661
As you can see in updater-script, vrtheme process have been done at each steps.
but we can imagine we scratch vrtheme over vrtheme and again and again...

i can provide updater-script on that way too.

thanks.
 
  • Like
Reactions: _Sale_

Top Liked Posts

  • There are no posts matching your filters.
  • 9
    Hi,

    always trying to be perfect for my dualbooters followers and maybe other user, i try some experiences with universal flasher and i want to share my result and idea with all my friends.

    i have an aroma-config and an updater-script you can use to manage your own ROM FLAHSER. Just inform yourself with the descriptions above :

    This AROMA is based on @_Sale_ META-INF and has 5 kernels choice to flash too.

    This AROMA you can adapt with addition of three MODs or maybe more (that have VRTHEME process too)

    This AROMA give you choice to flash :

    - ROM (modem+kernel too)
    - ROM + 1 MOD in one step (modem+kernel too)
    - only choice to SWAP between 3 MODs, on the ROM flashed before

    you have to download the entire pack to adapt it for your future management of ZIP FLASHER.
    my zip have MS4 modem inside but you can replace in folder with your own.
    it have all kernels from NeatRom aroma 6.3 + @dorimanx old 8.43v76 and new @StanTRC 8.43v112 recovery.

    About structure folder/files i pushed in the 50Mo pack zip you need :

    IN BLUE, FIX untouchable NAMED folder and files.
    IN RED, FOLDER you have to manage with modem.bin and zImage extracted from original rom ZIP

    Code:
    [COLOR="Blue"]+---META-INF
    |   \---com
    |       \---google
    |           \---android
    |               \---aroma
    |                   +---exec_demo
    |                   +---fonts
    |                   +---icons
    |                   +---langs
    |                   +---splash
    |                   +---themes
    |                   |   +---ics
    |                   +---ttf
    |                   \---unicode[/COLOR]
    
    
    [COLOR="Blue"]+---FIXDORI
    |   \---system
    |       \---lib
    ---------------libsavsff.so
    ---------------libsavsvc.so
    ---------------libsdmbc.so
    ---------------libvwengine.so[/COLOR]
    
    
    [COLOR="Blue"]+---kernels
    |   +---apolo
    |   |   +---light
    ----------------zImage
    |   |   \---regular
    ----------------zImage
    |   +---dorimanx
    ------------zImage
    |   +---dorimanxstan
    ------------zImage
    |   +---philz
    ------------zImage[/COLOR]
    [COLOR="Red"]|   \---ROMKERNEL
    ------------zImage  (extracted from original zip rom and pushed here)
    [/COLOR]
    
    [COLOR="Blue"]+---Trouba
    ---------dbinstalltheme
    ---------efs_backup.sh
    ---------flash_image
    ---------installtheme.sh
    ---------symlink_dualboot
    ---------symlink_preload[/COLOR]
    [COLOR="Red"]---------modem.bin (extracted from original zip rom and pushed here)[/COLOR]
    
    [COLOR="Blue"]+---vrtheme
    ---------cleanup.sh
    ---------zip
    ---------zipalign[/COLOR]
    
    Use this folder if you have some addons to add with the 4.1.2 rom you have choose.
    [COLOR="Red"]
    +---Addons
    |   +---data
    |   |   +---app
    |   |   \---local
    |   +---preload
    |   |   \---symlink
    |   |       \---system
    |   |           \---app
    |   \---system
    |       +---app
    |       +---bin
    |       +---etc
    |       +---framework
    |       \---lib[/COLOR]
    
    Use this folder if you have one 2nd complete mod/theme to add with the 4.1.2 rom you have choose and extrated on your PC to fill here
    it can have VRTHEME folder too. If mod/theme is XMORPH, it simple to add too.
    [COLOR="Red"]
    +---mod1
    |   +---data
    |   |   +---app
    |   |   \---local
    |   +---preload
    |   |   \---symlink
    |   |       \---system
    |   |           \---app
    |   +---system
    |   |   +---app
    |   |   +---bin
    |   |   +---etc
    |   |   +---framework
    |   |   \---lib
    |   \---vrtheme
    |       +---data
    |       |   \---app
    |       +---preload
    |       |   \---symlink
    |       |       \---system
    |       |           \---app
    |       |               \---SystemUI.apk
    |       |                    \----drawable
    |       \---system
    |           +---app
    |           |   \---LidroidSettings.apk
    |           |        \----drawable
    |           \---framework
    |               \---framework-res.apk
    |                    \----drawable[/COLOR]
    
    Use this folder if you have one 2nd complete mod/theme to add with the 4.1.2 rom you have choose and extrated on your PC to fill here.
    [COLOR="Red"]
    +---mod2
    |   +---data
    |   |   +---app
    |   |   \---local
    |   +---preload
    |   |   \---symlink
    |   |       \---system
    |   |           \---app
    |   +---system
    |   |   +---app
    |   |   +---bin
    |   |   +---etc
    |   |   +---framework
    |   |   \---lib
    |   \---vrtheme
    |       +---data
    |       |   \---app
    |       +---preload
    |       |   \---symlink
    |       |       \---system
    |       |           \---app
    |       |               \---SystemUI.apk (ist a vrtheme sample named folder)
    |       |                    \----drawable
    |       \---system
    |           +---app
    |           |   \---LidroidSettings.apk (ist a vrtheme sample named folder)
    |           |        \----drawable
    |           \---framework
    |               \---framework-res.apk (ist a vrtheme sample named folder)
    |                     \----drawable
    [/COLOR]
    
    Use this folder if you have one 2nd complete mod/theme to add with the 4.1.2 rom you have choose and extrated on your PC to fill here
    [COLOR="Red"]+---mod3
    |   +---data
    |   |   +---app
    |   |   \---local
    |   +---preload
    |   |   \---symlink
    |   |       \---system
    |   |           \---app
    |   +---system
    |   |   +---app
    |   |   +---bin
    |   |   +---etc
    |   |   +---framework
    |   |   \---lib
    |   \---vrtheme
    |       +---data
    |       |   \---app
    |       +---preload
    |       |   \---symlink
    |       |       \---system
    |       |           \---app
    |       |               \---SystemUI.apk
    |       |                    \----drawable
    |       \---system
    |           +---app
    |           |   \---LidroidSettings.apk
    |           |         \----drawable
    |           \---framework
    |                \---framework-res.apk
    |                      \----drawable[/COLOR]


    AROMA-CONFIG i manage for you :
    all RED LINES are for your personal use
    Code:
    menubox(
      "Install",
      "",
      "@icon.apps",
      "installtype.prop",
      "Normal use","",1,
      "DualBoot use","",0
    );
    menubox(
      "Install",
      "Flash Rom with or without 1 MOD",
      "@icon.apps",
      "global.prop",
      "Whole Rom","",1,
      "Apply 1 MODs on your ROM","",0
    );
    menubox(
    	"Need Wipe during flash",
    	"systemui secsettings cleaner",
    	"@icon.apps",
    	"wipe.prop",
    	"Yes","",0,
    	"No Skip","",1
    );
    menubox(
    	"Swap to 1 MOD",
    	"",
    	"@icon.apps",
    	"mod.prop",
    	"[COLOR="Red"]Mod 1[/COLOR]","",0,
    	"[COLOR="Red"]Mod 2[/COLOR]","",0,
    	"[COLOR="Red"]Mod 3[/COLOR]","",0,
    	"Skip","",1
    );
    if prop("mod.prop","selected")=="1" then
    	splash(5000, "splash/[COLOR="Red"]imageMOD1[/COLOR]");  [B](change and rename png image in META-INF\com\google\android\aroma\splash)[/B]
    endif;
    if prop("mod.prop","selected")=="2" then
    	 splash(5000, "splash/[COLOR="Red"]imageMOD2[/COLOR]"); [B](change and rename png image in META-INF\com\google\android\aroma\splash)[/B]
    endif;
    if prop("mod.prop","selected")=="3" then
    	 splash(5000, "splash/[COLOR="Red"]imageMOD3[/COLOR]"); [B](change and rename png image in META-INF\com\google\android\aroma\splash)[/B]
    endif;
    if prop("global.prop","selected")=="1" then
    	menubox(
    		"Kernels",
    		"tick to choose",
    		"@icon.apps",
    		"kernels.prop",
    		"XWMS3 PhilZ Kernel","",0,
    		"Apolo Light v4.14","",0,
    		"Apolo Regular v4.14","",0,
    		"DorimanX 8.43v76","",0,
    		"DorimanX 8.43v112","",0,
    		"ROM KERNEL","",1 [B](choice kernel extracted from original zip rom and pushed in kernels\ROMKERNEL folder of zip)[/B]
    	);
    endif;

    updater-script : nothing to change.
    Code:
    show_progress(0.500000, 0);
    ui_print("");
    ui_print("Universal Flasher");
    ui_print("Aroma and Script based");
    ui_print("On idea from Troubadour666 from XDA");
    unmount("/system");
    unmount("/cache");
    unmount("/preload");
    run_program("/sbin/mount", "/dev/block/mmcblk0p9", "/system");
    run_program("/sbin/mount", "/dev/block/mmcblk0p10", "/data");
    run_program("/sbin/mount", "/dev/block/mmcblk0p7", "/cache");
    run_program("/sbin/mount", "/dev/block/mmcblk0p12", "/preload");
    run_program("/sbin/mount", "/dev/block/mmcblk0p11", "/sdcard");
    run_program("/sbin/rm", "-rf", "/sdcard/vrtheme/");
    ui_print(" Please wait... Extracting needed tools to vrtheme...");
    package_extract_dir("vrtheme", "/sdcard/vrtheme");
    package_extract_file("Trouba/installtheme.sh", "/sdcard/vrtheme/installtheme.sh");
    if file_getprop("/tmp/aroma/installtype.prop","selected.1") == "2" then
    	package_extract_file("Trouba/dbinstalltheme.sh", "/sdcard/vrtheme/installtheme.sh");
    endif;
    set_perm(0, 0, 0777, "/sdcard/vrtheme/installtheme.sh");
    set_perm(0, 0, 0777, "/sdcard/vrtheme/zip");
    set_perm(0, 0, 0777, "/sdcard/vrtheme/cleanup.sh");
    set_perm(0, 0, 0777, "/sdcard/vrtheme/zipalign");
    package_extract_file("Trouba/symlink_preload", "/tmp/symlink_preload");
    if file_getprop("/tmp/aroma/installtype.prop","selected") == "2" then
    	package_extract_file("Trouba/symlink_dualboot", "/tmp/symlink_preload");
    endif;
    if file_getprop("/tmp/aroma/wipe.prop","selected") == "1" then
    	delete_recursive("/data/data/com.android.providers.settings");
    	delete_recursive("/data/data/com.android.settings");
    	delete_recursive("/data/data/com.android.systemui");
    endif;
    if file_getprop("/tmp/aroma/global.prop","selected") == "1" then
    	package_extract_file("Trouba/efs_backup.sh", "/tmp/efs_backup.sh");
    	set_perm(0, 0, 0755, "/tmp/efs_backup.sh");
    	run_program("/tmp/efs_backup.sh");
    	delete("/tmp/efs_backup.sh");
    	delete_recursive("/system");
    	delete_recursive("/cache");
    	delete_recursive("/data/dalvik-cache");
    	delete("/data/system/batterystats.bin");
    	ui_print("Install System ROM");
    	ui_print(".................");
    	package_extract_dir("system", "/system");
    	if file_getprop("/tmp/aroma/kernels.prop","selected") == "4" ||file_getprop("/tmp/aroma/kernels.prop","selected") == "5" then
    		ui_print("@ fix libs videoplayer for DorimanX");
    		package_extract_dir("FIXDORI/system", "/system");
    	endif;
    	if file_getprop("/tmp/aroma/installtype.prop","selected") == "1" then
    		delete_recursive("/preload");
    		package_extract_dir("preload", "/preload");
    		package_extract_dir("Addons/preload", "/preload");
    	endif;
    	if file_getprop("/tmp/aroma/installtype.prop","selected") == "2" then
    		delete_recursive("/data/sec_data");
    		package_extract_dir("preload/symlink/system/app", "/data/sec_data");
    		package_extract_dir("Addons/preload/symlink/system/app", "/data/sec_data");
    	endif;
    	if file_getprop("/tmp/aroma/mod.prop","selected") == "4" then
    		package_extract_dir("Addons/data", "/data");
    		package_extract_dir("Addons/system", "/system");
    	endif;
    endif;
    if file_getprop("/tmp/aroma/mod.prop","selected") == "1" then
    	ui_print("@ Installing MOD 1");
    	if file_getprop("/tmp/aroma/installtype.prop","selected") == "1" then
    		package_extract_dir("mod1/preload", "/preload");
    	endif;
    	if file_getprop("/tmp/aroma/installtype.prop","selected") == "2" then
    		package_extract_dir("mod1/preload/symlink/system/app", "/data/sec_data");
    	endif;
    	package_extract_dir("mod1/data", "/data");
    	package_extract_dir("mod1/system", "/system");
    	package_extract_dir("mod1/vrtheme", "/sdcard/vrtheme");
    	run_program("/sdcard/vrtheme/installtheme.sh");
    	run_program("/sdcard/vrtheme/cleanup.sh");
    endif;
    if file_getprop("/tmp/aroma/mod.prop","selected") == "2" then
    	ui_print("@ Installing MOD 2");
    	if file_getprop("/tmp/aroma/installtype.prop","selected") == "1" then
    		package_extract_dir("mod2/preload", "/preload");
    	endif;
    	if file_getprop("/tmp/aroma/installtype.prop","selected") == "2" then
    		package_extract_dir("mod2/preload/symlink/system/app", "/data/sec_data");
    	endif;
    	package_extract_dir("mod2/data", "/data");
    	package_extract_dir("mod2/system", "/system");
    	package_extract_dir("mod2/vrtheme", "/sdcard/vrtheme");
    	run_program("/sdcard/vrtheme/installtheme.sh");
    	run_program("/sdcard/vrtheme/cleanup.sh");
    endif;
    if file_getprop("/tmp/aroma/mod.prop","selected") == "3" then
    	ui_print("@ Installing MOD 3");
    	if file_getprop("/tmp/aroma/installtype.prop","selected") == "1" then
    		package_extract_dir("mod3/preload", "/preload");
    	endif;
    	if file_getprop("/tmp/aroma/installtype.prop","selected") == "2" then
    		package_extract_dir("mod3/preload/symlink/system/app", "/data/sec_data");
    	endif;
    	package_extract_dir("mod3/data", "/data");
    	package_extract_dir("mod3/system", "/system");
    	package_extract_dir("mod3/vrtheme", "/sdcard/vrtheme");
    	run_program("/sdcard/vrtheme/installtheme.sh");
    	run_program("/sdcard/vrtheme/cleanup.sh");
    endif;
    [COLOR="Red"]
    # if file_getprop("/tmp/aroma/mod.prop","selected") == "1" ||  file_getprop("/tmp/aroma/mod.prop","selected") == "2" || file_getprop("/tmp/aroma/mod.prop","selected") == "3" then
    #	delete("/system/framework/filexxx.jar");
    #	[B]delete("/system/framework/filexxx.apk");[/B]
    #	[B]delete("/system/app/filexxx.apk");[/B]
    #	[B]delete("/system/xxxxx/filexxx.xxx");[/B]
    #	[B]delete_recursive("/system/folderxxxx");[/B]
    #	if file_getprop("/tmp/aroma/installtype.prop","selected") == "1" then
    #		[B]delete("/preload/symlink/system/app/filexxxxx.apk");[/B]
    #	endif;
    #	if file_getprop("/tmp/aroma/installtype.prop","selected") == "2" then
    #		[B]delete("/data/sec_data/filexxxx.apk");[/B]
    #	endif;
    # endif;
    [/COLOR]
    [COLOR="Blue"]uncomment these # lines if you want to manage some deletation, then change[/COLOR] [B]filexxxxx.ap[/B]k or [B]xxxx[/B] f[COLOR="Blue"]older by the good path from your /system/, /preload/ /data/sec_data/ or other folders. you have to reproduce these bolded individual[/COLOR] [B]deleters[/B] [COLOR="Blue"]lines for each files or folders you need to delete during rom installation.[/COLOR]
    
    set_perm(2000, 2000, 0771, "/data/local");
    set_perm_recursive(1000, 1000, 0771, 0644, "/data/app");
    if file_getprop("/tmp/aroma/global.prop","selected") == "1" then
    	symlink("Roboto-Bold.ttf", "/system/fonts/DroidSans-Bold.ttf");
    	symlink("Roboto-Regular.ttf", "/system/fonts/DroidSans.ttf");
    	symlink("busybox", "/system/xbin/[", "/system/xbin/[[",
            "/system/xbin/adjtimex", "/system/xbin/arp", "/system/xbin/ash",
            "/system/xbin/awk", "/system/xbin/base64", "/system/xbin/basename",
            "/system/xbin/bbconfig", "/system/xbin/blkid", "/system/xbin/blockdev",
            "/system/xbin/brctl", "/system/xbin/bunzip2", "/system/xbin/bzcat",
            "/system/xbin/bzip2", "/system/xbin/cal", "/system/xbin/cat",
            "/system/xbin/catv", "/system/xbin/chattr", "/system/xbin/chgrp",
            "/system/xbin/chmod", "/system/xbin/chown", "/system/xbin/chroot",
            "/system/xbin/clear", "/system/xbin/cmp", "/system/xbin/comm",
            "/system/xbin/cp", "/system/xbin/cpio", "/system/xbin/crond",
            "/system/xbin/crontab", "/system/xbin/cut", "/system/xbin/date",
            "/system/xbin/dc", "/system/xbin/dd", "/system/xbin/depmod",
            "/system/xbin/devmem", "/system/xbin/df", "/system/xbin/diff",
            "/system/xbin/dirname", "/system/xbin/dmesg", "/system/xbin/dnsd",
            "/system/xbin/dos2unix", "/system/xbin/du", "/system/xbin/echo",
            "/system/xbin/ed", "/system/xbin/egrep", "/system/xbin/env",
            "/system/xbin/expand", "/system/xbin/expr", "/system/xbin/false",
            "/system/xbin/fdisk", "/system/xbin/fgrep", "/system/xbin/find",
            "/system/xbin/flash_lock", "/system/xbin/flash_unlock",
            "/system/xbin/flashcp", "/system/xbin/flock", "/system/xbin/fold",
            "/system/xbin/free", "/system/xbin/freeramdisk", "/system/xbin/fsync",
            "/system/xbin/ftpget", "/system/xbin/ftpput", "/system/xbin/fuser",
            "/system/xbin/getopt", "/system/xbin/grep", "/system/xbin/groups",
            "/system/xbin/gunzip", "/system/xbin/gzip", "/system/xbin/halt",
            "/system/xbin/head", "/system/xbin/hexdump", "/system/xbin/id",
            "/system/xbin/ifconfig", "/system/xbin/inetd", "/system/xbin/insmod",
            "/system/xbin/install", "/system/xbin/iostat", "/system/xbin/ip",
            "/system/xbin/kill", "/system/xbin/killall", "/system/xbin/killall5",
            "/system/xbin/length", "/system/xbin/less", "/system/xbin/ln",
            "/system/xbin/losetup", "/system/xbin/ls", "/system/xbin/lsattr",
            "/system/xbin/lsmod", "/system/xbin/lsusb", "/system/xbin/lzcat",
            "/system/xbin/lzma", "/system/xbin/lzop", "/system/xbin/lzopcat",
            "/system/xbin/man", "/system/xbin/md5sum", "/system/xbin/mesg",
            "/system/xbin/mkdir", "/system/xbin/mke2fs", "/system/xbin/mkfifo",
            "/system/xbin/mkfs.ext2", "/system/xbin/mkfs.vfat",
            "/system/xbin/mknod", "/system/xbin/mkswap", "/system/xbin/mktemp",
            "/system/xbin/modinfo", "/system/xbin/modprobe", "/system/xbin/more",
            "/system/xbin/mount", "/system/xbin/mountpoint", "/system/xbin/mpstat",
            "/system/xbin/mv", "/system/xbin/nanddump", "/system/xbin/nandwrite",
            "/system/xbin/netstat", "/system/xbin/nice", "/system/xbin/nohup",
            "/system/xbin/nslookup", "/system/xbin/ntpd", "/system/xbin/od",
            "/system/xbin/patch", "/system/xbin/pgrep", "/system/xbin/pidof",
            "/system/xbin/ping", "/system/xbin/pkill", "/system/xbin/pmap",
            "/system/xbin/poweroff", "/system/xbin/printenv", "/system/xbin/printf",
            "/system/xbin/ps", "/system/xbin/pstree", "/system/xbin/pwd",
            "/system/xbin/pwdx", "/system/xbin/rdev", "/system/xbin/readlink",
            "/system/xbin/realpath", "/system/xbin/renice", "/system/xbin/reset",
            "/system/xbin/resize", "/system/xbin/rev", "/system/xbin/rm",
            "/system/xbin/rmdir", "/system/xbin/rmmod", "/system/xbin/route",
            "/system/xbin/run-parts", "/system/xbin/rx", "/system/xbin/sed",
            "/system/xbin/seq", "/system/xbin/setconsole", "/system/xbin/setserial",
            "/system/xbin/setsid", "/system/xbin/sh", "/system/xbin/sha1sum",
            "/system/xbin/sha256sum", "/system/xbin/sha512sum",
            "/system/xbin/sleep", "/system/xbin/sort", "/system/xbin/split",
            "/system/xbin/stat", "/system/xbin/strings", "/system/xbin/stty",
            "/system/xbin/sum", "/system/xbin/swapoff", "/system/xbin/swapon",
            "/system/xbin/sync", "/system/xbin/sysctl", "/system/xbin/tac",
            "/system/xbin/tail", "/system/xbin/tar", "/system/xbin/taskset",
            "/system/xbin/tee", "/system/xbin/telnet", "/system/xbin/telnetd",
            "/system/xbin/test", "/system/xbin/tftp", "/system/xbin/tftpd",
            "/system/xbin/time", "/system/xbin/timeout", "/system/xbin/top",
            "/system/xbin/touch", "/system/xbin/tr", "/system/xbin/traceroute",
            "/system/xbin/true", "/system/xbin/ttysize", "/system/xbin/tune2fs",
            "/system/xbin/umount", "/system/xbin/uname", "/system/xbin/uncompress",
            "/system/xbin/unexpand", "/system/xbin/uniq", "/system/xbin/unix2dos",
            "/system/xbin/unlzma", "/system/xbin/unlzop", "/system/xbin/unxz",
            "/system/xbin/unzip", "/system/xbin/uptime", "/system/xbin/usleep",
            "/system/xbin/uudecode", "/system/xbin/uuencode", "/system/xbin/vi",
            "/system/xbin/watch", "/system/xbin/wc", "/system/xbin/wget",
            "/system/xbin/which", "/system/xbin/whoami", "/system/xbin/xargs",
            "/system/xbin/xz", "/system/xbin/xzcat", "/system/xbin/yes",
            "/system/xbin/zcat");
    symlink("mksh", "/system/bin/sh");
    symlink("toolbox", "/system/bin/cat", "/system/bin/chmod",
            "/system/bin/chown", "/system/bin/cmp", "/system/bin/date",
            "/system/bin/dd", "/system/bin/df", "/system/bin/dmesg",
            "/system/bin/getevent", "/system/bin/getprop", "/system/bin/hd",
            "/system/bin/id", "/system/bin/ifconfig", "/system/bin/iftop",
            "/system/bin/insmod", "/system/bin/ioctl", "/system/bin/ionice",
            "/system/bin/kill", "/system/bin/ln", "/system/bin/log",
            "/system/bin/ls", "/system/bin/lsmod", "/system/bin/lsof",
            "/system/bin/md5", "/system/bin/mkdir", "/system/bin/mount",
            "/system/bin/mv", "/system/bin/nandread", "/system/bin/netstat",
            "/system/bin/newfs_msdos", "/system/bin/notify", "/system/bin/printenv",
            "/system/bin/ps", "/system/bin/r", "/system/bin/reboot",
            "/system/bin/renice", "/system/bin/rm", "/system/bin/rmdir",
            "/system/bin/rmmod", "/system/bin/route", "/system/bin/schedtop",
            "/system/bin/sendevent", "/system/bin/setconsole",
            "/system/bin/setprop", "/system/bin/sleep", "/system/bin/smd",
            "/system/bin/start", "/system/bin/stop", "/system/bin/sync",
            "/system/bin/top", "/system/bin/touch", "/system/bin/umount",
            "/system/bin/uptime", "/system/bin/vmstat", "/system/bin/watchprops",
            "/system/bin/wipe");
    	ui_print("Setting Permissions");
    	set_perm_recursive(0, 0, 0755, 0644, "/system");
    	set_perm_recursive(0, 0, 0755, 0755, "/system/etc/init.d");
    	set_perm_recursive(0, 2000, 0755, 0755, "/system/bin");
    	set_perm(0, 3003, 06755, "/system/bin/ip");
    	set_perm(0, 3003, 02750, "/system/bin/netcfg");
    	set_perm(0, 3004, 02755, "/system/bin/ping");
    	set_perm(0, 2000, 06750, "/system/bin/run-as");
    	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(0, 2000, 0550, "/system/etc/init.goldfish.sh");
    	set_perm_recursive(0, 0, 0755, 0555, "/system/etc/ppp");
    	set_perm_recursive(0, 2000, 0755, 0644, "/system/vendor");
    	set_perm_recursive(0, 0, 0755, 0644, "/system/vendor/firmware");
    	set_perm(0, 2000, 0755, "/system/vendor/firmware");
    	set_perm_recursive(0, 2000, 0755, 0755, "/system/xbin");
    	set_perm(0, 0, 06755, "/system/xbin/su");
    endif;
    if file_getprop("/tmp/aroma/global.prop","selected") == "1" then
    	ui_print("Flashing kernel ...");
    	package_extract_file("Trouba/flash_image", "/tmp/flash_image");
    	set_perm(0, 0, 0777, "/tmp/flash_image");
    	if file_getprop("/tmp/aroma/kernels.prop","selected") == "1" then
    		ui_print("@ Installing XWMS3 PhilZ Kernel");
    		assert(package_extract_file("kernels/philz/zImage", "/tmp/zImage"),run_program("/tmp/flash_image", "/dev/block/mmcblk0p5", "/tmp/zImage"),delete("/tmp/zImage"));
    	endif;
    	if file_getprop("/tmp/aroma/kernels.prop","selected") == "2" then
    		ui_print("@ Installing Apolo Light Kernel");
    		assert(package_extract_file("kernels/apolo/light/zImage", "/tmp/zImage"),run_program("/tmp/flash_image", "/dev/block/mmcblk0p5", "/tmp/zImage"),delete("/tmp/zImage"));
    	endif;
    	if file_getprop("/tmp/aroma/kernels.prop","selected") == "3" then
    		ui_print("@ Installing SensMe choice Apolo Regular Kernel");
    		assert(package_extract_file("kernels/apolo/regular/zImage", "/tmp/zImage"),run_program("/tmp/flash_image", "/dev/block/mmcblk0p5", "/tmp/zImage"),delete("/tmp/zImage"));
    	endif;
    	if file_getprop("/tmp/aroma/kernels.prop","selected") == "4" then
    		ui_print("@ Installing DorimanX 8.43v76");
    		assert(package_extract_file("kernels/dorimanx/zImage", "/tmp/zImage"),run_program("/tmp/flash_image", "/dev/block/mmcblk0p5", "/tmp/zImage"),delete("/tmp/zImage"));
    	endif;
    	if file_getprop("/tmp/aroma/kernels.prop","selected") == "5" then
    		ui_print("@ Installing DorimanX 8.43v112");
    		assert(package_extract_file("kernels/dorimanxstan/zImage", "/tmp/zImage"),run_program("/tmp/flash_image", "/dev/block/mmcblk0p5", "/tmp/zImage"),delete("/tmp/zImage"));
    	endif;
    	if file_getprop("/tmp/aroma/kernels.prop","selected") == "6" then
    		ui_print("@ Installing KERNEL FROM ROM");
    		assert(package_extract_file("kernels/ROMKERNEL/zImage", "/tmp/zImage"),run_program("/tmp/flash_image", "/dev/block/mmcblk0p5", "/tmp/zImage"),delete("/tmp/zImage"));
    	endif;
    	delete("/tmp/flash_image");
    endif;
    if file_getprop("/tmp/aroma/global.prop","selected") == "1" then
    	ui_print("Flash modem I9100XXMS4...");
    	package_extract_file("Trouba/flash_image", "/tmp/flash_image");
    	set_perm(0, 0, 0777, "/tmp/flash_image");
    	assert(package_extract_file("Trouba/modem.bin", "/tmp/modem.bin"), run_program("/tmp/flash_image", "/dev/block/mmcblk0p8", "/tmp/modem.bin"), delete("/tmp/modem.bin"));
    	delete("/tmp/flash_image");
    endif;
    set_perm(0, 0, 0777, "/tmp/symlink_preload");
    run_program("/tmp/symlink_preload");
    ui_print("Limpiando archivos temporales...");
    delete("/tmp/symlink_preload");
    delete("/tmp/cleanup.sh");
    run_program("/sbin/umount", "/system");
    run_program("/sbin/umount", "/data");
    run_program("/sbin/umount", "/cache");
    run_program("/sbin/umount", "/preload");
    ui_print("");
    ui_print("");
    ui_print(" ");
    ui_print("            Enjoy           ");
    ui_print("        Please reboot       ");

    link :

    PATERN-AROMA-PATCH_install-ROM-and-3-MODs-WITH-vrtheme.zip - 49.23 MB

    thanks.
    5
    Pattern to only flash mods+vrthemes

    You will need to MIX some MODs (VRthemes too) in AllInOne ZIP.

    I give you complete structure of ZIP + aroma-config + updater-script to mix 1, 2 or 3 mods you want to flash in one step. Soon , i explain here how to add more MODs in your new managed ZIP.

    Now, imagine you have 2 or 3 MODs.zip and you want to mix them in one ZIP and have choice to flash both in one step.

    - Decompile each mods in a folder on PC (one folder/mod)
    - Delete META-INF in each extracted folder
    - Normaly , for each mod extracted, you will have a folder similar with the following structure:

    Code:
    +---THE MOD EXTRACTED :
    
    |   +---META-INF
    |   |   +---blablabla
    |   |         \------blablabla
    |   |                \----blablabla
    |   |                      \---- updater-script [COLOR="Red"](important file you have to examine about , the DEV can
                                                               delete some files in the installed rom before flashing his MOD,
                                                              check the delete lines too and report them in my updater-script)[/COLOR]
    |   +---data
    |   |   +---app
    |   |   \---local
    |   +---preload
    |   |   \---symlink
    |   |       \---system
    |   |           \---app  [COLOR="Red"](<------- its a folder with apks)[/COLOR]
    |   +---system
    |   |   +---app [COLOR="Red"](<------- its a folder with apks)[/COLOR]
    |   |   +---bin
    |   |   +---etc
    |   |   +---framework [COLOR="Red"](<------- its a folder with some jar files or framework-res.apk)[/COLOR]
    |   |   \---lib
    |   \---vrtheme
    |       +---data
    |       |   \---app
    |       +---preload
    |       |   \---symlink
    |       |       \---system
    |       |           \---app
    |       |               \---xxxxxxxxx.apk  [COLOR="Red"](<------- its a folder decompiled apk)[/COLOR]
    |       |                    \----drawable [COLOR="Red"](<------- its a sub-folder of decompiled apk)[/COLOR]
    |       \---system
    |           +---app
    |            |    \---xxxxxxxxx.apk [COLOR="Red"](<------- its a folder decompiled apk)[/COLOR]
    |            |        \----drawable [COLOR="Red"](<------- its a sub-folder of decompiled apk)[/COLOR]
    |            |        \----xxxxxxxx [COLOR="Red"](<------- its a another sub-folder of decompiled apk)[/COLOR]
    |           \---framework
    |            |   \---framework-res.apk [COLOR="Red"](<------- its a folder decompiled apk)[/COLOR]
    |            |        \----drawable [COLOR="Red"](<------- its a sub-folder of decompiled apk)[/COLOR]
    |            |        \----xxxxxxxx [COLOR="Red"](<------- its a another sub-folder of decompiled apk)[/COLOR]

    so, to use my aroma-config and my updater-script without many change , you have to copy each extracted MODs (on PC) in my ZIP in attachement, following the folder i try to show you .

    Before i try to explain more (because english is not my native langage) , let me show partial aroma-config
    Code:
    menubox(
    	"systemui secsettings cleaner",
    	"Do you need a little wipe before flash",
    	"@icon.apps",
    	"wipe.prop",
    	"Yes","",0,
    	"No Skip","",1
    );
    menubox(
      "Install",
      "",
      "@icon.apps",
      "installtype.prop",
      "Normal use","",0,
      "DualBoot use","",0
    );
    if prop("installtype.prop","selected")=="1" || prop("installtype.prop","selected")=="2" then
    	checkbox(
    		"Check some MODs to flash",
    		"Choose what to Install:",
    		"@icon.apps",
    		"mod.prop",
    		"Selected MODs will be installed","",2,
    		"Mod 1","",1,
    		"Mod 2","",1,
    [COLOR="DarkGreen"]		"Mod 3","",1[/COLOR]
    (if you want add a mod, just add a " [B],[/B] " at end of this line and
    add a new line with
    [COLOR="Navy"]"Mod 4","",1[/COLOR] without " [B],[/B] " at end.
    And if you want 5 , 6....just do the same thing.
    dont forget to manage as well the " [B],[/B] " !
    		);
    else
    	writetmpfile(
    		"mod.prop",
    		"item.1.1=0\n"+
    		"item.1.1=1\n"
    		);
    endif;
    if prop("mod.prop","item.1.1")=="1" then
    	splash(5000, "splash/imageMOD1");
    endif;
    if prop("mod.prop","item.1.2")=="1" then
    	 splash(5000, "splash/imageMOD2");
    endif;
    [COLOR="DarkGreen"]
    if prop("mod.prop","item.1.3")=="1" then
    	 splash(5000, "splash/imageMOD3");
    endif;
    [/COLOR]
    for supplementary MOD you add, with image in /splash/ folder , just add this block like that :
    [COLOR="Navy"]
    if prop("mod.prop","item.1.4")=="1" then
    	 splash(5000, "splash/imageMOD4");
    endif;
    [/COLOR]


    and full updater-script :
    Code:
    ui_print("");
    ui_print("Universal Flasher");
    ui_print("Aroma and Script based");
    ui_print("On idea from Troubadour666 from XDA");
    unmount("/system");
    unmount("/cache");
    unmount("/preload");
    run_program("/sbin/mount", "/dev/block/mmcblk0p9", "/system");
    run_program("/sbin/mount", "/dev/block/mmcblk0p10", "/data");
    run_program("/sbin/mount", "/dev/block/mmcblk0p7", "/cache");
    run_program("/sbin/mount", "/dev/block/mmcblk0p12", "/preload");
    run_program("/sbin/mount", "/dev/block/mmcblk0p11", "/sdcard");
    run_program("/sbin/rm", "-rf", "/sdcard/vrtheme/");
    ui_print(" Please wait... Extracting needed tools to vrtheme...");
    package_extract_dir("vrtheme", "/sdcard/vrtheme");
    package_extract_file("Trouba/installtheme.sh", "/sdcard/vrtheme/installtheme.sh");
    if file_getprop("/tmp/aroma/installtype.prop","selected.1") == "2" then
    	package_extract_file("Trouba/dbinstalltheme.sh", "/sdcard/vrtheme/installtheme.sh");
    endif;
    set_perm(0, 0, 0777, "/sdcard/vrtheme/installtheme.sh");
    set_perm(0, 0, 0777, "/sdcard/vrtheme/zip");
    set_perm(0, 0, 0777, "/sdcard/vrtheme/cleanup.sh");
    set_perm(0, 0, 0777, "/sdcard/vrtheme/zipalign");
    package_extract_file("Trouba/symlink_preload", "/tmp/symlink_preload");
    if file_getprop("/tmp/aroma/installtype.prop","selected") == "2" then
    	package_extract_file("Trouba/symlink_dualboot", "/tmp/symlink_preload");
    endif;
    if file_getprop("/tmp/aroma/wipe.prop","selected") == "1" then
    	delete_recursive("/data/data/com.android.providers.settings");
    	delete_recursive("/data/data/com.android.settings");
    	delete_recursive("/data/data/com.android.systemui");
    endif;
    if file_getprop("/tmp/aroma/mod.prop","item.1.1") == "1" then
    	ui_print("@ Installing MOD 1");
    	if file_getprop("/tmp/aroma/installtype.prop","selected") == "1" then
    		package_extract_dir("mod1/preload", "/preload");
    	endif;
    	if file_getprop("/tmp/aroma/installtype.prop","selected") == "2" then
    		package_extract_dir("mod1/preload/symlink/system/app", "/data/sec_data");
    	endif;
    	package_extract_dir("mod1/data", "/data");
    	package_extract_dir("mod1/system", "/system");
    	package_extract_dir("mod1/vrtheme", "/sdcard/vrtheme");
    	run_program("/sdcard/vrtheme/installtheme.sh");
    	run_program("/sdcard/vrtheme/cleanup.sh");
    endif;
    if file_getprop("/tmp/aroma/mod.prop","item.1.2") == "1" then
    	ui_print("@ Installing MOD 2");
    	if file_getprop("/tmp/aroma/installtype.prop","selected") == "1" then
    		package_extract_dir("mod2/preload", "/preload");
    	endif;
    	if file_getprop("/tmp/aroma/installtype.prop","selected") == "2" then
    		package_extract_dir("mod2/preload/symlink/system/app", "/data/sec_data");
    	endif;
    	package_extract_dir("mod2/data", "/data");
    	package_extract_dir("mod2/system", "/system");
    	package_extract_dir("mod2/vrtheme", "/sdcard/vrtheme");
    	run_program("/sdcard/vrtheme/installtheme.sh");
    	run_program("/sdcard/vrtheme/cleanup.sh");
    endif;
    [COLOR="DarkGreen"]
    if file_getprop("/tmp/aroma/mod.prop","item.1.3") == "1" then
    	ui_print("@ Installing MOD 3");
    	if file_getprop("/tmp/aroma/installtype.prop","selected") == "1" then
    		package_extract_dir("mod3/preload", "/preload");
    	endif;
    	if file_getprop("/tmp/aroma/installtype.prop","selected") == "2" then
    		package_extract_dir("mod3/preload/symlink/system/app", "/data/sec_data");
    	endif;
    	package_extract_dir("mod3/data", "/data");
    	package_extract_dir("mod3/system", "/system");
    	package_extract_dir("mod3/vrtheme", "/sdcard/vrtheme");
    	run_program("/sdcard/vrtheme/installtheme.sh");
    	run_program("/sdcard/vrtheme/cleanup.sh");
    endif;
    [/COLOR]
    If you add a supplementary MOD in aroma-config to have 4 for example, you have to add these following lines too.
    [COLOR="Navy"]
    if file_getprop("/tmp/aroma/mod.prop","item.1.4") == "1" then
    	ui_print("@ Installing MOD 4");
    	if file_getprop("/tmp/aroma/installtype.prop","selected") == "1" then
    		package_extract_dir("mod4/preload", "/preload");
    	endif;
    	if file_getprop("/tmp/aroma/installtype.prop","selected") == "2" then
    		package_extract_dir("mod4/preload/symlink/system/app", "/data/sec_data");
    	endif;
    	package_extract_dir("mod4/data", "/data");
    	package_extract_dir("mod4/system", "/system");
    	package_extract_dir("mod4/vrtheme", "/sdcard/vrtheme");
    	run_program("/sdcard/vrtheme/installtheme.sh");
    	run_program("/sdcard/vrtheme/cleanup.sh");
    endif;
    [/COLOR]
    set_perm(0, 0, 0777, "/tmp/symlink_preload");
    run_program("/tmp/symlink_preload");
    delete("/tmp/symlink_preload");
    delete("/tmp/cleanup.sh");
    run_program("/sbin/umount", "/system");
    run_program("/sbin/umount", "/data");
    run_program("/sbin/umount", "/cache");
    run_program("/sbin/umount", "/preload");
    ui_print("");
    ui_print("");
    ui_print(" ");
    ui_print("            Enjoy           ");
    ui_print("        Please reboot       ");

    In attachements, the full little package to download and use only if you want some mods mixed in AllInOne CWM flasher.

    Next step will explain how to add more MODs (by adding some block line (green line) inside updater-script and just 1, 2, 3 xxx lines in aroma-config (depending how many mods you add) to give choice to user to tick more than 3 mods to flash in one step)
    in Navy color, the added lines if you need to know how to add more MODs to tick during aroma execution.

    thanks.
    3
    Aroma master :) great work mate :thumbup::thumbup:

    Sent from my NeatRom'ed GT-I9300 wifi hotspoting from my NeatRom'ed GT-I9100
    2
    other explain maybe
    2
    use checkbox in aroma instead MenuBox fonction and made aroma-script only for MODs and VRTHEME, not whole ROM....in progress....
    credit idea to @marjune23 ;)

    Aroma master :) great work mate :thumbup::thumbup:

    Sent from my NeatRom'ed GT-I9300 wifi hotspoting from my NeatRom'ed GT-I9100

    always here my friend :)