Added auto update

gf-arm64
ShaneTheAwesome 5 years ago
parent e627bc0421
commit cc4e20bce1

@ -0,0 +1,28 @@
# Config file for update.sh
stuff_repo="
fdroid https://f-droid.org/repo
microg https://microg.org/fdroid/repo
nanolx https://nanolx.org/fdroid/repo
";
stuff_download="
/system/app/AppleNLPBackend/AppleNLPBackend.apk repo fdroid/org.microg.nlp.backend.apple
/system/app/AuroraDroid/AuroraDroid.apk gitlab AuroraOSS/auroradroid .apk
/system/app/AuroraStore/AuroraStore.apk gitlab AuroraOSS/AuroraStore .apk
/system/app/DejaVuNLPBackend/DejaVuNLPBackend.apk repo fdroid/org.fitchfamily.android.dejavu
/system/app/LocalGSMNLPBackend/LocalGSMNLPBackend.apk repo fdroid/org.fitchfamily.android.gsmlocation
/system/app/LocalWiFiNLPBackend/LocalWiFiNLPBackend.apk repo fdroid/org.fitchfamily.android.wifi_backend
/system/app/MicroGGSFProxy/MicroGGSFProxy.apk repo microg/com.google.android.gsf
/system/app/MozillaUnifiedNLPBackend/MozillaUnifiedNLPBackend.apk repo fdroid/org.microg.nlp.backend.ichnaea
/system/app/NominatimNLPBackend/NominatimNLPBackend.apk repo fdroid/org.microg.nlp.backend.nominatim
/system/app/RadioCellsNLPBackend/RadioCellsNLPBackend.apk repo fdroid/org.openbmap.unifiedNlp
/system/priv-app/AuroraServices/AuroraServices.apk gitlab AuroraOSS/AuroraServices .apk
/system/priv-app/FakeStore/FakeStore.apk repo microg/com.android.vending
/system/priv-app/MicroGDroidGuard/MicroGDroidGuard.apk repo microg/org.microg.gms.droidguard
/system/priv-app/MicroGGMSCore/MicroGGMSCore.apk repo microg/com.google.android.gms
/system/priv-app/MicroGUNLP/MicroGUNLP.apk repo fdroid/com.google.android.gms
/system/priv-app/PatchPhonesky/PatchPhonesky.apk repo nanolx/com.android.vending
/util/aapt-arm direct https://gitlab.com/Nanolx/NanoDroid/raw/master/tools/aapt.arm
/util/aapt-x86 direct https://gitlab.com/Nanolx/NanoDroid/raw/master/tools/aapt.x86
";

@ -1,5 +1,144 @@
# Update all binary assets
#!/bin/sh
# Update all assets
# Delete all assets
workdir="$(pwd)";
cd "$workdir";
confdir="$workdir/conf";
resdldir="$workdir/resdl";
tmpdir="$workdir/tmp";
# Download new ones
echo " ";
echo "-- Minimal MicroG Update Script --";
echo "-- The Essentials Only MicroG Pack --";
echo "-- From The MicroG Telegram group --";
echo "-- No, not the Official one --";
# Bin check
for bin in awk chmod cp curl grep head jq mv rm sort unzip wget; do
[ "$(which $bin)" ] || { echo " "; echo "FATAL: No $bin found"; return 1; }
done;
echo " ";
echo " - Cleaning...";
rm -Rf "$tmpdir";
mkdir -p "$tmpdir" "$tmpdir/repos";
# Config
[ -f "$confdir/resdl-download.txt" ] || { echo " "; echo "FATAL: No resdl-download.txt found"; return 1; }
cp "$confdir/resdl-download.txt" "$tmpdir/resdl";
chmod 777 "$tmpdir/resdl";
. "$tmpdir/resdl";
if [ $@ ]; then
echo " ";
echo " - Building update list...";
stuff_download_new="";
stuff_repo_new="";
for include in $@; do
echo " -- CONFIG: Including $include";
stuff_download_new="$stuff_download_new
$(echo "$stuff_download" | grep -Pi "^[ \t]*[^ \t]*$include[^ \t]*[ \t]+")
";
done;
stuff_download="$(echo "$stuff_download_new" | sort -u)";
repo_apps="$(echo "$stuff_download" | grep -P "^[ \t]*[^ \t]+[ \t]+repo[ \t]+")";
for repo in $(echo "$repo_apps" | awk '{ print $3 }'); do
stuff_repo_new="$stuff_repo_new
$(echo "$stuff_repo" | grep -P "^[ \t]*$(dirname "$repo")[ \t]+" | head -n1)
";
done;
stuff_repo="$(echo "$stuff_repo_new" | sort -u)";
fi;
# Download repos
echo " ";
echo " - Downloading repos...";
for repo in $(echo "$stuff_repo" | awk '{ print $1 }'); do
line="$(echo "$stuff_repo" | grep -P "^[ \t]*$repo[ \t]+" | head -n1)";
repourl="$(echo "$line" | awk '{ print $2 }')";
[ "$repourl" ] || { echo "ERROR: Repo $repo has no URL"; continue; }
echo " -- REPO: Downloading repo $repo from URL $repourl";
wget -q --show-progress "$repourl/index-v1.jar" -O "$tmpdir/repos/$repo.jar";
[ -f "$tmpdir/repos/$repo.jar" ] || { echo "ERROR: Repo $repo failed to download"; continue; }
unzip -oq "$tmpdir/repos/$repo.jar" "index-v1.json" -d "$tmpdir/repos/";
[ -f "$tmpdir/repos/index-v1.json" ] || { echo "ERROR: Repo $repo failed to unzip"; continue; }
mv -f "$tmpdir/repos/index-v1.json" "$tmpdir/repos/$repo.json";
[ -f "$tmpdir/repos/$repo.json" ] || { echo "ERROR: Repo $repo failed to rename"; continue; }
done;
# Download assets
echo " ";
echo " - Downloading assets...";
for object in $(echo "$stuff_download" | awk '{ print $1 }'); do
line="$(echo "$stuff_download" | grep -P "^[ \t]*$object[ \t]+" | head -n1)";
source="$(echo "$line" | awk '{ print $2 }')";
objectpath="$(echo "$line" | awk '{ print $3 }')";
objectarg="$(echo "$line" | awk '{ print $4 }')";
[ "$objectpath" ] || { echo "ERROR: $object has no source arguments"; continue; }
echo " -- ASSET: Downloading object $object from source $source";
case "$source" in
local)
objectfile="$objectpath";
;;
*)
case "$source" in
direct)
objecturl="$objectpath";
;;
github)
echo " ---- Getting GitHub URL for $object";
objecturl="$(curl -sN "https://api.github.com/repos/$objectpath/releases" | jq -r '.[].assets[].browser_download_url' | grep "$objectarg$" | head -n1)";
;;
gitlab)
echo " ---- Getting GitLab project ID for $object";
objectid="$(curl -sN https://gitlab.com/$objectpath | grep "Project ID" | head -n1 | awk '{ print $3 }')";
[ "$objectid" ] || { echo "ERROR: $object gitlab project ID not found"; continue; }
echo " ---- Getting GitLab URL for $object";
objecturl="https://gitlab.com/$objectpath$(curl -sN https://gitlab.com/api/v4/projects/$objectid/repository/tags | jq -r '.[].release.description' | grep -Po "(/uploads/[^()]*$objectarg)" | head -n1 | tr -d "()")";
;;
repo)
objectrepo="$(dirname "$objectpath")";
objectpackage="$(basename "$objectpath")";
[ "$objectrepo" -a "$objectpackage" ] || { echo "ERROR: $object has no valid repo arguments"; continue; }
[ -f "$tmpdir/repos/$objectrepo.json" ] || { echo "ERROR: $object repo $objectrepo does not exist"; continue; }
echo " ---- Getting repo URL for $object from repo $repo";
objectserver="$(jq -r '.repo.address' "$tmpdir/repos/$objectrepo.json")";
if [ "$objectarg" ]; then
echo " ---- Getting object for arch $objectarg";
objectserverfile="$(jq -r --arg pkg "$objectpackage" --arg arch "$objectarg" '[.packages[$pkg][] | select (.nativecode[]==$arch).apkName][]' "$tmpdir/repos/$objectrepo.json" | head -n1)";
else
objectserverfile="$(jq -r --arg pkg "$objectpackage" '.packages[$pkg][].apkName' "$tmpdir/repos/$objectrepo.json" | head -n1)";
fi;
[ "$objectserver" -a "$objectserverfile" ] || { echo "ERROR: $object has no URL available"; continue; }
objecturl="$objectserver/$objectserverfile";
;;
*)
echo "ERROR: Source $source for $object unknown";
;;
esac;
[ "$objecturl" ] || { echo "ERROR: $object has no URL available"; continue; }
objectname="$(basename "$objecturl")";
objectfile="$tmpdir/$objectname";
echo " ---- Downloading $objecturl to $objectfile";
wget -q --show-progress "$objecturl" -O "$objectfile";
[ -f "$objectfile" ] || { echo "ERROR: $object failed to download"; continue; }
;;
esac;
mkdir -p "$resdldir/$(dirname "$object")";
mv -f "$objectfile" "$resdldir/$object";
[ -f "$resdldir/$object" ] || { echo "ERROR: $object failed to copy"; continue; }
done;
# Done
echo " ";
echo " - Done!";
rm -Rf "$tmpdir";
echo " ";

Loading…
Cancel
Save