| Index: scripts/image_signing/common.sh
|
| diff --git a/scripts/image_signing/common.sh b/scripts/image_signing/common.sh
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..0d15cb4f2e4a354d906ab81b5151ee6ab8c69add
|
| --- /dev/null
|
| +++ b/scripts/image_signing/common.sh
|
| @@ -0,0 +1,45 @@
|
| +#!/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.
|
| +
|
| +# Determine script directory
|
| +SCRIPT_DIR=$(dirname $0)
|
| +GPT=cgpt
|
| +
|
| +# 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
|
| +}
|
| +
|
| +# 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")
|
| + sudo mount -o loop,offset=$((offset * 512)) "$image" "$mount_dir"
|
| +}
|
| +
|
| +# 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
|
| +}
|
| +
|
|
|