@@ -12,30 +12,61 @@ cd webui
1212npm run build || npm install && npm run build
1313cd ..
1414
15- download_bin () {
16- local suffix=" $1 "
17- local target=" $2 "
18- local url=$( echo " $RELEASE_JSON " | jq -r " .assets[] | select(.name | endswith(\" $suffix \" )) | .browser_download_url" )
15+ # Read versions from version.properties
16+ get_ver () {
17+ [ -f version.properties ] && grep " ^$1 [[:space:]]*=" version.properties | cut -d' =' -f2 | xargs | sed ' s/^"//;s/"$//'
18+ }
19+
20+ download_assets () {
21+ local repo=" $1 "
22+ local tag=" $2 "
23+ shift 2
24+ local patterns=(" $@ " )
25+
26+ local url=" https://api.github.com/repos/$repo /releases"
27+ if [[ " $tag " == " latest" ]]; then
28+ url=" $url /latest"
29+ else
30+ url=" $url /tags/$tag "
31+ fi
32+
33+ local release_json=$( curl -s " $url " )
1934
20- echo " Downloading $target from $url "
21- curl -L " $url " -o " module/bin/$target "
35+ for pattern in " ${patterns[@]} " ; do
36+ local regex=" ${pattern// \* / .* } "
37+ local asset_data=$( echo " $release_json " | jq -r " .assets[] | select(.name | test(\" $regex \" )) | .name + \" \t\" + .browser_download_url" | head -n 1)
38+ if [[ -z " $asset_data " ]]; then
39+ echo " Error: Could not find asset matching $pattern in $repo $tag "
40+ continue
41+ fi
42+ local asset_name=$( echo " $asset_data " | cut -f1)
43+ local download_url=$( echo " $asset_data " | cut -f2)
44+ echo " Downloading $asset_name from $download_url "
45+ curl -L " $download_url " -o " module/bin/$asset_name "
46+ done
2247}
2348
49+ VERSION_KPATCH_NEXT=$( get_ver " kpatch-next" )
50+ VERSION_KPATCH_NEXT=" ${VERSION_KPATCH_NEXT:- latest} "
51+ VERSION_MAGISKBOOT=$( get_ver " magiskboot" )
52+ VERSION_MAGISKBOOT=" ${VERSION_MAGISKBOOT:- latest} "
53+
2454# Fetch KPatch-Next binaries
2555if [[ ! -f " module/bin/kpatch" || ! -f " module/bin/kpimg" || ! -f " module/bin/kptools" ]]; then
26- URL=" https://api.github.com/repos/KernelSU-Next/KPatch-Next/releases"
27- RELEASE_JSON=$( curl -s " $URL " | jq ' .[0]' )
56+ download_assets " KernelSU-Next/KPatch-Next" " $VERSION_KPATCH_NEXT " " kpatch-android" " kpimg-linux" " kptools-android"
2857
29- download_bin " kpatch-android" " kpatch"
30- download_bin " kpimg-linux " " kpimg "
31- download_bin " kptools-android " " kptools "
58+ mv module/bin/ kpatch-android module/bin/ kpatch
59+ mv module/bin/kptools-android module/bin/kptools
60+ mv module/bin/kpimg-linux module/bin/kpimg
3261fi
3362
3463# Fetch magiskboot
3564if [[ ! -f " module/bin/magiskboot" ]]; then
36- URL=" https://api.github.com/repos/topjohnwu/Magisk/releases"
37- RELEASE_JSON=$( curl -s " $URL " | jq ' .[0]' )
38- download_bin " Magisk*.apk" " magiskboot"
65+ download_assets " topjohnwu/Magisk" " $VERSION_MAGISKBOOT " " Magisk*.apk"
66+
67+ APK=$( ls module/bin/Magisk* .apk | head -n 1)
68+ unzip -p " $APK " ' lib/arm64-v8a/libmagiskboot.so' > " module/bin/magiskboot"
69+ rm " $APK "
3970fi
4071
4172# zip module
0 commit comments