diff --git a/data/build-package.database b/data/build-package.database index d277c6c..3536d99 100644 --- a/data/build-package.database +++ b/data/build-package.database @@ -95,24 +95,24 @@ bm_WEBVIEW_x86=(bromite com.android.webview app BromiteWebView_x86 x86) # Files Database (for consistency check) ### -files_database=( Full/gsync/K/app/GoogleCalendarSync/GoogleCalendarSync.apk - Full/gsync/K/app/GoogleContactsSync/GoogleContactsSync.apk - Full/gsync/K/priv-app/GoogleBackupTransport/GoogleBackupTransport.apk - Full/gsync/L/app/GoogleCalendarSync/GoogleCalendarSync.apk - Full/gsync/L/app/GoogleContactsSync/GoogleContactsSync.apk - Full/gsync/L/priv-app/GoogleBackupTransport/GoogleBackupTransport.apk - Full/gsync/M/app/GoogleCalendarSync/GoogleCalendarSync.apk - Full/gsync/M/app/GoogleContactsSync/GoogleContactsSync.apk - Full/gsync/M/priv-app/GoogleBackupTransport/GoogleBackupTransport.apk - Full/gsync/N/app/GoogleCalendarSync/GoogleCalendarSync.apk - Full/gsync/N/app/GoogleContactsSync/GoogleContactsSync.apk - Full/gsync/N/priv-app/GoogleBackupTransport/GoogleBackupTransport.apk - Full/gsync/O/app/GoogleCalendarSync/GoogleCalendarSync.apk - Full/gsync/O/app/GoogleContactsSync/GoogleContactsSync.apk - Full/gsync/O/priv-app/GoogleBackupTransport/GoogleBackupTransport.apk - Full/gsync/P/app/GoogleCalendarSync/GoogleCalendarSync.apk - Full/gsync/P/app/GoogleContactsSync/GoogleContactsSync.apk - Full/gsync/P/priv-app/GoogleBackupTransport/GoogleBackupTransport.apk +files_database=( Full/gsync/K/app/GoogleCalendarSync/GoogleCalendarSync.apk.bz2 + Full/gsync/K/app/GoogleContactsSync/GoogleContactsSync.apk.bz2 + Full/gsync/K/priv-app/GoogleBackupTransport/GoogleBackupTransport.apk.bz2 + Full/gsync/L/app/GoogleCalendarSync/GoogleCalendarSync.apk.bz2 + Full/gsync/L/app/GoogleContactsSync/GoogleContactsSync.apk.bz2 + Full/gsync/L/priv-app/GoogleBackupTransport/GoogleBackupTransport.apk.bz2 + Full/gsync/M/app/GoogleCalendarSync/GoogleCalendarSync.apk.bz2 + Full/gsync/M/app/GoogleContactsSync/GoogleContactsSync.apk.bz2 + Full/gsync/M/priv-app/GoogleBackupTransport/GoogleBackupTransport.apk.bz2 + Full/gsync/N/app/GoogleCalendarSync/GoogleCalendarSync.apk.bz2 + Full/gsync/N/app/GoogleContactsSync/GoogleContactsSync.apk.bz2 + Full/gsync/N/priv-app/GoogleBackupTransport/GoogleBackupTransport.apk.bz2 + Full/gsync/O/app/GoogleCalendarSync/GoogleCalendarSync.apk.bz2 + Full/gsync/O/app/GoogleContactsSync/GoogleContactsSync.apk.bz2 + Full/gsync/O/priv-app/GoogleBackupTransport/GoogleBackupTransport.apk.bz2 + Full/gsync/P/app/GoogleCalendarSync/GoogleCalendarSync.apk.bz2 + Full/gsync/P/app/GoogleContactsSync/GoogleContactsSync.apk.bz2 + Full/gsync/P/priv-app/GoogleBackupTransport/GoogleBackupTransport.apk.bz2 Full/swipe/arm/libjni_keyboarddecoder.so Full/swipe/arm/libjni_latinimegoogle.so_19 Full/swipe/arm/libjni_latinimegoogle.so_21 @@ -130,49 +130,49 @@ files_database=( Full/gsync/K/app/GoogleCalendarSync/GoogleCalendarSync.apk Full/swipe/x86/libjni_latinimegoogle.so Full/swipe/x86_64/libjni_keyboarddecoder.so Full/swipe/x86_64/libjni_latinimegoogle.so - Full/system/app/Alarmio/Alarmio.apk - Full/system/app/Amaze/Amaze.apk - Full/system/app/AnysoftKeyboard/AnysoftKeyboard.apk - Full/system/app/AuroraStore/AuroraStore.apk - Full/system/app/Blokada/Blokada.apk - Full/system/app/FDroid/FDroid.apk - Full/system/app/FaceSlim/FaceSlim.apk - Full/system/app/HackersKeyboard/HackersKeyboard.apk - Full/system/app/K9Mail/K9Mail.apk - Full/system/app/KeePassDX/KeePassDX.apk - Full/system/app/KernelAdiutor/KernelAdiutor.apk - Full/system/app/MPV/MPV.apk - Full/system/app/NewPipe/NewPipe.apk - Full/system/app/Oandbackup/Oandbackup.apk - Full/system/app/Odyssey/Odyssey.apk - Full/system/app/OpenCamera/OpenCamera.apk - Full/system/app/OpenKeyChain/OpenKeyChain.apk - Full/system/app/OpenLauncher/OpenLauncher.apk - Full/system/app/OpenVPN/OpenVPN.apk - Full/system/app/Orbot/Orbot.apk - Full/system/app/PrivacyBrowser/PrivacyBrowser.apk - Full/system/app/QKSMS/QKSMS.apk - Full/system/app/SimpleCalendar/SimpleCalendar.apk - Full/system/app/SimpleGallery/SimpleGallery.apk - Full/system/app/Substratum/Substratum.apk - Full/system/app/Termux/Termux.apk - Full/system/app/TorBrowser/TorBrowser.apk - Full/system/app/Twidere/Twidere.apk - Full/system/app/XDALabs/XDALabs.apk - Full/system/app/nlpBackendApple/nlpBackendApple.apk - Full/system/app/nlpBackendIchnaea/nlpBackendIchnaea.apk - Full/system/app/nlpBackendDejavu/nlpBackendDejavu.apk - Full/system/app/nlpBackendRadiocell/nlpBackendRadiocell.apk - Full/system/app/nlpBackendNominatim/nlpBackendNominatim.apk - Full/system/app/DroidGuard/DroidGuard.apk - Full/system/priv-app/FDroidPrivileged/FDroidPrivileged.apk - Full/system/priv-app/FakeStore/FakeStore.apk - Full/system/priv-app/Phonesky/Phonesky.apk - Full/system/priv-app/YalpStore/YalpStore.apk - Full/system/priv-app/GsfProxy/GsfProxy.apk - Full/system/priv-app/GmsCore/GmsCore.apk - BromiteWebView/system/app/BromiteWebView_arm/BromiteWebView_arm.apk - BromiteWebView/system/app/BromiteWebView_arm64/BromiteWebView_arm64.apk - BromiteWebView/system/app/BromiteWebView_x86/BromiteWebView_x86.apk - OsmAnd/system/app/OsmAnd/OsmAnd.apk - OsmAnd/system/app/OsmAnd_ContourLines/OsmAnd_ContourLines.apk ) + Full/system/app/Alarmio/Alarmio.apk.bz2 + Full/system/app/Amaze/Amaze.apk.bz2 + Full/system/app/AnysoftKeyboard/AnysoftKeyboard.apk.bz2 + Full/system/app/AuroraStore/AuroraStore.apk.bz2 + Full/system/app/Blokada/Blokada.apk.bz2 + Full/system/app/FDroid/FDroid.apk.bz2 + Full/system/app/FaceSlim/FaceSlim.apk.bz2 + Full/system/app/HackersKeyboard/HackersKeyboard.apk.bz2 + Full/system/app/K9Mail/K9Mail.apk.bz2 + Full/system/app/KeePassDX/KeePassDX.apk.bz2 + Full/system/app/KernelAdiutor/KernelAdiutor.apk.bz2 + Full/system/app/MPV/MPV.apk.bz2 + Full/system/app/NewPipe/NewPipe.apk.bz2 + Full/system/app/Oandbackup/Oandbackup.apk.bz2 + Full/system/app/Odyssey/Odyssey.apk.bz2 + Full/system/app/OpenCamera/OpenCamera.apk.bz2 + Full/system/app/OpenKeyChain/OpenKeyChain.apk.bz2 + Full/system/app/OpenLauncher/OpenLauncher.apk.bz2 + Full/system/app/OpenVPN/OpenVPN.apk.bz2 + Full/system/app/Orbot/Orbot.apk.bz2 + Full/system/app/PrivacyBrowser/PrivacyBrowser.apk.bz2 + Full/system/app/QKSMS/QKSMS.apk.bz2 + Full/system/app/SimpleCalendar/SimpleCalendar.apk.bz2 + Full/system/app/SimpleGallery/SimpleGallery.apk.bz2 + Full/system/app/Substratum/Substratum.apk.bz2 + Full/system/app/Termux/Termux.apk.bz2 + Full/system/app/TorBrowser/TorBrowser.apk.bz2 + Full/system/app/Twidere/Twidere.apk.bz2 + Full/system/app/XDALabs/XDALabs.apk.bz2 + Full/system/app/nlpBackendApple/nlpBackendApple.apk.bz2 + Full/system/app/nlpBackendIchnaea/nlpBackendIchnaea.apk.bz2 + Full/system/app/nlpBackendDejavu/nlpBackendDejavu.apk.bz2 + Full/system/app/nlpBackendRadiocell/nlpBackendRadiocell.apk.bz2 + Full/system/app/nlpBackendNominatim/nlpBackendNominatim.apk.bz2 + Full/system/app/DroidGuard/DroidGuard.apk.bz2 + Full/system/priv-app/FDroidPrivileged/FDroidPrivileged.apk.bz2 + Full/system/priv-app/FakeStore/FakeStore.apk.bz2 + Full/system/priv-app/Phonesky/Phonesky.apk.bz2 + Full/system/priv-app/YalpStore/YalpStore.apk.bz2 + Full/system/priv-app/GsfProxy/GsfProxy.apk.bz2 + Full/system/priv-app/GmsCore/GmsCore.apk.bz2 + BromiteWebView/system/app/BromiteWebView_arm/BromiteWebView_arm.apk.bz2 + BromiteWebView/system/app/BromiteWebView_arm64/BromiteWebView_arm64.apk.bz2 + BromiteWebView/system/app/BromiteWebView_x86/BromiteWebView_x86.apk.bz2 + OsmAnd/system/app/OsmAnd/OsmAnd.apk.bz2 + OsmAnd/system/app/OsmAnd_ContourLines/OsmAnd_ContourLines.apk.bz2 ) diff --git a/data/build-package.download b/data/build-package.download index 37e501e..b14d3de 100644 --- a/data/build-package.download +++ b/data/build-package.download @@ -11,7 +11,7 @@ REPO_NANOLX="https://nanolx.org/fdroid/repo" REPO_BROMITE="https://fdroid.bromite.org/fdroid/repo" # check dependencies -for dep in gawk wget curl sha256sum jq; do +for dep in gawk wget curl sha256sum jq bzip2; do if ! which ${dep} &>/dev/null; then echo "${dep} is not installed!" exit 1 @@ -28,6 +28,25 @@ index_update_required () { return 1 } +check_sha256sum () { + INPUT="${1}" + + IN_CHECKSUM="" + EX_CHECKSUM="${2}" + + case ${INPUT} in + *.bz2 ) + IN_CHECKSUM=$(bzip2 -dc ${INPUT} 2>/dev/null | sha256sum | gawk '{print $1}') + ;; + + * ) + IN_CHECKSUM=$(sha256sum ${INPUT} 2>/dev/null | gawk '{print $1}') + ;; + esac + + [ ${IN_CHECKSUM} == ${EX_CHECKSUM} ] && return 0 || return 1 +} + update_index () { INDEX_JAR=${1} INDEX_JSON="${CWD}/data/$(basename ${INDEX_JAR} .jar).json" @@ -112,10 +131,8 @@ grab_apk_from_repo () { com.google.android.gms ) # XXX select mapbox build in official microG repo - if [ ${REPO} == ${REPO_MICROG} ]; then - 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})" - fi + 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}" ;; @@ -126,29 +143,22 @@ grab_apk_from_repo () { APK_URL="${REPO}/${APK_NAME}" - if [[ -f "${APK_DEST}/${4}.apk" ]]; then - TMP_SUM="$(sha256sum "${APK_DEST}/${4}.apk")" - - if [[ "${SHA_SUM}" == "${TMP_SUM/ */}" ]]; then - echo -e "\nUp-to-Date from ${REPO_P} : ${4}.apk" - else echo -e "\nUpdating from ${REPO_P} : ${4}.apk" - rm -f "${APK_DEST}/${4}.apk" - wget -q -O "${APK_DEST}/${4}.apk" "${APK_URL}" - fi - else - echo -e "\nDownloading from ${REPO_P}: ${4}.apk" - mkdir -p "${APK_DEST}" + if check_sha256sum "${APK_DEST}/${4}.apk.bz2" "${SHA_SUM}"; then + echo -e "\nUp-to-Date from ${REPO_P} : ${4}.apk" + else echo -e "\nUpdating from ${REPO_P} : ${4}.apk" + rm -f "${APK_DEST}/${4}.apk.bz2" wget -q -O "${APK_DEST}/${4}.apk" "${APK_URL}" - fi - TMP_SUM="$(sha256sum "${APK_DEST}/${4}.apk")" - - if [[ "${SHA_SUM}" == "${TMP_SUM/ */}" ]]; then - echo " SHA256 hash of ${4}.apk is correct" - else echo -e " SHA256 hash of ${4}.apk is wrong!\ - \n expected : ${SHA_SUM}\ - \n got : ${TMP_SUM/ *}" - rm -f "${APK_DEST}/${4}.apk" + 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" + bzip2 -z "${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" + fi + fi fi } @@ -193,31 +203,22 @@ ${5}-${VERSION}-android-apk-download" APK_URL="https://www.apkmirror.com${URL_WP}" APK_DEST="${CWD}/Full/system/${3}/${4}" - if [[ -f "${APK_DEST}/${4}.apk" ]]; then - TMP_SUM="$(sha256sum "${APK_DEST}/${4}.apk")" - - if [[ "${SHA_SUM}" == "${TMP_SUM/ */}" ]]; then - echo -e "\nUp-to-Date from APK Mirror: ${4}.apk" - else echo -e "\nUpdating from APK Mirror : ${4}.apk" - rm -f "${APK_DEST}/${4}.apk" - wget --user-agent="${USER_AGENT}" -q \ - "${APK_URL}" -O "${APK_DEST}/${4}.apk" + if check_sha256sum "${APK_DEST}/${4}.apk.bz2" "${SHA_SUM}"; then + echo -e "\nUp-to-Date from APK Mirror : ${4}.apk" + else echo -e "\nUpdating from APK Mirror : ${4}.apk" + rm -f "${APK_DEST}/${4}.apk.bz2" + wget --user-agent="${USER_AGENT}" -q "${APK_URL}" -O "${APK_DEST}/${4}.apk" + + 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" + bzip2 -z "${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" + fi fi - else - echo -e "\nDownloading from APK Mirror: ${4}.apk" - mkdir -p "${APK_DEST}" - wget --user-agent="${USER_AGENT}" -q \ - "${APK_URL}" -O "${APK_DEST}/${4}.apk" - fi - - TMP_SUM="$(sha256sum "${APK_DEST}/${4}.apk")" - - if [[ "${SHA_SUM}" == "${TMP_SUM/ */}" ]]; then - echo " SHA256 hash of ${4}.apk is correct" - else echo -e " SHA256 hash of ${4}.apk is wrong!\ - \n expected : ${SHA_SUM}\ - \n got : ${TMP_SUM/ *}" - rm -f "${APK_DEST}/${4}.apk" fi } @@ -312,5 +313,4 @@ grab_patches () { wget -q -O "${PATCH_DST}" "${PATCH_URL}" || \ rm -f "${PATCH_DST}" - }