From 4590f1992eaa0242f4fe3df63ca239055661148c Mon Sep 17 00:00:00 2001 From: TanyaEleventhGoddess Date: Fri, 9 Aug 2019 15:07:17 +0200 Subject: [PATCH 1/4] Added gitignore --- .gitignore | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 .gitignore diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..302e773 --- /dev/null +++ b/.gitignore @@ -0,0 +1,17 @@ +BromiteWebView/system/ +Full/gsync/K/ +Full/gsync/L/ +Full/gsync/M/ +Full/gsync/N/ +Full/gsync/O/ +Full/gsync/P/ +Full/gsync/common/ +Full/swipe/ +Full/system/app/ +Full/system/priv-app/ +OsmAnd/system/ +data/f-droid.org.index-v1.json +data/fdroid.bromite.org.index-v1.json +data/guardianproject.info.index-v1.json +data/microg.org.index-v1.json +data/nanolx.org.index-v1.json From 263d2b1923d7e44f8caf5cc62981da9e92e877c6 Mon Sep 17 00:00:00 2001 From: TanyaEleventhGoddess Date: Fri, 9 Aug 2019 18:24:15 +0200 Subject: [PATCH 2/4] Fixed GitLab downloading issue and updated gitignore --- .gitignore | 15 +++++++++++++++ data/build-package.download | 5 +++-- 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/.gitignore b/.gitignore index 302e773..27ea208 100644 --- a/.gitignore +++ b/.gitignore @@ -1,15 +1,30 @@ BromiteWebView/system/ +BromiteWebView/system Full/gsync/K/ +Full/gsync/K Full/gsync/L/ +Full/gsync/L Full/gsync/M/ +Full/gsync/M Full/gsync/N/ +Full/gsync/N Full/gsync/O/ +Full/gsync/O Full/gsync/P/ +Full/gsync/P Full/gsync/common/ +Full/gsync/common Full/swipe/ +Full/swipe Full/system/app/ +Full/system/app Full/system/priv-app/ +Full/system/priv-app +NanoDroid-*.zip +NanoDroid-*.zip.sha256 +NanoDroid-*.zip.sha256.sig OsmAnd/system/ +OsmAnd/system data/f-droid.org.index-v1.json data/fdroid.bromite.org.index-v1.json data/guardianproject.info.index-v1.json diff --git a/data/build-package.download b/data/build-package.download index 1c76e02..9da7e9a 100644 --- a/data/build-package.download +++ b/data/build-package.download @@ -211,8 +211,9 @@ grab_apk_from_github () { } grab_apk_from_gitlab () { - APK_URL="https://gitlab.com$(curl -s -N "https://gitlab.com/${1}/-/tags" | \ - gawk -F\" '/\.apk/{print $6 ; exit}')" + APK_URL=$(curl -s -N "https://gitlab.com/${1}/-/tags" | grep '.apk' | head -n 1) + APK_URL=${APK_URL##*a href=\"} + APK_URL="https://gitlab.com/${APK_URL%\">*}" APK_DEST="${CWD}/Full/system/${2}/${3}" rm -f "${APK_DEST}/${3}.apk.gz" From c1c6446a63720e5f39ed273a17b469e565e26d2f Mon Sep 17 00:00:00 2001 From: TanyaEleventhGoddess Date: Sat, 10 Aug 2019 00:55:05 +0200 Subject: [PATCH 3/4] Turned most variables in lowercase, moved repo files into a single folder, written better code for functions, fixed again incorrect gitlab download function and added a debug mode --- .gitignore | 7 +- build-package | 24 ++- data/build-package.common | 46 +++-- data/build-package.database | 172 ++++++++-------- data/build-package.download | 259 ++++++++++++------------ data/build-package.report | 378 ++++++++++++++++++------------------ data/build-package.update | 14 +- 7 files changed, 465 insertions(+), 435 deletions(-) diff --git a/.gitignore b/.gitignore index 27ea208..66a42f4 100644 --- a/.gitignore +++ b/.gitignore @@ -25,8 +25,5 @@ NanoDroid-*.zip.sha256 NanoDroid-*.zip.sha256.sig OsmAnd/system/ OsmAnd/system -data/f-droid.org.index-v1.json -data/fdroid.bromite.org.index-v1.json -data/guardianproject.info.index-v1.json -data/microg.org.index-v1.json -data/nanolx.org.index-v1.json +data/repo/ +data/repo diff --git a/build-package b/build-package index db838b7..67a5b24 100755 --- a/build-package +++ b/build-package @@ -4,8 +4,28 @@ VERSION=22.3.20190805 CWD=$(readlink -m "${BASH_SOURCE[0]}") CWD=$(dirname "${CWD}") -for funcfile in pkg update common download database report; do - source "${CWD}/data/build-package.${funcfile}" || exit 1 +# DIRS +datafolder="${CWD}/data" +repofolder="$datafolder/repo" + +# AppsFolder +appsfolder[0]="Full" +appsfolder[1]="${appsfolder[0]}/system" +appsfolder[2]="${CWD}/${appsfolder[1]}" +appsfolder[3]="${appsfolder[1]}/app" +appsfolder[4]="${appsfolder[1]}/priv-app" +appsfolder[5]="${appsfolder[0]}/gsync" +appsfolder[6]="${CWD}/${appsfolder[5]}" +appsfolder[7]="${appsfolder[0]}/swipe" +appsfolder[8]="${CWD}/${appsfolder[7]}" +appsfolder[9]="OsmAnd/system" +appsfolder[10]="${CWD}/${appsfolder[9]}" +appsfolder[11]="BromiteWebView/system" +appsfolder[12]="${CWD}/${appsfolder[11]}" + + +for funcfile in pkg update common download database report; do + source "$datafolder/build-package.${funcfile}" || exit 1 done [[ -z ${1} ]] && show_help diff --git a/data/build-package.common b/data/build-package.common index 7172558..a1bb2aa 100644 --- a/data/build-package.common +++ b/data/build-package.common @@ -1,13 +1,17 @@ #!/bin/bash -NANODROID_MISSING_FILES=0 -NANODROID_BROKEN_FILES=0 +nanodroid_missing_files=0 +nanodroid_broken_files=0 missing_database="" +debug_message () { + [ "$DEBUG" = '1' ] && echo "$(tput setaf 3)$1$(tput sgr 0)" +} + check_nanodroid () { for file in ${file_database[@]}; do if [[ ! -f ${CWD}/${file} ]]; then - NANODROID_MISSING_FILES=1 + nanodroid_missing_files=1 missing_database=(${missing_database[@]} ${file}) else case ${file} in @@ -32,7 +36,7 @@ check_nanodroid () { ;; * ) - NANODROID_BROKEN_FILES=1 + nanodroid_broken_files=1 broken_database=(${broken_database[@]} ${file}) rm -f ${CWD}/${file} ;; @@ -48,7 +52,7 @@ check_nanodroid () { ;; * ) - NANODROID_BROKEN_FILES=1 + nanodroid_broken_files=1 broken_database=(${broken_database[@]} ${file}) rm -f ${CWD}/${file} ;; @@ -56,17 +60,17 @@ check_nanodroid () { fi done - if [[ ${NANODROID_MISSING_FILES} -ne 0 ]]; then + if [[ ${nanodroid_missing_files} -ne 0 ]]; then echo -e "\nThe following files are missing:\n" printf '%s\n' ${missing_database[@]} | uniq fi - if [[ ${NANODROID_BROKEN_FILES} -ne 0 ]]; then + if [[ ${nanodroid_broken_files} -ne 0 ]]; then echo -e "\nThe following files are broken (and will be removed):\n" printf '%s\n' ${broken_database[@]} | uniq fi - if [[ ${NANODROID_MISSING_FILES} -eq 0 && ${NANODROID_BROKEN_FILES} -eq 0 ]]; then + if [[ ${nanodroid_missing_files} -eq 0 && ${nanodroid_broken_files} -eq 0 ]]; then echo -e "\nNanoDroid correctly populated\n" return 0 else return 1 @@ -92,18 +96,18 @@ progress () { } zip_add () { - FILE_PATH="${CWD}/${1}" - FILE_MASK="${2}" - ZIP_PATH="${CWD}/${ZIP}" + local file_path="${CWD}/${1}" + local file_mask="${2}" + local zip_path="${CWD}/${ZIP}" - cd "${FILE_PATH}" + cd "${file_path}" - if [ -z "${FILE_MASK}" ]; then - zip -qr "${ZIP_PATH}" . || exit 1 - elif [ -d "${FILE_MASK}" ]; then - zip -qr "${ZIP_PATH}" "${FILE_MASK}" || exit 1 + if [ -z "${file_mask}" ]; then + zip -qr "${zip_path}" . || exit 1 + elif [ -d "${file_mask}" ]; then + zip -qr "${zip_path}" "${file_mask}" || exit 1 else - zip -q "${ZIP_PATH}" ${FILE_MASK} || exit 1 + zip -q "${zip_path}" ${file_mask} || exit 1 fi cd "${CWD}" @@ -112,17 +116,17 @@ zip_add () { zip_add_setup () { cd "${CWD}/doc" - ZIP_PATH="${CWD}/${ZIP}" + local zip_path="${CWD}/${ZIP}" case ${1} in 0 ) sed -e 's/nanodroid_overlay=1/nanodroid_overlay=0/' -i .nanodroid-setup - zip -q "${ZIP_PATH}" .nanodroid-setup || exit 1 + zip -q "${zip_path}" .nanodroid-setup || exit 1 sed -e 's/nanodroid_overlay=0/nanodroid_overlay=1/' -i .nanodroid-setup ;; 1 ) - zip -q "${ZIP_PATH}" .nanodroid-setup || exit 1 + zip -q "${zip_path}" .nanodroid-setup || exit 1 ;; esac @@ -158,7 +162,7 @@ increase_version_number () { increase_module_version () { for module in Full microG FDroid BromiteWebView OsmAnd; do eval $(grep versionCode "${PWD}"/"${module}"/module.prop) - versionCode=$((versionCode+1)) + local versionCode=$((versionCode+1)) sed -e "s/versionCode.*/versionCode=${versionCode}/" \ -i "${CWD}/${module}/module.prop" done diff --git a/data/build-package.database b/data/build-package.database index 123fd6a..bce5180 100644 --- a/data/build-package.database +++ b/data/build-package.database @@ -107,90 +107,90 @@ fd_OSMAND_CONTOURLINES=(fdroid net.osmand.srtmPlugin.paid app OsmAnd_ContourLine ### file_database=( - Full/system/app/Alarmio/Alarmio.apk.gz - Full/system/app/Amaze/Amaze.apk.gz - Full/system/app/AnysoftKeyboard/AnysoftKeyboard.apk.gz - Full/system/app/AuroraDroid/AuroraDroid.apk.gz - Full/system/app/AuroraStore/AuroraStore.apk.gz - Full/system/app/Blokada/Blokada.apk.gz - Full/system/app/DroidGuard/DroidGuard.apk.gz - Full/system/app/FaceSlim/FaceSlim.apk.gz - Full/system/app/FDroid/FDroid.apk.gz - Full/system/app/HackersKeyboard/HackersKeyboard.apk.gz - Full/system/app/K9Mail/K9Mail.apk.gz - Full/system/app/KeePassDX/KeePassDX.apk.gz - Full/system/app/MPV/MPV.apk.gz - Full/system/app/NewPipe/NewPipe.apk.gz - Full/system/app/nlpBackendApple/nlpBackendApple.apk.gz - Full/system/app/nlpBackendDejavu/nlpBackendDejavu.apk.gz - Full/system/app/nlpBackendIchnaea/nlpBackendIchnaea.apk.gz - Full/system/app/nlpBackendNominatim/nlpBackendNominatim.apk.gz - Full/system/app/nlpBackendRadiocell/nlpBackendRadiocell.apk.gz - Full/system/app/Oandbackup/Oandbackup.apk.gz - Full/system/app/Odyssey/Odyssey.apk.gz - Full/system/app/OpenCamera/OpenCamera.apk.gz - Full/system/app/OpenKeyChain/OpenKeyChain.apk.gz - Full/system/app/OpenLauncher/OpenLauncher.apk.gz - Full/system/app/OpenVPN/OpenVPN.apk.gz - Full/system/app/Orbot/Orbot.apk.gz - Full/system/app/PrivacyBrowser/PrivacyBrowser.apk.gz - Full/system/app/QKSMS/QKSMS.apk.gz - Full/system/app/SimpleCalendar/SimpleCalendar.apk.gz - Full/system/app/SimpleGallery/SimpleGallery.apk.gz - Full/system/app/SmartPackKernelManager/SmartPackKernelManager.apk.gz - Full/system/app/Substratum/Substratum.apk.gz - Full/system/app/Termux/Termux.apk.gz - Full/system/app/TorBrowser/TorBrowser.apk.gz - Full/system/app/Twidere/Twidere.apk.gz - Full/system/app/XDALabs/XDALabs.apk.gz - - Full/system/priv-app/AuroraServices/AuroraServices.apk.gz - Full/system/priv-app/FakeStore/FakeStore.apk.gz - Full/system/priv-app/FDroidPrivileged/FDroidPrivileged.apk.gz - Full/system/priv-app/GmsCore/GmsCore.apk.gz - Full/system/priv-app/GsfProxy/GsfProxy.apk.gz - Full/system/priv-app/Phonesky/Phonesky.apk.gz - Full/system/priv-app/YalpStore/YalpStore.apk.gz - - Full/gsync/common/app/GoogleCalendarSync/GoogleCalendarSync.apk.gz - Full/gsync/K/app/GoogleContactsSync/GoogleContactsSync.apk.gz - Full/gsync/K/priv-app/GoogleBackupTransport/GoogleBackupTransport.apk.gz - Full/gsync/L/app/GoogleContactsSync/GoogleContactsSync.apk.gz - Full/gsync/L/priv-app/GoogleBackupTransport/GoogleBackupTransport.apk.gz - Full/gsync/M/app/GoogleContactsSync/GoogleContactsSync.apk.gz - Full/gsync/M/priv-app/GoogleBackupTransport/GoogleBackupTransport.apk.gz - Full/gsync/N/app/GoogleContactsSync/GoogleContactsSync.apk.gz - Full/gsync/N/priv-app/GoogleBackupTransport/GoogleBackupTransport.apk.gz - Full/gsync/O/app/GoogleContactsSync/GoogleContactsSync.apk.gz - Full/gsync/O/priv-app/GoogleBackupTransport/GoogleBackupTransport.apk.gz - Full/gsync/P/app/GoogleContactsSync/GoogleContactsSync.apk.gz - Full/gsync/P/priv-app/GoogleBackupTransport/GoogleBackupTransport.apk.gz - - BromiteWebView/system/app/BromiteWebView_arm/BromiteWebView_arm.apk.gz - BromiteWebView/system/app/BromiteWebView_arm64/BromiteWebView_arm64.apk.gz - BromiteWebView/system/app/BromiteWebView_x86/BromiteWebView_x86.apk.gz - - OsmAnd/system/app/OsmAnd/OsmAnd.apk.gz - OsmAnd/system/app/OsmAnd_ContourLines/OsmAnd_ContourLines.apk.gz - - Full/swipe/arm/libjni_keyboarddecoder.so - Full/swipe/arm/libjni_latinimegoogle.so_19 - Full/swipe/arm/libjni_latinimegoogle.so_21 - Full/swipe/arm/libjni_latinimegoogle.so_22 - Full/swipe/arm/libjni_latinimegoogle.so_23 - Full/swipe/arm/libjni_latinimegoogle.so_27 - Full/swipe/arm/libjni_latinimegoogle.so_28 - - Full/swipe/arm64/libjni_keyboarddecoder.so - Full/swipe/arm64/libjni_latinimegoogle.so_21 - Full/swipe/arm64/libjni_latinimegoogle.so_22 - Full/swipe/arm64/libjni_latinimegoogle.so_23 - Full/swipe/arm64/libjni_latinimegoogle.so_27 - Full/swipe/arm64/libjni_latinimegoogle.so_28 - - Full/swipe/x86/libjni_keyboarddecoder.so - Full/swipe/x86/libjni_latinimegoogle.so - - Full/swipe/x86_64/libjni_keyboarddecoder.so - Full/swipe/x86_64/libjni_latinimegoogle.so + ${appsfolder[3]}/Alarmio/Alarmio.apk.gz + ${appsfolder[3]}/Amaze/Amaze.apk.gz + ${appsfolder[3]}/AnysoftKeyboard/AnysoftKeyboard.apk.gz + ${appsfolder[3]}/AuroraDroid/AuroraDroid.apk.gz + ${appsfolder[3]}/AuroraStore/AuroraStore.apk.gz + ${appsfolder[3]}/Blokada/Blokada.apk.gz + ${appsfolder[3]}/DroidGuard/DroidGuard.apk.gz + ${appsfolder[3]}/FaceSlim/FaceSlim.apk.gz + ${appsfolder[3]}/FDroid/FDroid.apk.gz + ${appsfolder[3]}/HackersKeyboard/HackersKeyboard.apk.gz + ${appsfolder[3]}/K9Mail/K9Mail.apk.gz + ${appsfolder[3]}/KeePassDX/KeePassDX.apk.gz + ${appsfolder[3]}/MPV/MPV.apk.gz + ${appsfolder[3]}/NewPipe/NewPipe.apk.gz + ${appsfolder[3]}/nlpBackendApple/nlpBackendApple.apk.gz + ${appsfolder[3]}/nlpBackendDejavu/nlpBackendDejavu.apk.gz + ${appsfolder[3]}/nlpBackendIchnaea/nlpBackendIchnaea.apk.gz + ${appsfolder[3]}/nlpBackendNominatim/nlpBackendNominatim.apk.gz + ${appsfolder[3]}/nlpBackendRadiocell/nlpBackendRadiocell.apk.gz + ${appsfolder[3]}/Oandbackup/Oandbackup.apk.gz + ${appsfolder[3]}/Odyssey/Odyssey.apk.gz + ${appsfolder[3]}/OpenCamera/OpenCamera.apk.gz + ${appsfolder[3]}/OpenKeyChain/OpenKeyChain.apk.gz + ${appsfolder[3]}/OpenLauncher/OpenLauncher.apk.gz + ${appsfolder[3]}/OpenVPN/OpenVPN.apk.gz + ${appsfolder[3]}/Orbot/Orbot.apk.gz + ${appsfolder[3]}/PrivacyBrowser/PrivacyBrowser.apk.gz + ${appsfolder[3]}/QKSMS/QKSMS.apk.gz + ${appsfolder[3]}/SimpleCalendar/SimpleCalendar.apk.gz + ${appsfolder[3]}/SimpleGallery/SimpleGallery.apk.gz + ${appsfolder[3]}/SmartPackKernelManager/SmartPackKernelManager.apk.gz + ${appsfolder[3]}/Substratum/Substratum.apk.gz + ${appsfolder[3]}/Termux/Termux.apk.gz + ${appsfolder[3]}/TorBrowser/TorBrowser.apk.gz + ${appsfolder[3]}/Twidere/Twidere.apk.gz + ${appsfolder[3]}/XDALabs/XDALabs.apk.gz + + ${appsfolder[4]}/AuroraServices/AuroraServices.apk.gz + ${appsfolder[4]}/FakeStore/FakeStore.apk.gz + ${appsfolder[4]}/FDroidPrivileged/FDroidPrivileged.apk.gz + ${appsfolder[4]}/GmsCore/GmsCore.apk.gz + ${appsfolder[4]}/GsfProxy/GsfProxy.apk.gz + ${appsfolder[4]}/Phonesky/Phonesky.apk.gz + ${appsfolder[4]}/YalpStore/YalpStore.apk.gz + + ${appsfolder[5]}/common/app/GoogleCalendarSync/GoogleCalendarSync.apk.gz + ${appsfolder[5]}/K/app/GoogleContactsSync/GoogleContactsSync.apk.gz + ${appsfolder[5]}/K/priv-app/GoogleBackupTransport/GoogleBackupTransport.apk.gz + ${appsfolder[5]}/L/app/GoogleContactsSync/GoogleContactsSync.apk.gz + ${appsfolder[5]}/L/priv-app/GoogleBackupTransport/GoogleBackupTransport.apk.gz + ${appsfolder[5]}/M/app/GoogleContactsSync/GoogleContactsSync.apk.gz + ${appsfolder[5]}/M/priv-app/GoogleBackupTransport/GoogleBackupTransport.apk.gz + ${appsfolder[5]}/N/app/GoogleContactsSync/GoogleContactsSync.apk.gz + ${appsfolder[5]}/N/priv-app/GoogleBackupTransport/GoogleBackupTransport.apk.gz + ${appsfolder[5]}/O/app/GoogleContactsSync/GoogleContactsSync.apk.gz + ${appsfolder[5]}/O/priv-app/GoogleBackupTransport/GoogleBackupTransport.apk.gz + ${appsfolder[5]}/P/app/GoogleContactsSync/GoogleContactsSync.apk.gz + ${appsfolder[5]}/P/priv-app/GoogleBackupTransport/GoogleBackupTransport.apk.gz + + ${appsfolder[11]}/app/BromiteWebView_arm/BromiteWebView_arm.apk.gz + ${appsfolder[11]}/app/BromiteWebView_arm64/BromiteWebView_arm64.apk.gz + ${appsfolder[11]}/app/BromiteWebView_x86/BromiteWebView_x86.apk.gz + + ${appsfolder[9]}/app/OsmAnd/OsmAnd.apk.gz + ${appsfolder[9]}/app/OsmAnd_ContourLines/OsmAnd_ContourLines.apk.gz + + ${appsfolder[7]}/arm/libjni_keyboarddecoder.so + ${appsfolder[7]}/arm/libjni_latinimegoogle.so_19 + ${appsfolder[7]}/arm/libjni_latinimegoogle.so_21 + ${appsfolder[7]}/arm/libjni_latinimegoogle.so_22 + ${appsfolder[7]}/arm/libjni_latinimegoogle.so_23 + ${appsfolder[7]}/arm/libjni_latinimegoogle.so_27 + ${appsfolder[7]}/arm/libjni_latinimegoogle.so_28 + + ${appsfolder[7]}/arm64/libjni_keyboarddecoder.so + ${appsfolder[7]}/arm64/libjni_latinimegoogle.so_21 + ${appsfolder[7]}/arm64/libjni_latinimegoogle.so_22 + ${appsfolder[7]}/arm64/libjni_latinimegoogle.so_23 + ${appsfolder[7]}/arm64/libjni_latinimegoogle.so_27 + ${appsfolder[7]}/arm64/libjni_latinimegoogle.so_28 + + ${appsfolder[7]}/x86/libjni_keyboarddecoder.so + ${appsfolder[7]}/x86/libjni_latinimegoogle.so + + ${appsfolder[7]}/x86_64/libjni_keyboarddecoder.so + ${appsfolder[7]}/x86_64/libjni_latinimegoogle.so ) diff --git a/data/build-package.download b/data/build-package.download index 9da7e9a..0802d43 100644 --- a/data/build-package.download +++ b/data/build-package.download @@ -4,11 +4,11 @@ # Michael Bryant / Shadow53 # https://gitlab.com/Shadow53/android-zip-builder -REPO_FDROID="https://f-droid.org/repo" -REPO_GUARDIAN="https://guardianproject.info/fdroid/repo" -REPO_MICROG="https://microg.org/fdroid/repo" -REPO_NANOLX="https://nanolx.org/fdroid/repo" -REPO_BROMITE="https://fdroid.bromite.org/fdroid/repo" +repo_fdroid="https://f-droid.org/repo" +repo_guardian="https://guardianproject.info/fdroid/repo" +repo_microg="https://microg.org/fdroid/repo" +repo_nanolx="https://nanolx.org/fdroid/repo" +repo_bromite="https://fdroid.bromite.org/fdroid/repo" # check dependencies for dep in gawk curl sha256sum jq gzip; do @@ -19,218 +19,225 @@ for dep in gawk curl sha256sum jq gzip; do done index_update_required () { - INDEX_FILE=${1} + index_file=${1} - test ! -f ${INDEX_FILE} && return 0 - test $(stat --format=%Z ${INDEX_FILE}) -le $(($(date +%s) - 3600)) && return 0 - test "$(file -b ${INDEX_FILE})" == "empty" && return 0 + test ! -f ${index_file} && return 0 + test $(stat --format=%Z ${index_file}) -le $(($(date +%s) - 3600)) && return 0 + test "$(file -b ${index_file})" == "empty" && return 0 return 1 } check_sha256sum () { - INPUT="${1}" + local input="${1}" - IN_CHECKSUM="" - EX_CHECKSUM="${2}" + in_checksum="" + local ex_checksum="${2}" - case ${INPUT} in + case ${input} in *.gz ) - IN_CHECKSUM=$(gzip -dc ${INPUT} 2>/dev/null | sha256sum | gawk '{print $1}') + in_checksum=$(gzip -dc ${input} 2>/dev/null | sha256sum | gawk '{print $1}') ;; * ) - IN_CHECKSUM=$(sha256sum ${INPUT} 2>/dev/null | gawk '{print $1}') + in_checksum=$(sha256sum ${input} 2>/dev/null | gawk '{print $1}') ;; esac - [[ ${IN_CHECKSUM} == ${EX_CHECKSUM} ]] && return 0 || return 1 + [[ ${in_checksum} == ${ex_checksum} ]] && return 0 || return 1 } update_index () { - INDEX_JAR=${1} - INDEX_JSON="${CWD}/data/$(basename ${INDEX_JAR} .jar).json" - INDEX_REPO=${2} + local index_jar=${1} + local index_json="$repofolder/$(basename ${index_jar} .jar).json" + local index_repo=${2} - if index_update_required ${INDEX_JSON}; then - curl -sSL -o "${INDEX_JAR}" "${INDEX_REPO}/index-v1.jar" || error " failed to update repo index" + if index_update_required ${index_json}; then + debug_message " curl -sSL -o \"${index_jar#$CWD/}\" \"${index_repo}/index-v1.jar\"" + curl -sSL -o "${index_jar}" "${index_repo}/index-v1.jar" || error " failed to update repo index" - unzip -q ${INDEX_JAR} index-v1.json -d "${CWD}/data/" - mv "${CWD}/data/index-v1.json" "${INDEX_JSON}" - rm -f ${INDEX_JAR} + unzip -q ${index_jar} index-v1.json -d "$repofolder/" + mv "$repofolder/index-v1.json" "${index_json}" + rm -f ${index_jar} fi } update_indices () { echo "+++ upating Repo Indices" echo " ++ F-Droid" - update_index "${CWD}/data/$(awk -F/ '{print $3}' <<< ${REPO_FDROID}).index-v1.jar" "${REPO_FDROID}" + [ ! -d "$repofolder" ] && rm -rf "$repofolder" && mkdir -p "$repofolder" + update_index "$repofolder/$(awk -F/ '{print $3}' <<< ${repo_fdroid}).index-v1.jar" "${repo_fdroid}" echo " ++ Guardian Project" - update_index "${CWD}/data/$(awk -F/ '{print $3}' <<< ${REPO_GUARDIAN}).index-v1.jar" "${REPO_GUARDIAN}" + update_index "$repofolder/$(awk -F/ '{print $3}' <<< ${repo_guardian}).index-v1.jar" "${repo_guardian}" echo " ++ microG" - update_index "${CWD}/data/$(awk -F/ '{print $3}' <<< ${REPO_MICROG}).index-v1.jar" "${REPO_MICROG}" + update_index "$repofolder/$(awk -F/ '{print $3}' <<< ${repo_microg}).index-v1.jar" "${repo_microg}" echo " ++ Nanolx" - update_index "${CWD}/data/$(awk -F/ '{print $3}' <<< ${REPO_NANOLX}).index-v1.jar" "${REPO_NANOLX}" + update_index "$repofolder/$(awk -F/ '{print $3}' <<< ${repo_nanolx}).index-v1.jar" "${repo_nanolx}" echo " ++ Bromite" - update_index "${CWD}/data/$(awk -F/ '{print $3}' <<< ${REPO_BROMITE}).index-v1.jar" "${REPO_BROMITE}" + update_index "$repofolder/$(awk -F/ '{print $3}' <<< ${repo_bromite}).index-v1.jar" "${repo_bromite}" } grab_apk_from_repo () { case "${1}" in fdroid ) - REPO=${REPO_FDROID} - REPO_P="F-Droid" + local repo=${repo_fdroid} + local repo_p="F-Droid" ;; guardian ) - REPO=${REPO_GUARDIAN} - REPO_P="Guardian Project" + local repo=${repo_guardian} + local repo_p="Guardian Project" ;; microg ) - REPO=${REPO_MICROG} - REPO_P="microG" + local repo=${repo_microg} + local repo_p="microG" ;; nanolx ) - REPO=${REPO_NANOLX} - REPO_P="Nanolx" + local repo=${repo_nanolx} + local repo_p="Nanolx" ;; bromite ) - REPO=${REPO_BROMITE} - REPO_P="Bromite" + local repo=${repo_bromite} + local repo_p="Bromite" ;; esac - DOMAIN="$(awk -F/ '{print $3}' <<< ${REPO})" - INDEX_FILE="${CWD}/data/${DOMAIN}.index-v1.json" + local domain="$(awk -F/ '{print $3}' <<< ${repo})" + index_file="$repofolder/${domain}.index-v1.json" - PKG_NAME="${2}" + local pkg_name="${2}" if [ -z "${5}" ]; then - APK_NAME="$(jq -r --arg pkg "${PKG_NAME}" '.packages[$pkg][0].apkName' ${INDEX_FILE})" - SHA_SUM="$(jq -r --arg pkg "${PKG_NAME}" '.packages[$pkg][0].hash' ${INDEX_FILE})" + local apk_name="$(jq -r --arg pkg "${pkg_name}" '.packages[$pkg][0].apkName' ${index_file})" + local sha_sum="$(jq -r --arg pkg "${pkg_name}" '.packages[$pkg][0].hash' ${index_file})" else - APK_NAME="$(jq -r --arg pkg "${PKG_NAME}" --arg arch "${5}" '[.packages[$pkg][] | select (.nativecode[]==$arch).apkName][0]' ${INDEX_FILE})" - SHA_SUM="$(jq -r --arg pkg "${PKG_NAME}" --arg arch "${5}" '[.packages[$pkg][] | select (.nativecode[]==$arch).hash][0]' ${INDEX_FILE})" + local apk_name="$(jq -r --arg pkg "${pkg_name}" --arg arch "${5}" '[.packages[$pkg][] | select (.nativecode[]==$arch).apkName][0]' ${index_file})" + local sha_sum="$(jq -r --arg pkg "${pkg_name}" --arg arch "${5}" '[.packages[$pkg][] | select (.nativecode[]==$arch).hash][0]' ${index_file})" fi - case "${PKG_NAME}" in + case "${pkg_name}" in com.android.webview ) - APK_DEST="${CWD}/BromiteWebView/system/${3}/${4}" + local apk_dest="${appsfolder[12]}/${3}/${4}" ;; net.osmand.plus | net.osmand.srtmPlugin.paid ) - APK_DEST="${CWD}/OsmAnd/system/${3}/${4}" + local apk_dest="${appsfolder[10]}/${3}/${4}" ;; com.google.android.gms ) # XXX select mapbox build in official microG repo - APK_NAME="$(jq -r --arg pkg "${PKG_NAME}" '.packages[$pkg][0] | select (.versionName | contains("mapbox")).apkName' ${INDEX_FILE})" - SHA_SUM="$(jq -r --arg pkg "${PKG_NAME}" '.packages[$pkg][0] | select (.versionName | contains("mapbox")).hash' ${INDEX_FILE})" - APK_DEST="${CWD}/Full/system/${3}/${4}" + local apk_name="$(jq -r --arg pkg "${pkg_name}" '.packages[$pkg][0] | select (.versionName | contains("mapbox")).apkName' ${index_file})" + local sha_sum="$(jq -r --arg pkg "${pkg_name}" '.packages[$pkg][0] | select (.versionName | contains("mapbox")).hash' ${index_file})" + local apk_dest="${appsfolder[2]}/${3}/${4}" ;; * ) - APK_DEST="${CWD}/Full/system/${3}/${4}" + local apk_dest="${appsfolder[2]}/${3}/${4}" ;; esac - APK_URL="${REPO}/${APK_NAME}" + local apk_url="${repo}/${apk_name}" - if check_sha256sum "${APK_DEST}/${4}.apk.gz" "${SHA_SUM}"; then - echo -e "\nUp-to-Date from ${REPO_P} : ${4}.apk" - else echo -e "\nUpdating from ${REPO_P} : ${4}.apk" - mkdir -p "${APK_DEST}" - rm -f "${APK_DEST}/${4}.apk.gz" - curl -sSL -o "${APK_DEST}/${4}.apk" "${APK_URL}" + if check_sha256sum "${apk_dest}/${4}.apk.gz" "${sha_sum}"; then + echo -e "\nUp-to-Date from ${repo_p} : ${4}.apk" + else echo -e "\nUpdating from ${repo_p} : ${4}.apk" + mkdir -p "${apk_dest}" + rm -f "${apk_dest}/${4}.apk.gz" + debug_message "curl -sSL -o \"${apk_dest#$CWD/}/${4}.apk\" \"${apk_url}\"" + curl -sSL -o "${apk_dest}/${4}.apk" "${apk_url}" - if check_sha256sum "${APK_DEST}/${4}.apk" "${SHA_SUM}"; then + if check_sha256sum "${apk_dest}/${4}.apk" "${sha_sum}"; then echo " SHA256 hash of ${4}.apk is correct" - gzip "${APK_DEST}/${4}.apk" + gzip "${apk_dest}/${4}.apk" else echo -e " SHA256 hash of ${4}.apk is wrong!\ - \n expected : ${SHA_SUM}\ - \n got : ${IN_CHECKSUM}" - rm -f "${APK_DEST}/${4}.apk" + \n expected : ${sha_sum}\ + \n got : ${in_checksum}" + rm -f "${apk_dest}/${4}.apk" fi fi } grab_apk_from_url () { - APK_URL="${1}" - APK_DEST="${CWD}/Full/system/${2}/${3}" + local apk_url="${1}" + local apk_dest="${appsfolder[2]}/${2}/${3}" - rm -f "${APK_DEST}/${3}.apk.gz" + rm -f "${apk_dest}/${3}.apk.gz" - if [[ -f "${APK_DEST}/${3}.apk" ]]; then + if [[ -f "${apk_dest}/${3}.apk" ]]; then echo -e "\nUpdating from URL : ${3}.apk" else echo -e "\nDownloading from URL : ${3}.apk" - mkdir -p "${APK_DEST}" + mkdir -p "${apk_dest}" fi echo " Checking SHA256 hash not (yet) supported" - curl -sSL -o "${APK_DEST}/${3}.apk" "${APK_URL}" || \ - rm -f "${APK_DEST}/${3}.apk" + debug_message "curl -sSL -o \"${apk_dest#$CWD/}/${3}.apk\" \"${apk_url}\"" + curl -sSL -o "${apk_dest}/${3}.apk" "${apk_url}" || \ + rm -f "${apk_dest}/${3}.apk" - if [[ -f "${APK_DEST}/${3}.apk" ]]; then - gzip "${APK_DEST}/${3}.apk" + if [[ -f "${apk_dest}/${3}.apk" ]]; then + gzip "${apk_dest}/${3}.apk" else echo "error downloading ${3}" fi } grab_apk_from_github () { - APK_URL="$(curl -s -N "https://api.github.com/repos/${1}/releases" | \ + local apk_url="$(curl -s -N "https://api.github.com/repos/${1}/releases" | \ gawk -F\" '/browser_download_url.*apk/{print $4 ; exit}')" - APK_DEST="${CWD}/Full/system/${2}/${3}" + local apk_dest="${appsfolder[2]}/${2}/${3}" - rm -f "${APK_DEST}/${3}.apk.gz" + rm -f "${apk_dest}/${3}.apk.gz" - if [[ -f "${APK_DEST}/${3}.apk" ]]; then + if [[ -f "${apk_dest}/${3}.apk" ]]; then echo -e "\nUpdating from GitHub : ${3}.apk" else echo -e "\nDownloading from GitHub : ${3}.apk" - mkdir -p "${APK_DEST}" + mkdir -p "${apk_dest}" fi echo " Checking SHA256 hash not (yet) supported" - curl -sSL -o "${APK_DEST}/${3}.apk" "${APK_URL}" || \ - rm -f "${APK_DEST}/${3}.apk" + debug_message "curl -sSL -o \"${apk_dest#$CWD/}/${3}.apk\" \"${apk_url}\"" + curl -sSL -o "${apk_dest}/${3}.apk" "${apk_url}" || \ + rm -f "${apk_dest}/${3}.apk" - if [[ -f "${APK_DEST}/${3}.apk" ]]; then - gzip "${APK_DEST}/${3}.apk" + if [[ -f "${apk_dest}/${3}.apk" ]]; then + gzip "${apk_dest}/${3}.apk" else echo "error downloading ${3}" fi } grab_apk_from_gitlab () { - APK_URL=$(curl -s -N "https://gitlab.com/${1}/-/tags" | grep '.apk' | head -n 1) - APK_URL=${APK_URL##*a href=\"} - APK_URL="https://gitlab.com/${APK_URL%\">*}" - APK_DEST="${CWD}/Full/system/${2}/${3}" + local apk_url=$(curl -s -N "https://gitlab.com/${1}/-/tags" | grep '.apk' | head -n 1) + echo "$apk_url" + local apk_url=${apk_url%\">*.apk*} + local apk_url="https://gitlab.com${apk_url##*a href=\"}" + local apk_dest="${appsfolder[2]}/${2}/${3}" - rm -f "${APK_DEST}/${3}.apk.gz" + rm -f "${apk_dest}/${3}.apk.gz" - if [[ -f "${APK_DEST}/${3}.apk" ]]; then + if [[ -f "${apk_dest}/${3}.apk" ]]; then echo -e "\nUpdating from GitLab : ${3}.apk" else echo -e "\nDownloading from GitLab : ${3}.apk" - mkdir -p "${APK_DEST}" + mkdir -p "${apk_dest}" fi echo " Checking SHA256 hash not (yet) supported" - curl -sSL -o "${APK_DEST}/${3}.apk" "${APK_URL}" || \ - rm -f "${APK_DEST}/${3}.apk" + debug_message "curl -sSL -o \"${apk_dest#$CWD/}/${3}.apk\" \"${apk_url}\"" + curl -sSL -o "${apk_dest}/${3}.apk" "${apk_url}" || \ + rm -f "${apk_dest}/${3}.apk" - if [[ -f "${APK_DEST}/${3}.apk" ]]; then - gzip "${APK_DEST}/${3}.apk" + if [[ -f "${apk_dest}/${3}.apk" ]]; then + gzip "${apk_dest}/${3}.apk" else echo "error downloading ${3}" fi } @@ -238,38 +245,39 @@ grab_apk_from_gitlab () { grab_apk_from_ogapps () { case "${1}" in "com.google.android.syncadapters.calendar" ) - APK_URL="https://gitlab.opengapps.org/opengapps/all/raw/master/${2}/${1}/15/nodpi/2015080710.apk" - API_LETTER=common + local apk_url="https://gitlab.opengapps.org/opengapps/all/raw/master/${2}/${1}/15/nodpi/2015080710.apk" + local api_letter=common ;; * ) - APK_URL="https://gitlab.opengapps.org/opengapps/all/raw/master/${2}/${1}/${4}/nodpi/${4}.apk" + apk_url="https://gitlab.opengapps.org/opengapps/all/raw/master/${2}/${1}/${4}/nodpi/${4}.apk" case "${4}" in - 19 ) API_LETTER=K ;; - 21 ) API_LETTER=L ;; - 23 ) API_LETTER=M ;; - 24 ) API_LETTER=N ;; - 26 ) API_LETTER=O ;; - 28 ) API_LETTER=P ;; + 19 ) local api_letter=K ;; + 21 ) local api_letter=L ;; + 23 ) local api_letter=M ;; + 24 ) local api_letter=N ;; + 26 ) local api_letter=O ;; + 28 ) local api_letter=P ;; esac ;; esac - APK_DEST="${CWD}/Full/gsync/${API_LETTER}/${2}/${3}" + apk_dest="${appsfolder[6]}/${api_letter}/${2}/${3}" - if [[ -f "${APK_DEST}/${3}.apk.gz" ]]; then - echo -e "\nUpdating from OpenGApps : ${3}.apk [${API_LETTER}]" - rm -f "${APK_DEST}/${3}.apk.gz" - else echo -e "\nDownloading from OpenGApps: ${3}.apk [${API_LETTER}]" - mkdir -p "${APK_DEST}" + if [[ -f "${apk_dest}/${3}.apk.gz" ]]; then + echo -e "\nUpdating from OpenGApps : ${3}.apk [${api_letter}]" + rm -f "${apk_dest}/${3}.apk.gz" + else echo -e "\nDownloading from OpenGApps: ${3}.apk [${api_letter}]" + mkdir -p "${apk_dest}" fi echo " Checking SHA256 hash not (yet) supported" - curl -sSL -o "${APK_DEST}/${3}.apk" "${APK_URL}" || \ - rm -f "${APK_DEST}/${3}.apk" + debug_message "curl -sSL -o \"${apk_dest#$CWD/}/${3}.apk\" \"${apk_url}\"" + curl -sSL -o "${apk_dest}/${3}.apk" "${apk_url}" || \ + rm -f "${apk_dest}/${3}.apk" - [ -f "${APK_DEST}/${3}.apk" ] && gzip "${APK_DEST}/${3}.apk" + [ -f "${apk_dest}/${3}.apk" ] && gzip "${apk_dest}/${3}.apk" } grab_lib_from_ogapps () { @@ -278,35 +286,36 @@ grab_lib_from_ogapps () { arm64 | x86_64 ) LIBD=lib64 ;; esac - LIB_URL="https://gitlab.opengapps.org/opengapps/${3}/raw/master/${LIBD}/${2}/${1}?inline=false" - SWP_DEST="${CWD}/Full/swipe/${3}" + local lib_url="https://gitlab.opengapps.org/opengapps/${3}/raw/master/${LIBD}/${2}/${1}?inline=false" + local swp_dest="${appsfolder[8]}/${3}" if [[ "${4}" == "true" ]]; then - LIB_DEST="${SWP_DEST}/${1}_${2}" - else LIB_DEST="${SWP_DEST}/${1}" + local lib_dest="${swp_dest}/${1}_${2}" + else lib_dest="${swp_dest}/${1}" fi - if [[ -f "${LIB_DEST}" ]]; then + if [[ -f "${lib_dest}" ]]; then echo -e "\nUpdating from OpenGApps : ${1} [${2}:${3}]" else echo -e "\nDownloading from OpenGApps: ${1} [${2}:${3}]" - mkdir -p "${SWP_DEST}" + mkdir -p "${swp_dest}" fi echo " Checking SHA256 hash not (yet) supported" - curl -sSL -o "${LIB_DEST}" "${LIB_URL}" || \ - rm -f "${LIB_DEST}" + debug_message "curl -sSL -o \"${lib_dest#$CWD/}\" \"${lib_url}\"" + curl -sSL -o "${lib_dest}" "${lib_url}" || \ + rm -f "${lib_dest}" } grab_patches () { - BASE_URL="https://github.com/Lanchon/haystack/blob/master/patches" + base_url="https://github.com/Lanchon/haystack/blob/master/patches" - PATCH_URL="${BASE_URL}/${1}?raw=true" - PATCH_DST="${CWD}/patcher/dexpatcher/${2}" + patch_url="${base_url}/${1}?raw=true" + patch_dst="${CWD}/patcher/dexpatcher/${2}" echo -e "\nUpdating from Haystack : ${2}" echo " Checking SHA256 hash not (yet) supported" - curl -sSL -o "${PATCH_DST}" "${PATCH_URL}" || \ - rm -f "${PATCH_DST}" + curl -sSL -o "${patch_dst}" "${patch_url}" || \ + rm -f "${patch_dst}" } diff --git a/data/build-package.report b/data/build-package.report index 9f76a44..fd66497 100644 --- a/data/build-package.report +++ b/data/build-package.report @@ -1,6 +1,6 @@ #!/bin/bash -REPORT_FILE="${CWD}/NanoDroid_Report_${VERSION}" +report_file="${CWD}/NanoDroid_Report_${VERSION}" create_report_real () { @@ -9,18 +9,18 @@ create_report_real () { * ) ND_TYPE="Stable Release" ;; esac - rm -f "${REPORT_FILE}"* + rm -f "${report_file}"* echo "creating NanoDroid report: | NanoDroid Version: ${VERSION} | NanoDroid Type: ${ND_TYPE} - | NanoDroid Report: $(basename ${REPORT_FILE}) + | NanoDroid Report: $(basename ${report_file}) " echo "NanoDroid ${VERSION} package report [$(date +%Y%m%d-%H.%M.%S)] ========================================================== -" > ${REPORT_FILE} +" > ${report_file} for file in $(find ${CWD} -maxdepth 1 -type f | sort) \ $(find ${CWD} -mindepth 2 -type f | sort); do @@ -36,7 +36,7 @@ create_report_real () { esac done - sum_sign_package "${REPORT_FILE}" + sum_sign_package "${report_file}" } @@ -51,14 +51,14 @@ get_apk_info () { gzip -dc ${1} > ${APK} - APK_FILE=$(basename ${1}) - APK_PATH=$(dirname ${1} | sed -e 's/.*NanoDroid/NanoDroid/') - APK_NAME=$(aapt dump badging ${APK} 2>/dev/null | gawk -F \' '/^package: name/{print $2}') - APK_VERSION=$(aapt dump badging ${APK} 2>/dev/null | gawk -F \' '/^package: name/{print $6}') - APK_CODE=$(aapt dump badging ${APK} 2>/dev/null | gawk -F \' '/^package: name/{print $4}') - APK_PERM=$(aapt dump badging ${APK} 2>/dev/null | gawk -F \' '/^uses-permission:/{print $2}' | sort) - APK_SHA=$(sha256sum ${APK} | gawk '{print $1}') - GZIP_SHA=$(sha256sum ${1} | gawk '{print $1}') + apk_file=$(basename ${1}) + apk_path=$(dirname ${1} | sed -e 's/.*NanoDroid/NanoDroid/') + apk_name=$(aapt dump badging ${APK} 2>/dev/null | gawk -F \' '/^package: name/{print $2}') + apk_version=$(aapt dump badging ${APK} 2>/dev/null | gawk -F \' '/^package: name/{print $6}') + apk_code=$(aapt dump badging ${APK} 2>/dev/null | gawk -F \' '/^package: name/{print $4}') + apk_perm=$(aapt dump badging ${APK} 2>/dev/null | gawk -F \' '/^uses-permission:/{print $2}' | sort) + apk_sha=$(sha256sum ${APK} | gawk '{print $1}') + gzip_sha=$(sha256sum ${1} | gawk '{print $1}') case ${1} in *gsync/K* ) APK_TYPE="Google Sync Adapters [KitKat]" ;; @@ -72,18 +72,18 @@ get_apk_info () { *app* ) APK_TYPE="Generic Application" ;; esac - echo "Android Package: ${APK_NAME} - | Filename: ${APK_FILE} - | Origin: ${APK_PATH} + echo "Android Package: ${apk_name} + | Filename: ${apk_file} + | Origin: ${apk_path} | Type: ${APK_TYPE} - | Version: ${APK_VERSION} - | VersionCode: ${APK_CODE} - | SHA256 APK: ${APK_SHA} - | SHA256 GZip: ${GZIP_SHA}" >> ${REPORT_FILE} - - if [ -z "${APK_PERM}" ]; then - echo -e " | Permissions: none requested\n" >> ${REPORT_FILE} - else echo -e " | Permissions:\n$(printf "\t|- %s\n" ${APK_PERM})\n" >> ${REPORT_FILE} + | Version: ${apk_version} + | VersionCode: ${apk_code} + | SHA256 APK: ${apk_sha} + | SHA256 GZip: ${gzip_sha}" >> ${report_file} + + if [ -z "${apk_perm}" ]; then + echo -e " | Permissions: none requested\n" >> ${report_file} + else echo -e " | Permissions:\n$(printf "\t|- %s\n" ${apk_perm})\n" >> ${report_file} fi rm -f ${APK} @@ -92,214 +92,214 @@ get_apk_info () { get_lib_info () { - LIB_FILE=$(basename ${1}) - LIB_PATH=$(dirname ${1} | sed -e 's/.*NanoDroid/NanoDroid/') + local lib_file=$(basename ${1}) + local lib_path=$(dirname ${1} | sed -e 's/.*NanoDroid/NanoDroid/') - case ${LIB_FILE} in + case ${lib_file} in *libjni_latinimegoogle* ) LIB_NAME="Latin IME Google" ;; *libjni_keyboarddecoder*) LIB_NAME="Keyboard Decoder" ;; esac case ${1} in - *19* ) LIB_CODE="19 [KitKat]" ;; - *21* ) LIB_CODE="21 [Lollipop]" ;; - *22* ) LIB_CODE="22 [Lollipop]" ;; - *23* ) LIB_CODE="23 [Marshmallow]" ;; - *24* ) LIB_CODE="23 [Nougat] {24}" ;; - *25* ) LIB_CODE="23 [Nougat] {25}" ;; - *26* ) LIB_CODE="26 [Oreo] {26}" ;; - *27* ) LIB_CODE="27 [Oreo]" ;; - *28* ) LIB_CODE="28 [Pie]" ;; - * ) LIB_CODE="Generic" ;; + *19* ) local lib_code="19 [KitKat]" ;; + *21* ) local lib_code="21 [Lollipop]" ;; + *22* ) local lib_code="22 [Lollipop]" ;; + *23* ) local lib_code="23 [Marshmallow]" ;; + *24* ) local lib_code="23 [Nougat] {24}" ;; + *25* ) local lib_code="23 [Nougat] {25}" ;; + *26* ) local lib_code="26 [Oreo] {26}" ;; + *27* ) local lib_code="27 [Oreo]" ;; + *28* ) local lib_code="28 [Pie]" ;; + * ) local lib_code="Generic" ;; esac - LIB_ARCH=$(file -b ${1} | gawk -F, '{print $2 " [ " $1 " ] [" $3 " ]"}') - LIB_SPECS=$(file -b ${1} | gawk -F, '{print $4 " [" $5 " ]"}') + local lib_arch=$(file -b ${1} | gawk -F, '{print $2 " [ " $1 " ] [" $3 " ]"}') + local lib_specs=$(file -b ${1} | gawk -F, '{print $4 " [" $5 " ]"}') - LIB_SHA=$(sha256sum ${1} | gawk '{print $1}') + lib_sha=$(sha256sum ${1} | gawk '{print $1}') echo "Android Library: ${LIB_NAME} - | Filename: ${LIB_FILE} - | Origin: ${LIB_PATH} - | SDK Code: ${LIB_CODE} - | Arch: ${LIB_ARCH} - | Specifics: ${LIB_SPECS} - | SHA256: ${LIB_SHA} -" >> ${REPORT_FILE} + | Filename: ${lib_file} + | Origin: ${lib_path} + | SDK Code: ${lib_code} + | Arch: ${lib_arch} + | Specifics: ${lib_specs} + | SHA256: ${lib_sha} +" >> ${report_file} } get_bin_info () { - BIN_FILE=$(basename ${1}) - BIN_NAME=$(basename ${1} | sed -e 's/\..*//') - BIN_PATH=$(dirname ${1} | sed -e 's/.*NanoDroid/NanoDroid/') + local bin_file=$(basename ${1}) + local bin_name=$(basename ${1} | sed -e 's/\..*//') + local bin_path=$(dirname ${1} | sed -e 's/.*NanoDroid/NanoDroid/') - case ${BIN_PATH} in - *xbin* ) BIN_TYPE="Android User Utility" ;; - *tools*) BIN_TYPE="Android Installer Utility" ;; + case ${bin_path} in + *xbin* ) local bin_type="Android User Utility" ;; + *tools*) local bin_type="Android Installer Utility" ;; esac - BIN_ARCH=$(file -b ${1} | gawk -F, '{print $2 " [ " $1 " ] [" $3 " ]"}') - BIN_SPECS=$(file -b ${1} | gawk -F, '{print $4 " [" $7 " ] [" $6 " ]"}') + local bin_arch=$(file -b ${1} | gawk -F, '{print $2 " [ " $1 " ] [" $3 " ]"}') + local bin_specs=$(file -b ${1} | gawk -F, '{print $4 " [" $7 " ] [" $6 " ]"}') - BIN_SHA=$(sha256sum ${1} | gawk '{print $1}') + local bin_sha=$(sha256sum ${1} | gawk '{print $1}') - echo "${BIN_TYPE}: ${BIN_NAME} - | Filename: ${BIN_FILE} - | Origin: ${BIN_PATH} - | Arch: ${BIN_ARCH} - | Specifics: ${BIN_SPECS} - | SHA256: ${BIN_SHA} -" >> ${REPORT_FILE} + echo "${bin_type}: ${bin_name} + | Filename: ${bin_file} + | Origin: ${bin_path} + | Arch: ${bin_arch} + | Specifics: ${bin_specs} + | SHA256: ${bin_sha} +" >> ${report_file} } get_etc_info () { - ETC_FILE=$(basename ${1}) - ETC_PATH=$(dirname ${1} | sed -e 's/.*NanoDroid/NanoDroid/') - - ETC_PKGS="" - - case ${ETC_PATH} in - *gsync*default-permissions* ) ETC_TYPE="Google Sync Adapaters Permissions" - ETC_PKGS="$(gawk -F\" '/package=/{print $2}' ${1})" ;; - *etc/permissions* ) ETC_TYPE="Application Permissions" - ETC_PKGS="$(gawk -F\" '/package=/{print $2}' ${1})" ;; - *etc/default-permissions* ) ETC_TYPE="Application Permissions" - ETC_PKGS="$(gawk -F\" '/package=/{print $2}' ${1})" ;; - *etc/terminfo* ) ETC_TYPE="GNU Nano Terminfo" ;; - *etc/init.d* ) ETC_TYPE="NanoDroid init Script" ;; - *etc/sysconfig* ) ETC_TYPE="Linux sysconfig Settings" ;; - *etc/bash* ) ETC_TYPE="GNU Bash Configuration" ;; - *etc/org.fdroid.fdroid* ) ETC_TYPE="F-Droid Configuration" ;; + local etc_file=$(basename ${1}) + local etc_path=$(dirname ${1} | sed -e 's/.*NanoDroid/NanoDroid/') + + local etc_pkgs="" + + case ${etc_path} in + *gsync*default-permissions* ) local etc_type="Google Sync Adapaters Permissions" + local etc_pkgs="$(gawk -F\" '/package=/{print $2}' ${1})" ;; + *etc/permissions* ) local etc_type="Application Permissions" + local etc_pkgs="$(gawk -F\" '/package=/{print $2}' ${1})" ;; + *etc/default-permissions* ) local etc_type="Application Permissions" + local etc_pkgs="$(gawk -F\" '/package=/{print $2}' ${1})" ;; + *etc/terminfo* ) local etc_type="GNU Nano Terminfo" ;; + *etc/init.d* ) local etc_type="NanoDroid init Script" ;; + *etc/sysconfig* ) local etc_type="Linux sysconfig Settings" ;; + *etc/bash* ) local etc_type="GNU Bash Configuration" ;; + *etc/org.fdroid.fdroid* ) local etc_type="F-Droid Configuration" ;; esac - ETC_SHA=$(sha256sum ${1} | gawk '{print $1}') + local etc_sha=$(sha256sum ${1} | gawk '{print $1}') - echo "${ETC_TYPE}: ${ETC_FILE} - | Filename: ${ETC_FILE} - | Origin: ${ETC_PATH} - | SHA256: ${ETC_SHA}" >> ${REPORT_FILE} + echo "${etc_type}: ${etc_file} + | Filename: ${etc_file} + | Origin: ${etc_path} + | SHA256: ${etc_sha}" >> ${report_file} - if [ ! -z "${ETC_PKGS}" ]; then - echo -e " | Packages:\n$(printf "\t|- %s\n" ${ETC_PKGS})\n" >> ${REPORT_FILE} - else echo "" >> ${REPORT_FILE} + if [ ! -z "${etc_pkgs}" ]; then + echo -e " | Packages:\n$(printf "\t|- %s\n" ${etc_pkgs})\n" >> ${report_file} + else echo "" >> ${report_file} fi } get_dex_info () { - DEX_FILE=$(basename ${1}) - DEX_PATH=$(dirname ${1} | sed -e 's/.*NanoDroid/NanoDroid/') + local dex_file=$(basename ${1}) + local dex_path=$(dirname ${1} | sed -e 's/.*NanoDroid/NanoDroid/') - case ${DEX_FILE} in - *services* ) DEX_TYPE="Android DEX Patch File" - DEX_NAME=$(basename ${1} .jar.dex) ;; - * ) DEX_TYPE="Android Dalvik Executable" - DEX_NAME=$(basename ${1} .dex) ;; + case ${dex_file} in + *services* ) local dex_type="Android DEX Patch File" + local dex_name=$(basename ${1} .jar.dex) ;; + * ) local dex_type="Android Dalvik Executable" + local dex_name=$(basename ${1} .dex) ;; esac - case ${DEX_FILE} in - *services* ) DEX_SDK=$(gawk -F\_ '{print $2}' <(echo ${DEX_FILE})) ;; - *smali* ) DEX_SDK=$(sed 's/.*_\(.*\)\..*/\1/' <(echo ${DEX_FILE})) ;; - * ) DEX_SDK="universal" ;; + case ${dex_file} in + *services* ) local dex_sdk=$(gawk -F\_ '{print $2}' <(echo ${dex_file})) ;; + *smali* ) local dex_sdk=$(sed 's/.*_\(.*\)\..*/\1/' <(echo ${dex_file})) ;; + * ) local dex_sdk="universal" ;; esac - DEX_VER=$(file -b ${1} | gawk '{print $5}') - DEX_SHA=$(sha256sum ${1} | gawk '{print $1}') + dex_ver=$(file -b ${1} | gawk '{print $5}') + dex_sha=$(sha256sum ${1} | gawk '{print $1}') - echo "${DEX_TYPE}: ${DEX_NAME} - | Filename: ${DEX_FILE} - | Origin: ${DEX_PATH} - | DEX Version: ${DEX_VER} - | DEX SDK: ${DEX_SDK} - | SHA256: ${DEX_SHA} -" >> ${REPORT_FILE} + echo "${dex_type}: ${dex_name} + | Filename: ${dex_file} + | Origin: ${dex_path} + | DEX Version: ${dex_ver} + | DEX SDK: ${dex_sdk} + | SHA256: ${dex_sha} +" >> ${report_file} } get_msc_info () { case ${1} in - *CommonAddon* ) MSC_TYPE="NanoDroid universal addon.d" ;; - *CommonInstaller* ) MSC_TYPE="NanoDroid universal Installer" ;; + *CommonAddon* ) local msc_type="NanoDroid universal addon.d" ;; + *CommonInstaller* ) local msc_type="NanoDroid universal Installer" ;; - *service.sh* ) MSC_TYPE="NanoDroid universal Magisk Module services.sh" ;; + *service.sh* ) local msc_type="NanoDroid universal Magisk Module services.sh" ;; - *Full*update* ) MSC_TYPE="NanoDroid Full Package TWRP invoker" ;; - *Full*.prop* ) MSC_TYPE="NanoDroid Full Package Module Module properties" ;; + *Full*update* ) local msc_type="NanoDroid Full Package TWRP invoker" ;; + *Full*.prop* ) local msc_type="NanoDroid Full Package Module Module properties" ;; - *microG*update* ) MSC_TYPE="NanoDroid microG Package TWRP invoker" ;; - *microG*.prop* ) MSC_TYPE="NanoDroid microG Package Module Module properties" ;; + *microG*update* ) local msc_type="NanoDroid microG Package TWRP invoker" ;; + *microG*.prop* ) local msc_type="NanoDroid microG Package Module Module properties" ;; - *FDroid*update* ) MSC_TYPE="NanoDroid F-Droid Package TWRP invoker" ;; - *FDroid*.prop* ) MSC_TYPE="NanoDroid F-Droid Package Module Module properties" ;; + *FDroid*update* ) local msc_type="NanoDroid F-Droid Package TWRP invoker" ;; + *FDroid*.prop* ) local msc_type="NanoDroid F-Droid Package Module Module properties" ;; - *Bromite*update* ) MSC_TYPE="NanoDroid BromiteWebView Package TWRP invoker" ;; - *Bromite*.prop* ) MSC_TYPE="NanoDroid BromiteWebView Package Module Module properties" ;; + *Bromite*update* ) local msc_type="NanoDroid BromiteWebView Package TWRP invoker" ;; + *Bromite*.prop* ) local msc_type="NanoDroid BromiteWebView Package Module Module properties" ;; - *OsmAnd*update* ) MSC_TYPE="NanoDroid OsmAnd Package TWRP invoker" ;; - *OsmAnd*.prop* ) MSC_TYPE="NanoDroid OsmAnd Package Module Module properties" ;; + *OsmAnd*update* ) local msc_type="NanoDroid OsmAnd Package TWRP invoker" ;; + *OsmAnd*.prop* ) local msc_type="NanoDroid OsmAnd Package Module Module properties" ;; - *CommonPatcher* ) MSC_TYPE="NanoDroid Framework Patcher" ;; - *70-nanodroidpatcher.sh* ) MSC_TYPE="NanoDroid Framework Patcher addon.d" ;; - *org.spoofing.apk*) MSC_TYPE="NanoDroid Framework Patcher spoofing info provider" ;; - *patcher*update* ) MSC_TYPE="NanoDroid Framework Patcher TWRP invoker" ;; + *CommonPatcher* ) local msc_type="NanoDroid Framework Patcher" ;; + *70-nanodroidpatcher.sh* ) local msc_type="NanoDroid Framework Patcher addon.d" ;; + *org.spoofing.apk*) local msc_type="NanoDroid Framework Patcher spoofing info provider" ;; + *patcher*update* ) local msc_type="NanoDroid Framework Patcher TWRP invoker" ;; - *SetupWizard*update*) MSC_TYPE="NanoDroid SetupWizard AROMA invoker" ;; - *SetupWizard*aroma*) MSC_TYPE="NanoDroid SetupWizard AROMA configuration" ;; - *SetupWizard/nano*) MSC_TYPE="NanoDroid SetupWizard Worker" ;; + *SetupWizard*update*) local msc_type="NanoDroid SetupWizard AROMA invoker" ;; + *SetupWizard*aroma*) local msc_type="NanoDroid SetupWizard AROMA configuration" ;; + *SetupWizard/nano*) local msc_type="NanoDroid SetupWizard Worker" ;; - *SysTest* ) MSC_TYPE="NanoDroid System Tester" ;; - *systest*update* ) MSC_TYPE="NanoDroid System Tester TWRP invoker" ;; + *SysTest* ) local msc_type="NanoDroid System Tester" ;; + *systest*update* ) local msc_type="NanoDroid System Tester TWRP invoker" ;; - *uninstaller*binary*) MSC_TYPE="NanoDroid Uninstaller" ;; - *uninstaller*update*) MSC_TYPE="NanoDroid Uninstaller TWRP invoker" ;; + *uninstaller*binary*) local msc_type="NanoDroid Uninstaller" ;; + *uninstaller*update*) local msc_type="NanoDroid Uninstaller TWRP invoker" ;; - *ChangeLog.md* ) MSC_TYPE="NanoDroid ChangeLog" ;; - *README.md* ) MSC_TYPE="NanoDroid README" ;; + *ChangeLog.md* ) local msc_type="NanoDroid ChangeLog" ;; + *README.md* ) local msc_type="NanoDroid README" ;; - *.nanodroid-apps* ) MSC_TYPE="NanoDroid default app installation configuration" ;; - *.nanodroid-setup*) MSC_TYPE="NanoDroid default installation configuration" ;; - *.nanodroid-overlay*) MSC_TYPE="NanoDroid default overlay configuration" ;; + *.nanodroid-apps* ) local msc_type="NanoDroid default app installation configuration" ;; + *.nanodroid-setup*) local msc_type="NanoDroid default installation configuration" ;; + *.nanodroid-overlay*) local msc_type="NanoDroid default overlay configuration" ;; - *.maps.jar* ) MSC_TYPE="microG Maps v1 support" ;; + *.maps.jar* ) local msc_type="microG Maps v1 support" ;; - *noti*.ogg* ) MSC_TYPE="The Legend of Zelda: Notification" ;; - *ring*.ogg* ) MSC_TYPE="The Legend of Zelda: Ringtone" ;; - *ui*.ogg* ) MSC_TYPE="The Legend of Zelda: UI Sound" ;; - *noti*.mp3* ) MSC_TYPE="The Legend of Zelda: Notification" ;; - *ring*.mp3* ) MSC_TYPE="The Legend of Zelda: Ringtone" ;; - *ui*.mp3* ) MSC_TYPE="The Legend of Zelda: UI Sound" ;; - *.ttf* ) MSC_TYPE="Nintendo UI Font" ;; + *noti*.ogg* ) local msc_type="The Legend of Zelda: Notification" ;; + *ring*.ogg* ) local msc_type="The Legend of Zelda: Ringtone" ;; + *ui*.ogg* ) local msc_type="The Legend of Zelda: UI Sound" ;; + *noti*.mp3* ) local msc_type="The Legend of Zelda: Notification" ;; + *ring*.mp3* ) local msc_type="The Legend of Zelda: Ringtone" ;; + *ui*.mp3* ) local msc_type="The Legend of Zelda: UI Sound" ;; + *.ttf* ) local msc_type="Nintendo UI Font" ;; - *LICENSE* ) MSC_TYPE="exclude" ;; - *doc* ) MSC_TYPE="exclude" ;; - *build-package* ) MSC_TYPE="exclude" ;; - *.json* ) MSC_TYPE="exclude" ;; - *.git* ) MSC_TYPE="exclude" ;; - *NanoDroid_Report*) MSC_TYPE="exclude" ;; - *NanoDroid/dist* ) MSC_TYPE="exclude" ;; + *LICENSE* ) local msc_type="exclude" ;; + *doc* ) local msc_type="exclude" ;; + *build-package* ) local msc_type="exclude" ;; + *.json* ) local msc_type="exclude" ;; + *.git* ) local msc_type="exclude" ;; + *NanoDroid_Report*) local msc_type="exclude" ;; + *NanoDroid/dist* ) local msc_type="exclude" ;; - * ) MSC_TYPE="unknown" ;; + * ) local msc_type="unknown" ;; esac - case ${MSC_TYPE} in + case ${msc_type} in exclude ) return 0 ;; unknown ) echo "No report template for file: ${1}" ;; - * ) MSC_FILE=$(basename ${1}) - MSC_NAME=$(basename ${1} | sed -e 's/\..*//') - MSC_PATH=$(dirname ${1} | sed -e 's/.*NanoDroid/NanoDroid/') - MSC_SHA=$(sha256sum ${1} | gawk '{print $1}') - - echo "${MSC_TYPE}: ${MSC_NAME} - | Filename: ${MSC_FILE} - | Origin: ${MSC_PATH} - | SHA256: ${MSC_SHA} -" >> ${REPORT_FILE} + * ) local msc_file=$(basename ${1}) + local msc_name=$(basename ${1} | sed -e 's/\..*//') + local msc_path=$(dirname ${1} | sed -e 's/.*NanoDroid/NanoDroid/') + local msc_sha=$(sha256sum ${1} | gawk '{print $1}') + + echo "${msc_type}: ${msc_name} + | Filename: ${msc_file} + | Origin: ${msc_path} + | SHA256: ${msc_sha} +" >> ${report_file} ;; esac @@ -309,36 +309,36 @@ get_dst_info () { if [[ ! ${1} == *NanoDroid/dist* ]]; then - DST_FILE=$(basename ${1}) - DST_NAME=$(basename ${1} | sed -e 's/-[0-9].*//') - DST_PATH=$(dirname ${1} | sed -e 's/.*NanoDroid/NanoDroid/') - - case ${DST_FILE} in - *NanoDroid-[0-9]*.zip*) DST_PKG="NanoDroid Full" ;; - *microG*.zip* ) DST_PKG="NanoDroid microG" ;; - *fdroid*.zip* ) DST_PKG="NanoDroid F-Droid" ;; - *BromiteWebView*.zip* ) DST_PKG="NanoDroid BromiteWebView" ;; - *OsmAnd*.zip* ) DST_PKG="NanoDroid OsmAnd" ;; - *patcher*.zip* ) DST_PKG="NanoDroid Framework Patcher" ;; - *setupwizard*.zip* ) DST_PKG="NanoDroid SetupWizard" ;; - *systest*.zip* ) DST_PKG="NanoDroid System Tester" ;; - *uninstaller*.zip* ) DST_PKG="NanoDroid Uninstaller" ;; + local dst_file=$(basename ${1}) + local dst_name=$(basename ${1} | sed -e 's/-[0-9].*//') + local dst_path=$(dirname ${1} | sed -e 's/.*NanoDroid/NanoDroid/') + + case ${dst_file} in + *NanoDroid-[0-9]*.zip*) local dst_pkg="NanoDroid Full" ;; + *microG*.zip* ) local dst_pkg="NanoDroid microG" ;; + *fdroid*.zip* ) local dst_pkg="NanoDroid F-Droid" ;; + *BromiteWebView*.zip* ) local dst_pkg="NanoDroid BromiteWebView" ;; + *OsmAnd*.zip* ) local dst_pkg="NanoDroid OsmAnd" ;; + *patcher*.zip* ) local dst_pkg="NanoDroid Framework Patcher" ;; + *setupwizard*.zip* ) local dst_pkg="NanoDroid SetupWizard" ;; + *systest*.zip* ) local dst_pkg="NanoDroid System Tester" ;; + *uninstaller*.zip* ) local dst_pkg="NanoDroid Uninstaller" ;; esac - case ${DST_FILE} in - *.zip ) DST_TYPE="Flashable Package" ;; - *.sha256 ) DST_TYPE="Flashable Package (SHA256 Checksum)" ;; - *.sig ) DST_TYPE="Flashable Package (GPG Signature)" ;; + case ${dst_file} in + *.zip ) local dst_type="Flashable Package" ;; + *.sha256 ) local dst_type="Flashable Package (SHA256 Checksum)" ;; + *.sig ) local dst_type="Flashable Package (GPG Signature)" ;; esac - DST_SHA=$(sha256sum ${1} | gawk '{print $1}') + dst_sha=$(sha256sum ${1} | gawk '{print $1}') - echo "${DST_TYPE}: ${DST_NAME} - | Filename: ${DST_FILE} - | Origin: ${DST_PATH} - | Package: ${DST_PKG} - | SHA256: ${DST_SHA} -" >> ${REPORT_FILE} + echo "${dst_type}: ${dst_name} + | Filename: ${dst_file} + | Origin: ${dst_path} + | Package: ${dst_pkg} + | SHA256: ${dst_sha} +" >> ${report_file} fi diff --git a/data/build-package.update b/data/build-package.update index 2e43b53..12572c7 100644 --- a/data/build-package.update +++ b/data/build-package.update @@ -11,18 +11,18 @@ nanodroid_pull () { } update_swipe () { - for ARCH in arm arm64 x86 x86_64; do - grab_lib_from_ogapps libjni_keyboarddecoder.so 23 ${ARCH} false + for arch in arm arm64 x86 x86_64; do + grab_lib_from_ogapps libjni_keyboarddecoder.so 23 ${arch} false done - for ARCH in arm arm64; do - for SDK in 19 21 22 23 27 28; do - grab_lib_from_ogapps libjni_latinimegoogle.so ${SDK} ${ARCH} true + for arch in arm arm64; do + for sdk in 19 21 22 23 27 28; do + grab_lib_from_ogapps libjni_latinimegoogle.so ${sdk} ${arch} true done done - for ARCH in x86 x86_64; do - grab_lib_from_ogapps libjni_latinimegoogle.so 23 ${ARCH} false + for arch in x86 x86_64; do + grab_lib_from_ogapps libjni_latinimegoogle.so 23 ${arch} false done } From 9301a56917c49a10a39ba4a10249fe6bdb01aeec Mon Sep 17 00:00:00 2001 From: TanyaEleventhGoddess Date: Sat, 10 Aug 2019 12:29:57 +0200 Subject: [PATCH 4/4] Improved debug, allow selection of wget for downloads, rearranged download list and fixed forgotten echo --- build-package | 5 ++ data/build-package.common | 2 +- data/build-package.download | 65 ++++++++++++++++--------- data/build-package.update | 94 +++++++++++++++++++++++++++++++------ 4 files changed, 128 insertions(+), 38 deletions(-) diff --git a/build-package b/build-package index 67a5b24..54d31c2 100755 --- a/build-package +++ b/build-package @@ -102,29 +102,34 @@ for opt in ${@}; do pull ) update_indices nanodroid_pull + update_master check_nanodroid ;; u-microg ) update_indices update_microg + update_master check_nanodroid ;; u-fdroid ) update_indices update_fdroid + update_master check_nanodroid ;; u-apps ) update_indices update_apps + update_master check_nanodroid ;; u-swipe ) update_swipe + update_master check_nanodroid ;; diff --git a/data/build-package.common b/data/build-package.common index a1bb2aa..107f3ea 100644 --- a/data/build-package.common +++ b/data/build-package.common @@ -5,7 +5,7 @@ nanodroid_broken_files=0 missing_database="" debug_message () { - [ "$DEBUG" = '1' ] && echo "$(tput setaf 3)$1$(tput sgr 0)" + [ "$DEBUG" = '1' ] && echo "$2$(tput setaf 3)$1$(tput sgr 0)" } check_nanodroid () { diff --git a/data/build-package.download b/data/build-package.download index 0802d43..2e987dc 100644 --- a/data/build-package.download +++ b/data/build-package.download @@ -18,6 +18,41 @@ for dep in gawk curl sha256sum jq gzip; do fi done +debug_download () { + case $1 in + index) + if [ "$USE_WGET" = '1' ]; then + rm -rf "$2" + debug_message "wget -q --show-progress \"$3\" -O \"${2#$CWD/}\"" " " + wget -q --show-progress "$3" -O "$2" || error "$4" + else + debug_message "curl -sSL -o \"${2#$CWD/}\" \"$3\"" " " + curl -sSL -o "$2" "$3" || error "$4" + fi + ;; + no_delete) + if [ "$USE_WGET" = '1' ]; then + rm -rf "$2" + debug_message "wget -q --show-progress \"$3\" -O \"${2#$CWD/}\"" + wget -q --show-progress "$3" -O "$2" + else + debug_message "curl -sSL -o \"${2#$CWD/}\" \"$3\"" + curl -sSL -o "$2" "$3" + fi + ;; + delete) + if [ "$USE_WGET" = '1' ]; then + rm -rf "$2" + debug_message "wget -q --show-progress \"$3\" -O \"${2#$CWD/}\"" + wget -q --show-progress "$3" -O "$2" || rm -f "$4" + else + debug_message "curl -sSL -o \"${2#$CWD/}\" \"$3\"" + curl -sSL -o "$2" "$3" || rm -f "$4" + fi + ;; + esac +} + index_update_required () { index_file=${1} @@ -53,8 +88,7 @@ update_index () { local index_repo=${2} if index_update_required ${index_json}; then - debug_message " curl -sSL -o \"${index_jar#$CWD/}\" \"${index_repo}/index-v1.jar\"" - curl -sSL -o "${index_jar}" "${index_repo}/index-v1.jar" || error " failed to update repo index" + debug_download index "${index_jar}" "${index_repo}/index-v1.jar" " failed to update repo index" unzip -q ${index_jar} index-v1.json -d "$repofolder/" mv "$repofolder/index-v1.json" "${index_json}" @@ -150,8 +184,7 @@ grab_apk_from_repo () { else echo -e "\nUpdating from ${repo_p} : ${4}.apk" mkdir -p "${apk_dest}" rm -f "${apk_dest}/${4}.apk.gz" - debug_message "curl -sSL -o \"${apk_dest#$CWD/}/${4}.apk\" \"${apk_url}\"" - curl -sSL -o "${apk_dest}/${4}.apk" "${apk_url}" + debug_download no_delete "${apk_dest}/${4}.apk" "${apk_url}" if check_sha256sum "${apk_dest}/${4}.apk" "${sha_sum}"; then echo " SHA256 hash of ${4}.apk is correct" @@ -178,9 +211,7 @@ grab_apk_from_url () { echo " Checking SHA256 hash not (yet) supported" - debug_message "curl -sSL -o \"${apk_dest#$CWD/}/${3}.apk\" \"${apk_url}\"" - curl -sSL -o "${apk_dest}/${3}.apk" "${apk_url}" || \ - rm -f "${apk_dest}/${3}.apk" + debug_download delete "${apk_dest}/${3}.apk" "${apk_url}" "${apk_dest}/${3}.apk" if [[ -f "${apk_dest}/${3}.apk" ]]; then gzip "${apk_dest}/${3}.apk" @@ -205,9 +236,7 @@ grab_apk_from_github () { echo " Checking SHA256 hash not (yet) supported" - debug_message "curl -sSL -o \"${apk_dest#$CWD/}/${3}.apk\" \"${apk_url}\"" - curl -sSL -o "${apk_dest}/${3}.apk" "${apk_url}" || \ - rm -f "${apk_dest}/${3}.apk" + debug_download delete "${apk_dest}/${3}.apk" "${apk_url}" "${apk_dest}/${3}.apk" if [[ -f "${apk_dest}/${3}.apk" ]]; then gzip "${apk_dest}/${3}.apk" @@ -217,7 +246,6 @@ grab_apk_from_github () { grab_apk_from_gitlab () { local apk_url=$(curl -s -N "https://gitlab.com/${1}/-/tags" | grep '.apk' | head -n 1) - echo "$apk_url" local apk_url=${apk_url%\">*.apk*} local apk_url="https://gitlab.com${apk_url##*a href=\"}" local apk_dest="${appsfolder[2]}/${2}/${3}" @@ -232,9 +260,7 @@ grab_apk_from_gitlab () { echo " Checking SHA256 hash not (yet) supported" - debug_message "curl -sSL -o \"${apk_dest#$CWD/}/${3}.apk\" \"${apk_url}\"" - curl -sSL -o "${apk_dest}/${3}.apk" "${apk_url}" || \ - rm -f "${apk_dest}/${3}.apk" + debug_download delete "${apk_dest}/${3}.apk" "${apk_url}" "${apk_dest}/${3}.apk" if [[ -f "${apk_dest}/${3}.apk" ]]; then gzip "${apk_dest}/${3}.apk" @@ -273,9 +299,7 @@ grab_apk_from_ogapps () { echo " Checking SHA256 hash not (yet) supported" - debug_message "curl -sSL -o \"${apk_dest#$CWD/}/${3}.apk\" \"${apk_url}\"" - curl -sSL -o "${apk_dest}/${3}.apk" "${apk_url}" || \ - rm -f "${apk_dest}/${3}.apk" + debug_download delete "${apk_dest}/${3}.apk" "${apk_url}" "${apk_dest}/${3}.apk" [ -f "${apk_dest}/${3}.apk" ] && gzip "${apk_dest}/${3}.apk" } @@ -302,9 +326,7 @@ grab_lib_from_ogapps () { echo " Checking SHA256 hash not (yet) supported" - debug_message "curl -sSL -o \"${lib_dest#$CWD/}\" \"${lib_url}\"" - curl -sSL -o "${lib_dest}" "${lib_url}" || \ - rm -f "${lib_dest}" + debug_download delete "${lib_dest}" "${lib_url}" "${lib_dest}" } grab_patches () { @@ -316,6 +338,5 @@ grab_patches () { echo -e "\nUpdating from Haystack : ${2}" echo " Checking SHA256 hash not (yet) supported" - curl -sSL -o "${patch_dst}" "${patch_url}" || \ - rm -f "${patch_dst}" + debug_download delete "${patch_dst}" "${patch_url}""${patch_dst}" } diff --git a/data/build-package.update b/data/build-package.update index 12572c7..9a0fe46 100644 --- a/data/build-package.update +++ b/data/build-package.update @@ -1,5 +1,32 @@ #!/bin/bash +# MicroG +update_act[0]='0' +# Swipe +update_act[1]='0' +# Gsync +update_act[2]='0' +# Bromite +update_act[3]='0' +# Osmand +update_act[4]='0' +# FDroid +update_act[5]='0' +# FDroid Privileged Extension +update_act[6]='0' +# AuroraDroid +update_act[7]='0' +# AuroraStore +update_act[8]='0' +# AuroraServices +update_act[9]='0' +# Yalp +update_act[10]='0' +# Phonesky +update_act[11]='0' +# General Apps +update_act[12]='0' + nanodroid_pull () { update_microg update_fdroid @@ -10,7 +37,7 @@ nanodroid_pull () { update_osmand } -update_swipe () { +grab_swipe () { for arch in arm arm64 x86 x86_64; do grab_lib_from_ogapps libjni_keyboarddecoder.so 23 ${arch} false done @@ -26,7 +53,11 @@ update_swipe () { done } -update_microg () { +update_swipe () { + update_act[1]='1' +} + +grab_microg () { # applications managed in repositories grab_apk_from_repo ${uG_GMSCORE[@]} grab_apk_from_repo ${uG_GSFPROXY[@]} @@ -37,15 +68,17 @@ update_microg () { grab_apk_from_repo ${fd_NLPNOMINATIM[@]} grab_apk_from_repo ${fd_NLPAPPLE[@]} grab_apk_from_repo ${fd_NLPRADIOCELL[@]} - grab_apk_from_repo ${fd_YALPSTORE[@]} - grab_apk_from_repo ${fd_AURORASTORE[@]} - grab_apk_from_repo ${nlx_PHONESKY[@]} +} - # GitLab - grab_apk_from_gitlab ${gl_AURORASERVICES[@]} +update_microg () { + update_act[0]='1' + update_act[8]='1' + update_act[9]='1' + update_act[10]='1' + update_act[11]='1' } -update_gsync () { +grab_gsync () { # KK LL M N O P for API in 19 21 23 24 26 28; do grab_apk_from_ogapps ${og_CONSYNC[@]} ${API} @@ -55,14 +88,18 @@ update_gsync () { grab_apk_from_ogapps ${og_CALSYNC[@]} } +update_gsync () { + update_act[2]='1' +} + update_fdroid () { - grab_apk_from_repo ${fd_FDROID[@]} - grab_apk_from_repo ${fd_FDROID_PE[@]} - grab_apk_from_repo ${fd_AURORADROID[@]} - grab_apk_from_gitlab ${gl_AURORASERVICES[@]} + update_act[5]='1' + update_act[6]='1' + update_act[7]='1' + update_act[9]='1' } -update_apps () { +grab_apps () { # applications managed in repositories grab_apk_from_repo ${fd_ALARMIO[@]} grab_apk_from_repo ${fd_AMAZE[@]} @@ -97,13 +134,40 @@ update_apps () { grab_apk_from_url ${raw_XDALABS[@]} } -update_bromite () { +update_apps () { + update_act[12]='1' +} + +grab_bromite () { grab_apk_from_repo ${bm_WEBVIEW_arm64[@]} grab_apk_from_repo ${bm_WEBVIEW_arm[@]} grab_apk_from_repo ${bm_WEBVIEW_x86[@]} } -update_osmand () { +update_bromite () { + update_act[3]='1' +} + +grab_osmand () { grab_apk_from_repo ${fd_OSMAND[@]} grab_apk_from_repo ${fd_OSMAND_CONTOURLINES[@]} } + +update_osmand () { + update_act[4]='1' +} + +update_master () { + [ "${update_act[0]}" = "1" ] && grab_microg + [ "${update_act[7]}" = "1" ] && grab_apk_from_repo ${fd_AURORADROID[@]} + [ "${update_act[8]}" = "1" ] && grab_apk_from_repo ${fd_AURORASTORE[@]} + [ "${update_act[9]}" = "1" ] && grab_apk_from_gitlab ${gl_AURORASERVICES[@]} + [ "${update_act[5]}" = "1" ] && grab_apk_from_repo ${fd_FDROID[@]} + [ "${update_act[6]}" = "1" ] && grab_apk_from_repo ${fd_FDROID_PE[@]} + [ "${update_act[10]}" = "1" ] && grab_apk_from_repo ${fd_YALPSTORE[@]} + [ "${update_act[11]}" = "1" ] && grab_apk_from_repo ${nlx_PHONESKY[@]} + [ "${update_act[3]}" = "1" ] && grab_bromite + [ "${update_act[4]}" = "1" ] && grab_osmand + [ "${update_act[12]}" = "1" ] && grab_apps + [ "${update_act[2]}" = "1" ] && grab_gsync +}