[Android Software Development] Deltadroid:
KitKat Gapps Update

I have updated the kitkat gapps package with the following changes:

1) Add logic to install correct version of Google Play Services depending on the device's specific DPI settings in build.prop.

2) Update Google Play Services to 6.6.03

3) Update Cloud Print to 1.11b

4) Remove old GenieWidget and replace with GenieWidget2 (v.2.2)

5) Update Gmail to 5.0.1

6) Update Google Search to 4.1.24.1672412.arm

7) Update Talkback to 3.6.0

8) Update Hangouts to 2.5.81636427

9) Update Google Text to Speech to 3.3.13.1635260.arm

10) Remove unused system libraries

11) Update Google Play to 5.1.11

12) Clean up installation code

Kitkat Gapps:

Minimal gapps package for 4.4.4: gapps-kk-20150120-1-minimal-signed.zip

Standard gapps package for 4.4.4: gapps-kk-20150120-1-signed.zip

diff -ru gapps-kk-20140620-3-signed/install-optional.sh gapps-kk-20150120-1-signed/install-optional.sh
--- gapps-kk-20140620-3-signed/install-optional.sh	2015-01-11 00:42:14.000000000 +0100
+++ gapps-kk-20150120-1-signed/install-optional.sh	2015-01-21 02:10:12.000000000 +0100
@@ -19,11 +19,32 @@
if good_ffc_device && [ -e /system/etc/permissions/android.hardware.camera.front.xml ]; then
echo "Installing face detection support"
cp -a /tmp/face/* /system/
- chmod 755 /system/addon.d/71-gapps-faceunlock.sh
-elif [ -d /system/vendor/pittpatt/ ]; then
+elif [ -d /system/vendor/pittpatt/ ]; then
rm -rf /system/vendor/pittpatt/
- rm -f /system/app/FaceLock.apk
- rm -f /system/lib/libfacelock_jni.so
- rm -f /system/addon.d/71-gapps-faceunlock.sh
+ rm -f /system/app/FaceLock.apk
+ rm -f /system/lib/libfacelock_jni.so
+ rm -f /system/lib/libfilterpack_facedetect.so
+ rm -f /system/addon.d/71-gapps-faceunlock.sh
fi
rm -rf /tmp/face
+
+LCD=$(grep ro.sf.lcd_density /system/build.prop | cut -d "=" -f 2);
+
+if [ $LCD == 160 ]; then
+ echo "LCD 160 detected."
+ cp -f /tmp/gms/2/priv-app/PrebuiltGmsCore.apk /system/priv-app/
+elif [ $LCD == 240 ]; then
+ echo "LCD 240 detected."
+ cp -f /tmp/gms/4/priv-app/PrebuiltGmsCore.apk /system/priv-app/
+elif [ $LCD == 320 ]; then
+ echo "LCD 320 detected."
+ cp -f /tmp/gms/6/priv-app/PrebuiltGmsCore.apk /system/priv-app/
+elif [ $LCD == 480 ]; then
+ echo "LCD 480 detected."
+ cp -f /tmp/gms/8/priv-app/PrebuiltGmsCore.apk /system/priv-app/
+else
+ echo "LCD value not found. Installing default."
+ cp -f /tmp/gms/0/priv-app/PrebuiltGmsCore.apk /system/priv-app/
+fi
+rm -rf /tmp/gms
+
diff -ru gapps-kk-20140620-3-signed/META-INF/com/google/android/updater-script gapps-kk-20150120-1-signed/META-INF/com/google/android/updater-script
--- gapps-kk-20140620-3-signed/META-INF/com/google/android/updater-script	2015-01-11 00:41:40.000000000 +0100
+++ gapps-kk-20150120-1-signed/META-INF/com/google/android/updater-script	2015-01-21 02:09:18.000000000 +0100
@@ -1,19 +1,23 @@
ui_print("***********************************************");
-ui_print(" Google Apps for Android 4.4.4");
+ui_print(" Google Apps for Android 4.4.4 ");
ui_print("***********************************************");

-ui_print("Installing files...");
+ui_print("Mounting system.");
run_program("/sbin/busybox", "mount", "/system");
show_progress(1, 15);
+
+ui_print("Cleaning System.");
delete("/system/app/Provision.apk","/system/app/QuickSearchBox.apk","/system/app/SetupWizard.apk","/system/app/Velvet.apk","/system/app/Vending.apk","/system/app/BrowserProviderProxy.apk","/system/app/PartnerBookmarksProvider.apk");
+
+ui_print("Installing files.");
package_extract_dir("system", "/system");
-set_perm(0, 0, 0755, "/system/addon.d/70-gapps.sh");
package_extract_dir("optional", "/tmp");
package_extract_file("install-optional.sh", "/tmp/install-optional.sh");
set_perm(0, 0, 0777, "/tmp/install-optional.sh");
run_program("/tmp/install-optional.sh", "");
show_progress(1, 15);
-ui_print("Cleaning up and setting metadata...");
+
+ui_print("Setting metadata.");
set_metadata_recursive("/system/addon.d", "uid", 0, "gid", 0, "dmode", 0755, "fmode", 0755, "capabilities", 0x0, "selabel", "u:object_r:system_file:s0");
set_metadata_recursive("/system/app", "uid", 0, "gid", 0, "dmode", 0755, "fmode", 0644, "capabilities", 0x0, "selabel", "u:object_r:system_file:s0");
set_metadata_recursive("/system/priv-app", "uid", 0, "gid", 0, "dmode", 0755, "fmode", 0644, "capabilities", 0x0, "selabel", "u:object_r:system_file:s0");
@@ -22,7 +26,11 @@
set_metadata("/system/etc/g.prop", "uid", 0, "gid", 0, "mode", 0644, "capabilities", 0x0, "selabel", "u:object_r:system_file:s0");
set_metadata_recursive("/system/framework", "uid", 0, "gid", 0, "dmode", 0755, "fmode", 0644, "capabilities", 0x0, "selabel", "u:object_r:system_file:s0");
set_metadata_recursive("/system/lib", "uid", 0, "gid", 0, "dmode", 0755, "fmode", 0644, "capabilities", 0x0, "selabel", "u:object_r:system_file:s0");
-set_metadata_recursive("/system/usr/srec/en-US", "uid", 0, "gid", 0, "dmode", 0755, "fmode", 0644, "capabilities", 0x0, "selabel", "u:object_r:system_file:s0");
+set_metadata_recursive("/system/usr/srec", "uid", 0, "gid", 0, "dmode", 0755, "fmode", 0644, "capabilities", 0x0, "selabel", "u:object_r:system_file:s0");
set_metadata_recursive("/system/vendor/pittpatt", "uid", 0, "gid", 0, "dmode", 0755, "fmode", 0644, "capabilities", 0x0, "selabel", "u:object_r:system_file:s0");
+
+ui_print("Unmounting system.");
run_program("/sbin/busybox", "umount", "/system");
-ui_print("Installation complete!");
+
+ui_print("Done.");
+
diff -ru gapps-kk-20140620-3-signed/optional/face/addon.d/71-gapps-faceunlock.sh gapps-kk-20150120-1-signed/optional/face/addon.d/71-gapps-faceunlock.sh
--- gapps-kk-20140620-3-signed/optional/face/addon.d/71-gapps-faceunlock.sh	2015-01-11 00:41:58.000000000 +0100
+++ gapps-kk-20150120-1-signed/optional/face/addon.d/71-gapps-faceunlock.sh	2015-01-21 02:09:42.000000000 +0100
@@ -12,6 +12,7 @@
cat <<EOF
app/FaceLock.apk
lib/libfacelock_jni.so
+lib/libfilterpack_facedetect.so
vendor/pittpatt/models/detection/multi_pose_face_landmark_detectors.7/left_eye-y0-yi45-p0-pi45-r0-ri20.lg_32.bin
vendor/pittpatt/models/detection/multi_pose_face_landmark_detectors.7/nose_base-y0-yi45-p0-pi45-r0-ri20.lg_32.bin
vendor/pittpatt/models/detection/multi_pose_face_landmark_detectors.7/right_eye-y0-yi45-p0-pi45-r0-ri20.lg_32-2.bin
Only in gapps-kk-20150120-1-signed/optional/face/lib: libfilterpack_facedetect.so
Only in gapps-kk-20150120-1-signed/optional: gms
diff -ru gapps-kk-20140620-3-signed/system/addon.d/70-gapps.sh gapps-kk-20150120-1-signed/system/addon.d/70-gapps.sh
--- gapps-kk-20140620-3-signed/system/addon.d/70-gapps.sh	2015-01-11 00:42:06.000000000 +0100
+++ gapps-kk-20150120-1-signed/system/addon.d/70-gapps.sh	2015-01-21 02:10:02.000000000 +0100
@@ -8,7 +8,7 @@
cat <<EOF
app/ChromeBookmarksSyncAdapter.apk
app/CloudPrint2.apk
-app/GenieWidget.apk
+app/GenieWidget2.apk
app/Gmail2.apk
app/GoogleCalendarSyncAdapter.apk
app/GoogleContactsSyncAdapter.apk
@@ -29,27 +29,25 @@
framework/com.google.android.media.effects.jar
framework/com.google.widevine.software.drm.jar
lib/libAppDataSearch.so
+lib/libconscrypt_gmscore_jni.so
lib/libcrashreporter.so
-lib/libfilterframework_jni.so
-lib/libfilterpack_facedetect.so
+lib/libcronet.so
lib/libframesequence.so
-lib/libfrsdk.so
lib/libgames_rtmp_jni.so
lib/libgcastv2_base.so
lib/libgcastv2_support.so
+lib/libgmscore.so
+lib/libgms-ocrclient.so
lib/libgoogle_hotword_jni.so
lib/libgoogle_recognizer_jni_l.so
lib/libjgcastservice.so
lib/libjni_unbundled_latinimegoogle.so
-lib/libmoviemaker-jni.so
-lib/libnetjni.so
-lib/libpatts_engine_jni_api_ub.210030103.so
-lib/libphotoeditor_native.so
-lib/librsjni.so
-lib/libspeexwrapper.so
+lib/libpatts_engine_jni_api_ub.210303130.so
+lib/libspeexwrapper_ub.210303130.so
+lib/libsslwrapper_jni.so
lib/libvcdecoder_jni.so
lib/libvideochat_jni.so
-lib/libwebp_android.so
+lib/libWhisper.so
priv-app/GoogleBackupTransport.apk
priv-app/GoogleFeedback.apk
priv-app/GoogleLoginService.apk
Binary files gapps-kk-20140620-3-signed/system/app/CloudPrint2.apk and gapps-kk-20150120-1-signed/system/app/CloudPrint2.apk differ
Only in gapps-kk-20150120-1-signed/system/app: GenieWidget2.apk
Only in gapps-kk-20140620-3-signed/system/app: GenieWidget.apk
Binary files gapps-kk-20140620-3-signed/system/app/Gmail2.apk and gapps-kk-20150120-1-signed/system/app/Gmail2.apk differ
Binary files gapps-kk-20140620-3-signed/system/app/GoogleCalendarSyncAdapter.apk and gapps-kk-20150120-1-signed/system/app/GoogleCalendarSyncAdapter.apk differ
Binary files gapps-kk-20140620-3-signed/system/app/GoogleTTS.apk and gapps-kk-20150120-1-signed/system/app/GoogleTTS.apk differ
Binary files gapps-kk-20140620-3-signed/system/app/Hangouts.apk and gapps-kk-20150120-1-signed/system/app/Hangouts.apk differ
Binary files gapps-kk-20140620-3-signed/system/lib/libAppDataSearch.so and gapps-kk-20150120-1-signed/system/lib/libAppDataSearch.so differ
Only in gapps-kk-20150120-1-signed/system/lib: libconscrypt_gmscore_jni.so
Binary files gapps-kk-20140620-3-signed/system/lib/libcrashreporter.so and gapps-kk-20150120-1-signed/system/lib/libcrashreporter.so differ
Only in gapps-kk-20150120-1-signed/system/lib: libcronet.so
Only in gapps-kk-20140620-3-signed/system/lib: libfilterframework_jni.so
Only in gapps-kk-20140620-3-signed/system/lib: libfilterpack_facedetect.so
Binary files gapps-kk-20140620-3-signed/system/lib/libframesequence.so and gapps-kk-20150120-1-signed/system/lib/libframesequence.so differ
Only in gapps-kk-20140620-3-signed/system/lib: libfrsdk.so
Binary files gapps-kk-20140620-3-signed/system/lib/libgames_rtmp_jni.so and gapps-kk-20150120-1-signed/system/lib/libgames_rtmp_jni.so differ
Binary files gapps-kk-20140620-3-signed/system/lib/libgcastv2_base.so and gapps-kk-20150120-1-signed/system/lib/libgcastv2_base.so differ
Binary files gapps-kk-20140620-3-signed/system/lib/libgcastv2_support.so and gapps-kk-20150120-1-signed/system/lib/libgcastv2_support.so differ
Only in gapps-kk-20150120-1-signed/system/lib: libgmscore.so
Only in gapps-kk-20150120-1-signed/system/lib: libgms-ocrclient.so
Binary files gapps-kk-20140620-3-signed/system/lib/libgoogle_hotword_jni.so and gapps-kk-20150120-1-signed/system/lib/libgoogle_hotword_jni.so differ
Binary files gapps-kk-20140620-3-signed/system/lib/libjgcastservice.so and gapps-kk-20150120-1-signed/system/lib/libjgcastservice.so differ
Only in gapps-kk-20140620-3-signed/system/lib: libmoviemaker-jni.so
Only in gapps-kk-20140620-3-signed/system/lib: libnetjni.so
Only in gapps-kk-20140620-3-signed/system/lib: libpatts_engine_jni_api_ub.210030103.so
Only in gapps-kk-20150120-1-signed/system/lib: libpatts_engine_jni_api_ub.210303130.so
Only in gapps-kk-20140620-3-signed/system/lib: libphotoeditor_native.so
Only in gapps-kk-20140620-3-signed/system/lib: librsjni.so
Only in gapps-kk-20140620-3-signed/system/lib: libspeexwrapper.so
Only in gapps-kk-20150120-1-signed/system/lib: libspeexwrapper_ub.210303130.so
Only in gapps-kk-20150120-1-signed/system/lib: libsslwrapper_jni.so
Binary files gapps-kk-20140620-3-signed/system/lib/libvcdecoder_jni.so and gapps-kk-20150120-1-signed/system/lib/libvcdecoder_jni.so differ
Binary files gapps-kk-20140620-3-signed/system/lib/libvideochat_jni.so and gapps-kk-20150120-1-signed/system/lib/libvideochat_jni.so differ
Only in gapps-kk-20140620-3-signed/system/lib: libwebp_android.so
Only in gapps-kk-20150120-1-signed/system/lib: libWhisper.so
Binary files gapps-kk-20140620-3-signed/system/priv-app/Phonesky.apk and gapps-kk-20150120-1-signed/system/priv-app/Phonesky.apk differ
Only in gapps-kk-20140620-3-signed/system/priv-app: PrebuiltGmsCore.apk
Binary files gapps-kk-20140620-3-signed/system/priv-app/Talkback.apk and gapps-kk-20150120-1-signed/system/priv-app/Talkback.apk differ
Binary files gapps-kk-20140620-3-signed/system/priv-app/Velvet.apk and gapps-kk-20150120-1-signed/system/priv-app/Velvet.apk differ