diff --git a/decrypt-keys b/decrypt-keys index b621d1e02c..fbd34cdea9 100755 --- a/decrypt-keys +++ b/decrypt-keys @@ -6,6 +6,8 @@ source "$(dirname ${BASH_SOURCE[0]})/common.sh" [[ $# -ne 1 ]] && user_error "expected 1 argument (key directory)" +export PATH="$PWD/prebuilts/build-tools/linux-x86/bin:$PATH" + cd $1 [[ "${password+defined}" = defined ]] || read -rp "Enter key passphrase (empty if none): " -s password @@ -24,13 +26,14 @@ for key in ${signing_keys[@]}; do fi done -if [[ -f avb.pem ]]; then +for key in avb.pem avb_mldsa.pem; do + [[ -f $key ]] || continue if [[ -n $password ]]; then - openssl pkcs8 -topk8 -in avb.pem -passin env:password -out "$tmp/avb.pem" -nocrypt + openssl pkcs8 -topk8 -in $key -passin env:password -out "$tmp/$key" -nocrypt else - openssl pkcs8 -topk8 -in avb.pem -out "$tmp/avb.pem" -nocrypt + openssl pkcs8 -topk8 -in $key -out "$tmp/$key" -nocrypt fi -fi +done unset password diff --git a/encrypt-keys b/encrypt-keys index 90ab9b0cda..ecee2c3e17 100755 --- a/encrypt-keys +++ b/encrypt-keys @@ -6,6 +6,8 @@ source "$(dirname ${BASH_SOURCE[0]})/common.sh" [[ $# -ne 1 ]] && user_error "expected 1 argument (key directory)" +export PATH="$PWD/prebuilts/build-tools/linux-x86/bin:$PATH" + cd $1 read -rp "Enter old key passphrase (empty if none): " -s password @@ -35,13 +37,14 @@ for key in ${signing_keys[@]}; do fi done -if [[ -f avb.pem ]]; then +for key in avb.pem avb_mldsa.pem; do + [[ -f $key ]] || continue if [[ -n $password ]]; then - openssl pkcs8 -topk8 -in avb.pem -passin env:password -out "$tmp/avb.pem" -passout env:new_password -scrypt + openssl pkcs8 -topk8 -in $key -passin env:password -out "$tmp/$key" -passout env:new_password -scrypt else - openssl pkcs8 -topk8 -in avb.pem -out "$tmp/avb.pem" -passout env:new_password -scrypt + openssl pkcs8 -topk8 -in $key -out "$tmp/$key" -passout env:new_password -scrypt fi -fi +done unset password unset new_password diff --git a/generate-keys b/generate-keys index 5c38a53eed..790f9b8cfd 100755 --- a/generate-keys +++ b/generate-keys @@ -4,6 +4,8 @@ source "$(dirname ${BASH_SOURCE[0]})/common.sh" devices=($*) +export PATH="$PWD/prebuilts/build-tools/linux-x86/bin:$PATH" + for device in ${devices[@]}; do mkdir -p keys/$device cd keys/$device @@ -13,5 +15,7 @@ for device in ${devices[@]}; do done openssl genrsa 4096 | openssl pkcs8 -topk8 -scrypt -out avb.pem ../../external/avb/avbtool.py extract_public_key --key avb.pem --output avb_pkmd.bin + openssl genpkey -algorithm ML-DSA-65 | openssl pkcs8 -topk8 -scrypt -out avb_mldsa.pem + ../../external/avb/avbtool.py extract_public_key --key avb_mldsa.pem --output avb_mldsa_pkmd.bin cd ../.. done diff --git a/generate-release.sh b/generate-release.sh index 736dfd1d3b..32b9974868 100755 --- a/generate-release.sh +++ b/generate-release.sh @@ -70,10 +70,17 @@ else user_error "$DEVICE is not supported by the release script" fi -AVB_PKMD="$KEY_DIR/avb_pkmd.bin" -AVB_ALGORITHM=SHA256_RSA4096 +if [[ $DEVICE == @(grizzly|cubs|kodiak|yogi) ]]; then + AVB_KEY="$KEY_DIR/avb_mldsa.pem" + AVB_PKMD="$KEY_DIR/avb_mldsa_pkmd.bin" + AVB_ALGORITHM=MLDSA65 +else + AVB_KEY="$KEY_DIR/avb.pem" + AVB_PKMD="$KEY_DIR/avb_pkmd.bin" + AVB_ALGORITHM=SHA256_RSA4096 +fi -sign_target_files_apks -o -d "$KEY_DIR" --avb_vbmeta_key "$KEY_DIR/avb.pem" --avb_vbmeta_algorithm $AVB_ALGORITHM \ +sign_target_files_apks -o -d "$KEY_DIR" --avb_vbmeta_key "$AVB_KEY" --avb_vbmeta_algorithm $AVB_ALGORITHM \ --extra_apks com.android.adbd.apex="$KEY_DIR/releasekey" \ --extra_apex_payload_key com.android.adbd.apex="$KEY_DIR/avb.pem" \ --extra_apks AdServicesApk.apk="$KEY_DIR/releasekey" \