Co-Authored-By: Mạnh Dương <46205571+luxysiv@users.noreply.github.com>
This commit is contained in:
Fioren
2023-05-04 02:16:50 +07:00
parent f0693179ba
commit 8ecd019a42
46 changed files with 399 additions and 852 deletions

72
src/build/build-rv.sh Normal file
View File

@@ -0,0 +1,72 @@
#!/bin/bash
# Revanced build
source src/build/tools.sh
release=$(curl -s "https://api.github.com/repos/revanced/revanced-patches/releases/latest")
asset=$(echo "$release" | jq -r '.assets[] | select(.name | test("revanced-patches.*\\.jar$")) | .browser_download_url')
curl -sL -O "$asset"
ls revanced-patches*.jar >> new.txt
rm -f revanced-patches*.jar
release=$(curl -s "https://api.github.com/repos/siritami/Revanced-And-Revanced-Extended-Non-Root/releases/latest")
asset=$(echo "$release" | jq -r '.assets[] | select(.name == "revanced-version.txt") | .browser_download_url')
curl -sL -O "$asset"
if diff -q revanced-version.txt new.txt >/dev/null ; then
echo "Old patch!!! Not build"
exit 1
else
rm -f *.txt
dl_gh "revanced"
# Patch Twitter
#get_patches_key "twitter"
#get_apk_with_ver "twitter" "9.86.0-release.0" "twitter-inc/twitter/twitter"
#patch "twitter" "twitter-revanced"
# Patch Windy
get_patches_key "windy"
get_apk "windy" "windy-wind-weather-forecast" "windy-weather-world-inc/windy-wind-weather-forecast/windy-wind-weather-forecast"
patch "windy" "windy-revanced"
# Patch Reddit
get_patches_key "reddit"
get_ver "general-reddit-ads" "com.reddit.frontpage"
get_apk "reddit" "reddit" "redditinc/reddit/reddit"
patch "reddit" "reddit-revanced"
# Patch Instagram
get_patches_key "instagram"
get_apk_arch_with_ver "instagram" "271.1.0.21.84" "instagram/instagram-instagram/instagram-instagram"
patch "instagram" "instagram-revanced"
# Patch Messenger
get_patches_key "messenger"
get_apk_arch "messenger" "messenger" "facebook-2/messenger/messenger"
patch "messenger" "messenger-revanced"
# Patch Twitch
get_patches_key "twitch"
get_ver "block-video-ads" "tv.twitch.android.app"
get_apk "twitch" "twitch" "twitch-interactive-inc/twitch/twitch"
patch "twitch" "twitch-revanced"
# Patch Tiktok
get_patches_key "tiktok"
get_ver "sim-spoof" "com.ss.android.ugc.trill"
get_apk "tiktok" "tik-tok-including-musical-ly" "tiktok-pte-ltd/tik-tok-including-musical-ly/tik-tok-including-musical-ly"
patch "tiktok" "tiktok-revanced"
# Patch YouTube
get_patches_key "youtube-revanced"
get_ver "video-ads" "com.google.android.youtube"
get_apk "youtube" "youtube" "google-inc/youtube/youtube"
patch "youtube" "youtube-revanced"
# Patch YouTube Music
get_patches_key "youtube-music-revanced"
get_ver "hide-get-premium" "com.google.android.apps.youtube.music"
get_apk_arch "youtube-music" "youtube-music" "google-inc/youtube-music/youtube-music"
patch "youtube-music" "youtube-music-revanced"
ls revanced-patches*.jar >> revanced-version.txt
fi

33
src/build/build-rve.sh Normal file
View File

@@ -0,0 +1,33 @@
#!/bin/bash
# Revanced Extended build
source src/build/tools.sh
release=$(curl -s "https://api.github.com/repos/inotia00/revanced-patches/releases/latest")
asset=$(echo "$release" | jq -r '.assets[] | select(.name | test("revanced-patches.*\\.jar$")) | .browser_download_url')
curl -sL -O "$asset"
ls revanced-patches*.jar >> new.txt
rm -f revanced-patches*.jar
release=$(curl -s "https://api.github.com/repos/FiorenMas/Revanced-And-Revanced-Extended-Non-Root/releases/latest")
asset=$(echo "$release" | jq -r '.assets[] | select(.name == "revanced-extended-version.txt") | .browser_download_url')
curl -sL -O "$asset"
if diff -q revanced-extended-version.txt new.txt >/dev/null ; then
echo "Old patch!!! Not build"
exit 1
else
rm -f *.txt
dl_gh "inotia00"
# Patch YouTube Extended
get_patches_key "youtube-revanced-extended"
get_ver "hide-general-ads" "com.google.android.youtube"
get_apk "youtube" "youtube" "google-inc/youtube/youtube"
patch "youtube" "youtube-revanced-extended"
# Patch YouTube Music Extended
get_patches_key "youtube-music-revanced-extended"
get_apk_arch "youtube-music" "youtube-music" "google-inc/youtube-music/youtube-music"
patch "youtube-music" "youtube-music-revanced-extended"
ls revanced-patches*.jar >> revanced-extended-version.txt
fi

120
src/build/tools.sh Normal file
View File

@@ -0,0 +1,120 @@
dl_gh() {
for repo in revanced-patches revanced-cli revanced-integrations ; do
asset_urls=$(wget -qO- "https://api.github.com/repos/$1/$repo/releases/latest" \
| jq -r '.assets[] | "\(.browser_download_url) \(.name)"')
while read -r url names
do
echo "Downloading $names from $url"
wget -q -O "$names" $url
done <<< "$asset_urls"
done
echo "All assets downloaded"
}
get_patches_key() {
EXCLUDE_PATCHES=()
for word in $(cat src/patches/$1/exclude-patches) ; do
EXCLUDE_PATCHES+=("-e $word")
done
INCLUDE_PATCHES=()
for word in $(cat src/patches/$1/include-patches) ; do
INCLUDE_PATCHES+=("-i $word")
done
}
req() {
wget -nv -O "$2" -U "Mozilla/5.0 (X11; Linux x86_64; rv:111.0) Gecko/20100101 Firefox/111.0" "$1"
}
get_apk_vers() {
req "$1" - | sed -n 's;.*Version:</span><span class="infoSlide-value">\(.*\) </span>.*;\1;p'
}
get_largest_ver() {
local max=0
while read -r v || [ -n "$v" ]; do
if [[ ${v//[!0-9]/} -gt ${max//[!0-9]/} ]]; then max=$v; fi
done
if [[ $max = 0 ]]; then echo ""; else echo "$max"; fi
}
dl_apk() {
local url=$1 regexp=$2 output=$3
url="https://www.apkmirror.com$(req "$url" - | tr '\n' ' ' | sed -n "s/href=\"/@/g; s;.*${regexp}.*;\1;p")"
echo "$url"
url="https://www.apkmirror.com$(req "$url" - | tr '\n' ' ' | sed -n 's;.*href="\(.*key=[^"]*\)">.*;\1;p')"
url="https://www.apkmirror.com$(req "$url" - | tr '\n' ' ' | sed -n 's;.*href="\(.*key=[^"]*\)">.*;\1;p')"
req "$url" "$output"
}
get_apk() {
echo "Downloading $1"
local last_ver
last_ver="$version"
last_ver="${last_ver:-$(get_apk_vers "https://www.apkmirror.com/uploads/?appcategory=$2" | get_largest_ver)}"
echo "Choosing version '${last_ver}'"
local base_apk="$1.apk"
dl_url=$(dl_apk "https://www.apkmirror.com/apk/$3-${last_ver//./-}-release/" \
"APK</span>[^@]*@\([^#]*\)" \
"$base_apk")
echo "$1 version: ${last_ver}"
echo "downloaded from: [APKMirror - $1]($dl_url)"
}
get_apk_with_ver() {
echo "Downloading $1"
local version
version="$2"
echo "Choosing version '${version}'"
local base_apk="$1.apk"
dl_url=$(dl_apk "https://www.apkmirror.com/apk/$3-${version//./-}-release/" \
"APK</span>[^@]*@\([^#]*\)" \
"$base_apk")
echo "$1 version: ${version}"
echo "downloaded from: [APKMirror - $1]($dl_url)"
}
get_apk_arch() {
echo "Downloading $1 (${arm64-v8a})"
local last_ver
last_ver="$version"
last_ver="${last_ver:-$(get_apk_vers "https://www.apkmirror.com/uploads/?appcategory=$2" | get_largest_ver)}"
echo "Choosing version '${last_ver}'"
local base_apk="$1.apk"
local regexp_arch='arm64-v8a</div>[^@]*@\([^"]*\)'
dl_url=$(dl_apk "https://www.apkmirror.com/apk/$3-${last_ver//./-}-release/" \
"$regexp_arch" \
"$base_apk")
echo "$1 (${arm64-v8a}) version: ${last_ver}"
echo "downloaded from: [APKMirror - $1 ${arm64-v8a}]($dl_url)"
}
get_apk_arch_with_ver() {
echo "Downloading $1 (${arm64-v8a})"
local version
version="$2"
local base_apk="$1.apk"
local regexp_arch='arm64-v8a</div>[^@]*@\([^"]*\)'
dl_url=$(dl_apk "https://www.apkmirror.com/apk/$3-${version//./-}-release/" \
"$regexp_arch" \
"$base_apk")
echo "$1 (${arm64-v8a}) version: ${version}"
echo "downloaded from: [APKMirror - $1 ${arm64-v8a}]($dl_url)"
}
get_ver() {
version=$(jq -r --arg patch_name "$1" --arg pkg_name "$2" '
.[]
| select(.name == $patch_name)
| .compatiblePackages[]
| select(.name == $pkg_name)
| .versions[-1]
' patches.json)
}
patch() {
if [ -f "$1.apk" ]; then
java -jar revanced-cli*.jar \
-m revanced-integrations*.apk \
-b revanced-patches*.jar \
-a $1.apk \
${EXCLUDE_PATCHES[@]} \
${INCLUDE_PATCHES[@]} \
--keystore=ks.keystore \
-o ./build/$2.apk
unset version
unset EXCLUDE_PATCHES
unset INCLUDE_PATCHES
else
exit 1
fi
}

View File

@@ -1,23 +0,0 @@
#!/bin/bash
DIR_TMP="$(mktemp -d)"
echo "⏬ Downloading Revanced resources..."
for repos in revanced-patches revanced-cli revanced-integrations; do
curl -s "https://api.github.com/repos/revanced/$repos/releases/latest" | jq -r '.assets[].browser_download_url' | xargs -n 1 curl -sL -O
done
echo "⚙️ Importing Patches..."
EXCLUDE_PATCHES=()
for word in $(cat src/instagram/exclude-patches.txt) ; do
EXCLUDE_PATCHES+=("-e $word")
done
echo "⏬ Downloading apkeep resources..."
curl --retry 10 --retry-max-time 60 -H "Cache-Control: no-cache" -fsSL github.com/EFForg/apkeep/releases/latest/download/apkeep-x86_64-unknown-linux-gnu -o ${DIR_TMP}/apkeep
echo "⏬ Downloading Instagram..."
chmod +x ${DIR_TMP}/apkeep
${DIR_TMP}/apkeep -a com.instagram.android@271.1.0.21.84 .
echo "⚙️ Patching Instagram..."
java -jar revanced-cli*.jar -m revanced-integrations*.apk -b revanced-patches*.jar ${EXCLUDE_PATCHES[@]} -a com.instagram.android@271.1.0.21.84.apk --keystore=ks.keystore -o Instagram.apk

BIN
src/ks.keystore Normal file

Binary file not shown.

View File

@@ -1,23 +0,0 @@
#!/bin/bash
DIR_TMP="$(mktemp -d)"
echo "⏬ Downloading Revanced resources..."
for repos in revanced-patches revanced-cli revanced-integrations; do
curl -s "https://api.github.com/repos/revanced/$repos/releases/latest" | jq -r '.assets[].browser_download_url' | xargs -n 1 curl -sL -O
done
echo "⚙️ Importing Patches..."
EXCLUDE_PATCHES=()
for word in $(cat src/messenger/exclude-patches.txt) ; do
EXCLUDE_PATCHES+=("-e $word")
done
echo "⏬ Downloading apkeep resources..."
curl --retry 10 --retry-max-time 60 -H "Cache-Control: no-cache" -fsSL github.com/EFForg/apkeep/releases/latest/download/apkeep-x86_64-unknown-linux-gnu -o ${DIR_TMP}/apkeep
echo "⏬ Downloading Messenger..."
chmod +x ${DIR_TMP}/apkeep
${DIR_TMP}/apkeep -a com.facebook.orca -d google-play -o split_apk=false,locale=vi_VN -i ~/apkeep.ini .
echo "⚙️ Patching Messenger..."
java -jar revanced-cli*.jar -m revanced-integrations*.apk -b revanced-patches*.jar ${EXCLUDE_PATCHES[@]} -a com.facebook.orca.apk --keystore=ks.keystore -o Messenger.apk

View File

@@ -0,0 +1 @@

View File

@@ -0,0 +1 @@

View File

@@ -0,0 +1 @@

View File

@@ -0,0 +1 @@

View File

@@ -0,0 +1 @@

View File

@@ -0,0 +1 @@

View File

@@ -0,0 +1 @@

View File

@@ -0,0 +1 @@

View File

@@ -0,0 +1 @@

View File

@@ -0,0 +1 @@

View File

@@ -0,0 +1 @@

View File

@@ -0,0 +1 @@

View File

@@ -0,0 +1 @@

View File

@@ -0,0 +1 @@

View File

@@ -0,0 +1,12 @@
custom-branding-music-afn-red
compact-header
disable-auto-captions
enable-force-minimized-player
enable-force-shuffle
hide-button-shelf
hide-carousel-shelf
hide-category-bar
hide-music-cast-button
hide-new-playlist
hide-playlist-card
optimize-resource-music

View File

@@ -0,0 +1 @@

View File

@@ -0,0 +1 @@
compact-header

View File

@@ -0,0 +1 @@

View File

@@ -0,0 +1,24 @@
custom-branding-icon-afn-red
debugging
custom-seekbar-color
disable-startup-shorts-player
disable-quic-protocol
enable-old-quality-layout
force-premium-heading
force-vp9-codec
header-switch
hide-cast-button
hide-account-menu
hide-auto-captions
hide-autoplay-button
hide-autoplay-preview
hide-captions-button
hide-email-address
hide-endscreen-cards
hide-endscreen-overlay
hide-filmstrip-overlay
hide-mix-playlists
hide-seekbar
hide-search-terms
optimize-resource
spoof-app-version

View File

@@ -0,0 +1 @@

View File

@@ -0,0 +1,18 @@
custom-branding
premium-heading
enable-debugging
disable-auto-captions
hide-my-mix
hide-autoplay-button
hide-cast-button
hide-email-address
hide-endscreen-cards
hide-player-buttons
hide-seekbar
hide-timestamp
hide-video-action-buttons
hide-watch-in-vr
hide-captions-button
hide-timestamp
hide-shorts-button
spoof-app-version

View File

@@ -0,0 +1 @@
client-spoof

View File

@@ -1,23 +0,0 @@
#!/bin/bash
DIR_TMP="$(mktemp -d)"
echo "⏬ Downloading Revanced resources..."
for repos in revanced-patches revanced-cli revanced-integrations; do
curl -s "https://api.github.com/repos/revanced/$repos/releases/latest" | jq -r '.assets[].browser_download_url' | xargs -n 1 curl -sL -O
done
echo "⚙️ Importing Patches..."
EXCLUDE_PATCHES=()
for word in $(cat src/tiktok/exclude-patches.txt) ; do
EXCLUDE_PATCHES+=("-e $word")
done
echo "⏬ Downloading apkeep resources..."
curl --retry 10 --retry-max-time 60 -H "Cache-Control: no-cache" -fsSL github.com/EFForg/apkeep/releases/latest/download/apkeep-x86_64-unknown-linux-gnu -o ${DIR_TMP}/apkeep
echo "⏬ Downloading Titok..."
chmod +x ${DIR_TMP}/apkeep
${DIR_TMP}/apkeep -a com.ss.android.ugc.trill -d google-play -o split_apk=false,locale=vi_VN -i ~/apkeep.ini .
echo "⚙️ Patching Tiktok..."
java -jar revanced-cli*.jar -m revanced-integrations*.apk -b revanced-patches*.jar ${EXCLUDE_PATCHES[@]} -a com.ss.android.ugc.trill.apk --keystore=ks.keystore -o Tiktok.apk

View File

@@ -1,26 +0,0 @@
#!/bin/bash
DIR_TMP="$(mktemp -d)"
echo "⏬ Downloading Revanced resources..."
for repos in revanced-patches revanced-cli revanced-integrations; do
curl -s "https://api.github.com/repos/revanced/$repos/releases/latest" | jq -r '.assets[].browser_download_url' | xargs -n 1 curl -sL -O
done
echo "⚙️ Importing Patches..."
EXCLUDE_PATCHES=()
for word in $(cat src/twitch/exclude-patches.txt) ; do
EXCLUDE_PATCHES+=("-e $word")
done
"⚙️ Finding Twitch patches..."
version=$(jq -r '.[] | select(.name == "block-video-ads") | .compatiblePackages[] | select(.name == "tv.twitch.android.app") | .versions[-1]' patches.json)
echo "⏬ Downloading apkeep resources..."
curl --retry 10 --retry-max-time 60 -H "Cache-Control: no-cache" -fsSL github.com/EFForg/apkeep/releases/latest/download/apkeep-x86_64-unknown-linux-gnu -o ${DIR_TMP}/apkeep
echo "⏬ Downloading Twitch..."
chmod +x ${DIR_TMP}/apkeep
${DIR_TMP}/apkeep -a tv.twitch.android.app@$version .
echo "⚙️ Patching Twitch..."
java -jar revanced-cli*.jar -m revanced-integrations*.apk -b revanced-patches*.jar ${EXCLUDE_PATCHES[@]} -a tv.twitch.android.app*.apk --keystore=ks.keystore -o Twitch.apk

View File

@@ -1,23 +0,0 @@
#!/bin/bash
DIR_TMP="$(mktemp -d)"
echo "⏬ Downloading Revanced resources..."
for repos in revanced-patches revanced-cli revanced-integrations; do
curl -s "https://api.github.com/repos/revanced/$repos/releases/latest" | jq -r '.assets[].browser_download_url' | xargs -n 1 curl -sL -O
done
echo "⚙️ Importing Patches..."
EXCLUDE_PATCHES=()
for word in $(cat src/twitter/exclude-patches.txt) ; do
EXCLUDE_PATCHES+=("-e $word")
done
echo "⏬ Downloading apkeep resources..."
curl --retry 10 --retry-max-time 60 -H "Cache-Control: no-cache" -fsSL github.com/EFForg/apkeep/releases/latest/download/apkeep-x86_64-unknown-linux-gnu -o ${DIR_TMP}/apkeep
echo "⏬ Downloading Twitter..."
chmod +x ${DIR_TMP}/apkeep
${DIR_TMP}/apkeep -a com.twitter.android -d google-play -o split_apk=false,locale=vi_VN -i ~/apkeep.ini .
echo "⚙️ Patching Twitter..."
java -jar revanced-cli*.jar -m revanced-integrations*.apk -b revanced-patches*.jar ${EXCLUDE_PATCHES[@]} -a com.twitter.android.apk --keystore=ks.keystore -o Twitter.apk

View File

@@ -1,112 +0,0 @@
#!/bin/bash
set -e
# Set variables for Revanced
readonly revanced_name="revanced"
readonly revanced_user="revanced"
readonly revanced_patch="src/yt/patches.rv"
readonly revanced_ytversion="" # Input version supported if you need patch specific YT version.Example: "18.03.36"
# Set variables for Revanced Extended
readonly revanced_extended_name="revanced-extended"
readonly revanced_extended_user="inotia00"
readonly revanced_extended_patch="src/yt/patches.rve"
readonly revanced_extended_ytversion="" # Input version supported if you need patch specific YT version.Example: "18.07.35"
# Function prepare patches keywords
get_patch() {
local excluded_start=$(grep -n -m1 'EXCLUDE PATCHES' "$patch_file" | cut -d':' -f1)
local included_start=$(grep -n -m1 'INCLUDE PATCHES' "$patch_file" | cut -d':' -f1)
local excluded_patches=$(tail -n +$excluded_start $patch_file | head -n "$(( included_start - excluded_start ))" | grep '^[^#[:blank:]]')
local included_patches=$(tail -n +$included_start $patch_file | grep '^[^#[:blank:]]')
patches=()
if [[ -n "$excluded_patches" ]]; then
while read -r patch; do
patches+=("-e $patch")
done <<< "$excluded_patches"
fi
if [[ -n "$included_patches" ]]; then
while read -r patch; do
patches+=("-i $patch")
done <<< "$included_patches"
fi
}
# Function download latest github releases
download_latest_release() {
echo "⏬ Downloading $name resources..."
for repos in revanced-patches revanced-cli revanced-integrations; do
local url="https://api.github.com/repos/$user/$repos/releases/latest"
curl -s "$url" | jq -r '.assets[].browser_download_url' | xargs -n 1 curl -O -s -L
done
}
# Function download YouTube apk from APKmirror
req() {
curl -sSL -H "User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:111.0) Gecko/20100101 Firefox/111.0" "$1" -o "$2"
}
dl_yt() {
rm -rf $2
echo "🔽 Downloading YouTube version $1"
url="https://www.apkmirror.com/apk/google-inc/youtube/youtube-${1//./-}-release/"
echo "🔍 Searching for download link at $url"
url="$url$(req "$url" - | grep Variant -A50 | grep ">APK<" -A2 | grep android-apk-download | sed "s#.*-release/##g;s#/\#.*##g")"
url="https://www.apkmirror.com$(req "$url" - | tr '\n' ' ' | sed -n 's;.*href="\(.*key=[^"]*\)">.*;\1;p')"
url="https://www.apkmirror.com$(req "$url" - | tr '\n' ' ' | sed -n 's;.*href="\(.*key=[^"]*\)">.*;\1;p')"
echo "📥 Downloading from $url"
if req "$url" "$2" ; then
echo "✅ Download complete!"
else
echo "❌ Download failed."
fi
}
get_support_version() {
if [[ "$name" = "$revanced_name" ]] ; then
ytversion=$(jq -r '.[] | select(.name == "video-ads") | .compatiblePackages[] | select(.name == "com.google.android.youtube") | .versions[-1]' patches.json)
echo "✅️ Found YouTube version: $ytversion"
else
ytversion=$(jq -r '.[] | select(.name == "hide-general-ads") | .compatiblePackages[] | select(.name == "com.google.android.youtube") | .versions[-1]' patches.json)
echo "✅️ Found YouTube version: $ytversion"
fi
}
# Function Patch APK
patch_apk() {
echo "⚙️ Patching YouTube..."
java -jar revanced-cli*.jar \
-m revanced-integrations*.apk \
-b revanced-patches*.jar \
-a youtube-v$ytversion.apk \
${patches[@]} \
--keystore=ks.keystore \
-o yt-$name.apk
}
# Function clean caches to new build
clean_cache() {
echo "🧹 Clean caches..."
rm -f revanced-cli*.jar \
revanced-integrations*.apk \
revanced-patches*.jar \
patches.json \
options.toml \
youtube*.apk \
}
# Loop over Revanced & Revanced Extended
for name in $revanced_name $revanced_extended_name ; do
# Select variables based on name
if [[ "$name" = "$revanced_name" ]]; then
user="$revanced_user"
patch_file="$revanced_patch"
ytversion="$revanced_ytversion"
else
user="$revanced_extended_user"
patch_file="$revanced_extended_patch"
ytversion="$revanced_extended_ytversion"
fi
get_patch
download_latest_release
if [[ $ytversion ]] ; then
dl_yt $ytversion youtube-v$ytversion.apk
patch_apk
else
get_support_version
dl_yt $ytversion youtube-v$ytversion.apk
patch_apk
fi
clean_cache
done

View File

@@ -1,25 +0,0 @@
# EXCLUDE PATCHES FROM BELOW
custom-video-buffer
enable-debugging
hide-my-mix
hide-autoplay-button
premium-heading
hide-cast-button
hide-watch-in-vr
hide-captions-button
hide-timestamp
hide-shorts-button
# INCLUDE PATCHES FROM BELOW
open-links-externally
custom-branding-icon-mmt
return-youtube-dislike
sponsorblock
swipe-controls
disable-shorts-on-startup
hide-watermark
downloads
remember-video-quality
client-spoof
spoof-signature-verification
general-ads
video-ads

View File

@@ -1,35 +0,0 @@
# EXCLUDE PATCHES FROM BELOW
custom-video-buffer
debugging
hide-my-mix
hide-autoplay-button
premium-heading
hide-cast-button
hide-watch-in-vr
hide-captions-button
hide-timestamp
hide-shorts-button
force-vp9-codec
optimize-resource
hide-auto-captions
hide-comment-component
hide-mix-playlists
hide-subscriptions-button
hide-autoplay-preview
hide-search-terms
hide-seekbar
disable-quic-protocol
# INCLUDE PATCHES FROM BELOW
open-links-externally
custom-branding-icon-mmt
return-youtube-dislike
sponsorblock
swipe-controls
disable-shorts-on-startup
hide-watermark
downloads
remember-video-quality
client-spoof
protobuf-spoof
general-ads
video-ads

View File

@@ -1,103 +0,0 @@
#!/bin/bash
set -e
# Set variables for Revanced
readonly revanced_name="revanced"
readonly revanced_user="revanced"
readonly revanced_patch="src/ytm/patches.rv"
readonly revanced_ytmversion="" # Input version supported if you need patch specific YT version.Example: "18.03.36"
# Set variables for Revanced Extended
readonly revanced_extended_name="revanced-extended"
readonly revanced_extended_user="inotia00"
readonly revanced_extended_patch="src/ytm/patches.rve"
readonly revanced_extended_ytmversion="" # Input version supported if you need patch specific YT version.Example: "18.07.35"
# Function prepare patches keywords
get_patch() {
local excluded_start=$(grep -n -m1 'EXCLUDE PATCHES' "$patch_file" | cut -d':' -f1)
local included_start=$(grep -n -m1 'INCLUDE PATCHES' "$patch_file" | cut -d':' -f1)
local excluded_patches=$(tail -n +$excluded_start $patch_file | head -n "$(( included_start - excluded_start ))" | grep '^[^#[:blank:]]')
local included_patches=$(tail -n +$included_start $patch_file | grep '^[^#[:blank:]]')
patches=()
if [[ -n "$excluded_patches" ]]; then
while read -r patch; do
patches+=("-e $patch")
done <<< "$excluded_patches"
fi
if [[ -n "$included_patches" ]]; then
while read -r patch; do
patches+=("-i $patch")
done <<< "$included_patches"
fi
}
# Function download latest github releases
download_latest_release() {
echo "⏬ Downloading $name resources..."
for repos in revanced-patches revanced-cli revanced-integrations; do
local url="https://api.github.com/repos/$user/$repos/releases/latest"
curl -s "$url" | jq -r '.assets[].browser_download_url' | xargs -n 1 curl -O -s -L
done
}
# Function download YouTube apk from APKmirror
req() {
curl -sSL -H "User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:111.0) Gecko/20100101 Firefox/111.0" "$1" -o "$2"
}
dl_ytm() {
rm -rf $2
echo "Downloading YouTube Music $1"
url="https://www.apkmirror.com/apk/google-inc/youtube/youtube-music-${1//./-}-release/"
url="$url$(req "$url" - | grep arm64 -A30 | grep youtube-music | head -1 | sed "s#.*-release/##g;s#/\".*##g")"
url="https://www.apkmirror.com$(req "$url" - | tr '\n' ' ' | sed -n 's;.*href="\(.*key=[^"]*\)">.*;\1;p')"
url="https://www.apkmirror.com$(req "$url" - | tr '\n' ' ' | sed -n 's;.*href="\(.*key=[^"]*\)">.*;\1;p')"
req "$url" "$2"
}
get_latestytmversion() {
url="https://www.apkmirror.com/apk/google-inc/youtube-music/"
ytmversion=$(req "$url" - | grep "All version" -A200 | grep app_release | sed 's:.*/youtube-music-::g;s:-release/.*::g;s:-:.:g' | sort -r | head -1)
echo "Latest Youtube Music Version: $ytmversion"
}
get_support_version() {
ytmversion=$(jq -r '.[] | select(.name == "hide-get-premium") | .compatiblePackages[] | select(.name == "com.google.android.apps.youtube.music") | .versions[-1]' patches.json)
}
# Function Patch APK
patch_ms() {
echo "⚙️ Patching YouTube Music..."
java -jar revanced-cli*.jar \
-m revanced-integrations*.apk \
-b revanced-patches*.jar \
-a youtube-music-v$ytmversion.apk \
${patches[@]} \
--keystore=ks.keystore \
-o ytm-$name.apk
}
# Function clean caches to new build
clean_cache() {
echo "🧹 Clean caches..."
rm -f revanced-cli*.jar \
revanced-integrations*.apk \
revanced-patches*.jar \
patches.json \
options.toml \
youtube-music*.apk \
}
# Loop over Revanced & Revanced Extended
for name in $revanced_name $revanced_extended_name ; do
# Select variables based on name
if [[ "$name" = "$revanced_name" ]]; then
user="$revanced_user"
patch_file="$revanced_patch"
ytmversion="$revanced_ytmversion"
else
user="$revanced_extended_user"
patch_file="$revanced_extended_patch"
ytmversion="$revanced_extended_ytmversion"
fi
get_patch
download_latest_release
if [[ "$name" = "$revanced_name" ]] ; then
get_support_version
dl_ytm $ytmversion youtube-music-v$ytmversion.apk
else get_latestytmversion
dl_ytm $ytmversion youtube-music-v$ytmversion.apk
fi
patch_ms
clean_cache
done

View File

@@ -1,12 +0,0 @@
# EXCLUDE PATCHES FROM BELOW
compact-header
# INCLUDE PATCHES FROM BELOW
background-play
codecs-unlock
exclusive-audio-playback
hide-get-premium
minimized-playback-music
music-video-ads
tasteBuilder-remover
upgrade-button-remover
custom-branding-icon-afn-red

View File

@@ -1,12 +0,0 @@
# EXCLUDE PATCHES FROM BELOW
compact-header
# INCLUDE PATCHES FROM BELOW
background-play
codecs-unlock
exclusive-audio-playback
hide-get-premium
minimized-playback-music
music-video-ads
tasteBuilder-remover
upgrade-button-remover
custom-branding-icon-afn-red