[LG Optimus L9 P760, P765, P768, P769] kuma82:
UPDATE:

I've finally got some free time today and I made my Rom into a flashable zip ;-D

It's compatible with unlocked (Lelus recoveries) & locked (Artas182x bootstrap) recoveries. I plan on doing some more testing (24hrs) before uploading the new install method.

This is what the updater-script looks like so far

ui_print("-----------------------------");
ui_print("- THEMED & TWEAKED -");
ui_print("- Optimus L9 LGMS769 -");
ui_print("- BY KuMa82 -");
ui_print("-----------------------------");
ui_print("");
ui_print("Preparing to Install...");
run_program("/sbin/busybox", "mount", "/system");
ui_print("Checking Existing Install...");
package_extract_file("v1.sh", "/tmp/v1.sh");
set_perm(0, 0, 0777, "/tmp/v1.sh");
# backs up current build.prop to /tmp so it can be checked
run_program("/sbin/busybox", "mount", "/system");
run_program("/tmp/v1.sh");
unmount("/system");
if
file_getprop("/tmp/default.prop", "ro.product.device") == "p940"
then
ui_print("Artas182x Recovery detected");
ui_print("Not wiping required files");
ui_print("Cleaning system");
run_program("/sbin/busybox", "mount", "/system");
delete_recursive("/system/app/");
delete_recursive("/system/apps/");
delete_recursive("/system/bin/");
delete_recursive("/system/etc/");
delete_recursive("/system/fonts/");
delete_recursive("/system/framework/");
delete_recursive("/system/lib/");
delete_recursive("/system/media/");
delete_recursive("/system/vendor/");
delete_recursive("/system/xbin/");
delete("/system/build.prop");
ui_print("Writing SYSTEM");
ui_print("please wait...");
package_extract_dir("system", "/system");
else
ui_print("Custom Recovery detected");
format("ext4", "EMMC", "/dev/block/platform/omap/omap_hsmmc.1/by-name/system", "0", "/system");
mount("ext4", "EMMC", "/dev/block/platform/omap/omap_hsmmc.1/by-name/system", "/system");
ui_print("Extracting SYSTEM ");
ui_print("please wait...");
package_extract_dir("system", "/system");
endif;
ui_print("Clearing dalvik");
run_program("/sbin/busybox", "mount", "/data");
delete_recursive("/data/dalvik-cache");
ui_print(" Clearing cache");
run_program("/sbin/busybox", "mount", "/cache");
delete_recursive("/cache");
ui_print("Installing Busybox & Linking Tools");
symlink("Roboto-Bold.ttf", "/system/fonts/DroidSans-Bold.ttf");
symlink("Roboto-Regular.ttf", "/system/fonts/DroidSans.ttf");
symlink("toolbox", "/system/bin/cat");
symlink("toolbox", "/system/bin/chmod");
symlink("toolbox", "/system/bin/chown");
symlink("toolbox", "/system/bin/cmp");
symlink("toolbox", "/system/bin/date");
symlink("toolbox", "/system/bin/dd");
symlink("toolbox", "/system/bin/df");
symlink("toolbox", "/system/bin/dmesg");
symlink("toolbox", "/system/bin/getevent");
symlink("toolbox", "/system/bin/getprop");
symlink("toolbox", "/system/bin/hd");
symlink("toolbox", "/system/bin/id");
symlink("toolbox", "/system/bin/ifconfig");
symlink("toolbox", "/system/bin/iftop");
symlink("toolbox", "/system/bin/insmod");
symlink("toolbox", "/system/bin/ioctl");
symlink("toolbox", "/system/bin/ionice");
symlink("toolbox", "/system/bin/kill");
symlink("toolbox", "/system/bin/ln");
symlink("toolbox", "/system/bin/log");
symlink("toolbox", "/system/bin/ls");
symlink("toolbox", "/system/bin/lsmod");
symlink("toolbox", "/system/bin/lsof");
symlink("toolbox", "/system/bin/md5");
symlink("toolbox", "/system/bin/mkdir");
symlink("toolbox", "/system/bin/mount");
symlink("toolbox", "/system/bin/mv");
symlink("toolbox", "/system/bin/nandread");
symlink("toolbox", "/system/bin/netstat");
symlink("toolbox", "/system/bin/newfs_msdos");
symlink("toolbox", "/system/bin/notify");
symlink("toolbox", "/system/bin/printenv");
symlink("toolbox", "/system/bin/ps");
symlink("toolbox", "/system/bin/reboot");
symlink("toolbox", "/system/bin/renice");
symlink("toolbox", "/system/bin/rm");
symlink("toolbox", "/system/bin/rmdir");
symlink("toolbox", "/system/bin/rmmod");
symlink("toolbox", "/system/bin/route");
symlink("toolbox", "/system/bin/schedtop");
symlink("toolbox", "/system/bin/sendevent");
symlink("toolbox", "/system/bin/setconsole");
symlink("toolbox", "/system/bin/setprop");
symlink("mksh", "/system/bin/sh");
symlink("toolbox", "/system/bin/sleep");
symlink("toolbox", "/system/bin/smd");
symlink("toolbox", "/system/bin/start");
symlink("toolbox", "/system/bin/stop");
symlink("toolbox", "/system/bin/sync");
symlink("toolbox", "/system/bin/top");
symlink("toolbox", "/system/bin/touch");
symlink("toolbox", "/system/bin/umount");
symlink("toolbox", "/system/bin/uptime");
symlink("toolbox", "/system/bin/vmstat");
symlink("toolbox", "/system/bin/watchprops");
symlink("toolbox", "/system/bin/wipe");
ui_print("Setting Permission...");
set_perm_recursive(0, 0, 0755, 0644, "/system");
set_perm_recursive(1000, 1005, 0777, 0777, "/system/etc/init.d");
set_perm_recursive(0, 2000, 0755, 0755, "/system/bin");
set_perm_recursive(0, 0, 0755, 0700, "/system/bootstrap");
set_perm(0, 0, 0755, "/system/bin/e2fsck");
set_perm(0, 3003, 02750, "/system/bin/netcfg");
set_perm(0, 3004, 02755, "/system/bin/ping");
set_perm(0, 3004, 02755, "/system/bin/ping6");
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/1firstboot");
set_perm(1002, 1002, 0440, "/system/etc/bluetooth/audio.conf");
set_perm(1000, 1000, 0640, "/system/etc/bluetooth/auto_pairing.conf");
set_perm(3002, 3002, 0444, "/system/etc/bluetooth/blacklist.conf");
set_perm(0, 0, 0644, "/system/etc/bluetooth/block_avrcp_toggle.conf");
set_perm(1002, 1002, 0640, "/system/etc/bluetooth/did.conf");
set_perm(1002, 1002, 0440, "/system/etc/bluetooth/input.conf");
set_perm(1002, 1002, 0440, "/system/etc/bluetooth/main.conf");
set_perm(1002, 1002, 0440, "/system/etc/bluetooth/network.conf");
set_perm(1000, 1015, 0644, "/system/etc/apns-conf.xml");
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(0, 2000, 4655, "/system/etc/resolv.conf");
set_perm_recursive(0, 0, 0755, 0555, "/system/etc/ppp");
set_perm_recursive(0, 2000, 0755, 0644, "/system/vendor");
set_perm_recursive(0, 2000, 0755, 0755, "/system/vendor/bin");
set_perm_recursive(0, 2000, 0755, 0644, "/system/vendor/etc");
set_perm_recursive(0, 0, 0755, 0644, "/system/vendor/firmware");
set_perm(0, 2000, 0755, "/system/vendor/firmware");
set_perm(0, 2000, 0755, "/system/vendor/lib");
set_perm(0, 2000, 0755, "/system/vendor/lib/egl");
set_perm(0, 2000, 0755, "/system/vendor/lib/hw");
set_perm_recursive(0, 2000, 0755, 0755, "/system/xbin");
set_perm(0, 1000, 0755, "/system/xbin/busybox");
# converted and updated system apps
set_perm(1000, 1000, 0755, "/system/lib/libjni_unbundled_latinimegoogle.so");
set_perm(1000, 1000, 0755, "/system/lib/libwebp_android.so");
set_perm(1000, 1000, 0755, "/system/lib/libvideochat_jni.so");
set_perm(1000, 1000, 0755, "/system/lib/libvcdecoder_jni.so");
set_perm(1000, 1000, 0755, "/system/lib/librsjni.so");
set_perm(1000, 1000, 0755, "/system/lib/librs.retrolux.so");
set_perm(1000, 1000, 0755, "/system/lib/librs.image_wrapper.so");
set_perm(1000, 1000, 0755, "/system/lib/librs.grey.so");
set_perm(1000, 1000, 0755, "/system/lib/librs.fixedframe.so");
set_perm(1000, 1000, 0755, "/system/lib/librs.film_base.so");
set_perm(1000, 1000, 0755, "/system/lib/librs.drama.so");
set_perm(1000, 1000, 0755, "/system/lib/librs.antblur_drama.so");
set_perm(1000, 1000, 0755, "/system/lib/librs.antblur_constant.so");
set_perm(1000, 1000, 0755, "/system/lib/librs.antblur.so");
set_perm(1000, 1000, 0755, "/system/lib/libplus_jni_v8.so");
set_perm(1000, 1000, 0755, "/system/lib/libgoogle_recognizer_jni_l.so");
set_perm(1000, 1000, 0755, "/system/lib/libgames_rtmp_jni.so");
set_perm(1000, 1000, 0755, "/system/lib/libRSSupport.so");
set_perm(1000, 1000, 0755, "/system/lib/libAppDataSearch.so");
set_perm(1000, 1000, 0755, "/system/lib/libysshared.so");
set_perm(1000, 1000, 0755, "/system/lib/libstagefright_honeycomb.so");
set_perm(1000, 1000, 0755, "/system/lib/libstagefright_froyo.so");
set_perm(1000, 1000, 0755, "/system/lib/libflashplayer.so");
set_perm(1000, 1000, 0755, "/system/lib/libjackpal-androidterm4.so");
set_perm(1000, 1000, 0755, "/system/lib/libcryptox.so");
set_perm(1000, 1000, 0755, "/system/lib/libfb.so");
set_perm(1000, 1000, 0755, "/system/lib/libfb_breakpad_client.so");
set_perm(1000, 1000, 0755, "/system/lib/libfb_cpucapabilities.so");
set_perm(1000, 1000, 0755, "/system/lib/libfb_crypto.so");
set_perm(1000, 1000, 0755, "/system/lib/libfb_dalvik-internals.so");
set_perm(1000, 1000, 0755, "/system/lib/libpeanut.so");
set_perm(1000, 1000, 0755, "/system/lib/libreflex.so");
set_perm(1000, 1000, 0755, "/system/lib/libfb_fdlimit.so");
set_perm(1000, 1000, 0755, "/system/lib/libfb_filesystem.so");
set_perm(1000, 1000, 0755, "/system/lib/libfb_jpegcodec.so");
set_perm(1000, 1000, 0755, "/system/lib/libfb_jpegtexture.so");
set_perm(1000, 1000, 0755, "/system/lib/libfb_jpegturbo.so");
set_perm(1000, 1000, 0755, "/system/lib/libfb_stl_shared.so");
set_perm(1000, 1000, 0755, "/system/lib/libfb_tracker.so");
set_perm(1000, 1000, 0755, "/system/lib/libfb_webpcodec.so");
set_perm(1000, 1000, 0755, "/system/lib/libmozgluelinker.so");
set_perm(1000, 1000, 0755, "/system/lib/libreflex-jni.so");
set_perm(1000, 1000, 0755, "/system/lib/libstopmotion.so");
set_perm(1000, 1000, 0755, "/system/lib/libwebp.so");
run_program("/system/xbin/busybox", "--install", "-s", "/system/xbin");
set_perm(0, 0, 06755, "/system/xbin/su");
set_perm_recursive(0, 0, 0711, 06755, "/system/bin/.ext");
ui_print("Install Complete");
ui_print("");
ui_print("Cleaning Up....");
unmount("/data");
unmount("/cache");
ui_print("Checking if a data wipe is required");
if
file_getprop("/tmp/build.prop", "ro.build.version.release") == "4.1.2"
then
ui_print("Your /data is compatible");
ui_print("- & -");
ui_print("a wipe is not required");
ui_print("However, some apps will not be installed...");
ui_print("/system/apps/bootup/");
ui_print("");
ui_print("Enjoy!");
else
ui_print("Your /data is not compatible");
ui_print("- & -");
ui_print("a wipe is required");
ui_print("Disregard if already wiped");
ui_print("");
ui_print("Enjoy!");
endif;
ui_print("");
package_extract_file("boot.img", "/dev/block/platform/omap/omap_hsmmc.1/by-name/boot");
unmount("/system");

The v1.sh file

#!/sbin/sh
#Backing up & checking current system
cp /default.prop /tmp/default.prop
cp /default.prop /tmp/build.prop
# Overwriting fake build.prop if /system exist
cp /system/build.prop /tmp/build.prop
exit 0