Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/env bash
- #Revanced総合 Part12 https://egg.5ch.net/test/read.cgi/android/1704099659/
- AUTHOR="revanced"
- #API_URL="https://api.revanced.app/v2"
- API_URL="https://api.github.com/repos/${AUTHOR}"
- WORKSPACE="$HOME/.$AUTHOR"
- #cd "$(dirname "$0")"
- echo "(first arg) any options: $1"
- TIMESTAMP=`date "+%Y%m%d%H%M"`
- USERID=`whoami`
- #CLI_VERSION=""
- #INTEGRATIONS_VERSION=""
- #PATCHES_VERSION=""
- #APK_VERSION=""
- PACKAGE_NAME="com.google.android.youtube"
- APKMIRROR_APP_DEVELOPER_NAME="google-inc"
- APKMIRROR_APP_NAME="youtube"
- if ! command -v "aapt2" &> "/dev/null"; then
- echo -e "\e[1;31mError: aapt2 not found\e[0m"
- exit 1
- fi
- if ! command -v "jq" &> "/dev/null"; then
- echo -e "\e[1;31mError: jq not found\e[0m"
- exit 1
- fi
- if ! command -v "java" &> "/dev/null"; then
- echo -e "\e[1;31mError: java not found\e[0m"
- exit 1
- fi
- if ! command -v "su" &> "/dev/null"; then
- echo -e "\e[1;31mError: su not found\e[0m"
- exit 1
- fi
- AAPT2_PATH=`command -v aapt2`
- AAPT2_ARGS="--custom-aapt2-binary $AAPT2_PATH"
- ANY_ARGS=$1
- CACHE_PATH="$WORKSPACE/revanced-cache"
- OPTIONS_PATH="$WORKSPACE/options.json"
- CURL_HEADER="User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Firefox/102.0"
- if [ ! -e "$WORKSPACE" ]; then
- mkdir -p $WORKSPACE
- fi
- if [ -f "$OPTIONS_PATH" ]; then
- #echo "Removing $OPTIONS_PATH"
- rm -f $OPTIONS_PATH
- fi
- cat << EOF > $OPTIONS_PATH
- [ {
- "patchName" : "Theme",
- "options" : [ {
- "key" : "darkThemeBackgroundColor",
- "value" : "@android:color/system_neutral1_900"
- }, {
- "key" : "lightThemeBackgroundColor",
- "value" : "@android:color/system_neutral1_50"
- } ]
- } ]
- EOF
- UMOUNT_SCRIPT_NAME="umount_revanced_${PACKAGE_NAME}.sh"
- UMOUNT_SCRIPT_PATH="${WORKSPACE}/${UMOUNT_SCRIPT_NAME}"
- if [ -f "$UMOUNT_SCRIPT_PATH" ]; then
- #echo "Removing $UMOUNT_SCRIPT_PATH"
- rm -f $UMOUNT_SCRIPT_PATH
- fi
- cat <<EOF > $UMOUNT_SCRIPT_PATH
- #!/usr/bin/env bash
- echo "Unmounting ..."
- su -mm -c 'am force-stop ${PACKAGE_NAME} && \\
- grep ${PACKAGE_NAME} /proc/mounts | \\
- while read -r line; do echo \$line | \\
- cut -d " " -f 2 | \\
- sed "s/apk.*/apk/" | \\
- xargs -r umount -l > /dev/null 2>&1; done'
- EOF
- chmod 755 $UMOUNT_SCRIPT_PATH
- $UMOUNT_SCRIPT_PATH
- MOUNT_SCRIPT_NAME="mount_revanced_${PACKAGE_NAME}.sh"
- MOUNT_SCRIPT_PATH="${WORKSPACE}/${MOUNT_SCRIPT_NAME}"
- MOUNT_SCRIPT_ROOT_PATH="/data/adb/service.d/${MOUNT_SCRIPT_NAME}"
- if [ -f "$MOUNT_SCRIPT_PATH" ]; then
- #echo "Removing $MOUNT_SCRIPT_PATH"
- rm -f $MOUNT_SCRIPT_PATH
- fi
- cat <<EOF > $MOUNT_SCRIPT_PATH
- #!/system/bin/sh
- MAGISKTMP="\$(magisk --path)" || MAGISKTMP=/sbin
- MIRROR="\$MAGISKTMP/.magisk/mirror"
- while [ "\$(getprop sys.boot_completed | tr -d '\r')" != "1" ]; do sleep 1; done
- base_path="/data/adb/${PACKAGE_NAME}.apk"
- stock_path=\$( pm path ${PACKAGE_NAME} | grep base | sed 's/package://g' )
- chcon u:object_r:apk_data_file:s0 \$base_path
- mount -o bind \$MIRROR\$base_path \$stock_path
- EOF
- chmod 755 $MOUNT_SCRIPT_PATH
- CLI_AUTHOR=${AUTHOR}
- if [ -z "$CLI_VERSION" ]; then
- CLI_VERSION="$(curl -s ${API_URL}/revanced-cli/releases/latest | grep "tag_name")"
- CLI_VERSION="${CLI_VERSION:16:-2}"
- fi
- echo "revanced-cli --version: $CLI_VERSION"
- CLI_PATH="$WORKSPACE/revanced-cli-$CLI_VERSION-all.jar"
- if [ ! -f "$CLI_PATH" ]; then
- curl "https://github.com/${CLI_AUTHOR}/revanced-cli/releases/download/v$CLI_VERSION/revanced-cli-$CLI_VERSION-all.jar" -sSL -o "$CLI_PATH"
- fi
- PATCHES_AUTHOR=${AUTHOR}
- if [ -z "$INTEGRATIONS_VERSION" ]; then
- INTEGRATIONS_VERSION="$(curl -s ${API_URL}/revanced-integrations/releases/latest | grep "tag_name")"
- INTEGRATIONS_VERSION="${INTEGRATIONS_VERSION:16:-2}"
- fi
- echo "revanced-integrations --version: $INTEGRATIONS_VERSION"
- INTEGRATIONS_PATH="$WORKSPACE/revanced-integrations-$INTEGRATIONS_VERSION.apk"
- if [ ! -f "$INTEGRATIONS_PATH" ]; then
- curl "https://github.com/${PATCHES_AUTHOR}/revanced-integrations/releases/download/v$INTEGRATIONS_VERSION/revanced-integrations-$INTEGRATIONS_VERSION.apk" -sSL -o "$INTEGRATIONS_PATH"
- fi
- if [ -z "$PATCHES_VERSION" ]; then
- PATCHES_VERSION="$(curl -s ${API_URL}/revanced-patches/releases/latest | grep "tag_name")"
- PATCHES_VERSION="${PATCHES_VERSION:16:-2}"
- fi
- echo "revanced-patches --version: $PATCHES_VERSION"
- PATCHES_PATH="$WORKSPACE/revanced-patches-$PATCHES_VERSION.jar"
- PATCHES_JSON_PATH="$WORKSPACE/patches-$PATCHES_VERSION.json"
- if [ ! -f "$PATCHES_PATH" ]; then
- curl "https://github.com/${PATCHES_AUTHOR}/revanced-patches/releases/download/v$PATCHES_VERSION/revanced-patches-$PATCHES_VERSION.jar" -sSL -o "$PATCHES_PATH"
- fi
- if [ ! -f "$PATCHES_JSON_PATH" ]; then
- curl "https://github.com/${PATCHES_AUTHOR}/revanced-patches/releases/download/v$PATCHES_VERSION/patches.json" -sSL -o "$PATCHES_JSON_PATH"
- fi
- APK_SUPPORTED_VERSIONS="$(cat "$PATCHES_JSON_PATH" | \
- jq -r '.[]?.compatiblePackages[]? | select(.name == "'$PACKAGE_NAME'") | .versions[]?' | \
- sort -n | uniq)"
- echo "Supported versions($PACKAGE_NAME): $(echo $APK_SUPPORTED_VERSIONS)"
- APK_SUPPORTED_VERSION=$(echo "${APK_SUPPORTED_VERSIONS[*]}" | sort -n | tail -1)
- APK_INSTALLED_VERSION=$(echo $(su -c "dumpsys package $PACKAGE_NAME" | grep versionName | sort -n | tail -1) | sed -r "s/versionName=//")
- echo "Installed versions($PACKAGE_NAME): $APK_INSTALLED_VERSION"
- APK_DOWNLOAD_PATH="$WORKSPACE/$PACKAGE_NAME-$APK_SUPPORTED_VERSION.apk"
- if [ -z "$APK_VERSION" ] && [[ "$APK_SUPPORTED_VERSION" != "$APK_INSTALLED_VERSION" ]]; then
- APKMIRROR_URL="https://www.apkmirror.com/apk/$APKMIRROR_APP_DEVELOPER_NAME/$APKMIRROR_APP_NAME/$APKMIRROR_APP_NAME-${APK_SUPPORTED_VERSION//./-}-release/"
- APKMIRROR_URL="https://www.apkmirror.com$(curl $APKMIRROR_URL -fsSL -H "$CURL_HEADER" | tr '\n' ' ' | sed -n 's/href="/@/g; s;.*APK</span>[^@]*@\([^#]*\).*;\1;p')"
- echo "downloaded apk from: $APKMIRROR_URL"
- APKMIRROR_URL="https://www.apkmirror.com$(curl $APKMIRROR_URL -fsSL -H "$CURL_HEADER" | tr '\n' ' ' | sed -n 's;.*href="\(.*key=[^"]*\)">.*;\1;p' | sed "s/amp;//")"
- echo "downloaded apk from: $APKMIRROR_URL"
- APKMIRROR_URL="https://www.apkmirror.com$(curl $APKMIRROR_URL -fsSL -H "$CURL_HEADER" | tr '\n' ' ' | sed -n 's;.*href="\(.*key=[^"]*\)">.*;\1;p' | sed "s/amp;//")"
- echo "downloaded apk from: $APKMIRROR_URL"
- curl $APKMIRROR_URL -L -H "$CURL_HEADER" -o "$APK_DOWNLOAD_PATH"
- su -c "pm install -i com.android.vending $APK_DOWNLOAD_PATH"
- fi
- PATCHES_JSON_TXT_PATH="$WORKSPACE/list-patches-$PATCHES_VERSION-$PACKAGE_NAME.txt"
- cat "$PATCHES_JSON_PATH" | \
- jq -r '.[] | select(.compatiblePackages[]?.name == "'$PACKAGE_NAME'") | .result = .name + ": " + .description | .result' \
- > "$PATCHES_JSON_TXT_PATH"
- APK_PATH="$WORKSPACE/$PACKAGE_NAME.apk"
- su -mm -c "cp \$(pm path ${PACKAGE_NAME} | grep base | sed 's/package://g') ${APK_PATH} && \
- chown ${USERID} ${APK_PATH} && \
- chmod 644 ${APK_PATH}"
- OUTPUT_PATH="$APK_PATH.rv-$TIMESTAMP.apk"
- CLI_COMMAND=" \
- java \
- -jar $CLI_PATH \
- patch $APK_PATH \
- -b $PATCHES_PATH \
- -m $INTEGRATIONS_PATH \
- -o $OUTPUT_PATH \
- -r $CACHE_PATH \
- --options $OPTIONS_PATH \
- --exclusive \
- --mount \
- $AAPT2_ARGS \
- -i \"!Theme\" \
- -i \"Navigation buttons\" \
- -i \"!Minimized playback\" \
- -i \"Remember video quality\" \
- -i \"Video ads\" \
- -i \"Hide ads\" \
- -i \"Hide layout components\" \
- -i \"Comments\" \
- -i \"Hide info cards\" \
- -i \"Hide endscreen cards\" \
- -i \"Remove player controls background\" \
- -i \"Hide Shorts components\" \
- -i \"Playback speed\" \
- -i \"Copy video url\" \
- -i \"Hide breaking news shelf\" \
- -i \"Disable suggested video end screen\" \
- -i \"Disable rolling number animations\" \
- -i \"Change start page\" \
- $ANY_ARGS \
- "
- #echo "Command:"
- COMMAND_TXT_PATH="$WORKSPACE/command-$TIMESTAMP.txt"
- echo "$CLI_COMMAND" | \
- sed -e 's/\ \+/\ /g' \
- > "$COMMAND_TXT_PATH"
- echo
- cat $COMMAND_TXT_PATH
- echo
- echo "Java:"
- bash -c "$CLI_COMMAND"
- rm -rf $CACHE_PATH
- if [ ! -f "$OUTPUT_PATH" ]; then
- echo -e "$OUTPUT_PATH not exist"
- echo -e "Build failed"
- exit 1
- fi
- $UMOUNT_SCRIPT_PATH
- chmod 644 $OUTPUT_PATH
- echo "Copying to root ..."
- su -mm -c "cp ${MOUNT_SCRIPT_PATH} ${MOUNT_SCRIPT_ROOT_PATH} && \
- cp ${OUTPUT_PATH} /data/adb/${PACKAGE_NAME}.apk; \
- ${MOUNT_SCRIPT_ROOT_PATH}"
- echo "Finished!"
- exit 0
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement