diff --git a/releasetools/copy_variant_blobs.sh b/releasetools/copy_variant_blobs.sh
new file mode 100755
index 0000000..20e411c
--- /dev/null
+++ b/releasetools/copy_variant_blobs.sh
@@ -0,0 +1,66 @@
+#!/sbin/sh
+#
+# Copyright (C) 2017 The LineageOS Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+# Detect variant and copy its specific-blobs
+BOOTLOADER=`getprop ro.bootloader`
+
+case $BOOTLOADER in
+  G530W*)      VARIANT="can" ;;
+  G530T1*)           VARIANT="mtr" ;;
+  G530T*)           VARIANT="tmo" ;;
+  G530P*)           VARIANT="spr" ;;
+  *)           VARIANT="unknown" ;;
+esac
+
+echo "Device variant is $VARIANT"
+
+# exit if the device is unknown
+if [ $VARIANT == "unknown" ]; then
+	exit 1
+fi
+
+BLOBBASE=/system/blobs/$VARIANT
+
+DEVICE="gprimelte${VARIANT}"
+
+if [ -d $BLOBBASE ]; then
+
+	cd $BLOBBASE
+
+	# copy all the blobs
+	for FILE in `find . -type f` ; do
+		mkdir -p `dirname /system/$FILE`
+		echo "Copying $FILE to /system/$FILE ..."
+		cp $FILE /system/$FILE
+	done
+
+	# set permissions on binary files
+	for FILE in bin/* ; do
+		echo "Setting /system/$FILE executable ..."
+		chmod 755 /system/$FILE
+	done
+fi
+
+# update the device name in the prop
+echo "Updating device variant name ..."
+sed -i s/gprimelte/${DEVICE}/g /system/build.prop
+
+# remove the device blobs
+echo "Cleaning up ..."
+rm -rf /system/blobs
+
+exit 0
diff --git a/releasetools/releasetools.py b/releasetools/releasetools.py
index 3d008ca..2e91c16 100755
--- a/releasetools/releasetools.py
+++ b/releasetools/releasetools.py
@@ -15,39 +15,17 @@
 
 import common
 import re
+import os
 
 """Custom OTA commands for gprimelte devices"""
 
 def FullOTA_InstallEnd(info):
 
     info.script.Print("Mounting /system...")
-    info.script.AppendExtra('ifelse(is_mounted("/system"), ui_print("/system is mounted."), run_program("/sbin/mount", "/system"));')
-
+    info.script.Mount("/system")
     info.script.Print("Detecting device variant ...")
-
-    # SM-G530W
-    info.script.AppendExtra('ifelse(is_substring("G530W", getprop("ro.bootloader")), ui_print("Device is SM-G530W. Updating build.prop ..."));')
-    info.script.AppendExtra('ifelse(is_substring("G530W", getprop("ro.bootloader")), run_program("/sbin/sed", "-i", "s/gprimelte/gprimeltecan/g", "/system/build.prop"));')
-
-    # SM-G530T1
-    info.script.AppendExtra('ifelse(is_substring("G530T1", getprop("ro.bootloader")), ui_print("Device is SM-G530T1. Updating build.prop ..."));')
-    info.script.AppendExtra('ifelse(is_substring("G530T1", getprop("ro.bootloader")), run_program("/sbin/sed", "-i", "s/gprimelte/gprimeltemtr/g", "/system/build.prop"));')
-    info.script.AppendExtra('ifelse(is_substring("G530T1", getprop("ro.bootloader")), ui_print("Copying files ..."));')
-    info.script.AppendExtra('ifelse(is_substring("G530T1", getprop("ro.bootloader")), run_program("/sbin/cp", "-dpR", "/system/mtr/*", "/system/"));')
-
-    # SM-G530T
-    info.script.AppendExtra('ifelse(is_substring("G530TU", getprop("ro.bootloader")), ui_print("Device is SM-G530T. Updating build.prop ..."));')
-    info.script.AppendExtra('ifelse(is_substring("G530TU", getprop("ro.bootloader")), run_program("/sbin/sed", "-i", "s/gprimelte/gprimeltetmo/g", "/system/build.prop"));')
-    info.script.AppendExtra('ifelse(is_substring("G530TU", getprop("ro.bootloader")), ui_print("Copying files ..."));')
-    info.script.AppendExtra('ifelse(is_substring("G530TU", getprop("ro.bootloader")), run_program("/sbin/cp", "-dpR", "/system/tmo/*", "/system/"));')
-
-    info.script.AppendExtra('ifelse(is_substring("G530TT", getprop("ro.bootloader")), ui_print("Device is SM-G530T. Updating build.prop ..."));')
-    info.script.AppendExtra('ifelse(is_substring("G530TT", getprop("ro.bootloader")), run_program("/sbin/sed", "-i", "s/gprimelte/gprimeltetmo/g", "/system/build.prop"));')
-    info.script.AppendExtra('ifelse(is_substring("G530TT", getprop("ro.bootloader")), ui_print("Copying files ..."));')
-    info.script.AppendExtra('ifelse(is_substring("G530TT", getprop("ro.bootloader")), run_program("/sbin/cp", "-dpR", "/system/tmo/*", "/system/"));')
-
-    info.script.AppendExtra('delete_recursive("/system/tmo/");')
-    info.script.AppendExtra('delete_recursive("/system/mtr/");')
+    info.script.AppendExtra('assert(run_program("/tmp/install/bin/copy_variant_blobs.sh") == 0);')
+    info.script.Unmount("/system")
 
 def FullOTA_PostValidate(info):
     # run e2fsck
