AU: Add a private_key option to cros_generate_update_payload.

BUG=5663
TEST=generated a delta payload

Change-Id: I62f2fae07152f67ecbf64d16948e6add1c6ba3db

Review URL: http://codereview.chromium.org/3548013
This commit is contained in:
Darin Petkov 2010-10-05 10:44:06 -07:00
parent af33f8f8ae
commit c90b71ed1f

View File

@ -57,7 +57,7 @@ extract_partition_to_temp_file() {
local filename="$1" local filename="$1"
local partition="$2" local partition="$2"
local temp_file=$(mktemp /tmp/generate_update_payload.XXXXXX) local temp_file=$(mktemp /tmp/generate_update_payload.XXXXXX)
local offset=$(partoffset "${filename}" ${partition}) # 512-byte sectors local offset=$(partoffset "${filename}" ${partition}) # 512-byte sectors
local length=$(partsize "${filename}" ${partition}) # 512-byte sectors local length=$(partsize "${filename}" ${partition}) # 512-byte sectors
local bs=512 local bs=512
@ -99,6 +99,7 @@ DEFINE_boolean old_style "$FLAGS_TRUE" "Generate an old-style .gz full update."
DEFINE_string output "" "Output file" DEFINE_string output "" "Output file"
DEFINE_boolean patch_kernel "$FLAGS_FALSE" "Whether or not to patch the kernel \ DEFINE_boolean patch_kernel "$FLAGS_FALSE" "Whether or not to patch the kernel \
with the patch from the stateful partition (default: false)" with the patch from the stateful partition (default: false)"
DEFINE_string private_key "" "Path to private key in .pem format."
# Parse command line # Parse command line
FLAGS "$@" || exit 1 FLAGS "$@" || exit 1
@ -128,7 +129,7 @@ fi
if [ "$DELTA" -eq "$FLAGS_TRUE" ]; then if [ "$DELTA" -eq "$FLAGS_TRUE" ]; then
echo "Generating a delta update" echo "Generating a delta update"
# Sanity check that the real generator exists: # Sanity check that the real generator exists:
GENERATOR="$(dirname "$0")/../platform/update_engine/delta_generator" GENERATOR="$(dirname "$0")/../platform/update_engine/delta_generator"
[ -x "$GENERATOR" ] || die "$GENERATOR doesn't exist, or isn't executable" [ -x "$GENERATOR" ] || die "$GENERATOR doesn't exist, or isn't executable"
@ -144,42 +145,42 @@ if [ "$DELTA" -eq "$FLAGS_TRUE" ]; then
md5sum "$SRC_KERNEL" md5sum "$SRC_KERNEL"
echo md5sum of src root: echo md5sum of src root:
md5sum "$SRC_ROOT" md5sum "$SRC_ROOT"
DST_KERNEL=$(extract_partition_to_temp_file "$FLAGS_image" 2) DST_KERNEL=$(extract_partition_to_temp_file "$FLAGS_image" 2)
if [ "$FLAGS_patch_kernel" -eq "$FLAGS_TRUE" ]; then if [ "$FLAGS_patch_kernel" -eq "$FLAGS_TRUE" ]; then
patch_kernel "$FLAGS_image" "$DST_KERNEL" patch_kernel "$FLAGS_image" "$DST_KERNEL"
fi fi
DST_ROOT=$(extract_partition_to_temp_file "$FLAGS_image" 3) DST_ROOT=$(extract_partition_to_temp_file "$FLAGS_image" 3)
SRC_MNT=$(mktemp -d /tmp/src_root.XXXXXX) SRC_MNT=$(mktemp -d /tmp/src_root.XXXXXX)
sudo mount -o loop,ro "$SRC_ROOT" "$SRC_MNT" sudo mount -o loop,ro "$SRC_ROOT" "$SRC_MNT"
DST_MNT=$(mktemp -d /tmp/src_root.XXXXXX) DST_MNT=$(mktemp -d /tmp/src_root.XXXXXX)
sudo mount -o loop,ro "$DST_ROOT" "$DST_MNT" sudo mount -o loop,ro "$DST_ROOT" "$DST_MNT"
sudo "$GENERATOR" \ sudo "$GENERATOR" \
-new_dir "$DST_MNT" -new_image "$DST_ROOT" -new_kernel "$DST_KERNEL" \ -new_dir "$DST_MNT" -new_image "$DST_ROOT" -new_kernel "$DST_KERNEL" \
-old_dir "$SRC_MNT" -old_image "$SRC_ROOT" -old_kernel "$SRC_KERNEL" \ -old_dir "$SRC_MNT" -old_image "$SRC_ROOT" -old_kernel "$SRC_KERNEL" \
-out_file "$FLAGS_output" -out_file "$FLAGS_output" -private_key "$FLAGS_private_key"
trap - INT TERM EXIT trap - INT TERM EXIT
cleanup noexit cleanup noexit
echo "Done generating delta." echo "Done generating delta."
else else
echo "Generating full update" echo "Generating full update"
trap cleanup INT TERM EXIT trap cleanup INT TERM EXIT
DST_KERNEL=$(extract_partition_to_temp_file "$FLAGS_image" 2) DST_KERNEL=$(extract_partition_to_temp_file "$FLAGS_image" 2)
if [ "$FLAGS_patch_kernel" -eq "$FLAGS_TRUE" ]; then if [ "$FLAGS_patch_kernel" -eq "$FLAGS_TRUE" ]; then
patch_kernel "$FLAGS_image" "$DST_KERNEL" patch_kernel "$FLAGS_image" "$DST_KERNEL"
fi fi
DST_ROOT=$(extract_partition_to_temp_file "$FLAGS_image" 3) DST_ROOT=$(extract_partition_to_temp_file "$FLAGS_image" 3)
GENERATOR="$(dirname "$0")/mk_memento_images.sh" GENERATOR="$(dirname "$0")/mk_memento_images.sh"
CROS_GENERATE_UPDATE_PAYLOAD_CALLED=1 "$GENERATOR" "$DST_KERNEL" "$DST_ROOT" CROS_GENERATE_UPDATE_PAYLOAD_CALLED=1 "$GENERATOR" "$DST_KERNEL" "$DST_ROOT"
mv "$(dirname "$DST_KERNEL")/update.gz" "$FLAGS_output" mv "$(dirname "$DST_KERNEL")/update.gz" "$FLAGS_output"
trap - INT TERM EXIT trap - INT TERM EXIT
cleanup noexit cleanup noexit
echo "Done generating full update." echo "Done generating full update."