boklm pushed to branch main at The Tor Project / Applications / tor-browser-build
Commits:
- 
86e52868
by Nicolas Vigier at 2025-07-31T16:51:43+02:00
5 changed files:
- + tools/signing/generate-keys/generate-android-signing-key
- + tools/signing/generate-keys/sign-aab
- + tools/signing/generate-keys/sign-apk
- + tools/signing/generate-keys/verify-aab
- + tools/signing/generate-keys/verify-apk
Changes:
| 1 | +#!/bin/bash
 | |
| 2 | + | |
| 3 | +# This script generate a new Android signing key in the android-key directory
 | |
| 4 | +# Before running it you should edit the key_* variables for setting the
 | |
| 5 | +# key name, password, etc...
 | |
| 6 | + | |
| 7 | +set -e
 | |
| 8 | +script_dir=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )
 | |
| 9 | +test -n "$set_config_only" || cd "$script_dir"
 | |
| 10 | + | |
| 11 | +key_alias=tor-vpn
 | |
| 12 | +key_password=123456
 | |
| 13 | +key_dname='CN=Tor VPN, O=The Tor Project'
 | |
| 14 | + | |
| 15 | +test -n "$set_config_only" && return 0
 | |
| 16 | + | |
| 17 | +mkdir android-key
 | |
| 18 | +cd android-key
 | |
| 19 | + | |
| 20 | +keytool -genkeypair -keysize 4096 -sigalg SHA512withRSA -keyalg RSA \
 | |
| 21 | +        -storetype PKCS12 -alias "$key_alias" -dname "$key_dname" \
 | |
| 22 | +        -validity 36500 -keystore "${key_alias}-private.p12" \
 | |
| 23 | +        -storepass "$key_password" -v
 | |
| 24 | + | |
| 25 | +# Export the generated certificate into a PEM file
 | |
| 26 | +keytool -exportcert -rfc -alias "$key_alias" -file "${key_alias}-public.pem" \
 | |
| 27 | +        -keystore "${key_alias}-private.p12" -storepass "$key_password" -v | 
| 1 | +#!/bin/bash
 | |
| 2 | +# This script will sign the aab given as argument, as signed.aab in the
 | |
| 3 | +# current directory, using the key config from generate-android-signing-key
 | |
| 4 | + | |
| 5 | +set -e
 | |
| 6 | +script_dir=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )
 | |
| 7 | +set_config_only=1
 | |
| 8 | +source "$script_dir/generate-android-signing-key"
 | |
| 9 | + | |
| 10 | +if test "$#" -ne 1; then
 | |
| 11 | +  echo "Wrong number of arguments" >&2
 | |
| 12 | +  exit 1
 | |
| 13 | +fi
 | |
| 14 | + | |
| 15 | +jarsigner -keystore "$script_dir/android-key/${key_alias}-private.p12" \
 | |
| 16 | +          -storepass "${key_password}" -signedjar signed.aab -verbose \
 | |
| 17 | +          "$1" "${key_alias}"
 | |
| 18 | +echo "Signed $1 in signed.aab" | 
| 1 | +#!/bin/bash
 | |
| 2 | + | |
| 3 | +# This script will sign the apk given as argument, as signed.apk in the
 | |
| 4 | +# current directory, using the key config from generate-android-signing-key
 | |
| 5 | + | |
| 6 | +set -e
 | |
| 7 | +script_dir=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )
 | |
| 8 | +set_config_only=1
 | |
| 9 | +source "$script_dir/generate-android-signing-key"
 | |
| 10 | + | |
| 11 | +if test "$#" -ne 1; then
 | |
| 12 | +  echo "Wrong number of arguments" >&2
 | |
| 13 | +  exit 1
 | |
| 14 | +fi
 | |
| 15 | + | |
| 16 | +apksigner sign --ks "$script_dir/android-key/${key_alias}-private.p12" \
 | |
| 17 | +               --ks-pass "pass:${key_password}" --out signed.apk "$1"
 | |
| 18 | +echo "Signed $1 in signed.apk" | 
| 1 | +#!/bin/bash
 | |
| 2 | +# This script takes no argument and will verify the signature of the
 | |
| 3 | +# file signed.aab in the currenty directory, using the key config from
 | |
| 4 | +# generate-android-signing-key
 | |
| 5 | + | |
| 6 | +set -e
 | |
| 7 | +script_dir=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )
 | |
| 8 | +set_config_only=1
 | |
| 9 | +source "$script_dir/generate-android-signing-key"
 | |
| 10 | + | |
| 11 | +if test "$#" -ne 0; then
 | |
| 12 | +  echo "Wrong number of arguments" >&2
 | |
| 13 | +  exit 1
 | |
| 14 | +fi
 | |
| 15 | + | |
| 16 | +jarsigner -keystore "$script_dir/android-key/${key_alias}-private.p12" \
 | |
| 17 | +          -storepass "${key_password}" -verify -verbose -certs signed.aab \
 | |
| 18 | +          -verbose "${key_alias}" | 
| 1 | +#!/bin/bash
 | |
| 2 | +# This script takes no argument and will verify the signature of the
 | |
| 3 | +# file signed.apk in the currenty directory, using the key config from
 | |
| 4 | +# generate-android-signing-key
 | |
| 5 | + | |
| 6 | +set -e
 | |
| 7 | +script_dir=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )
 | |
| 8 | +set_config_only=1
 | |
| 9 | +source "$script_dir/generate-android-signing-key"
 | |
| 10 | + | |
| 11 | +if test "$#" -ne 0; then
 | |
| 12 | +  echo "Wrong number of arguments" >&2
 | |
| 13 | +  exit 1
 | |
| 14 | +fi
 | |
| 15 | + | |
| 16 | +jarsigner -keystore "$script_dir/android-key/${key_alias}-private.p12" \
 | |
| 17 | +          -storepass "${key_password}" -verify -verbose -certs signed.apk \
 | |
| 18 | +          -verbose "${key_alias}" |