From 5effa89279f9354037d89082627652ed5854d6ce Mon Sep 17 00:00:00 2001 From: Felix Date: Sat, 3 May 2025 13:00:52 +0200 Subject: [PATCH] update.sh aktualisiert --- update.sh | 73 +++++++++++++++++++++++++++++++++++++++++++++---------- 1 file changed, 60 insertions(+), 13 deletions(-) diff --git a/update.sh b/update.sh index 9b95ce1..d932e51 100755 --- a/update.sh +++ b/update.sh @@ -6,17 +6,27 @@ chmod 0600 config.yml # Create repo icon directory if it doesn't exist mkdir -p repo/icons -# Create a basic repo icon if missing (you can replace this with your own icon later) +# Create a basic repo icon if missing if [ ! -f repo/icons/icon.png ]; then echo "Creating placeholder repo icon..." - convert -size 512x512 xc:blue -fill white -gravity center -pointsize 70 -annotate 0 "F-Droid\nRepo" repo/icons/icon.png + # Try to create an icon using ImageMagick if available + if command -v convert >/dev/null 2>&1; then + convert -size 512x512 xc:blue -fill white -gravity center -pointsize 70 -annotate 0 "F-Droid\nRepo" repo/icons/icon.png + else + # Fallback to downloading a simple icon + wget -q -O repo/icons/icon.png "https://f-droid.org/assets/favicon-256.png" || echo "Could not create icon, please add one manually" + fi fi -# Function to extract version from APK +# Function to extract version from APK (if aapt is available) get_version() { apk_file=$1 - version=$(aapt dump badging "$apk_file" 2>/dev/null | grep versionName | awk -F"'" '{print $4}') - echo "$version" + if command -v aapt >/dev/null 2>&1; then + version=$(aapt dump badging "$apk_file" 2>/dev/null | grep versionName | awk -F"'" '{print $4}') + echo "$version" + else + echo "unknown (aapt not installed)" + fi } # Function to download and update only if changed @@ -65,6 +75,18 @@ update_app() { fi } +# Make sure archive directory exists and check for archived APKs +mkdir -p archive/ +# Check if any apps are in archive and restore them to repo +echo "Checking for archived APKs to restore..." +for app in YouTube Reddit SoundCloud Duolingo GoogleNews Instagram Twitter NovaLauncher Busuu Quizlet Telegram; do + if [ -f "archive/${app}.apk" ]; then + echo "Restoring ${app}.apk from archive to repo" + cp "archive/${app}.apk" "repo/${app}.apk" + touch -d "$(date +%Y-%m-%d)" "repo/${app}.apk" + fi +done + # Process each app update_app "YouTube" "https://github.com/FiorenMas/Revanced-And-Revanced-Extended-Non-Root/releases/download/all/youtube-revanced-extended.apk" update_app "Reddit" "https://github.com/FiorenMas/Revanced-And-Revanced-Extended-Non-Root/releases/download/all/reddit-revanced-extended.apk" @@ -81,12 +103,37 @@ update_app "Telegram" "https://git.felo.gg/FeloStore/Data/releases/download/late # Clean up temp directory rm -rf ./temp -# Add flag to accept unsigned APKs in fdroid -echo "Updating F-Droid repository, accepting unsigned APKs..." -fdroid update --allow-disabled-algorithms --use-date-from-apk --clean +# Create or update fdroidserver config to accept unsigned APKs +mkdir -p ~/.config/fdroidserver/ +echo "accept_bad_certificate: True" > ~/.config/fdroidserver/config.yml +echo "allow_disabled_algorithms: True" >> ~/.config/fdroidserver/config.yml -# If there are issues, try to force update -if [ $? -ne 0 ]; then - echo "First update attempt failed, trying with additional flags..." - fdroid update --create-metadata --delete-unknown --allow-disabled-algorithms --use-date-from-apk --clean -fi \ No newline at end of file +# Update config to explicitly allow unsigned APKs +if [ -f config.yml ]; then + if ! grep -q "disable_apk_signing:" config.yml; then + echo "disable_apk_signing: True" >> config.yml + fi + if ! grep -q "allow_disabled_algorithms:" config.yml; then + echo "allow_disabled_algorithms: True" >> config.yml + fi +fi + +# Update F-Droid repository with special flags for unsigned APKs +echo "Updating F-Droid repository with special settings for unsigned APKs..." +fdroid update --create-metadata --no-check-certificate --allow-disabled-algorithms --use-date-from-apk --delete-unsigned --disable-apk-signing + +# After update, copy any moved files back from archive to repo +echo "Checking if any APKs were moved to archive..." +for app in YouTube Reddit SoundCloud Duolingo GoogleNews Instagram Twitter NovaLauncher Busuu Quizlet Telegram; do + if [ -f "archive/${app}.apk" ] && [ ! -f "repo/${app}.apk" ]; then + echo "Restoring ${app}.apk from archive to repo after update" + cp "archive/${app}.apk" "repo/${app}.apk" + touch -d "$(date +%Y-%m-%d)" "repo/${app}.apk" + fi +done + +# Final update to include any restored files +echo "Running final update..." +fdroid update --no-check-certificate --allow-disabled-algorithms --use-date-from-apk --disable-apk-signing + +echo "Update complete!" \ No newline at end of file