Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(157)

Unified Diff: bin/cros_tag_image.sh

Issue 3421040: Add a utility to tag/stamp image (deprecated) (Closed) Base URL: ssh://git@gitrw.chromium.org:9222/crosutils.git
Patch Set: Created 10 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: bin/cros_tag_image.sh
diff --git a/bin/cros_tag_image.sh b/bin/cros_tag_image.sh
new file mode 100755
index 0000000000000000000000000000000000000000..c23bb23c22b83e1d58cc7a2db7cf2f89f497feaa
--- /dev/null
+++ b/bin/cros_tag_image.sh
@@ -0,0 +1,118 @@
+#!/bin/bash
+
+# Copyright (c) 2010 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.
+
+# Script to manipulate the tag files in the output of build_image
+
+# Load common constants. This should be the first executable line.
+# The path to common.sh should be relative to your script's location.
+. "$(dirname "$0")/../common.sh"
+. "$(dirname "$0")/../chromeos-common.sh" # for partoffset and partsize
+
+DEFINE_string from "chromiumos_image.bin" \
+ "Input file name of Chrome OS image to tag/stamp."
+DEFINE_boolean enable_update_firmware ${FLAGS_FALSE} \
+ "Tag to force updating firmware"
+DEFINE_boolean disable_update_firmware ${FLAGS_FALSE} \
+ "Remove firmware update tag"
+DEFINE_boolean enable_dev_mode ${FLAGS_FALSE} \
+ "Tag to enable developer mode"
+DEFINE_boolean disable_dev_mode ${FLAGS_FALSE} \
+ "Remove developer mode tag"
+
+# Parse command line
+FLAGS "$@" || exit 1
+eval set -- "${FLAGS_ARGV}"
+
+# Abort on error
+set -e
+
+if [ -z $FLAGS_from ] || [ ! -f $FLAGS_from ] ; then
+ echo "Error: invalid flag --from"
+ exit 1
+fi
+
+# Global variable to track if image is modified.
+g_modified=${FLAGS_FALSE}
+
+function process_tag() {
+ # syntax: process_tag name file_path enable disable
+ local tag_status_text
+
+ if [ $3 = ${FLAGS_TRUE} -a $4 = ${FLAGS_TRUE} ]; then
+ echo "Error: you cannot request to enable and disable tag '$1' at one time"
+ exit 1
+ fi
+
+ if [ -f "$2" ]; then
+ tag_status_text="Enabled"
+ if [ "$4" = "${FLAGS_TRUE}" ]; then
+ # disable the tag
+ sudo rm "$2"
+ g_modified=${FLAGS_TRUE}
+ tag_status_text="$tag_status_text => disabled"
+ fi
+ else
+ tag_status_text="disabled"
+ if [ "$3" = "${FLAGS_TRUE}" ]; then
+ # enable the tag
+ sudo touch "$2"
+ g_modified=${FLAGS_TRUE}
+ tag_status_text="$tag_status_text => Enabled"
+ fi
+ fi
+
+ # report tag status
+ echo "$1: $tag_status_text"
+}
+
+IMAGE=$( readlink -f ${FLAGS_from} )
+IMAGE_DIR=$( dirname ${IMAGE} )
+
+if [[ -z "${IMAGE}" || ! -f ${IMAGE} ]]; then
+ echo "Missing required argument: --from (image to update)"
+ usage
+ exit 1
+fi
+
+pushd ${IMAGE_DIR} >/dev/null
+if ! [[ -x ./unpack_partitions.sh && -x ./pack_partitions.sh ]]; then
+ echo "Could not find image manipulation scripts (*pack_partitions.sh)."
+ popd >/dev/null
+ exit 1
+fi
+
+mkdir -p ./rootfs
+mkdir -p ./stateful_part
+INSTALL_ROOT=./rootfs
+
+# we don't have tags in stateful partition yet, so comment it it now.
+
+./unpack_partitions.sh ${IMAGE} 2>/dev/null
+#sudo mount -o loop part_1 stateful_part
+sudo mount -o loop part_3 rootfs
+#sudo mount --bind stateful_part/dev_image rootfs/usr/local
+#sudo mount --bind stateful_part/var rootfs/var
+
+# modify/list tags here
+process_tag "Update Firmware" \
+ ${INSTALL_ROOT}/root/.force_update_firmware \
+ ${FLAGS_enable_update_firmware} \
+ ${FLAGS_disable_update_firmware}
+process_tag "Developer Mode" \
+ ${INSTALL_ROOT}/root/.dev_mode \
+ ${FLAGS_enable_dev_mode} \
+ ${FLAGS_disable_dev_mode}
+
+#sudo umount rootfs/var
+#sudo umount rootfs/usr/local
+sudo umount rootfs
+#sudo umount stateful_part
+
+if [ $g_modified = ${FLAGS_TRUE} ]; then
+ ./pack_partitions.sh ${IMAGE} 2>/dev/null
+ echo "Image is modified. Please remember to resign your image."
+fi
+popd >/dev/null
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698