#!/system/bin/bash
# Darktremor A2SD Zipalign version 2.7
# By: Robert Travis Kirton
# Date: June 21, 2010
# Script based on the ZipAlign script by Wes Garner

/system/bin/busybox.a2sd echo "[ ] Starting A2SD ZipAlign.";

/system/bin/busybox.a2sd echo "[ ] Zipaligning all .apk files in /data/app";
for apk in /data/app/*.apk ; do
  /system/bin/zipalign -c 4 $apk;
  if [ $? == 1 ];
    then
      /system/bin/busybox.a2sd echo "[ ] ZipAligning $(basename $apk)";
      /system/bin/zipalign -f 4 $apk /cache/$(basename $apk);
      if [ -e /cache/$(basename $apk) ];
        then
          /system/bin/busybox.a2sd cp -fp /cache/$(basename $apk) $apk;
          /system/bin/busybox.a2sd rm /cache/$(basename $apk);
          /system/bin/busybox.a2sd echo "[*] ZipAligning $(basename $apk) complete.";
        else
          /system/bin/busybox.a2sd echo "[X] ZipAligning $(basename $apk) failed.";
      fi;
    else
      /system/bin/busybox.a2sd echo "[!] ZipAlign already completed on $apk";
  fi;
done;

/system/bin/busybox.a2sd echo "[ ] Zipaligning all .apk files in /data/app-private";
for apk in /data/app-private/*.apk ; do
  /system/bin/zipalign -c 4 $apk;
  if [ $? == 1 ];
    then
      /system/bin/busybox.a2sd echo "[ ] ZipAligning $(basename $apk)";
      /system/bin/zipalign -f 4 $apk /cache/$(basename $apk);
      if [ -e /cache/$(basename $apk) ];
        then
          /system/bin/busybox.a2sd cp -fp /cache/$(basename $apk) $apk;
          /system/bin/busybox.a2sd rm /cache/$(basename $apk);
          /system/bin/busybox.a2sd echo "[*] ZipAligning $(basename $apk) complete.";
        else
          /system/bin/busybox.a2sd echo "[X] ZipAligning $(basename $apk) failed.";
      fi;
    else
      /system/bin/busybox.a2sd echo "[!] ZipAlign already completed on $apk";
  fi;
done;

/system/bin/busybox.a2sd echo "[*] ZipAlign completed.";
/system/bin/busybox.a2sd echo "[ ] Remounting /system to Read-Only";
/system/bin/busybox.a2sd mount -o remount,ro /system;
