You've already forked Zygisk-Assistant
mirror of
https://github.com/snake-4/Zygisk-Assistant.git
synced 2025-09-06 06:37:02 +00:00
52 lines
1.6 KiB
Bash
52 lines
1.6 KiB
Bash
TMPDIR_FOR_VERIFY="$TMPDIR/.vunzip"
|
|
mkdir "$TMPDIR_FOR_VERIFY"
|
|
|
|
abort_verify() {
|
|
ui_print "*********************************************************"
|
|
ui_print "! $1"
|
|
ui_print "! This zip may be corrupted, please try downloading again"
|
|
abort "*********************************************************"
|
|
}
|
|
|
|
# extract <zip> <file> <target dir> <junk paths>
|
|
extract() {
|
|
zip=$1
|
|
file=$2
|
|
dir=$3
|
|
junk_paths=$4
|
|
[ -z "$junk_paths" ] && junk_paths=false
|
|
opts="-o"
|
|
[ $junk_paths = true ] && opts="-oj"
|
|
|
|
file_path=""
|
|
hash_path=""
|
|
if [ $junk_paths = true ]; then
|
|
file_path="$dir/$(basename "$file")"
|
|
hash_path="$TMPDIR_FOR_VERIFY/$(basename "$file").sha256"
|
|
else
|
|
file_path="$dir/$file"
|
|
hash_path="$TMPDIR_FOR_VERIFY/$file.sha256"
|
|
fi
|
|
|
|
unzip $opts "$zip" "$file" -d "$dir" >&2
|
|
[ -f "$file_path" ] || abort_verify "$file not exists"
|
|
|
|
unzip $opts "$zip" "$file.sha256" -d "$TMPDIR_FOR_VERIFY" >&2
|
|
[ -f "$hash_path" ] || abort_verify "$file.sha256 not exists"
|
|
|
|
(echo "$(cat "$hash_path") $file_path" | sha256sum -c -s -) || abort_verify "Failed to verify $file"
|
|
ui_print "- Verified $file" >&1
|
|
}
|
|
|
|
file="META-INF/com/google/android/update-binary"
|
|
file_path="$TMPDIR_FOR_VERIFY/$file"
|
|
hash_path="$file_path.sha256"
|
|
unzip -o "$ZIPFILE" "META-INF/com/google/android/*" -d "$TMPDIR_FOR_VERIFY" >&2
|
|
[ -f "$file_path" ] || abort_verify "$file not exists"
|
|
if [ -f "$hash_path" ]; then
|
|
(echo "$(cat "$hash_path") $file_path" | sha256sum -c -s -) || abort_verify "Failed to verify $file"
|
|
ui_print "- Verified $file" >&1
|
|
else
|
|
ui_print "- Download from Magisk app"
|
|
fi
|