diff --git a/config/common.mk b/config/common.mk
index 539fefd..3fc71a9 100644
--- a/config/common.mk
+++ b/config/common.mk
@@ -118,6 +118,9 @@
 PRODUCT_ENFORCE_RRO_EXCLUDED_OVERLAYS += vendor/bliss/overlay
 DEVICE_PACKAGE_OVERLAYS += vendor/bliss/overlay/common
 
+# Squisher Location
+SQUISHER_SCRIPT := vendor/bliss/tools/squisher
+
 # Bliss Versioning System
 -include vendor/bliss/config/versions.mk
 
diff --git a/tools/colors b/tools/colors
new file mode 100644
index 0000000..6bfa58f
--- /dev/null
+++ b/tools/colors
@@ -0,0 +1,11 @@
+#!/bin/bash
+
+if [ ! "$BUILD_WITH_COLORS" = "0" ]; then
+    CL_RED="\033[31m"
+    CL_GRN="\033[32m"
+    CL_YLW="\033[33m"
+    CL_BLU="\033[34m"
+    CL_MAG="\033[35m"
+    CL_CYN="\033[36m"
+    CL_RST="\033[0m"
+fi
diff --git a/tools/crusher b/tools/crusher
new file mode 100755
index 0000000..1454def
--- /dev/null
+++ b/tools/crusher
@@ -0,0 +1,147 @@
+#!/bin/sh
+#
+# Super-mega crusher of doom
+# Shrinks apks by running pngquant or pngcrush or optipng or pngout on png images
+#
+# Point APKCERTS at the full path to a generated apkcerts.txt file, such as:
+# /home/shade/dev/sources/android-cm-eclair/out/target/product/dream_sapphire/obj/PACKAGING/target_files_intermediates/cyanogen_dream_sapphire-target_files-eng.shade/META/apkcerts.txt
+#
+# cyanogen - shade@chemlab.org
+# ChrisSoyars - me@ctso.me
+# Nougat fixes: Joe Maples - frap129@gmail.com
+
+set -e
+QUIET=1
+BASE=`pwd`
+TMPDIR=/tmp/crusher-$$
+
+. $ANDROID_BUILD_TOP/vendor/bliss/tools/colors
+
+if [ "$APKCERTS" = "" ];
+then
+    if [ "$TARGET_BUILD_VARIANT" = "userdebug" ]; then
+       TARGET_BUILD_VARIANT="eng"
+    elif [ "$TARGET_BUILD_VARIANT" = "user" ]; then
+       TARGET_BUILD_VARIANT="eng"
+    fi
+
+    APKCERTS=$OUT/obj/PACKAGING/target_files_intermediates/$TARGET_PRODUCT-target_files-$TARGET_BUILD_VARIANT.$USER/META/apkcerts.txt
+    if [ ! -f "$APKCERTS" ];
+    then
+        echo $CL_RED"Set APKCERTS to the path to your apkcerts.txt file"$CL_RST
+        exit 1;
+    fi
+fi
+
+if [ ! -f "$APKCERTS" ];
+then
+    echo $CL_RED"Invalid path to apkcerts.txt, set APKCERTS to the correct path."$CL_RST
+fi
+
+if [ "$(which pngquant)" != "" ];
+then
+    if [ "$(which optipng)" != "" ];
+    then
+        OPTSTRING='Quantizing and optimizing'
+        optimize_png () {
+            pngquant --speed 1 --force --ext .png $1 1> /dev/null 2> /dev/null;
+            optipng -o7 $1 1> /dev/null 2> /dev/null;
+        }
+    else
+        OPTSTRING='Quantizing'
+        optimize_png () {
+            pngquant --speed 1 --force --ext .png $1 1> /dev/null 2> /dev/null
+        }
+    fi
+else
+    if [ "$(which optipng)" != "" ];
+    then
+        OPTSTRING='Optimizing'
+        optimize_png () {
+            optipng -o7 $1 1> /dev/null 2> /dev/null;
+        }
+    else
+        echo $CL_RED"Please install pngquant or optipng (or both, for improved crushing)"$CL_RST
+        exit 1;
+    fi
+fi
+
+if [ "`which aapt`" = "" ];
+then
+    echo $CL_RED"Please ensure aapt is in your \$PATH"$CL_RST
+    exit 1;
+fi
+
+if [ "`which zipalign`" = "" ];
+then
+    echo $CL_RED"Please ensure zipalign is in your \$PATH"$CL_RST
+    exit 1;
+fi
+
+if [ -e "$1" ];
+then
+    NAME=`basename $1`;
+    echo $CL_CYN$OPTSTRING $CL_YLW"$NAME..."$CL_RST;
+
+    if [ "$2" != "" ];
+    then
+        CERT=build/target/product/security/$2.x509.pem
+        KEY=build/target/product/security/$2.pk8
+        if [ ! -f "$ANDROID_BUILD_TOP/$CERT" ];
+        then
+            echo $CL_RED"$CERT does not exist!";$CL_RST
+            exit 1;
+        fi
+    else
+        APKINFO=`grep "name=\"$NAME\"" $APKCERTS`;
+        [ $QUIET ] || echo "APKINFO: $APKINFO";
+        if [ "$APKINFO" = "" ];
+        then
+            echo $CL_RED"No apk info for $NAME";$CL_RST
+            exit 1;
+        fi
+        CERT=`echo $APKINFO | awk {'print $2'} | cut -f 2 -d "=" | tr -d "\""`;
+        KEY=`echo $APKINFO | awk {'print $3'} | cut -f 2 -d "=" | tr -d "\""`;
+        if [ "$CERT" = "" ];
+        then
+            echo -e $CL_RED"Unable to find certificate for $NAME"$CL_RST
+            exit 1;
+        fi
+        if [ "$CERT" = "PRESIGNED" ];
+        then
+            echo $CL_GRN"$NAME is presigned, skipping"$CL_RST
+            exit 1;
+        fi
+    fi
+
+    [ $QUIET ] || echo $CL_YLW"Certificate:"$CL_RST" $CERT";
+
+    [ -d $TMPDIR/$NAME ] && rm -rf $TMPDIR/$NAME
+    mkdir -p $TMPDIR/$NAME
+    trap "rm -rf $TMPDIR; exit" INT TERM EXIT
+    cd $TMPDIR/$NAME
+    unzip -q $BASE/$1
+    for x in `find . -name "*.png" | grep -v "\.9.png$" | tr "\n" " "`
+    do
+        [ $QUIET ] || echo $CL_GRN"Crushing $x"$CL_RST
+        optimize_png $x
+    done
+    cp $BASE/$1 $BASE/$1.old
+
+    [ $QUIET ] || echo $CL_GRN"Repacking apk.."$CL_RST
+    aapt p -0 .dat -0 .dict -0 .arsc -F $NAME .
+
+    [ $QUIET ] || echo $CL_YLW"Resigning with cert: `echo $CERT`"$CL_RST
+
+    [ $QUIET ] || echo java -Djava.library.path=$SIGNAPK_JNI_LIBRARY_PATH -jar $ANDROID_HOST_OUT/framework/signapk.jar $ANDROID_BUILD_TOP/$CERT $ANDROID_BUILD_TOP/$KEY $NAME signed_$NAME
+    java -Djava.library.path=$SIGNAPK_JNI_LIBRARY_PATH -jar $ANDROID_HOST_OUT/framework/signapk.jar $ANDROID_BUILD_TOP/$CERT $ANDROID_BUILD_TOP/$KEY $NAME signed_$NAME 
+    [ $QUIET ] || echo $CL_GRN"Zipalign.."$CL_RST
+    zipalign -f 4 signed_$NAME $BASE/$1
+    if [ ! $QUIET ]; then
+        ls -l $BASE/$1.old
+        ls -l $BASE/$1
+    fi
+    rm $BASE/$1.old
+else
+    echo "Usage: $0 [apk file]"
+fi
diff --git a/tools/squisher b/tools/squisher
new file mode 100755
index 0000000..ffae32e
--- /dev/null
+++ b/tools/squisher
@@ -0,0 +1,34 @@
+#!/bin/bash
+#
+# Squish a Bliss otapackage for distribution
+# BlissRoms
+
+. $ANDROID_BUILD_TOP/vendor/bliss/tools/colors
+
+OUT_TARGET_HOST=`uname -s`
+if [ x"$OUT_TARGET_HOST" = x"Linux" ]
+then
+   OUT_TARGET_HOST=linux-x86
+   XARGS="xargs --max-args=1 --max-procs `grep 'processor' /proc/cpuinfo|wc -l`"
+elif [ x"$OUT_TARGET_HOST" = x"Darwin" ]
+then
+   OUT_TARGET_HOST=darwin-x86
+   XARGS="xargs -n 1 -P `sysctl hw.ncpu | awk '{print $2}'`"
+else
+   echo -e ${CL_RED}"ERROR: unknown/unsupported host OS!"${CL_RST}
+   exit 1
+fi
+
+if [ -z "$OUT" -o ! -d "$OUT" ]; then
+	echo -e ${CL_RED}"ERROR: $0 only works with a full build environment. $OUT should exist."${CL_RST}
+	exit 1
+fi
+
+CRUSHER=$ANDROID_BUILD_TOP/vendor/bliss/tools/crusher
+QUIET=-q
+DELETE_BINS="applypatch applypatch_static check_prereq recovery updater"
+
+# Optimize PNG resources in APKs
+( cd $OUT/system; find framework/ app/ priv-app/ -name \*.apk -print | $XARGS $CRUSHER; )
+
+exit 0
