mirror of
https://gitlab.com/Nanolx/NanoDroid
synced 2024-11-07 15:20:36 +00:00
179 lines
4.3 KiB
Bash
179 lines
4.3 KiB
Bash
#!/bin/bash
|
|
|
|
NANODROID_MISSING_FILES=0
|
|
missing_database=""
|
|
|
|
check_nanodroid () {
|
|
for file in ${files_database[@]}; do
|
|
if [[ ! -f ${CWD}/${file} ]]; then
|
|
NANODROID_MISSING_FILES=1
|
|
missing_database=(${missing_database[@]} ${file})
|
|
fi
|
|
done
|
|
|
|
if [[ ${NANODROID_MISSING_FILES} -ne 0 ]]; then
|
|
echo -e "\nThe following files are missing:\n"
|
|
printf '%s\n' ${missing_database[@]}
|
|
return 1
|
|
else
|
|
echo -e "\nNanoDroid correctly populated\n"
|
|
return 0
|
|
fi
|
|
}
|
|
|
|
progress () {
|
|
sleep 0.5
|
|
while [ -d "/proc/${1}" ];do
|
|
echo -ne '/\x08' ; sleep 0.05
|
|
echo -ne '-\x08' ; sleep 0.05
|
|
echo -ne '\\\x08' ; sleep 0.05
|
|
echo -ne '|\x08' ; sleep 0.05
|
|
done
|
|
|
|
echo "Done"
|
|
}
|
|
|
|
zip_add () {
|
|
case ${1} in
|
|
*/ ) zip -qr "${ZIP}" ${1} || exit 1 ;;
|
|
"" ) zip -qr "${ZIP}" * || exit 1 ;;
|
|
* ) zip -q "${ZIP}" ${1} || exit 1 ;;
|
|
esac
|
|
}
|
|
|
|
zip_add_config () {
|
|
if [ -f "${CWD}/data/${1}" ]; then
|
|
cd "${CWD}/data"
|
|
else cd "${CWD}/doc"
|
|
fi
|
|
|
|
if [[ -n "${2}" && "${2}" -eq 1 ]]; then
|
|
sed -e 's/nanodroid_overlay=1/nanodroid_overlay=0/' -i "${1}"
|
|
zip_add "${1}"
|
|
sed -e 's/nanodroid_overlay=0/nanodroid_overlay=1/' -i "${1}"
|
|
else
|
|
zip_add "${1}"
|
|
fi
|
|
|
|
cd "${CWD}"
|
|
}
|
|
|
|
zip_add_doc () {
|
|
zip_add README.md
|
|
zip_add ChangeLog.md
|
|
}
|
|
|
|
increase_version_number() {
|
|
if [ -z ${3} ]; then
|
|
ver=99999999
|
|
else ver=${3}
|
|
fi
|
|
|
|
sed -e "s/^VERSION=.*/VERSION=${2}.${ver}/" -i "${CWD}/build-package"
|
|
sed -e "s/^VERSION=.*/VERSION=${2}.${ver}/" -i "${CWD}/CommonInstaller"
|
|
|
|
for module in Full microG F-Droid BromiteWebView OsmAnd; do
|
|
sed -e "s/version=.*/version=v${2}.${ver}/" -i \
|
|
"${CWD}/${module}/module.prop"
|
|
done
|
|
|
|
sed -e "s/\" NanoDroid.*/\" NanoDroid ${2}.${ver} \"/" -i \
|
|
"${CWD}/patcher/META-INF/com/google/android/update-binary"
|
|
|
|
sed -e "s/\" NanoDroid.*/\" NanoDroid ${2}.${ver} \"/" -i \
|
|
"${CWD}/uninstaller/META-INF/com/google/android/update-binary"
|
|
|
|
sed -e "s/rom_version\",.*/rom_version\", \"${2}\")\;/" -i \
|
|
"${CWD}/setup-wizard/META-INF/com/google/android/aroma-config"
|
|
sed -e "s/rom_date\",.*/rom_date\", \"${ver}\")\;/" -i \
|
|
"${CWD}/setup-wizard/META-INF/com/google/android/aroma-config"
|
|
sed -e "s/Wizard.*/Wizard ${2}.${ver}\")\;/" -i \
|
|
"${CWD}/setup-wizard/META-INF/com/google/android/updater-script"
|
|
sed -e "s/\" NanoDroid.*/\" NanoDroid ${2}.${ver} \"/" -i \
|
|
"${CWD}/setup-wizard/nanodroid-setup"
|
|
sed -e "s/\" addon.d.*/\" addon.d ${2}.${ver} \"/" -i \
|
|
"${CWD}"/patcher/dexpatcher/70-nanodroidpatcher.sh
|
|
|
|
exit 0
|
|
}
|
|
|
|
increase_module_version () {
|
|
for module in Full microG F-Droid BromiteWebView OsmAnd; do
|
|
eval $(grep versionCode "${PWD}"/"${module}"/module.prop)
|
|
versionCode=$((versionCode+1))
|
|
sed -e "s/versionCode.*/versionCode=${versionCode}/" \
|
|
-i "${CWD}/${module}/module.prop"
|
|
done
|
|
|
|
exit 0
|
|
}
|
|
|
|
dalvikize_jar () {
|
|
if [[ -f ${1} ]]; then
|
|
${ANDROID_HOME}/build-tools/27.0.3/dx --dex \
|
|
--output="$(basename "${1}" .jar).dex" \
|
|
"${1}"
|
|
fi
|
|
|
|
exit 0
|
|
}
|
|
|
|
show_help () {
|
|
echo -e "
|
|
** NanoDroid ${VERSION} helper script **
|
|
|
|
usage: build-package [opt] [arg]
|
|
|
|
setup NanoDroid [! do this first !]:
|
|
pull | download all required apks for NanoDroid
|
|
|
|
update contents:
|
|
u-microg | update microG and companions
|
|
u-fdroid | update F-Droid and Extension
|
|
u-osmand | update OsmAnd and Plugins
|
|
u-apps | update applications
|
|
u-swipe | update swipe libraries
|
|
u-gsync | update Google Sync Adapters
|
|
|
|
create zip files:
|
|
full | create full package zip from repo
|
|
microg | create microG package zip from repo
|
|
fdroid | create F-Droid package zip from repo
|
|
patcher | create framework patcher zip from repo
|
|
uninstaller | create uninstaller zip from repo
|
|
setupwizard | create setup-wizard zip from repo
|
|
bromitewebview | create Bromite WebView zip from repo
|
|
osmand | create OsmAnd package zip from repo
|
|
all | create all zips from repo
|
|
|
|
misc. stuff:
|
|
check | check if all files were properly downloaded
|
|
clean | remove any untracked files from the repo
|
|
dalvik [jar] | prepare a jar file for dalvikvm usage
|
|
ver [ver] [date] | bump version
|
|
bump | bump versionCode in Magisk Modules
|
|
"
|
|
|
|
exit 0
|
|
}
|
|
|
|
print_package () {
|
|
echo "
|
|
Creating Package
|
|
|
|
Type ${1}
|
|
Name $(basename ${ZIP})
|
|
Directory $(dirname ${ZIP})
|
|
"
|
|
}
|
|
|
|
error () {
|
|
echo -e "${@}"
|
|
exit 1
|
|
}
|
|
|
|
sum_sign_package () {
|
|
sha256sum "${1}" > "${1}.sha256"
|
|
gpg --sign --detach-sign "${1}.sha256"
|
|
}
|