aboutsummaryrefslogtreecommitdiffstats
path: root/util
diff options
context:
space:
mode:
Diffstat (limited to 'util')
-rwxr-xr-xutil/extract-version-hash-from-factory.bash19
-rw-r--r--util/server.conf3
-rwxr-xr-xutil/sign-and-upload.bash19
3 files changed, 41 insertions, 0 deletions
diff --git a/util/extract-version-hash-from-factory.bash b/util/extract-version-hash-from-factory.bash
new file mode 100755
index 0000000..a9e0778
--- /dev/null
+++ b/util/extract-version-hash-from-factory.bash
@@ -0,0 +1,19 @@
+#!/bin/bash
+set -e
+
+URL="$1"
+# Expecting URL like https://dl.google.com/dl/android/aosp/crosshatch-qp1a.191005.007-factory-2989a08d.zip
+[[ -n $URL ]] || { echo "Usage: $0 URL" >&2; exit 1; }
+
+D="$(mktemp -d)"
+trap 'rm -rf "$D"' INT TERM EXIT
+cd "$D"
+
+curl -#o out.zip "$URL"
+bsdtar --strip-components 1 -xvf out.zip
+bsdtar -xvf image-*.zip boot.img
+abootimg -x boot.img
+unlz4 zImage Image
+version="$(strings Image | grep '^Linux version [^%]' | head -n 1)"
+[[ -n $version ]] || { echo "ERROR: no proper version in image" >&2; exit 1; }
+printf '\n==========================================\n\n%s|%s\n' "$(echo "$version" | sha256sum | cut -d ' ' -f 1)" "$version"
diff --git a/util/server.conf b/util/server.conf
new file mode 100644
index 0000000..dcf2fa1
--- /dev/null
+++ b/util/server.conf
@@ -0,0 +1,3 @@
+WEB_SERVER=metheny.zx2c4.com
+SERVER_PATH=/var/www/htdocs/download.wireguard.com/android-module/
+SIGNING_KEY="$HOME/Projects/yubihsm/keys/wireguard-android-module.sec"
diff --git a/util/sign-and-upload.bash b/util/sign-and-upload.bash
new file mode 100755
index 0000000..6d80694
--- /dev/null
+++ b/util/sign-and-upload.bash
@@ -0,0 +1,19 @@
+#!/bin/bash
+set -ex
+
+BASE="$(readlink -f "$(dirname "$(readlink -f "$0")")")"
+source "$BASE/server.conf"
+SSH_OPTS=( -q -o ControlMaster=auto -o ControlPath=../.ssh-deployment.sock )
+
+cd "$BASE/../out"
+sha256sum *.ko > modules.txt
+signify -S -e -s "$SIGNING_KEY" -m modules.txt
+rm modules.txt
+
+ssh "${SSH_OPTS[@]}" -Nf "$WEB_SERVER"
+ssh -t "${SSH_OPTS[@]}" $WEB_SERVER "sudo -u nginx -v"
+rsync -aizm --delete --rsh="ssh ${SSH_OPTS[*]}" --rsync-path="sudo -n -u nginx rsync" ./ "$WEB_SERVER:$SERVER_PATH"
+ssh -t "${SSH_OPTS[@]}" "$WEB_SERVER" "sudo chown -R nginx:nginx '$SERVER_PATH'"
+ssh -t "${SSH_OPTS[@]}" "$WEB_SERVER" "sudo find '$SERVER_PATH' -type f -exec chmod 640 {} \;; sudo find '$SERVER_PATH' -type d -exec chmod 750 {} \;;"
+ssh -O exit "${SSH_OPTS[@]}" "$WEB_SERVER"
+