ReVanced. Skrypt budujący apk

Napisałem mały skrypt Bash automatyzujący pobieranie ReVanced (oficjalny z githuba) i instalację na smartfonie przy pomocy adb.

UPDATE: Poprawiłem filtry dla README.md i apkmirror, aby poprawnie wypisywało wersję
UPDATE #2: Drobne poprawki
Zależności:

Uwagi:

  • jeżeli masz Androida z obecną oryginalną aplikacją YouTube. Konieczne jest wybranie wersji z Vanced microG, nawet jeżeli nie będziesz się logował, ponieważ aplikacja będzie się wysypywać przy uruchomieniu.
  • po instalacji konieczne jest przejście do ustawień uprawnień ReVanced i przyznanie dostępu do „Kontakty”, w przeciwnym razie też aplikacja będzie się wysypywać przy starcie
#!/bin/bash


#Sprawdzanie obecności OpenJDK ZULU v17.XX w bierzącym katalogu
java_check="$(./zulu*-ca-jdk*-linux_x64/bin/java --version | grep -om1 'Zulu17')"
if [ "$java_check" = "Zulu17" ]; then
    :
else 
    echo "Nie znaleziono katalogu z OpenJDK Zulu w wersji 17.XX! (x64) Przerywam!"
    echo "Pobierz i rozpakuj odpowiednią wersję z: https://www.azul.com/downloads/?package=jdk#download-openjdk"
    exit 1
fi

echo "Usuwanie poprzednich plików ReVanced jeżeli istnieją..."
rm -v revanced-patches*.{dex,jar} revanced-cli*-all.jar integrations.apk revanced.apk microg.apk

echo "Trwa pobieranie plików ReVanced, czekaj..." \
 && \
curl -sL https://api.github.com/repos/revanced/revanced-patches/releases/latest | jq -r '.assets[] | select(.name | test("^revanced-patches") and test(".dex")).browser_download_url' | xargs -I {} curl -sL {} -O \
 && \
curl -sL https://api.github.com/repos/revanced/revanced-patches/releases/latest | jq -r '.assets[] | select(.name | test("^revanced-patches") and test(".jar")).browser_download_url' | xargs -I {} curl -sL {} -O \
 && \
curl -sL https://api.github.com/repos/revanced/revanced-cli/releases/latest | jq -r '.assets[] | select(.name | test("^revanced-cli") and test(".jar")).browser_download_url' | xargs -I {} curl -sL {} -O \
 && \
curl -sL https://api.github.com/repos/revanced/revanced-integrations/releases/latest | jq -r '.assets[] | select(.name | test("app-release-unsigned.apk")).browser_download_url' | xargs -I {} curl -sL {} -o integrations.apk \
 && \
echo "Pobrano ReVanced!"
echo

adb devices
echo -e "\nJeżeli powyżej nie widzisz swojego smartfona z włączonym debugowaniem USB to nie kontynuuj!\n"

read -p "Naciśnij dowolny klawisz, aby kontynuować ..."

yt_version="$(curl -sL https://github.com/revanced/revanced-patches/blob/main/README.md | awk '/swipe controls./{getline; print}' | sed -e 's/<\/b>/-/g' -e 's/<[^>]*>//g')"

echo -e "Zalecana wersja YouTube do zpatchowania: \n$yt_version\n"

yt_version="$(echo $yt_version | sed 's/\./\-/g')"

echo "Wygenerowany link do pobrania:"
echo -e "https://www.apkmirror.com/apk/google-inc/youtube/youtube-$yt_version-release/youtube-$yt_version-android-apk-download/?forcebaseapk=true\n"

echo "Pobierz plik do katalogu \"`pwd`\" i zapisz jako \"youtube.apk\", a następnie naciśnij dowolny klawisz..."
read

if [ -f "youtube.apk" ]; then
    echo "OK!"
else 
    echo "Nie znaleziono pliku youtube.apk w katalogu \"`pwd`\"!! Przerywam!"
    exit 1
fi

read -p "Wersja z obsługą Vanced microG? [t/n]? " mg
    case $mg in
        [tT])
            read -p "Pobrać i zainstalować Vanced microG? [t/n]? (wybierz jeżeli nie masz zainstalowane Vanced microG)" odp
            if [ "$odp" == "t" ] || [ "$odp" == "T" ]; then
                curl -sL https://api.github.com/repos/TeamVanced/VancedMicroG/releases/latest | jq -r '.assets[] | select(.name | test("microg.apk")).browser_download_url' | xargs -I {} curl -sL {} -o microg.apk \
                && \
                echo "Pobrano Vanced microG!"
                echo "Instaluję..."
                adb install microg.apk
            fi
            unset $odp
            ;;
        [nN])
            echo -e "Wybrano wersję bez Vanced microG (jeżeli masz w smartfonie zwykłe microG zamiast usług Google to aplikacja nadal będzie obsługiwała logowanie!!\n"
            add_exclude="-e microg-support"
            ;;
        *)
            echo -e "\nProszę zaznaczyć \"t\" lub \"n\" (tak/nie)!"
            exit 1
            ;;
    esac


./zulu*-ca-jdk*-linux_x64/bin/java -jar revanced-cli-*-all.jar -a youtube.apk -c -o revanced.apk -b revanced-patches-*.jar -m integrations.apk -e promo-code-unlock -e general-reddit-ads -e custom-branding -e premium-heading -e hide-get-premium -e disable-create-button -e music-video-ads -e hide-cast-button -e background-play -e exclusive-audio-playback -e codecs-unlock -e upgrade-button-remover -e tasteBuilder-remover -e amoled -e hide-shorts-button -e hide-autoplay-button -e disable-fullscreen-panels -e force-vp9-codec -e always-autorepeat -e enable-debugging -e minimized-playback-music -e hdr-auto-brightness -e timeline-ads -i swipe-controls -e music-microg-support $add_exclude

if [ -f "revanced.apk" ]; then
    read -p "Zainstalować ReVanced na urządzeniu? [t/n]? " odp
    case $odp in
        [tT])
            #adb uninstall com.google.android.youtube
            adb install revanced.apk
            ;;
        [nN])
            echo -e "\nZainstaluj plik \"revanced.apk\" ręcznie!!"
            ;;
    *)
            echo -e "\nProszę zaznaczyć \"t\" lub \"n\" (tak/nie)!"
            exit 1
            ;;
    esac
else 
    echo "Nie znaleziono pliku revanced.apk w katalogu \"`pwd`\"!! Coś poszło nie tak!"
    exit 1
fi

Dajcie znać, czy dla YouTube Music dołączyć Revanced w skrypcie :P?

Co ciekawe po spatchowaniu YT Music, jak udostępni się streaming na smartTV to pierwszy utwór ma reklamę, a wszystkie kolejne nie.
Do tego wygląda na to, że patch „codecs-unlock” wpływa też na jakość odtwarzania w smartTV. :scream:

Przydałaby się poprawka na wykryte bugi.

1 polubienie