[Android Software/Hacking General [Developers Only]] osm0sis:
Did some testing on my proof-of-concept ROM GApps Auto-Integration init.d script from the other night and it had a few issues, so now here is the polished version!

This init.d script will integrate /data/app GApps into /system, complete with libs (unlike Titanium Backup), for KK and JB (for now). It can also be run on-demand, stand-alone, but you'll have to reboot to trigger the Dalvik-cache to optimize, cleanup, etc. and things could theoretically be unstable until then. This is of course not intended for Stock ROMs since it'll break OTA functionality.

Used as an init.d script it should process things early enough in the boot that afterwards Dalvik will immediately do the cleanup ("Android is upgrading..."), much like following an OTA. Of course, because it occurs during boot, when it does have processing to do, the boot could take significantly longer than normal, generally on the bootanimation.

A log from the process is created at /sdcard/gapps-integrator.log, containing the date, /data/app/ name, /system/app/ name (if there is one) and any issues with copying libs or APKs that occur, and will be updated on every boot. If you don't have the GApp installed to /system/app/ then there is no matched APK and it will not be integrated, so you still need an initial GApps installation. APKs that don't contain any libs (eg. Keep) will naturally cause an error/warning when there are no libs to copy, but this is nothing to worry about.

/system/etc/init.d/000gappsintegrator:

#!/system/bin/sh
# chmod -R 755 /system/etc/init.d
#
# ROM GApps Auto-Integration
# osm0sis @ xda-developers

gtmp=/data/local/tmp/gapp;
log=/sdcard/gapps-integrator.log;

test ! -f $log && echo -e "## GApps Auto-Integration Script Log\n" > $log;
echo `date` >> $log;

# find new unintegrated Google Apps APKs in /data
for i in $(ls /data/app/ | grep -E 'com.android|com.google.android'); do

# find equivalent /system APK name and only process if it exists
sysapk=`grep "updated-package name=\"$(echo $i | cut -d- -f1)" /data/system/packages.xml | cut -d\" -f4`;

echo "/data/app/$i $sysapk" >> $log;

if [ "$sysapk" ]; then

# extract and force copy libraries to /system
mkdir -p $gtmp;
unzip /data/app/$i -d $gtmp;
chmod 644 $gtmp/lib/arm*/*;
mount -o remount,rw /system;
cp -fp $gtmp/lib/arm*/* /system/lib/ 2>>$log;
rm -rf $gtmp;

# overwrite /system APK with new /data APK
cp -f /data/app/$i $sysapk 2>>$log;
chown root.root $sysapk;
chmod 644 $sysapk;
mount -o remount,ro /system;

fi;
done;

echo -e "---\n" >> $log;

For now this extracts the libs out of the APK and moves them to /system/lib/ regardless of architecture (beyond arm*), but this should be fine since Play Store downloaded them to your device in the first place. It also leaves the APKs untouched when copying them to /system/app/. This is because zip and zipalign don't come standard with busybox or in all ROMs, so a large /system partition or minimal GApps installation are a requirement for now. I might explore adding this as add-on functionality (if it detects those binaries) later, along with L and M support.

000gappsintegrator can be copied from the above, or is available in the OPs attached as a .txt file. busybox is likely required in your ROM, then simply download on your device, rename, move to /system/etc/init.d/ and chmod -R 755 /system/etc/init.d

Enjoy! :cowboy: