Bash程序  |  59行  |  1.47 KB

#!/bin/sh

# Copyright (c) 2014 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.

# Abort on error
set -e

# This script is obsolete. The required functionality is now provided by the
# compiled futility executable, so all this does is invoke that. This wrapper
# should go away Real Soon Now.


# Which futility to run?
[ -z "$FUTILITY" ] && FUTILITY=futility

# required
SRC_FD=$1
DST_FD=$2
FIRMWARE_DATAKEY=$3
FIRMWARE_KEYBLOCK=$4
DEV_FIRMWARE_DATAKEY=$5
DEV_FIRMWARE_KEYBLOCK=$6
KERNEL_SUBKEY=$7
# optional
VERSION=$8
PREAMBLE_FLAG=$9
LOEM_OUTPUT_DIR=${10}
LOEMID=${11}

if [ ! -e $DEV_FIRMWARE_KEYBLOCK ] || [ ! -e $DEV_FIRMWARE_DATAKEY ] ; then
  echo "No dev firmware keyblock/datakey found. Reusing normal keys."
  DEV_FIRMWARE_KEYBLOCK="$FIRMWARE_KEYBLOCK"
  DEV_FIRMWARE_DATAKEY="$FIRMWARE_DATAKEY"
fi

# pass optional args
[ -n "$VERSION" ] && VERSION="--version $VERSION"
[ -n "$PREAMBLE_FLAG" ] && PREAMBLE_FLAG="--flags $PREAMBLE_FLAG"
[ -n "$LOEM_OUTPUT_DIR" ] && LOEM_OUTPUT_DIR="--loemdir $LOEM_OUTPUT_DIR"
[ -n "$LOEMID" ] && LOEMID="--loemid $LOEMID"

exec ${FUTILITY} sign \
  --signprivate $FIRMWARE_DATAKEY \
  --keyblock $FIRMWARE_KEYBLOCK \
  --devsign $DEV_FIRMWARE_DATAKEY \
  --devkeyblock $DEV_FIRMWARE_KEYBLOCK \
  --kernelkey $KERNEL_SUBKEY \
  $VERSION \
  $PREAMBLE_FLAG \
  $LOEM_OUTPUT_DIR \
  $LOEMID \
  $SRC_FD \
  $DST_FD

echo UNABLE TO EXEC FUTILITY 1>&2
exit 1