summaryrefslogtreecommitdiff
path: root/tests/futility/test_update.sh
diff options
context:
space:
mode:
Diffstat (limited to 'tests/futility/test_update.sh')
-rwxr-xr-xtests/futility/test_update.sh135
1 files changed, 63 insertions, 72 deletions
diff --git a/tests/futility/test_update.sh b/tests/futility/test_update.sh
index 9724659d..19f2413e 100755
--- a/tests/futility/test_update.sh
+++ b/tests/futility/test_update.sh
@@ -186,147 +186,138 @@ test_update() {
fi
}
-# --sys_props: mainfw_act, tpm_fwver, is_vboot2, platform_ver, [wp_hw, wp_sw]
+# --sys_props: mainfw_act, tpm_fwver, platform_ver, [wp_hw, wp_sw]
# tpm_fwver = <data key version:16><firmware version:16>.
# TO_IMAGE is signed with data key version = 1, firmware version = 4 => 0x10004.
# Test Full update.
test_update "Full update" \
"${FROM_IMAGE}" "${TMP}.expected.full" \
- -i "${TO_IMAGE}" --wp=0 --sys_props 0,0x10001,1
+ -i "${TO_IMAGE}" --wp=0 --sys_props 0,0x10001
test_update "Full update (incompatible platform)" \
"${FROM_IMAGE}" "!platform is not compatible" \
- -i "${LINK_BIOS}" --wp=0 --sys_props 0,0x10001,1
+ -i "${LINK_BIOS}" --wp=0 --sys_props 0,0x10001
test_update "Full update (TPM Anti-rollback: data key)" \
"${FROM_IMAGE}" "!Data key version rollback detected (2->1)" \
- -i "${TO_IMAGE}" --wp=0 --sys_props 1,0x20001,1
+ -i "${TO_IMAGE}" --wp=0 --sys_props 1,0x20001
test_update "Full update (TPM Anti-rollback: kernel key)" \
"${FROM_IMAGE}" "!Firmware version rollback detected (5->4)" \
- -i "${TO_IMAGE}" --wp=0 --sys_props 1,0x10005,1
+ -i "${TO_IMAGE}" --wp=0 --sys_props 1,0x10005
test_update "Full update (TPM Anti-rollback: 0 as tpm_fwver)" \
"${FROM_IMAGE}" "${TMP}.expected.full" \
- -i "${TO_IMAGE}" --wp=0 --sys_props 0,0x0,1
+ -i "${TO_IMAGE}" --wp=0 --sys_props 0,0x0
test_update "Full update (TPM check failure due to invalid tpm_fwver)" \
"${FROM_IMAGE}" "!Invalid tpm_fwver: -1" \
- -i "${TO_IMAGE}" --wp=0 --sys_props 0,-1,1
+ -i "${TO_IMAGE}" --wp=0 --sys_props 0,-1
test_update "Full update (Skip TPM check with --force)" \
"${FROM_IMAGE}" "${TMP}.expected.full" \
- -i "${TO_IMAGE}" --wp=0 --sys_props 0,-1,1 --force
+ -i "${TO_IMAGE}" --wp=0 --sys_props 0,-1 --force
test_update "Full update (from stdin)" \
"${FROM_IMAGE}" "${TMP}.expected.full" \
- -i - --wp=0 --sys_props 0,-1,1 --force <"${TO_IMAGE}"
+ -i - --wp=0 --sys_props 0,-1 --force <"${TO_IMAGE}"
test_update "Full update (GBB=0 -> 0)" \
"${FROM_IMAGE}.gbb0" "${TMP}.expected.full.gbb0" \
- -i "${TO_IMAGE}" --wp=0 --sys_props 0,0x10001,1
+ -i "${TO_IMAGE}" --wp=0 --sys_props 0,0x10001
test_update "Full update (GBB flags -> 0x27)" \
"${FROM_IMAGE}" "${TMP}.expected.full.gbb0x27" \
- -i "${TO_IMAGE}" --gbb_flags=0x27 --wp=0 --sys_props 0,0x10001,1
+ -i "${TO_IMAGE}" --gbb_flags=0x27 --wp=0 --sys_props 0,0x10001
test_update "Full update (--host_only)" \
"${FROM_IMAGE}" "${TMP}.expected.full" \
- -i "${TO_IMAGE}" --wp=0 --sys_props 0,0x10001,1 \
+ -i "${TO_IMAGE}" --wp=0 --sys_props 0,0x10001 \
--host_only --ec_image non-exist.bin --pd_image non_exist.bin
test_update "Full update (GBB1.2 hwid digest)" \
"${FROM_IMAGE}" "${TMP}.expected.full.gbb12" \
- -i "${TO_IMAGE_GBB12}" --wp=0 --sys_props 0,0x10001,1
+ -i "${TO_IMAGE_GBB12}" --wp=0 --sys_props 0,0x10001
test_update "Full update (Preserve VPD using FMAP_AREA_PRESERVE)" \
"${FROM_IMAGE}" "${TMP}.expected.full.empty_rw_vpd" \
- -i "${TO_IMAGE_WIPE_RW_VPD}" --wp=0 --sys_props 0,0x10001,1
+ -i "${TO_IMAGE_WIPE_RW_VPD}" --wp=0 --sys_props 0,0x10001
# Test RW-only update.
test_update "RW update" \
"${FROM_IMAGE}" "${TMP}.expected.rw" \
- -i "${TO_IMAGE}" --wp=1 --sys_props 0,0x10001,1
+ -i "${TO_IMAGE}" --wp=1 --sys_props 0,0x10001
test_update "RW update (incompatible platform)" \
"${FROM_IMAGE}" "!platform is not compatible" \
- -i "${LINK_BIOS}" --wp=1 --sys_props 0,0x10001,1
+ -i "${LINK_BIOS}" --wp=1 --sys_props 0,0x10001
test_update "RW update (incompatible rootkey)" \
"${FROM_DIFFERENT_ROOTKEY_IMAGE}" "!RW signed by incompatible root key" \
- -i "${TO_IMAGE}" --wp=1 --sys_props 0,0x10001,1
+ -i "${TO_IMAGE}" --wp=1 --sys_props 0,0x10001
test_update "RW update (TPM Anti-rollback: data key)" \
"${FROM_IMAGE}" "!Data key version rollback detected (2->1)" \
- -i "${TO_IMAGE}" --wp=1 --sys_props 1,0x20001,1
+ -i "${TO_IMAGE}" --wp=1 --sys_props 1,0x20001
test_update "RW update (TPM Anti-rollback: kernel key)" \
"${FROM_IMAGE}" "!Firmware version rollback detected (5->4)" \
- -i "${TO_IMAGE}" --wp=1 --sys_props 1,0x10005,1
+ -i "${TO_IMAGE}" --wp=1 --sys_props 1,0x10005
# Test Try-RW update (vboot2).
test_update "RW update (A->B)" \
"${FROM_IMAGE}" "${TMP}.expected.b" \
- -i "${TO_IMAGE}" -t --wp=1 --sys_props 0,0x10001,1
+ -i "${TO_IMAGE}" -t --wp=1 --sys_props 0,0x10001
test_update "RW update (B->A)" \
"${FROM_IMAGE}" "${TMP}.expected.a" \
- -i "${TO_IMAGE}" -t --wp=1 --sys_props 1,0x10001,1
+ -i "${TO_IMAGE}" -t --wp=1 --sys_props 1,0x10001
test_update "RW update -> fallback to RO+RW Full update" \
"${FROM_IMAGE}" "${TMP}.expected.full" \
- -i "${TO_IMAGE}" -t --wp=0 --sys_props 1,0x10002,1
+ -i "${TO_IMAGE}" -t --wp=0 --sys_props 1,0x10002
test_update "RW update (incompatible platform)" \
"${FROM_IMAGE}" "!platform is not compatible" \
- -i "${LINK_BIOS}" -t --wp=1 --sys_props 0x10001,1
+ -i "${LINK_BIOS}" -t --wp=1 --sys_props 0x10001
test_update "RW update (incompatible rootkey)" \
"${FROM_DIFFERENT_ROOTKEY_IMAGE}" "!RW signed by incompatible root key" \
- -i "${TO_IMAGE}" -t --wp=1 --sys_props 0,0x10001,1
+ -i "${TO_IMAGE}" -t --wp=1 --sys_props 0,0x10001
test_update "RW update (TPM Anti-rollback: data key)" \
"${FROM_IMAGE}" "!Data key version rollback detected (2->1)" \
- -i "${TO_IMAGE}" -t --wp=1 --sys_props 1,0x20001,1
+ -i "${TO_IMAGE}" -t --wp=1 --sys_props 1,0x20001
test_update "RW update (TPM Anti-rollback: kernel key)" \
"${FROM_IMAGE}" "!Firmware version rollback detected (5->4)" \
- -i "${TO_IMAGE}" -t --wp=1 --sys_props 1,0x10005,1
+ -i "${TO_IMAGE}" -t --wp=1 --sys_props 1,0x10005
test_update "RW update -> fallback to RO+RW Full update (TPM Anti-rollback)" \
"${FROM_IMAGE}" "!Firmware version rollback detected (6->4)" \
- -i "${TO_IMAGE}" -t --wp=0 --sys_props 1,0x10006,1
-
-# Test Try-RW update (vboot1).
-test_update "RW update (vboot1, A->B)" \
- "${FROM_IMAGE}" "${TMP}.expected.b" \
- -i "${TO_IMAGE}" -t --wp=1 --sys_props 0,0 --sys_props 0,0x10001,0
-
-test_update "RW update (vboot1, B->B)" \
- "${FROM_IMAGE}" "${TMP}.expected.b" \
- -i "${TO_IMAGE}" -t --wp=1 --sys_props 1,0 --sys_props 0,0x10001,0
+ -i "${TO_IMAGE}" -t --wp=0 --sys_props 1,0x10006
# Test 'factory mode'
test_update "Factory mode update (WP=0)" \
"${FROM_IMAGE}" "${TMP}.expected.full" \
- -i "${TO_IMAGE}" --wp=0 --sys_props 0,0x10001,1 --mode=factory
+ -i "${TO_IMAGE}" --wp=0 --sys_props 0,0x10001 --mode=factory
test_update "Factory mode update (WP=0)" \
"${FROM_IMAGE}" "${TMP}.expected.full" \
- --factory -i "${TO_IMAGE}" --wp=0 --sys_props 0,0x10001,1
+ --factory -i "${TO_IMAGE}" --wp=0 --sys_props 0,0x10001
test_update "Factory mode update (WP=1)" \
"${FROM_IMAGE}" "!remove write protection for factory mode" \
- -i "${TO_IMAGE}" --wp=1 --sys_props 0,0x10001,1 --mode=factory
+ -i "${TO_IMAGE}" --wp=1 --sys_props 0,0x10001 --mode=factory
test_update "Factory mode update (WP=1)" \
"${FROM_IMAGE}" "!remove write protection for factory mode" \
- --factory -i "${TO_IMAGE}" --wp=1 --sys_props 0,0x10001,1
+ --factory -i "${TO_IMAGE}" --wp=1 --sys_props 0,0x10001
test_update "Factory mode update (GBB=0 -> 0x39)" \
"${FROM_IMAGE}.gbb0" "${TMP}.expected.full" \
- --factory -i "${TO_IMAGE}" --wp=0 --sys_props 0,0x10001,1
+ --factory -i "${TO_IMAGE}" --wp=0 --sys_props 0,0x10001
# Test legacy update
test_update "Legacy update" \
@@ -336,67 +327,67 @@ test_update "Legacy update" \
# Test quirks
test_update "Full update (wrong size)" \
"${FROM_IMAGE}.large" "!Failed writing firmware" \
- -i "${TO_IMAGE}" --wp=0 --sys_props 0,0x10001,1 \
+ -i "${TO_IMAGE}" --wp=0 --sys_props 0,0x10001 \
--quirks unlock_me_for_update,eve_smm_store
test_update "Full update (--quirks enlarge_image)" \
"${FROM_IMAGE}.large" "${TMP}.expected.large" --quirks enlarge_image \
- -i "${TO_IMAGE}" --wp=0 --sys_props 0,0x10001,1
+ -i "${TO_IMAGE}" --wp=0 --sys_props 0,0x10001
test_update "Full update (multi-line --quirks enlarge_image)" \
"${FROM_IMAGE}.large" "${TMP}.expected.large" --quirks '
enlarge_image
- ' -i "${TO_IMAGE}" --wp=0 --sys_props 0,0x10001,1
+ ' -i "${TO_IMAGE}" --wp=0 --sys_props 0,0x10001
test_update "Full update (--quirks unlock_me_for_update)" \
"${FROM_IMAGE}" "${TMP}.expected.me_unlocked" \
--quirks unlock_me_for_update \
- -i "${TO_IMAGE}" --wp=0 --sys_props 0,0x10001,1
+ -i "${TO_IMAGE}" --wp=0 --sys_props 0,0x10001
test_update "Full update (failure by --quirks min_platform_version)" \
"${FROM_IMAGE}" "!Need platform version >= 3 (current is 2)" \
--quirks min_platform_version=3 \
- -i "${TO_IMAGE}" --wp=0 --sys_props 0,0x10001,1,2
+ -i "${TO_IMAGE}" --wp=0 --sys_props 0,0x10001,2
test_update "Full update (--quirks min_platform_version)" \
"${FROM_IMAGE}" "${TMP}.expected.full" \
--quirks min_platform_version=3 \
- -i "${TO_IMAGE}" --wp=0 --sys_props 0,0x10001,1,3
+ -i "${TO_IMAGE}" --wp=0 --sys_props 0,0x10001,3
test_update "Full update (incompatible platform)" \
"${FROM_IMAGE}".unpatched "!platform is not compatible" \
- -i "${TO_IMAGE}" --wp=0 --sys_props 0,0x10001,1
+ -i "${TO_IMAGE}" --wp=0 --sys_props 0,0x10001
test_update "Full update (--quirks no_check_platform)" \
"${FROM_IMAGE}".unpatched "${TMP}.expected.full" \
--quirks no_check_platform \
- -i "${TO_IMAGE}" --wp=0 --sys_props 0,0x10001,1
+ -i "${TO_IMAGE}" --wp=0 --sys_props 0,0x10001
test_update "Full update (--quirks preserve_me with non-host programmer)" \
"${FROM_IMAGE}" "${TMP}.expected.full" \
--quirks preserve_me \
- -i "${TO_IMAGE}" --wp=0 --sys_props 0,0x10001,1 \
+ -i "${TO_IMAGE}" --wp=0 --sys_props 0,0x10001 \
-p raiden_debug_spi:target=AP
test_update "Full update (--quirks preserve_me)" \
"${FROM_IMAGE}" "${TMP}.expected.full" \
--quirks preserve_me \
- -i "${TO_IMAGE}" --wp=0 --sys_props 0,0x10001,1
+ -i "${TO_IMAGE}" --wp=0 --sys_props 0,0x10001
test_update "Full update (--quirks preserve_me, autoupdate)" \
"${FROM_IMAGE}" "${TMP}.expected.me_preserved" \
--quirks preserve_me -m autoupdate \
- -i "${TO_IMAGE}" --wp=0 --sys_props 0,0x10001,1
+ -i "${TO_IMAGE}" --wp=0 --sys_props 0,0x10001
test_update "Full update (--quirks preserve_me, deferupdate_hold)" \
"${FROM_IMAGE}" "${TMP}.expected.me_preserved" \
--quirks preserve_me -m deferupdate_hold \
- -i "${TO_IMAGE}" --wp=0 --sys_props 0,0x10001,1
+ -i "${TO_IMAGE}" --wp=0 --sys_props 0,0x10001
test_update "Full update (--quirks preserve_me, factory)" \
"${FROM_IMAGE}" "${TMP}.expected.full" \
--quirks preserve_me -m factory \
- -i "${TO_IMAGE}" --wp=0 --sys_props 0,0x10001,1
+ -i "${TO_IMAGE}" --wp=0 --sys_props 0,0x10001
# Test archive and manifest. CL_TAG is for custom_label_tag.
A="${TMP}.archive"
@@ -418,7 +409,7 @@ cmp "${TMP}.json.out" "${SCRIPT_DIR}/futility/link_image.manifest.json"
cp -f "${TO_IMAGE}" "${A}/image.bin"
test_update "Full update (--archive, single package)" \
"${FROM_IMAGE}" "${TMP}.expected.full" \
- -a "${A}" --wp=0 --sys_props 0,0x10001,1,3
+ -a "${A}" --wp=0 --sys_props 0,0x10001,3
echo "TEST: Output (--mode=output)"
mkdir -p "${TMP}.output"
@@ -437,25 +428,25 @@ cp -f "${TMP}.to/VBLOCK_B" "${A}/keyset/vblock_B.CL"
test_update "Full update (--archive, custom label, no VPD)" \
"${A}/image.bin" "!Need VPD set for custom" \
- -a "${A}" --wp=0 --sys_props 0,0x10001,1,3
+ -a "${A}" --wp=0 --sys_props 0,0x10001,3
test_update "Full update (--archive, custom label, no VPD - factory mode)" \
"${LINK_BIOS}" "${A}/image.bin" \
- -a "${A}" --wp=0 --sys_props 0,0x10001,1,3 --mode=factory
+ -a "${A}" --wp=0 --sys_props 0,0x10001,3 --mode=factory
test_update "Full update (--archive, custom label, no VPD - quirk mode)" \
"${LINK_BIOS}" "${A}/image.bin" \
- -a "${A}" --wp=0 --sys_props 0,0x10001,1,3 \
+ -a "${A}" --wp=0 --sys_props 0,0x10001,3 \
--quirks=allow_empty_custom_label_tag
test_update "Full update (--archive, custom label, single package)" \
"${A}/image.bin" "${LINK_BIOS}" \
- -a "${A}" --wp=0 --sys_props 0,0x10001,1,3 --signature_id=CL
+ -a "${A}" --wp=0 --sys_props 0,0x10001,3 --signature_id=CL
CL_TAG="CL" PATH="${A}/bin:${PATH}" \
test_update "Full update (--archive, custom label, fake vpd)" \
"${A}/image.bin" "${LINK_BIOS}" \
- -a "${A}" --wp=0 --sys_props 0,0x10001,1,3
+ -a "${A}" --wp=0 --sys_props 0,0x10001,3
echo "TEST: Output (-a, --mode=output)"
mkdir -p "${TMP}.outa"
@@ -482,25 +473,25 @@ patch_file "${FROM_IMAGE}.al" FW_MAIN_A 0 "corrupted"
patch_file "${FROM_IMAGE}.av" FW_MAIN_A 0 "corrupted"
test_update "Full update (--archive, model=link)" \
"${FROM_IMAGE}.al" "${LINK_BIOS}" \
- -a "${A}" --wp=0 --sys_props 0,0x10001,1,3 --model=link
+ -a "${A}" --wp=0 --sys_props 0,0x10001,3 --model=link
test_update "Full update (--archive, model=peppy)" \
"${FROM_IMAGE}.ap" "${PEPPY_BIOS}" \
- -a "${A}" --wp=0 --sys_props 0,0x10001,1,3 --model=peppy
+ -a "${A}" --wp=0 --sys_props 0,0x10001,3 --model=peppy
test_update "Full update (--archive, model=unknown)" \
"${FROM_IMAGE}.ap" "!Unsupported model: 'unknown'" \
- -a "${A}" --wp=0 --sys_props 0,0x10001,1,3 --model=unknown
+ -a "${A}" --wp=0 --sys_props 0,0x10001,3 --model=unknown
test_update "Full update (--archive, model=customtip, signature_id=CL)" \
"${FROM_IMAGE}.al" "${LINK_BIOS}" \
- -a "${A}" --wp=0 --sys_props 0,0x10001,1,3 --model=customtip \
+ -a "${A}" --wp=0 --sys_props 0,0x10001,3 --model=customtip \
--signature_id=customtip-cl
test_update "Full update (--archive, detect-model)" \
"${FROM_IMAGE}.ap" "${PEPPY_BIOS}" \
- -a "${A}" --wp=0 --sys_props 0,0x10001,1,3 \
+ -a "${A}" --wp=0 --sys_props 0,0x10001,3 \
--programmer raiden_debug_spi:target=AP
test_update "Full update (--archive, detect-model, unsupported FRID)" \
"${FROM_IMAGE}.av" "!Unsupported FRID: 'Google_Voxel'" \
- -a "${A}" --wp=0 --sys_props 0,0x10001,1,3 \
+ -a "${A}" --wp=0 --sys_props 0,0x10001,3 \
--programmer raiden_debug_spi:target=AP
echo "*** Test Item: Detect model (--archive, --detect-model-only)"
@@ -511,12 +502,12 @@ cmp "${TMP}.model.out" <(echo peppy)
CL_TAG="cl" PATH="${A}/bin:${PATH}" \
test_update "Full update (-a, model=customtip, fake VPD)" \
"${FROM_IMAGE}.al" "${LINK_BIOS}" \
- -a "${A}" --wp=0 --sys_props 0,0x10001,1,3 --model=customtip
+ -a "${A}" --wp=0 --sys_props 0,0x10001,3 --model=customtip
# Custom label + Unibuild without default keys
test_update "Full update (--a, model=customtip, no VPD, no default keys)" \
"${FROM_IMAGE}.al" "!Need VPD set for custom" \
- -a "${A}" --wp=0 --sys_props 0,0x10001,1,3 --model=customtip
+ -a "${A}" --wp=0 --sys_props 0,0x10001,3 --model=customtip
# Custom label + Unibuild with default keys as model name
cp -f "${TMP}.to/rootkey" "${A}/keyset/rootkey.customtip"
@@ -524,7 +515,7 @@ cp -f "${TMP}.to/VBLOCK_A" "${A}/keyset/vblock_A.customtip"
cp -f "${TMP}.to/VBLOCK_B" "${A}/keyset/vblock_B.customtip"
test_update "Full update (-a, model=customtip, no VPD, default keys)" \
"${FROM_IMAGE}.al" "${LINK_BIOS}" \
- -a "${A}" --wp=0 --sys_props 0,0x10001,1,3 --model=customtip
+ -a "${A}" --wp=0 --sys_props 0,0x10001,3 --model=customtip
# Test special programmer
if type flashrom >/dev/null 2>&1; then
@@ -532,7 +523,7 @@ if type flashrom >/dev/null 2>&1; then
cp -f "${FROM_IMAGE}" "${TMP}.emu"
"${FUTILITY}" update --programmer \
dummy:emulate=VARIABLE_SIZE,image="${TMP}".emu,size=8388608 \
- -i "${TO_IMAGE}" --wp=0 --sys_props 0,0x10001,1,3 >&2
+ -i "${TO_IMAGE}" --wp=0 --sys_props 0,0x10001,3 >&2
cmp "${TMP}.emu" "${TMP}.expected.full"
fi
@@ -547,7 +538,7 @@ if type cbfstool >/dev/null 2>&1; then
-f "${TMP}.smm" -t raw -b 0x1bf000
test_update "Legacy update (--quirks eve_smm_store)" \
"${TMP}.from.smm" "${TMP}.expected.full_smm" \
- -i "${TO_IMAGE}" --wp=0 --sys_props 0,0x10001,1 \
+ -i "${TO_IMAGE}" --wp=0 --sys_props 0,0x10001 \
--quirks eve_smm_store
echo "min_platform_version=3" >"${TMP}.quirk"
@@ -560,7 +551,7 @@ if type cbfstool >/dev/null 2>&1; then
-f "${TMP}.quirk" -t raw
test_update "Full update (failure by CBFS quirks)" \
"${FROM_IMAGE}" "!Need platform version >= 3 (current is 2)" \
- -i "${TO_IMAGE}.quirk" --wp=0 --sys_props 0,0x10001,1,2
+ -i "${TO_IMAGE}.quirk" --wp=0 --sys_props 0,0x10001,2
fi
rm -rf "${TMP}"*