gprimelte: Use a shell script for variant stuff in recovery
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