mirror of
https://github.com/FiorenMas/Revanced-And-Revanced-Extended-Non-Root.git
synced 2025-12-06 08:07:40 +00:00
Update
Co-Authored-By: Mạnh Dương <46205571+luxysiv@users.noreply.github.com>
This commit is contained in:
72
src/build/build-rv.sh
Normal file
72
src/build/build-rv.sh
Normal 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
33
src/build/build-rve.sh
Normal 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
120
src/build/tools.sh
Normal 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
|
||||
}
|
||||
@@ -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
BIN
src/ks.keystore
Normal file
Binary file not shown.
@@ -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
|
||||
1
src/patches/instagram/exclude-patches
Normal file
1
src/patches/instagram/exclude-patches
Normal file
@@ -0,0 +1 @@
|
||||
|
||||
1
src/patches/instagram/include-patches
Normal file
1
src/patches/instagram/include-patches
Normal file
@@ -0,0 +1 @@
|
||||
|
||||
1
src/patches/messenger/exclude-patches
Normal file
1
src/patches/messenger/exclude-patches
Normal file
@@ -0,0 +1 @@
|
||||
|
||||
1
src/patches/messenger/include-patches
Normal file
1
src/patches/messenger/include-patches
Normal file
@@ -0,0 +1 @@
|
||||
|
||||
1
src/patches/reddit/exclude-patches
Normal file
1
src/patches/reddit/exclude-patches
Normal file
@@ -0,0 +1 @@
|
||||
|
||||
1
src/patches/reddit/include-patches
Normal file
1
src/patches/reddit/include-patches
Normal file
@@ -0,0 +1 @@
|
||||
|
||||
1
src/patches/tiktok/exclude-patches
Normal file
1
src/patches/tiktok/exclude-patches
Normal file
@@ -0,0 +1 @@
|
||||
|
||||
1
src/patches/tiktok/include-patches
Normal file
1
src/patches/tiktok/include-patches
Normal file
@@ -0,0 +1 @@
|
||||
|
||||
1
src/patches/twitch/exclude-patches
Normal file
1
src/patches/twitch/exclude-patches
Normal file
@@ -0,0 +1 @@
|
||||
|
||||
1
src/patches/twitch/include-patches
Normal file
1
src/patches/twitch/include-patches
Normal file
@@ -0,0 +1 @@
|
||||
|
||||
1
src/patches/twitter/exclude-patches
Normal file
1
src/patches/twitter/exclude-patches
Normal file
@@ -0,0 +1 @@
|
||||
|
||||
1
src/patches/twitter/include-patches
Normal file
1
src/patches/twitter/include-patches
Normal file
@@ -0,0 +1 @@
|
||||
|
||||
1
src/patches/windy/exclude-patches
Normal file
1
src/patches/windy/exclude-patches
Normal file
@@ -0,0 +1 @@
|
||||
|
||||
1
src/patches/windy/include-patches
Normal file
1
src/patches/windy/include-patches
Normal file
@@ -0,0 +1 @@
|
||||
|
||||
12
src/patches/youtube-music-revanced-extended/exclude-patches
Normal file
12
src/patches/youtube-music-revanced-extended/exclude-patches
Normal 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
|
||||
@@ -0,0 +1 @@
|
||||
|
||||
1
src/patches/youtube-music-revanced/exclude-patches
Normal file
1
src/patches/youtube-music-revanced/exclude-patches
Normal file
@@ -0,0 +1 @@
|
||||
compact-header
|
||||
1
src/patches/youtube-music-revanced/include-patches
Normal file
1
src/patches/youtube-music-revanced/include-patches
Normal file
@@ -0,0 +1 @@
|
||||
|
||||
24
src/patches/youtube-revanced-extended/exclude-patches
Normal file
24
src/patches/youtube-revanced-extended/exclude-patches
Normal 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
|
||||
1
src/patches/youtube-revanced-extended/include-patches
Normal file
1
src/patches/youtube-revanced-extended/include-patches
Normal file
@@ -0,0 +1 @@
|
||||
|
||||
18
src/patches/youtube-revanced/exclude-patches
Normal file
18
src/patches/youtube-revanced/exclude-patches
Normal 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
|
||||
1
src/patches/youtube-revanced/include-patches
Normal file
1
src/patches/youtube-revanced/include-patches
Normal file
@@ -0,0 +1 @@
|
||||
client-spoof
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
112
src/yt/patch.sh
112
src/yt/patch.sh
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
103
src/ytm/patch.sh
103
src/ytm/patch.sh
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
Reference in New Issue
Block a user