| Index: bin/cros_mod_image_for_recovery.sh
|
| diff --git a/bin/cros_mod_image_for_recovery.sh b/bin/cros_mod_image_for_recovery.sh
|
| deleted file mode 100755
|
| index 2bed5e6e0b74cff3c3667279f5c57b2b72efd63e..0000000000000000000000000000000000000000
|
| --- a/bin/cros_mod_image_for_recovery.sh
|
| +++ /dev/null
|
| @@ -1,123 +0,0 @@
|
| -#!/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 modify a pristine/dev Chrome OS image to be used for recovery
|
| -
|
| -. "/usr/lib/crosutils/common.sh"
|
| -
|
| -# Load functions and constants for chromeos-install
|
| -. "/usr/lib/installer/chromeos-common.sh"
|
| -
|
| -# Script must be run inside the chroot.
|
| -restart_in_chroot_if_needed $*
|
| -
|
| -get_default_board
|
| -
|
| -RECOVERY_IMAGE="recovery_image.bin"
|
| -
|
| -DEFINE_string board "$DEFAULT_BOARD" "Board for which the image was built"
|
| -DEFINE_string image "" "Location of the rootfs raw image file"
|
| -DEFINE_string output "${RECOVERY_IMAGE}" \
|
| - "(optional) output image name. Default: ${RECOVERY_IMAGE}"
|
| -
|
| -# Parse command line
|
| -FLAGS "$@" || exit 1
|
| -eval set -- "${FLAGS_ARGV}"
|
| -
|
| -# No board, no default and no image set then we can't find the image
|
| -if [ -z $FLAGS_image ] && [ -z $FLAGS_board ] ; then
|
| - setup_board_warning
|
| - die "cros_mod_image_for_recovery failed. No board set and no image set"
|
| -fi
|
| -
|
| -# We have a board name but no image set. Use image at default location
|
| -if [ -z $FLAGS_image ] ; then
|
| - IMAGES_DIR="${DEFAULT_BUILD_ROOT}/images/${FLAGS_board}"
|
| - FILENAME="chromiumos_image.bin"
|
| - FLAGS_image="${IMAGES_DIR}/$(ls -t $IMAGES_DIR 2>&-| head -1)/${FILENAME}"
|
| -fi
|
| -
|
| -# Turn path into an absolute path.
|
| -FLAGS_image=$(eval readlink -f ${FLAGS_image})
|
| -
|
| -# Abort early if we can't find the image
|
| -if [ ! -f $FLAGS_image ] ; then
|
| - echo "No image found at $FLAGS_image"
|
| - exit 1
|
| -fi
|
| -
|
| -set -e
|
| -
|
| -# Constants
|
| -IMAGE_DIR="$(dirname "$FLAGS_image")"
|
| -IMAGE_NAME="$(basename "$FLAGS_image")"
|
| -
|
| -# loop device utility methods mostly duplicated from
|
| -# src/platform/installer/chromeos-install
|
| -# TODO(tgao): minimize duplication by refactoring these methods into a separate
|
| -# library script which both scripts can reference
|
| -
|
| -# Set up loop device for an image file at specified offset
|
| -loop_offset_setup() {
|
| - local filename=$1
|
| - local offset=$2 # 512-byte sectors
|
| -
|
| - LOOP_DEV=$(sudo losetup -f)
|
| - if [ -z "$LOOP_DEV" ]
|
| - then
|
| - echo "No free loop device. Free up a loop device or reboot. Exiting."
|
| - exit 1
|
| - fi
|
| -
|
| - sudo losetup -o $(($offset * 512)) ${LOOP_DEV} ${filename}
|
| -}
|
| -
|
| -loop_offset_cleanup() {
|
| - sudo losetup -d ${LOOP_DEV} || /bin/true
|
| -}
|
| -
|
| -mount_on_loop_dev() {
|
| - TMPMNT=$(mktemp -d)
|
| - sudo mount ${LOOP_DEV} ${TMPMNT}
|
| -}
|
| -
|
| -# Unmount loop-mounted device.
|
| -umount_from_loop_dev() {
|
| - mount | grep -q " on ${TMPMNT} " && sudo umount ${TMPMNT}
|
| -}
|
| -
|
| -# Undo both mount and loop.
|
| -my_cleanup() {
|
| - umount_from_loop_dev
|
| - loop_offset_cleanup
|
| -}
|
| -
|
| -# Modifies an existing image for recovery use
|
| -update_recovery_packages() {
|
| - local image_name=$1
|
| -
|
| - echo "Modifying image ${image_name} for recovery use"
|
| -
|
| - locate_gpt # set $GPT env var
|
| - loop_offset_setup ${image_name} $(partoffset "${image_name}" 1)
|
| - trap loop_offset_cleanup EXIT
|
| - mount_on_loop_dev "readwrite"
|
| - trap my_cleanup EXIT
|
| - sudo touch ${TMPMNT}/.recovery
|
| - umount_from_loop_dev
|
| - trap loop_offset_cleanup EXIT
|
| - loop_offset_cleanup
|
| - trap - EXIT
|
| -}
|
| -
|
| -# Main
|
| -
|
| -DST_PATH="${IMAGE_DIR}/${FLAGS_output}"
|
| -echo "Making a copy of original image ${FLAGS_image}"
|
| -cp $FLAGS_image $DST_PATH
|
| -update_recovery_packages $DST_PATH
|
| -
|
| -echo "Recovery image created at ${DST_PATH}"
|
|
|