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

Side by Side Diff: scripts/image_signing/common.sh

Issue 3083025: Make signing script re-sign Firmware AU payload, and update rootfs hash. (Closed) Base URL: ssh://git@gitrw.chromium.org:9222/vboot_reference.git
Patch Set: review fixes Created 10 years, 4 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 unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « no previous file | scripts/image_signing/resign_firmwarefd.sh » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 #!/bin/bash 1 #!/bin/bash
2 2
3 # Copyright (c) 2010 The Chromium OS Authors. All rights reserved. 3 # Copyright (c) 2010 The Chromium OS Authors. All rights reserved.
4 # Use of this source code is governed by a BSD-style license that can be 4 # Use of this source code is governed by a BSD-style license that can be
5 # found in the LICENSE file. 5 # found in the LICENSE file.
6 6
7 # Determine script directory 7 # Determine script directory
8 SCRIPT_DIR=$(dirname $0) 8 SCRIPT_DIR=$(dirname $0)
9 GPT=cgpt 9 GPT=cgpt
10 10
11 # List of Temporary files and mount points.
12 TEMP_FILE_LIST=$(mktemp)
13 TEMP_DIR_LIST=$(mktemp)
14
11 # Read GPT table to find the starting location of a specific partition. 15 # Read GPT table to find the starting location of a specific partition.
12 # Args: DEVICE PARTNUM 16 # Args: DEVICE PARTNUM
13 # Returns: offset (in sectors) of partition PARTNUM 17 # Returns: offset (in sectors) of partition PARTNUM
14 partoffset() { 18 partoffset() {
15 sudo $GPT show -b -i $2 $1 19 sudo $GPT show -b -i $2 $1
16 } 20 }
17 21
18 # Read GPT table to find the size of a specific partition. 22 # Read GPT table to find the size of a specific partition.
19 # Args: DEVICE PARTNUM 23 # Args: DEVICE PARTNUM
20 # Returns: size (in sectors) of partition PARTNUM 24 # Returns: size (in sectors) of partition PARTNUM
(...skipping 12 matching lines...) Expand all
33 } 37 }
34 38
35 # Extract a partition to a file 39 # Extract a partition to a file
36 # Args: IMAGE PARTNUM OUTPUTFILE 40 # Args: IMAGE PARTNUM OUTPUTFILE
37 extract_image_partition() { 41 extract_image_partition() {
38 local image=$1 42 local image=$1
39 local partnum=$2 43 local partnum=$2
40 local output_file=$3 44 local output_file=$3
41 local offset=$(partoffset "$image" "$partnum") 45 local offset=$(partoffset "$image" "$partnum")
42 local size=$(partsize "$image" "$partnum") 46 local size=$(partsize "$image" "$partnum")
43 dd if=$image of=$output_file bs=512 skip=$offset count=$size 47 dd if=$image of=$output_file bs=512 skip=$offset count=$size conv=notrunc
44 } 48 }
45 49
50 # Replace a partition in an image from file
51 # Args: IMAGE PARTNUM INPUTFILE
52 replace_image_partition() {
53 local image=$1
54 local partnum=$2
55 local input_file=$3
56 local offset=$(partoffset "$image" "$partnum")
57 local size=$(partsize "$image" "$partnum")
58 dd if=$input_file of=$image bs=512 seek=$offset count=$size conv=notrunc
59 }
60
61 # Create a new temporary file and return its name.
62 # File is automatically cleaned when cleanup_temps_and_mounts() is called.
63 make_temp_file() {
64 local tempfile=$(mktemp)
65 echo "$tempfile" >> $TEMP_FILE_LIST
66 echo $tempfile
67 }
68
69 # Create a new temporary directory and return its name.
70 # Directory is automatically deleted and any filesystem mounted on it unmounted
71 # when cleanup_temps_and_mounts() is called.
72 make_temp_dir() {
73 local tempdir=$(mktemp -d)
74 echo "$tempdir" >> $TEMP_DIR_LIST
75 echo $tempdir
76 }
77
78 cleanup_temps_and_mounts() {
79 for i in "$(cat $TEMP_FILE_LIST)"; do
80 rm -f $i
81 done
82 set +e # umount may fail for unmounted directories
83 for i in "$(cat $TEMP_DIR_LIST)"; do
84 if [ -n "$i" ]; then
85 sudo umount -d $i 2>/dev/null
86 rm -rf $i
87 fi
88 done
89 set -e
90 rm -rf $TEMP_DIR_LIST $TEMP_FILE_LIST
91 }
92
93 trap "cleanup_temps_and_mounts" EXIT
OLDNEW
« no previous file with comments | « no previous file | scripts/image_signing/resign_firmwarefd.sh » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698