Advertisement
Guest User

Untitled

a guest
Dec 16th, 2022
73
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.87 KB | None | 0 0
  1. #!/usr/bin/env bash
  2.  
  3. #【R.I.P】非公式YouTubeアプリ総合スレ11【Vanced】
  4. #https://egg.5ch.net/test/read.cgi/android/1669198502/
  5.  
  6. AUTHOR="revanced"
  7. WORKSPACE="$HOME/.$AUTHOR"
  8.  
  9. echo "(first arg) any options: $1"
  10.  
  11. TIMESTAMP=`date "+%Y%m%d%H%M"`
  12.  
  13. PATCHES_ARGS=" \
  14. -i settings -i theme \
  15. -i hide-create-button -i hide-shorts-button \
  16. -i minimized-playback -i remember-video-quality \
  17. -i video-ads -i general-ads \
  18. -i comments -i hide-info-cards -i hide-endscreen-cards \
  19. -i remove-player-button-background \
  20. -i block-audio-ads -i block-video-ads \
  21. -i show-deleted-messages \
  22. "
  23.  
  24. PACKAGE_NAME="com.google.android.youtube"
  25. #CLI_VERSION=""
  26. #INTEGRATIONS_VERSION=""
  27. #PATCHES_VERSION=""
  28.  
  29. AAPT2_PATH=`which aapt2`
  30. AAPT2_ARGS="--custom-aapt2-binary $AAPT2_PATH"
  31. ANY_ARGS=$1
  32. CACHE_PATH="$WORKSPACE/revanced-cache"
  33. OPTIONS_PATH="$WORKSPACE/options.toml"
  34. #PACKAGE_TINY_NAME=$(echo ${PACKAGE_NAME} | sed 's/^.*\.\([^\.]*\)$/\1/')
  35.  
  36. if [ ! -e "$WORKSPACE" ]; then
  37. mkdir -p $WORKSPACE
  38. fi
  39.  
  40. UMOUNT_SCRIPT_NAME="umount_revanced_${PACKAGE_NAME}.sh"
  41. UMOUNT_SCRIPT_PATH="${WORKSPACE}/${UMOUNT_SCRIPT_NAME}"
  42. if [ -f "$UMOUNT_SCRIPT_PATH" ]; then
  43. echo "Removing $UMOUNT_SCRIPT_PATH"
  44. rm -f $UMOUNT_SCRIPT_PATH
  45. fi
  46. cat <<EOF > $UMOUNT_SCRIPT_PATH
  47. #!/usr/bin/env bash
  48. echo "Unmounting ..."
  49. su -mm -c 'am force-stop ${PACKAGE_NAME} && \\
  50. grep ${PACKAGE_NAME} /proc/mounts | \\
  51. while read -r line; do echo \$line | \\
  52. cut -d " " -f 2 | \\
  53. sed "s/apk.*/apk/" | \\
  54. xargs -r umount -l > /dev/null 2>&1; done'
  55. EOF
  56. chmod 755 $UMOUNT_SCRIPT_PATH
  57. $UMOUNT_SCRIPT_PATH
  58.  
  59. if [ -f "$OPTIONS_PATH" ]; then
  60. echo "Removing $OPTIONS_PATH"
  61. rm -f $OPTIONS_PATH
  62. fi
  63. cat << EOF > $OPTIONS_PATH
  64. [theme]
  65. darkThemeBackgroundColor = "@android:color/system_neutral1_900"
  66. lightThemeBackgroundColor = "@android:color/system_neutral1_50"
  67. EOF
  68.  
  69. # Check if curl is installed before continuing
  70. if ! command -v "curl" &> "/dev/null"; then
  71. echo -e "\e[1;31mError: curl not found\e[0m"; exit 1
  72. fi
  73. CURL_HEADER="User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Firefox/102.0"
  74.  
  75. CLI_AUTHOR=${AUTHOR}
  76. if [ -z "$CLI_VERSION" ]; then
  77. CLI_VERSION="$(curl -s https://api.github.com/repos/${CLI_AUTHOR}/revanced-cli/releases/latest | grep "tag_name")"
  78. CLI_VERSION="${CLI_VERSION:16:-2}"
  79. fi
  80.  
  81. echo "revanced-cli --version: $CLI_VERSION"
  82. CLI_PATH="$WORKSPACE/revanced-cli-$CLI_VERSION-all.jar"
  83. if [ ! -f "$CLI_PATH" ]; then
  84. curl "https://github.com/${CLI_AUTHOR}/revanced-cli/releases/download/v$CLI_VERSION/revanced-cli-$CLI_VERSION-all.jar" -sSL -o "$CLI_PATH"
  85. fi
  86.  
  87. PATCHES_AUTHOR=${AUTHOR}
  88. if [ -z "$INTEGRATIONS_VERSION" ]; then
  89. INTEGRATIONS_VERSION="$(curl -s https://api.github.com/repos/${PATCHES_AUTHOR}/revanced-integrations/releases/latest | grep "tag_name")"
  90. INTEGRATIONS_VERSION="${INTEGRATIONS_VERSION:16:-2}"
  91. fi
  92.  
  93. echo "revanced-integrations --version: $INTEGRATIONS_VERSION"
  94. INTEGRATIONS_PATH="$WORKSPACE/revanced-integrations-$INTEGRATIONS_VERSION.apk"
  95. if [ ! -f "$INTEGRATIONS_PATH" ]; then
  96. curl "https://github.com/${PATCHES_AUTHOR}/revanced-integrations/releases/download/v$INTEGRATIONS_VERSION/app-release-unsigned.apk" -sSL -o "$INTEGRATIONS_PATH"
  97. fi
  98.  
  99. if [ -z "$PATCHES_VERSION" ]; then
  100. PATCHES_VERSION="$(curl -s https://api.github.com/repos/${PATCHES_AUTHOR}/revanced-patches/releases/latest | grep "tag_name")"
  101. PATCHES_VERSION="${PATCHES_VERSION:16:-2}"
  102. fi
  103.  
  104. echo "revanced-patches --version: $PATCHES_VERSION"
  105. PATCHES_PATH="$WORKSPACE/revanced-patches-$PATCHES_VERSION.jar"
  106. PATCHES_JSON_PATH="$WORKSPACE/patches.json"
  107. if [ ! -f "$PATCHES_PATH" ]; then
  108. curl "https://github.com/${PATCHES_AUTHOR}/revanced-patches/releases/download/v$PATCHES_VERSION/revanced-patches-$PATCHES_VERSION.jar" -sSL -o "$PATCHES_PATH"
  109. curl "https://github.com/${PATCHES_AUTHOR}/revanced-patches/releases/download/v$PATCHES_VERSION/patches.json" -sSL -o "$PATCHES_JSON_PATH"
  110. fi
  111.  
  112. APK_PATH="$WORKSPACE/$PACKAGE_NAME.apk"
  113. if [ ! -f "$APK_PATH" ]; then
  114. su -mm -c "cp \$(pm path ${PACKAGE_NAME} | grep base | sed 's/package://g') ${APK_PATH} && \
  115. chown u0_a330 ${APK_PATH} && \
  116. chmod 644 ${APK_PATH}"
  117. fi
  118.  
  119. OUTPUT_PATH="$APK_PATH.rv-$TIMESTAMP.apk"
  120.  
  121. CLI_COMMAND_ARGS=" \
  122. -jar $CLI_PATH \
  123. -a $APK_PATH \
  124. -o $OUTPUT_PATH \
  125. -b $PATCHES_PATH \
  126. -m $INTEGRATIONS_PATH \
  127. $PATCHES_ARGS \
  128. $AAPT2_ARGS \
  129. --mount --exclusive --experimental \
  130. -t $CACHE_PATH --options $OPTIONS_PATH \
  131. "
  132.  
  133. #echo "Command:"
  134. echo "java $CLI_COMMAND_ARGS $ANY_ARGS" | \
  135. sed -e 's/\ \+/\ /g' \
  136. > "$WORKSPACE/command.txt"
  137.  
  138. PATCH_LIST_PATH="${WORKSPACE}/patch.list.${TIMESTAMP}.txt"
  139. if [ -f "$PATCH_LIST_PATH" ]; then
  140. echo "Removing $PATCH_LIST_PATH"
  141. rm -f $PATCH_LIST_PATH
  142. fi
  143.  
  144. echo "Java:"
  145. java $CLI_COMMAND_ARGS $ANY_ARGS
  146.  
  147. rm -rf $CACHE_PATH
  148.  
  149. MOUNT_SCRIPT_NAME="mount_revanced_${PACKAGE_NAME}.sh"
  150. MOUNT_SCRIPT_PATH="${WORKSPACE}/${MOUNT_SCRIPT_NAME}"
  151. MOUNT_SCRIPT_ROOT_PATH="/data/adb/service.d/${MOUNT_SCRIPT_NAME}"
  152. if [ -f "$MOUNT_SCRIPT_PATH" ]; then
  153. echo "Removing $MOUNT_SCRIPT_PATH"
  154. rm -f $MOUNT_SCRIPT_PATH
  155. fi
  156. cat <<EOF > $MOUNT_SCRIPT_PATH
  157. #!/system/bin/sh
  158. MAGISKTMP="\$(magisk --path)" || MAGISKTMP=/sbin
  159. MIRROR="\$MAGISKTMP/.magisk/mirror"
  160. while [ "\$(getprop sys.boot_completed | tr -d '\r')" != "1" ]; do sleep 1; done
  161.  
  162. base_path="/data/adb/${PACKAGE_NAME}.apk"
  163. stock_path=\$( pm path ${PACKAGE_NAME} | grep base | sed 's/package://g' )
  164.  
  165. chcon u:object_r:apk_data_file:s0 \$base_path
  166. mount -o bind \$MIRROR\$base_path \$stock_path
  167. EOF
  168.  
  169. chmod 755 $MOUNT_SCRIPT_PATH
  170. chmod 644 $OUTPUT_PATH
  171.  
  172. $UMOUNT_SCRIPT_PATH
  173. echo "Copying to root ..."
  174.  
  175. su -mm -c "cp ${MOUNT_SCRIPT_PATH} ${MOUNT_SCRIPT_ROOT_PATH} && \
  176. cp ${OUTPUT_PATH} /data/adb/${PACKAGE_NAME}.apk; \
  177. ${MOUNT_SCRIPT_ROOT_PATH}"
  178.  
  179. echo "Finished!"
  180.  
  181. exit 0
  182.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement