aboutsummaryrefslogtreecommitdiff
path: root/scripts/blob-upgrade-test.sh
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/blob-upgrade-test.sh')
-rwxr-xr-xscripts/blob-upgrade-test.sh58
1 files changed, 58 insertions, 0 deletions
diff --git a/scripts/blob-upgrade-test.sh b/scripts/blob-upgrade-test.sh
new file mode 100755
index 0000000..8836233
--- /dev/null
+++ b/scripts/blob-upgrade-test.sh
@@ -0,0 +1,58 @@
+#!/bin/bash
+set -e
+set -x
+
+if [ -z "$PHONE" ]; then
+ echo "usage: PHONE=<serial> ./blob_upgrade_test.sh"
+ exit 1
+fi
+
+# Reset the device.
+adb -s $PHONE reboot-bootloader || true
+cat ../../../prebuilts/locked_loaders/*$PHONE* \
+ blob-v1.ec.RW_A.hex.signed blob-v1.ec.RW_B.hex.signed > /tmp/ec.hex
+../../../prebuilts/linaro/4.9/arm-none-eabi-gcc/bin/arm-none-eabi-objcopy \
+ -I ihex -O binary --gap-fill=0xff --pad-to=0xc0000 \
+ /tmp/ec.hex /tmp/ec.bin
+../../../core/nugget/util/rescue2/bin2rec /tmp/ec.bin /tmp/ec.rec
+fastboot stage /tmp/ec.rec
+fastboot oem citadel rescue
+fastboot reboot -w
+adb -s $PHONE wait-for-device
+adb -s $PHONE root
+adb -s $PHONE shell /vendor/bin/hw/citadel_updater --suzyq 1 || true
+adb -s $PHONE shell /vendor/bin/hw/citadel_updater -v || grep red_v0.0.7669-d7a39373f+
+
+
+# Generate key test.
+adb -s $PHONE shell /system/bin/keystore_cli_v2 delete-all
+adb -s $PHONE shell /system/bin/keystore_cli_v2 list
+adb -s $PHONE shell /system/bin/keystore_cli_v2 generate \
+ --name=k1 --seclevel=strongbox
+adb -s $PHONE push dummy.plaintext /data
+adb -s $PHONE shell /system/bin/keystore_cli_v2 encrypt \
+ --name=k1 --in=/data/dummy.plaintext --out=/data/dummy.ciphertext \
+ --seclevel=strongbox
+adb -s $PHONE shell /system/bin/keystore_cli_v2 decrypt \
+ --name=k1 --in=/data/dummy.ciphertext --out=/data/dummy.decrypted \
+ --seclevel=strongbox
+adb -s $PHONE pull /data/dummy.decrypted /tmp
+diff /tmp/dummy.decrypted dummy.plaintext
+
+# Upgrade firmware.
+adb -s $PHONE root
+adb -s $PHONE push ../../../core/nugget/build/red/ec.bin /data/local/tmp/ec.bin
+adb -s $PHONE exec-out '/vendor/bin/hw/citadel_updater -v --rw --ro \
+ /data/local/tmp/ec.bin'
+adb -s $PHONE exec-out \
+ '/vendor/bin/hw/citadel_updater --enable_ro --enable_rw --reboot ""'
+adb -s $PHONE shell rm /data/local/tmp/ec.bin
+adb -s $PHONE shell /vendor/bin/hw/citadel_updater --suzyq 1 || true
+adb -s $PHONE shell /vendor/bin/hw/citadel_updater -lv | grep `cd ../../../core/nugget/; git log --oneline | head -1 | cut -d ' ' -f 1`
+
+# Test upgraded blob.
+adb -s $PHONE shell /system/bin/keystore_cli_v2 decrypt \
+ --name=k1 --in=/data/dummy.ciphertext --out=/data/dummy.decrypted \
+ --seclevel=strongbox
+
+echo "PASS"