From 075e7b4df615a60a2302a849d1e9c8a65312dece Mon Sep 17 00:00:00 2001 From: Max Rees Date: Sat, 11 Apr 2020 19:11:29 -0500 Subject: resignapk: support re-signing APKINDEX --- resignapk.in | 38 ++++++++++++++++++++++++++++++-------- 1 file changed, 30 insertions(+), 8 deletions(-) diff --git a/resignapk.in b/resignapk.in index 9479c3d..fd558a2 100644 --- a/resignapk.in +++ b/resignapk.in @@ -93,19 +93,33 @@ cleanup() { } trap cleanup INT EXIT -for apk in "$@"; do +for apk; do case "$apk" in /*) ;; *) apk="$PWD/$apk";; esac apk_basename="${apk##*/}" - msg 'Splitting .apk...' + case "$apk" in + *.apk) + signpart=control.tar.gz + filetype=.apk + ;; + */APKINDEX.tar.gz) + signpart=data.tar.gz + filetype=APKINDEX + ;; + *) + die 'Unknown file type' + ;; + esac + + msg "Splitting $filetype..." tmpdir="$(mktemp -td resignapk.XXXXXX)" cd "$tmpdir" abuild-gzsplit < "$apk" - if [ -n "$packager" ]; then + if [ -n "$packager" ] && [ "$filetype" = .apk ]; then msg 'Updating control.tar.gz' tar -xf control.tar.gz ctrl_files="$(tar -tf control.tar.gz)" @@ -116,16 +130,24 @@ for apk in "$@"; do | gzip -9 > control.tar.gz fi - abuild-sign -k "$privkey" -p "$pubkey" -q control.tar.gz + abuild-sign -k "$privkey" -p "$pubkey" -q "$signpart" msg 'Old signatures:' list_sigs signatures.tar.gz msg 'New signatures:' - list_sigs control.tar.gz + list_sigs "$signpart" - [ -n "$inplace" ] && msg 'Updating apk' || msg 'Creating apk.new' - [ -n "$inplace" ] || apk="$apk.new" + if [ -n "$inplace" ]; then + msg "Updating $filetype" + else + msg "Creating $filetype.new" + apk="$apk.new" + fi - cat control.tar.gz data.tar.gz > "$apk" + if [ "$filetype" = APKINDEX ]; then + mv data.tar.gz "$apk" + else + cat control.tar.gz data.tar.gz > "$apk" + fi cleanup done -- cgit v1.2.3-60-g2f50