summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGaurav Shah <gauravsh@chromium.org>2011-01-18 12:00:50 -0800
committerGaurav Shah <gauravsh@chromium.org>2011-01-18 12:00:50 -0800
commit605500b88cd99097d482ddcefee4ba04898781ae (patch)
treedd83f1d92255d1c391c0e158bae474e0b9ae17c6
parentf7bdfbbb98654c3b1911dd4f884f17160d5ff2d3 (diff)
downloadvboot-605500b88cd99097d482ddcefee4ba04898781ae.tar.gz
Split common.sh into bash-only and dash-only sections
Change-Id: I044331dc3558a4f7428b75fe43ef739498d65803 BUG=chromium-os:10836 TEST=scripts that use common.sh seem to work, would appreciate help in testing Chrome OS client scripts! Review URL: http://codereview.chromium.org/6294002
-rwxr-xr-xscripts/image_signing/common.sh292
-rwxr-xr-xscripts/image_signing/common_minimal.sh294
-rwxr-xr-xscripts/image_signing/make_dev_firmware.sh4
-rwxr-xr-xscripts/image_signing/make_dev_ssd.sh4
-rwxr-xr-xscripts/image_signing/resign_firmwarefd.sh18
-rwxr-xr-xscripts/image_signing/tofactory.sh4
6 files changed, 311 insertions, 305 deletions
diff --git a/scripts/image_signing/common.sh b/scripts/image_signing/common.sh
index 98229b01..599c9e1e 100755
--- a/scripts/image_signing/common.sh
+++ b/scripts/image_signing/common.sh
@@ -1,23 +1,10 @@
#!/bin/bash
-
-# Copyright (c) 2010 The Chromium OS Authors. All rights reserved.
+#
+# Copyright (c) 2011 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.
-# Globals
-# ----------------------------------------------------------------------------
-
-# Determine script directory
-SCRIPT_DIR=$(dirname $0)
-PROG=$(basename $0)
-GPT=cgpt
-
-# The tag when the rootfs is changed.
-TAG_NEEDS_TO_BE_SIGNED="/root/.need_to_be_signed"
-
-# List of Temporary files and mount points.
-TEMP_FILE_LIST=$(mktemp)
-TEMP_DIR_LIST=$(mktemp)
+. "$(dirname "$0")/common_minimal.sh"
# Array of actions that are executed during the clean up process.
declare -a cleanup_actions
@@ -88,278 +75,7 @@ die() {
exit 1
}
-# Finds and loads the 'shflags' library, or return as failed.
-load_shflags() {
- # Load shflags
- if [ -f /usr/lib/shflags ]; then
- . /usr/lib/shflags
- elif [ -f "${SCRIPT_DIR}/shflags" ]; then
- . "${SCRIPT_DIR}/shflags"
- elif [ -f "${SCRIPT_DIR}/lib/shflags/shflags" ]; then
- . "${SCRIPT_DIR}/lib/shflags/shflags"
- else
- echo "ERROR: Cannot find the required shflags library."
- return 1
- fi
-
- # Add debug option for debug output below
- DEFINE_boolean debug $FLAGS_FALSE "Provide debug messages" "d"
-}
-
-# Functions for debug output
-# ----------------------------------------------------------------------------
-
-# Reports error message and exit(1)
-# Args: error message
-err_die() {
- echo "ERROR: $*" 1>&2
- exit 1
-}
-
-# Returns true if we're running in debug mode.
-#
-# Note that if you don't set up shflags by calling load_shflags(), you
-# must set $FLAGS_debug and $FLAGS_TRUE yourself. The default
-# behavior is that debug will be off if you define neither $FLAGS_TRUE
-# nor $FLAGS_debug.
-is_debug_mode() {
- [ "${FLAGS_debug:-not$FLAGS_TRUE}" = "$FLAGS_TRUE" ]
-}
-
-# Prints messages (in parameters) in debug mode
-# Args: debug message
-debug_msg() {
- if is_debug_mode; then
- echo "DEBUG: $*" 1>&2
- fi
-}
-
-# Functions for temporary files and directories
-# ----------------------------------------------------------------------------
-
-# Create a new temporary file and return its name.
-# File is automatically cleaned when cleanup_temps_and_mounts() is called.
-make_temp_file() {
- local tempfile=$(mktemp)
- echo "$tempfile" >> $TEMP_FILE_LIST
- echo $tempfile
-}
-
-# Create a new temporary directory and return its name.
-# Directory is automatically deleted and any filesystem mounted on it unmounted
-# when cleanup_temps_and_mounts() is called.
-make_temp_dir() {
- local tempdir=$(mktemp -d)
- echo "$tempdir" >> $TEMP_DIR_LIST
- echo $tempdir
-}
-
-cleanup_temps_and_mounts() {
- for i in $(cat $TEMP_FILE_LIST); do
- rm -f $i
- done
- set +e # umount may fail for unmounted directories
- for i in $(cat $TEMP_DIR_LIST); do
- if [ -n "$i" ]; then
- if has_needs_to_be_resigned_tag "$i"; then
- echo "Warning: image may be modified. Please resign image."
- fi
- sudo umount -d $i 2>/dev/null
- rm -rf $i
- fi
- done
- set -e
- rm -rf $TEMP_DIR_LIST $TEMP_FILE_LIST
-}
-
-trap "cleanup_temps_and_mounts" EXIT
-
-# Functions for partition management
-# ----------------------------------------------------------------------------
-
-# Read GPT table to find the starting location of a specific partition.
-# Args: DEVICE PARTNUM
-# Returns: offset (in sectors) of partition PARTNUM
-partoffset() {
- sudo $GPT show -b -i $2 $1
-}
-
-# Read GPT table to find the size of a specific partition.
-# Args: DEVICE PARTNUM
-# Returns: size (in sectors) of partition PARTNUM
-partsize() {
- sudo $GPT show -s -i $2 $1
-}
-
-# Tags a file system as "needs to be resigned".
-# Args: MOUNTDIRECTORY
-tag_as_needs_to_be_resigned() {
- local mount_dir="$1"
- sudo touch "$mount_dir/$TAG_NEEDS_TO_BE_SIGNED"
-}
-
-# Determines if the target file system has the tag for resign
-# Args: MOUNTDIRECTORY
-# Returns: true if the tag is there otherwise false
-has_needs_to_be_resigned_tag() {
- local mount_dir="$1"
- [ -f "$mount_dir/$TAG_NEEDS_TO_BE_SIGNED" ]
-}
-
-# Determines if the target file system is a Chrome OS root fs
-# Args: MOUNTDIRECTORY
-# Returns: true if MOUNTDIRECTORY looks like root fs, otherwise false
-is_rootfs_partition() {
- local mount_dir="$1"
- [ -f "$mount_dir/$(dirname "$TAG_NEEDS_TO_BE_SIGNED")" ]
-}
-
-# Mount a partition read-only from an image into a local directory
-# Args: IMAGE PARTNUM MOUNTDIRECTORY
-mount_image_partition_ro() {
- local image=$1
- local partnum=$2
- local mount_dir=$3
- local offset=$(partoffset "$image" "$partnum")
- sudo mount -o loop,ro,offset=$((offset * 512)) "$image" "$mount_dir"
-}
-
-# Mount a partition from an image into a local directory
-# Args: IMAGE PARTNUM MOUNTDIRECTORY
-mount_image_partition() {
- local image=$1
- local partnum=$2
- local mount_dir=$3
- local offset=$(partoffset "$image" "$partnum")
- # Forcibly call enable_rw_mount. It should fail on unsupported filesystems
- # and be idempotent on ext*.
- enable_rw_mount "$image" $((offset * 512)) 2> /dev/null
- sudo mount -o loop,offset=$((offset * 512)) "$image" "$mount_dir"
- if is_rootfs_partition "$mount_dir"; then
- tag_as_needs_to_be_resigned "$mount_dir"
- fi
-}
-
-# Extract a partition to a file
-# Args: IMAGE PARTNUM OUTPUTFILE
-extract_image_partition() {
- local image=$1
- local partnum=$2
- local output_file=$3
- local offset=$(partoffset "$image" "$partnum")
- local size=$(partsize "$image" "$partnum")
- dd if=$image of=$output_file bs=512 skip=$offset count=$size conv=notrunc >/dev/null 2>&1
-}
-
-# Replace a partition in an image from file
-# Args: IMAGE PARTNUM INPUTFILE
-replace_image_partition() {
- local image=$1
- local partnum=$2
- local input_file=$3
- local offset=$(partoffset "$image" "$partnum")
- local size=$(partsize "$image" "$partnum")
- dd if=$input_file of=$image bs=512 seek=$offset count=$size conv=notrunc
-}
-
-# For details, see crosutils.git/common.sh
-enable_rw_mount() {
- local rootfs="$1"
- local offset="${2-0}"
-
- # Make sure we're checking an ext2 image
- if ! is_ext2 "$rootfs" $offset; then
- echo "enable_rw_mount called on non-ext2 filesystem: $rootfs $offset" 1>&2
- return 1
- fi
-
- local ro_compat_offset=$((0x464 + 3)) # Set 'highest' byte
- # Dash can't do echo -ne, but it can do printf "\NNN"
- # We could use /dev/zero here, but this matches what would be
- # needed for disable_rw_mount (printf '\377').
- printf '\000' |
- sudo dd of="$rootfs" seek=$((offset + ro_compat_offset)) \
- conv=notrunc count=1 bs=1
-}
-
-# For details, see crosutils.git/common.sh
-is_ext2() {
- local rootfs="$1"
- local offset="${2-0}"
-
- # Make sure we're checking an ext2 image
- local sb_magic_offset=$((0x438))
- local sb_value=$(sudo dd if="$rootfs" skip=$((offset + sb_magic_offset)) \
- count=2 bs=1 2>/dev/null)
- local expected_sb_value=$(printf '\123\357')
- if [ "$sb_value" = "$expected_sb_value" ]; then
- return 0
- fi
- return 1
-}
-
-disable_rw_mount() {
- local rootfs="$1"
- local offset="${2-0}"
-
- # Make sure we're checking an ext2 image
- if ! is_ext2 "$rootfs" $offset; then
- echo "disable_rw_mount called on non-ext2 filesystem: $rootfs $offset" 1>&2
- return 1
- fi
-
- local ro_compat_offset=$((0x464 + 3)) # Set 'highest' byte
- # Dash can't do echo -ne, but it can do printf "\NNN"
- # We could use /dev/zero here, but this matches what would be
- # needed for disable_rw_mount (printf '\377').
- printf '\377' |
- sudo dd of="$rootfs" seek=$((offset + ro_compat_offset)) \
- conv=notrunc count=1 bs=1
-}
-
-rw_mount_disabled() {
- local rootfs="$1"
- local offset="${2-0}"
-
- # Make sure we're checking an ext2 image
- if ! is_ext2 "$rootfs" $offset; then
- return 2
- fi
-
- local ro_compat_offset=$((0x464 + 3)) # Set 'highest' byte
- local ro_value=$(sudo dd if="$rootfs" skip=$((offset + ro_compat_offset)) \
- count=1 bs=1 2>/dev/null)
- local expected_ro_value=$(printf '\377')
- if [ "$ro_value" = "$expected_ro_value" ]; then
- return 0
- fi
- return 1
-}
-
-# Misc functions
-# ----------------------------------------------------------------------------
-
-# Returns true if all files in parameters exist.
-# Args: List of files
-ensure_files_exist() {
- local filename return_value=0
- for filename in "$@"; do
- if [ ! -f "$filename" -a ! -b "$filename" ]; then
- echo "ERROR: Cannot find required file: $filename"
- return_value=1
- fi
- done
-
- return $return_value
-}
-
-# Check if the 'chronos' user already has a password
-# Args: rootfs
-no_chronos_password() {
- local rootfs=$1
- sudo grep -q '^chronos:\*:' "$rootfs/etc/shadow"
-}
-
+# This will override the trap set in common_minmal.sh
trap "cleanup" INT TERM EXIT
add_cleanup_action "cleanup_temps_and_mounts"
diff --git a/scripts/image_signing/common_minimal.sh b/scripts/image_signing/common_minimal.sh
new file mode 100755
index 00000000..d69adbfb
--- /dev/null
+++ b/scripts/image_signing/common_minimal.sh
@@ -0,0 +1,294 @@
+#!/bin/sh
+#
+# Copyright (c) 2011 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.
+#
+# Note: This file must be written in dash compatible way as scripts that use
+# this may run in the Chrome OS client enviornment.
+
+# Determine script directory
+SCRIPT_DIR=$(dirname $0)
+PROG=$(basename $0)
+GPT=cgpt
+
+# The tag when the rootfs is changed.
+TAG_NEEDS_TO_BE_SIGNED="/root/.need_to_be_signed"
+
+# List of Temporary files and mount points.
+TEMP_FILE_LIST=$(mktemp)
+TEMP_DIR_LIST=$(mktemp)
+
+# Finds and loads the 'shflags' library, or return as failed.
+load_shflags() {
+ # Load shflags
+ if [ -f /usr/lib/shflags ]; then
+ . /usr/lib/shflags
+ elif [ -f "${SCRIPT_DIR}/shflags" ]; then
+ . "${SCRIPT_DIR}/shflags"
+ elif [ -f "${SCRIPT_DIR}/lib/shflags/shflags" ]; then
+ . "${SCRIPT_DIR}/lib/shflags/shflags"
+ else
+ echo "ERROR: Cannot find the required shflags library."
+ return 1
+ fi
+
+ # Add debug option for debug output below
+ DEFINE_boolean debug $FLAGS_FALSE "Provide debug messages" "d"
+}
+
+# Functions for debug output
+# ----------------------------------------------------------------------------
+
+# Reports error message and exit(1)
+# Args: error message
+err_die() {
+ echo "ERROR: $*" 1>&2
+ exit 1
+}
+
+# Returns true if we're running in debug mode.
+#
+# Note that if you don't set up shflags by calling load_shflags(), you
+# must set $FLAGS_debug and $FLAGS_TRUE yourself. The default
+# behavior is that debug will be off if you define neither $FLAGS_TRUE
+# nor $FLAGS_debug.
+is_debug_mode() {
+ [ "${FLAGS_debug:-not$FLAGS_TRUE}" = "$FLAGS_TRUE" ]
+}
+
+# Prints messages (in parameters) in debug mode
+# Args: debug message
+debug_msg() {
+ if is_debug_mode; then
+ echo "DEBUG: $*" 1>&2
+ fi
+}
+
+# Functions for temporary files and directories
+# ----------------------------------------------------------------------------
+
+# Create a new temporary file and return its name.
+# File is automatically cleaned when cleanup_temps_and_mounts() is called.
+make_temp_file() {
+ local tempfile=$(mktemp)
+ echo "$tempfile" >> $TEMP_FILE_LIST
+ echo $tempfile
+}
+
+# Create a new temporary directory and return its name.
+# Directory is automatically deleted and any filesystem mounted on it unmounted
+# when cleanup_temps_and_mounts() is called.
+make_temp_dir() {
+ local tempdir=$(mktemp -d)
+ echo "$tempdir" >> $TEMP_DIR_LIST
+ echo $tempdir
+}
+
+cleanup_temps_and_mounts() {
+ for i in $(cat $TEMP_FILE_LIST); do
+ rm -f $i
+ done
+ set +e # umount may fail for unmounted directories
+ for i in $(cat $TEMP_DIR_LIST); do
+ if [ -n "$i" ]; then
+ if has_needs_to_be_resigned_tag "$i"; then
+ echo "Warning: image may be modified. Please resign image."
+ fi
+ sudo umount -d $i 2>/dev/null
+ rm -rf $i
+ fi
+ done
+ set -e
+ rm -rf $TEMP_DIR_LIST $TEMP_FILE_LIST
+}
+
+trap "cleanup_temps_and_mounts" EXIT
+
+# Functions for partition management
+# ----------------------------------------------------------------------------
+
+# Read GPT table to find the starting location of a specific partition.
+# Args: DEVICE PARTNUM
+# Returns: offset (in sectors) of partition PARTNUM
+partoffset() {
+ sudo $GPT show -b -i $2 $1
+}
+
+# Read GPT table to find the size of a specific partition.
+# Args: DEVICE PARTNUM
+# Returns: size (in sectors) of partition PARTNUM
+partsize() {
+ sudo $GPT show -s -i $2 $1
+}
+
+# Tags a file system as "needs to be resigned".
+# Args: MOUNTDIRECTORY
+tag_as_needs_to_be_resigned() {
+ local mount_dir="$1"
+ sudo touch "$mount_dir/$TAG_NEEDS_TO_BE_SIGNED"
+}
+
+# Determines if the target file system has the tag for resign
+# Args: MOUNTDIRECTORY
+# Returns: true if the tag is there otherwise false
+has_needs_to_be_resigned_tag() {
+ local mount_dir="$1"
+ [ -f "$mount_dir/$TAG_NEEDS_TO_BE_SIGNED" ]
+}
+
+# Determines if the target file system is a Chrome OS root fs
+# Args: MOUNTDIRECTORY
+# Returns: true if MOUNTDIRECTORY looks like root fs, otherwise false
+is_rootfs_partition() {
+ local mount_dir="$1"
+ [ -f "$mount_dir/$(dirname "$TAG_NEEDS_TO_BE_SIGNED")" ]
+}
+
+# Mount a partition read-only from an image into a local directory
+# Args: IMAGE PARTNUM MOUNTDIRECTORY
+mount_image_partition_ro() {
+ local image=$1
+ local partnum=$2
+ local mount_dir=$3
+ local offset=$(partoffset "$image" "$partnum")
+ sudo mount -o loop,ro,offset=$((offset * 512)) "$image" "$mount_dir"
+}
+
+# Mount a partition from an image into a local directory
+# Args: IMAGE PARTNUM MOUNTDIRECTORY
+mount_image_partition() {
+ local image=$1
+ local partnum=$2
+ local mount_dir=$3
+ local offset=$(partoffset "$image" "$partnum")
+ # Forcibly call enable_rw_mount. It should fail on unsupported filesystems
+ # and be idempotent on ext*.
+ enable_rw_mount "$image" $((offset * 512)) 2> /dev/null
+ sudo mount -o loop,offset=$((offset * 512)) "$image" "$mount_dir"
+ if is_rootfs_partition "$mount_dir"; then
+ tag_as_needs_to_be_resigned "$mount_dir"
+ fi
+}
+
+# Extract a partition to a file
+# Args: IMAGE PARTNUM OUTPUTFILE
+extract_image_partition() {
+ local image=$1
+ local partnum=$2
+ local output_file=$3
+ local offset=$(partoffset "$image" "$partnum")
+ local size=$(partsize "$image" "$partnum")
+ dd if=$image of=$output_file bs=512 skip=$offset count=$size conv=notrunc >/dev/null 2>&1
+}
+
+# Replace a partition in an image from file
+# Args: IMAGE PARTNUM INPUTFILE
+replace_image_partition() {
+ local image=$1
+ local partnum=$2
+ local input_file=$3
+ local offset=$(partoffset "$image" "$partnum")
+ local size=$(partsize "$image" "$partnum")
+ dd if=$input_file of=$image bs=512 seek=$offset count=$size conv=notrunc
+}
+
+# For details, see crosutils.git/common.sh
+enable_rw_mount() {
+ local rootfs="$1"
+ local offset="${2-0}"
+
+ # Make sure we're checking an ext2 image
+ if ! is_ext2 "$rootfs" $offset; then
+ echo "enable_rw_mount called on non-ext2 filesystem: $rootfs $offset" 1>&2
+ return 1
+ fi
+
+ local ro_compat_offset=$((0x464 + 3)) # Set 'highest' byte
+ # Dash can't do echo -ne, but it can do printf "\NNN"
+ # We could use /dev/zero here, but this matches what would be
+ # needed for disable_rw_mount (printf '\377').
+ printf '\000' |
+ sudo dd of="$rootfs" seek=$((offset + ro_compat_offset)) \
+ conv=notrunc count=1 bs=1
+}
+
+# For details, see crosutils.git/common.sh
+is_ext2() {
+ local rootfs="$1"
+ local offset="${2-0}"
+
+ # Make sure we're checking an ext2 image
+ local sb_magic_offset=$((0x438))
+ local sb_value=$(sudo dd if="$rootfs" skip=$((offset + sb_magic_offset)) \
+ count=2 bs=1 2>/dev/null)
+ local expected_sb_value=$(printf '\123\357')
+ if [ "$sb_value" = "$expected_sb_value" ]; then
+ return 0
+ fi
+ return 1
+}
+
+disable_rw_mount() {
+ local rootfs="$1"
+ local offset="${2-0}"
+
+ # Make sure we're checking an ext2 image
+ if ! is_ext2 "$rootfs" $offset; then
+ echo "disable_rw_mount called on non-ext2 filesystem: $rootfs $offset" 1>&2
+ return 1
+ fi
+
+ local ro_compat_offset=$((0x464 + 3)) # Set 'highest' byte
+ # Dash can't do echo -ne, but it can do printf "\NNN"
+ # We could use /dev/zero here, but this matches what would be
+ # needed for disable_rw_mount (printf '\377').
+ printf '\377' |
+ sudo dd of="$rootfs" seek=$((offset + ro_compat_offset)) \
+ conv=notrunc count=1 bs=1
+}
+
+rw_mount_disabled() {
+ local rootfs="$1"
+ local offset="${2-0}"
+
+ # Make sure we're checking an ext2 image
+ if ! is_ext2 "$rootfs" $offset; then
+ return 2
+ fi
+
+ local ro_compat_offset=$((0x464 + 3)) # Set 'highest' byte
+ local ro_value=$(sudo dd if="$rootfs" skip=$((offset + ro_compat_offset)) \
+ count=1 bs=1 2>/dev/null)
+ local expected_ro_value=$(printf '\377')
+ if [ "$ro_value" = "$expected_ro_value" ]; then
+ return 0
+ fi
+ return 1
+}
+
+# Misc functions
+# ----------------------------------------------------------------------------
+
+# Returns true if all files in parameters exist.
+# Args: List of files
+ensure_files_exist() {
+ local filename return_value=0
+ for filename in "$@"; do
+ if [ ! -f "$filename" -a ! -b "$filename" ]; then
+ echo "ERROR: Cannot find required file: $filename"
+ return_value=1
+ fi
+ done
+
+ return $return_value
+}
+
+# Check if the 'chronos' user already has a password
+# Args: rootfs
+no_chronos_password() {
+ local rootfs=$1
+ sudo grep -q '^chronos:\*:' "$rootfs/etc/shadow"
+}
+
+trap "cleanup_temps_and_mounts" EXIT
diff --git a/scripts/image_signing/make_dev_firmware.sh b/scripts/image_signing/make_dev_firmware.sh
index 4faf9dce..cecbbff6 100755
--- a/scripts/image_signing/make_dev_firmware.sh
+++ b/scripts/image_signing/make_dev_firmware.sh
@@ -1,6 +1,6 @@
#!/bin/sh
#
-# Copyright (c) 2010 The Chromium OS Authors. All rights reserved.
+# Copyright (c) 2011 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.
#
@@ -8,7 +8,7 @@
# image or system live firmware (EEPROM), and assign proper HWID, BMPFV as well.
SCRIPT_BASE="$(dirname "$0")"
-. "$SCRIPT_BASE/common.sh"
+. "$SCRIPT_BASE/common_minimal.sh"
load_shflags || exit 1
# Constants used by DEFINE_*
diff --git a/scripts/image_signing/make_dev_ssd.sh b/scripts/image_signing/make_dev_ssd.sh
index 67a180e7..fb27bb2f 100755
--- a/scripts/image_signing/make_dev_ssd.sh
+++ b/scripts/image_signing/make_dev_ssd.sh
@@ -1,6 +1,6 @@
#!/bin/sh
#
-# Copyright (c) 2010 The Chromium OS Authors. All rights reserved.
+# Copyright (c) 2011 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.
#
@@ -8,7 +8,7 @@
# of a kernels on SSD.
SCRIPT_BASE="$(dirname "$0")"
-. "$SCRIPT_BASE/common.sh"
+. "$SCRIPT_BASE/common_minimal.sh"
load_shflags || exit 1
# Constants used by DEFINE_*
diff --git a/scripts/image_signing/resign_firmwarefd.sh b/scripts/image_signing/resign_firmwarefd.sh
index ad2d4d95..98903422 100755
--- a/scripts/image_signing/resign_firmwarefd.sh
+++ b/scripts/image_signing/resign_firmwarefd.sh
@@ -1,4 +1,4 @@
-#!/bin/bash
+#!/bin/sh
# 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
@@ -48,7 +48,7 @@
# offset 0x00008000 and size 0x00002000).
# Load common constants and variables.
-. "$(dirname "$0")/common.sh"
+. "$(dirname "$0")/common_minimal.sh"
# Abort on error
set -e
@@ -62,7 +62,7 @@ fi
# Make sure the tools we need are available.
for prog in mosys vbutil_firmware; do
- type -P "${prog}" &>/dev/null || \
+ type "${prog}" &>/dev/null || \
{ echo "${prog} tool not found."; exit 1; }
done
@@ -82,20 +82,16 @@ do
match_str="$i Key"
line=$(mosys -f -k eeprom map $1 | grep "$match_str")
offset="$(echo $line | sed -e 's/.*area_offset=\"\([a-f0-9x]*\)\".*/\1/')"
- eval let \
- fw${i}_vblock_offset="$offset"
+ eval fw${i}_vblock_offset=$((offset))
size="$(echo $line | sed -e 's/.*area_size=\"\([a-f0-9x]*\)\".*/\1/')"
- eval let \
- fw${i}_vblock_size="$size"
+ eval fw${i}_vblock_size=$((size))
match_str="$i Data"
line=$(mosys -f -k eeprom map $1 | grep "$match_str")
offset="$(echo $line | sed -e 's/.*area_offset=\"\([a-f0-9x]*\)\".*/\1/')"
- eval let \
- fw${i}_offset="$offset"
+ eval fw${i}_offset=$((offset))
size="$(echo $line | sed -e 's/.*area_size=\"\([a-f0-9x]*\)\".*/\1/')"
- eval let \
- fw${i}_size="$size"
+ eval fw${i}_size=$((size))
done
temp_fwimage=$(make_temp_file)
diff --git a/scripts/image_signing/tofactory.sh b/scripts/image_signing/tofactory.sh
index 38a76fdf..1c5f3bdd 100755
--- a/scripts/image_signing/tofactory.sh
+++ b/scripts/image_signing/tofactory.sh
@@ -1,6 +1,6 @@
#!/bin/sh
#
-# Copyright (c) 2010 The Chromium OS Authors. All rights reserved.
+# Copyright (c) 2011 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.
#
@@ -14,7 +14,7 @@
# tofactory.sh -b H2OBIOS.bin -e ec_shellball.sh
SCRIPT_BASE="$(dirname "$0")"
-. "$SCRIPT_BASE/common.sh"
+. "$SCRIPT_BASE/common_minimal.sh"
load_shflags || exit 1
# Constants used by DEFINE_*