Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/env bash
- #Revanced総合 Part4
- #https://egg.5ch.net/test/read.cgi/android/1684122607/
- AUTHOR="revanced"
- WORKSPACE="$HOME/.$AUTHOR"
- #cd "$(dirname "$0")"
- echo "(first arg) any options: $1"
- TIMESTAMP=`date "+%Y%m%d%H%M"`
- USERID=`whoami`
- PATCHES_ARGS=" \
- -i theme -i navigation-buttons \
- -i minimized-playback -i remember-video-quality \
- -i video-ads -i hide-ads \
- -i comments -i hide-info-cards -i hide-endscreen-cards \
- -i remove-player-controls-background \
- -i hide-breaking-news-shelf -i hide-shorts-components \
- -i video-speed -i hide-watermark -i copy-video-url \
- "
- PACKAGE_NAME="com.google.android.youtube"
- APKMIRROR_APP_DEVELOPER_NAME="google-inc"
- APKMIRROR_APP_NAME="youtube"
- #CLI_VERSION=""
- #INTEGRATIONS_VERSION=""
- #PATCHES_VERSION=""
- #APK_VERSION=""
- CURL_HEADER="User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Firefox/102.0"
- AAPT2_PATH=`which aapt2`
- AAPT2_ARGS="--custom-aapt2-binary $AAPT2_PATH"
- ANY_ARGS=$1
- CACHE_PATH="$WORKSPACE/revanced-cache"
- OPTIONS_PATH="$WORKSPACE/options.json"
- 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"
- }, {
- "key" : "splashScreenBackgroundColor",
- "value" : "@android:color/system_neutral1_900"
- } ]
- } ]
- 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 https://api.github.com/repos/${CLI_AUTHOR}/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 https://api.github.com/repos/${PATCHES_AUTHOR}/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 https://api.github.com/repos/${PATCHES_AUTHOR}/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 -nr | head -n 1)
- APK_INSTALLED_VERSION=$(echo $(su -c "dumpsys package $PACKAGE_NAME" | grep versionName) | 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')"
- APKMIRROR_URL="https://www.apkmirror.com$(curl $APKMIRROR_URL -fsSL -H "$CURL_HEADER" | tr '\n' ' ' | sed -n 's;.*href="\(.*key=[^"]*\)">.*;\1;p')"
- curl $APKMIRROR_URL -sSL -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_ARGS=" \
- -jar $CLI_PATH \
- -a $APK_PATH \
- -o $OUTPUT_PATH \
- -b $PATCHES_PATH \
- -m $INTEGRATIONS_PATH \
- $PATCHES_ARGS \
- $AAPT2_ARGS \
- --mount \
- --exclusive \
- -t $CACHE_PATH \
- --options $OPTIONS_PATH \
- "
- #echo "Command:"
- COMMAND_TXT_PATH="$WORKSPACE/command-$TIMESTAMP.txt"
- echo "java $CLI_COMMAND_ARGS $ANY_ARGS" | \
- sed -e 's/\ \+/\ /g' \
- > "$COMMAND_TXT_PATH"
- echo "Java:"
- java $CLI_COMMAND_ARGS $ANY_ARGS
- rm -rf $CACHE_PATH
- if [ ! -f "$OUTPUT_PATH" ]; then
- echo "$OUTPUT_PATH not exist"
- echo "Build failed"
- exit 0
- 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