1#!/bin/bash 2# Copyright 2012 The ChromiumOS Authors 3# Use of this source code is governed by a BSD-style license that can be 4# found in the LICENSE file. 5 6# Script to increment kernel subkey for firmware updates. 7# Used when revving versions for a firmware update. 8 9# Load common constants and variables. 10# shellcheck source=common.sh 11. "$(dirname "$0")/common.sh" 12 13# Abort on errors. 14set -e 15 16if [ $# -ne 1 ]; then 17 cat <<EOF 18 Usage: $0 <keyset directory> 19 20 Increments the kernel subkey in the specified keyset. 21EOF 22 exit 1 23fi 24 25KEY_DIR=$1 26 27main() { 28 load_current_versions "${KEY_DIR}" 29 new_firm_ver=$(increment_version "${KEY_DIR}" "firmware_version") 30 31 cd "${KEY_DIR}" 32 backup_existing_kernel_subkeys ${CURR_FIRM_VER} ${CURR_KERNKEY_VER} 33 34 cat <<EOF 35Generating new kernel subkey and new kernel keyblock. 36 37New Firmware version (due to kernel subkey change): ${new_firm_ver}. 38EOF 39 make_pair kernel_subkey ${KERNEL_SUBKEY_ALGOID} ${new_firm_ver} 40 make_keyblock kernel $KERNEL_KEYBLOCK_MODE kernel_data_key kernel_subkey 41 42 write_updated_version_file ${CURR_FIRMKEY_VER} ${new_firm_ver} \ 43 ${CURR_KERNKEY_VER} ${CURR_KERN_VER} 44} 45 46main "$@" 47