CHERRY-PICK:Banjo: use battery cutoff at-shutdown for factory wipe

Use 'ectool batterycutoff at-shutdown' to gracefully cutoff the
battery.

This CL also adds two more wiping options: shutdown and reboot.

BUG=chrome-os-partner:37772
TEST=emerge-banjo chromeos-bsp-banjo

Original:Change-Id: I5fb4ded0ba9115e2b5ec212972ffcdf85d6610b0
Signed-off-by: Jeremy P Lin <jeremy.p.lin@intel.com>
Reviewed-on: https://chromium-review.googlesource.com/257184
Reviewed-by: Bowgo Tsai <bowgotsai@chromium.org>
(cherry picked from commit 28b6ed01bcb6875841f5fe4c93631aa316888318)

Change-Id: I70f2cff921915880c0b7c758c3dde4617f76a45d
Reviewed-on: https://chromium-review.googlesource.com/258620
Commit-Queue: Jeremy P Lin <jeremy.p.lin@intel.com>
Tested-by: Jeremy P Lin <jeremy.p.lin@intel.com>
Reviewed-by: Bowgo Tsai <bowgotsai@chromium.org>
diff --git a/overlay-banjo/chromeos-base/chromeos-bsp-banjo/chromeos-bsp-banjo-0.0.1-r1.ebuild b/overlay-banjo/chromeos-base/chromeos-bsp-banjo/chromeos-bsp-banjo-0.0.1-r2.ebuild
similarity index 100%
rename from overlay-banjo/chromeos-base/chromeos-bsp-banjo/chromeos-bsp-banjo-0.0.1-r1.ebuild
rename to overlay-banjo/chromeos-base/chromeos-bsp-banjo/chromeos-bsp-banjo-0.0.1-r2.ebuild
diff --git a/overlay-banjo/chromeos-base/chromeos-bsp-banjo/chromeos-bsp-banjo-0.0.1.ebuild b/overlay-banjo/chromeos-base/chromeos-bsp-banjo/chromeos-bsp-banjo-0.0.1.ebuild
index d4d067b..35e8b23 100644
--- a/overlay-banjo/chromeos-base/chromeos-bsp-banjo/chromeos-bsp-banjo-0.0.1.ebuild
+++ b/overlay-banjo/chromeos-base/chromeos-bsp-banjo/chromeos-bsp-banjo-0.0.1.ebuild
@@ -28,16 +28,9 @@
 	insinto "/usr/share/power_manager/board_specific"
 	doins "${FILESDIR}"/powerd_prefs/*
 
-	# Battery cut-off
-	dosbin "${FILESDIR}/battery_cut_off.sh"
-	dosbin "${FILESDIR}/board_factory_wipe.sh"
-	dosbin "${FILESDIR}/board_factory_reset.sh"
-	dosbin "${FILESDIR}/board_charge_battery.sh"
+	# Wiping scripts
+	dosbin "${FILESDIR}"/sbin/*.sh
 
 	insinto "/usr/share/factory/images"
-	doins "${FILESDIR}/remove_ac.png"
-	doins "${FILESDIR}/cutting_off.png"
-	doins "${FILESDIR}/cutoff_failed.png"
-	doins "${FILESDIR}/charging.png"
-	doins "${FILESDIR}/connect_ac.png"
+	doins "${FILESDIR}"/images/*.png
 }
diff --git a/overlay-banjo/chromeos-base/chromeos-bsp-banjo/files/board_factory_wipe.sh b/overlay-banjo/chromeos-base/chromeos-bsp-banjo/files/board_factory_wipe.sh
deleted file mode 100644
index 735b652..0000000
--- a/overlay-banjo/chromeos-base/chromeos-bsp-banjo/files/board_factory_wipe.sh
+++ /dev/null
@@ -1,25 +0,0 @@
-#!/bin/sh -e
-#
-# Copyright 2015 The Chromium OS Authors. All rights reserved.
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
-#
-
-/usr/sbin/activate_date --clean
-# make sure the cached vpd log file has been removed so that the the next reboot
-# will re-generate it in /etc/init/vpd-log.conf.
-VPD_2_0="/var/log/vpd_2.0.txt"
-rm -f $VPD_2_0
-sync
-sleep 3
-
-# this script is called by clobber-state
-/usr/sbin/battery_cut_off.sh
-
-# Battery cut-off is failed if it returns with 1.
-if [ $? -eq 1 ]; then
-    echo "Battery cut-off is failed."
-fi
-exit 1
-
-# reboot after return to clobber-state(default)
diff --git a/overlay-banjo/chromeos-base/chromeos-bsp-banjo/files/charging.png b/overlay-banjo/chromeos-base/chromeos-bsp-banjo/files/images/charging.png
similarity index 100%
rename from overlay-banjo/chromeos-base/chromeos-bsp-banjo/files/charging.png
rename to overlay-banjo/chromeos-base/chromeos-bsp-banjo/files/images/charging.png
Binary files differ
diff --git a/overlay-banjo/chromeos-base/chromeos-bsp-banjo/files/connect_ac.png b/overlay-banjo/chromeos-base/chromeos-bsp-banjo/files/images/connect_ac.png
similarity index 100%
rename from overlay-banjo/chromeos-base/chromeos-bsp-banjo/files/connect_ac.png
rename to overlay-banjo/chromeos-base/chromeos-bsp-banjo/files/images/connect_ac.png
Binary files differ
diff --git a/overlay-banjo/chromeos-base/chromeos-bsp-banjo/files/cutoff_failed.png b/overlay-banjo/chromeos-base/chromeos-bsp-banjo/files/images/cutoff_failed.png
similarity index 100%
rename from overlay-banjo/chromeos-base/chromeos-bsp-banjo/files/cutoff_failed.png
rename to overlay-banjo/chromeos-base/chromeos-bsp-banjo/files/images/cutoff_failed.png
Binary files differ
diff --git a/overlay-banjo/chromeos-base/chromeos-bsp-banjo/files/cutting_off.png b/overlay-banjo/chromeos-base/chromeos-bsp-banjo/files/images/cutting_off.png
similarity index 100%
rename from overlay-banjo/chromeos-base/chromeos-bsp-banjo/files/cutting_off.png
rename to overlay-banjo/chromeos-base/chromeos-bsp-banjo/files/images/cutting_off.png
Binary files differ
diff --git a/overlay-banjo/chromeos-base/chromeos-bsp-banjo/files/remove_ac.png b/overlay-banjo/chromeos-base/chromeos-bsp-banjo/files/images/remove_ac.png
similarity index 100%
rename from overlay-banjo/chromeos-base/chromeos-bsp-banjo/files/remove_ac.png
rename to overlay-banjo/chromeos-base/chromeos-bsp-banjo/files/images/remove_ac.png
Binary files differ
diff --git a/overlay-banjo/chromeos-base/chromeos-bsp-banjo/files/battery_cut_off.sh b/overlay-banjo/chromeos-base/chromeos-bsp-banjo/files/sbin/battery_cut_off.sh
similarity index 96%
rename from overlay-banjo/chromeos-base/chromeos-bsp-banjo/files/battery_cut_off.sh
rename to overlay-banjo/chromeos-base/chromeos-bsp-banjo/files/sbin/battery_cut_off.sh
index 95945a4..1e2b6c3 100755
--- a/overlay-banjo/chromeos-base/chromeos-bsp-banjo/files/battery_cut_off.sh
+++ b/overlay-banjo/chromeos-base/chromeos-bsp-banjo/files/sbin/battery_cut_off.sh
@@ -32,7 +32,9 @@
   echo "==== Cutting off battery. Wait 10 seconds. ====" >"$TTY"
   echo "===============================================" >"$TTY"
 fi
-ectool batterycutoff
+
+ectool batterycutoff at-shutdown
+shutdown -h now
 sleep 15
 
 # Couldn't have reached here
diff --git a/overlay-banjo/chromeos-base/chromeos-bsp-banjo/files/board_charge_battery.sh b/overlay-banjo/chromeos-base/chromeos-bsp-banjo/files/sbin/board_charge_battery.sh
similarity index 100%
rename from overlay-banjo/chromeos-base/chromeos-bsp-banjo/files/board_charge_battery.sh
rename to overlay-banjo/chromeos-base/chromeos-bsp-banjo/files/sbin/board_charge_battery.sh
diff --git a/overlay-banjo/chromeos-base/chromeos-bsp-banjo/files/board_factory_reset.sh b/overlay-banjo/chromeos-base/chromeos-bsp-banjo/files/sbin/board_factory_reset.sh
similarity index 100%
rename from overlay-banjo/chromeos-base/chromeos-bsp-banjo/files/board_factory_reset.sh
rename to overlay-banjo/chromeos-base/chromeos-bsp-banjo/files/sbin/board_factory_reset.sh
diff --git a/overlay-banjo/chromeos-base/chromeos-bsp-banjo/files/sbin/board_factory_wipe.sh b/overlay-banjo/chromeos-base/chromeos-bsp-banjo/files/sbin/board_factory_wipe.sh
new file mode 100644
index 0000000..dbdd7ac
--- /dev/null
+++ b/overlay-banjo/chromeos-base/chromeos-bsp-banjo/files/sbin/board_factory_wipe.sh
@@ -0,0 +1,36 @@
+#!/bin/sh -e
+#
+# Copyright 2014 The Chromium OS Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+#
+
+/usr/sbin/activate_date --clean
+# make sure the cached vpd log file has been removed so that the the next reboot
+# will re-generate it in /etc/init/vpd-log.conf.
+VPD_2_0="/var/log/vpd_2.0.txt"
+rm -f $VPD_2_0
+sync
+sleep 3
+
+# this script is called by clobber-state
+for WIPE_OPTION in "$@"; do
+  if [ "$WIPE_OPTION" = "battery_cut_off" ]; then
+    # battery cut-off after factory wipe-out
+    /usr/sbin/battery_cut_off.sh
+  elif [ "$WIPE_OPTION" = "shutdown" ]; then
+    # shutdown after factory wipe-out
+    /sbin/shutdown -h now
+  elif [ "$WIPE_OPTION" = "reboot" ]; then
+    # reboot after factory wipe-out
+    /sbin/reboot
+  fi
+done
+
+# Board wiping is failed if it returns with 1.
+if [ $? -eq 1 ]; then
+    echo "Board wiping is failed."
+fi
+exit 1
+
+# reboot after return to clobber-state(default)