[LG Optimus L9 P760, P765, P768, P769] kuma82:
Sure you can. My aroma told you data wipe wasn't required ;)

But first I have to come up with a better solution for my firstboot.sh

Thanks to [MENTION=4082324]Cj2114[/MENTION] for catching it.

He noticed that gravity box had stopped working after updating and rebooting.

My current solution is to perform the following.

Reboot twice to get gravity box working again. I rebooted once and waited about 30 second, went into xposed (modules tab) and unselected/reselected gravitybox and rebooted. That did the trick.

I'll have to come up with a better solution.

The old firstboot.sh script isn't safe.

I was using chmod 777

no bueno (not good)

I really like the changes I made, but it (firstboot script) is still having some ownership issues.

If anyone can provide me a better solution I'm all ears.

#!/system/bin/sh

mount -o remount,rw /system

BB=busybox
DATA=/data/data
ETC=/etc/data

if [ ! -e $DATA/de.robv.android.xposed.installer/shared_prefs/enabled_modules.xml ]; then
$BB chmod -R 755 $DATA/de.robv.android.xposed.installer
$BB rm -rf $DATA/de.robv.android.xposed.installer
$BB cp -r $ETC/de.robv.android.xposed.installer $DATA
$BB chmod -R 755 $DATA/de.robv.android.xposed.installer
$BB chmod 700 $DATA/de.robv.android.xposed.installer/bin/app_process
$BB chmod 644 $DATA/de.robv.android.xposed.installer/bin/XposedBridge.jar
$BB chmod 664 $DATA/de.robv.android.xposed.installer/conf/modules.list
$BB chmod 660 $DATA/de.robv.android.xposed.installer/shared_prefs/*
fi

if [ ! -e $DATA/com.ceco.gm2.gravitybox/shared_prefs/com.ceco.gm2.gravitybox_preferences.xml ]; then
$BB chmod -R 755 $DATA/com.ceco.gm2.gravitybox
$BB rm -rf $DATA/com.ceco.gm2.gravitybox
$BB cp -r $ETC/com.ceco.gm2.gravitybox $DATA
$BB chmod -R 755 $DATA/com.ceco.gm2.gravitybox
$BB chmod 664 $DATA/com.ceco.gm2.gravitybox/shared_prefs/*
$BB chmod 644 $DATA/com.ceco.gm2.gravitybox/files/*
fi

if [ ! -e $DATA/ma.wanam.youtubeadaway/shared_prefs/ma.wanam.youtubeadaway_preferences.xml ]; then
$BB chmod -R 755 $DATA/ma.wanam.youtubeadaway
$BB rm -rf $DATA/ma.wanam.youtubeadaway
$BB cp -r $ETC/ma.wanam.youtubeadaway $DATA
$BB chmod -R 755 $DATA/ma.wanam.youtubeadaway
$BB chmod 664 $DATA/ma.wanam.youtubeadaway/shared_prefs/ma.wanam.youtubeadaway_preferences.xml
fi

if [ ! -e $DATA/com.vipercn.viper4android_v2/shared_prefs/com.vipercn.viper4android_v2.settings.xml ]; then
$BB chmod -R 755 $DATA/com.vipercn.viper4android_v2
$BB rm -rf $DATA/com.vipercn.viper4android_v2
$BB cp -r $ETC/com.vipercn.viper4android_v2 $DATA
$BB chmod -R 755 $DATA/com.vipercn.viper4android_v2
$BB chmod 660 $DATA/com.vipercn.viper4android_v2/shared_prefs/*
$BB chmod 755 $DATA/com.vipercn.viper4android_v2/files/*
fi

XP=$(grep de.robv.android.xposed.installer /data/system/packages.list | cut -d' ' -f2)
GB=$(grep com.ceco.gm2.gravitybox /data/system/packages.list | cut -d' ' -f2)
YA=$(grep ma.wanam.youtubeadaway /data/system/packages.list | cut -d' ' -f2)
VP=$(grep com.vipercn.viper4android_v2 /data/system/packages.list | cut -d' ' -f2)

if [ ! -e /data/system/packages.list ]; then
sleep 30
$BB chown -R $XP.$XP $DATA/de.robv.android.xposed.installer
$BB chown -R $GB.$GB $DATA/com.ceco.gm2.gravitybox
$BB chown -R $YA.$YA $DATA/ma.wanam.youtubeadaway
$BB chown -R $VP.$VP $DATA/com.vipercn.viper4android_v2
else
sleep 3
$BB chown -R $XP.$XP $DATA/de.robv.android.xposed.installer
$BB chown -R $GB.$GB $DATA/com.ceco.gm2.gravitybox
$BB chown -R $YA.$YA $DATA/ma.wanam.youtubeadaway
$BB chown -R $VP.$VP $DATA/com.vipercn.viper4android_v2
fi

mount -o remount,ro /system