build-package: simplify dowloading APKs from repository, compress APKs using bzip2

merge-requests/23/head
Christopher Roy Bratusek 5 years ago
parent 3629e8d02c
commit 41ab8e38aa

@ -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 )

@ -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}"
}

Loading…
Cancel
Save