Advertisement
Guest User

Untitled

a guest
Jun 1st, 2023
132
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.72 KB | None | 0 0
  1. #!/usr/bin/env bash
  2.  
  3. #Revanced総合 Part4
  4. #https://egg.5ch.net/test/read.cgi/android/1684122607/
  5.  
  6. AUTHOR="revanced"
  7. WORKSPACE="$HOME/.$AUTHOR"
  8. #cd "$(dirname "$0")"
  9.  
  10. echo "(first arg) any options: $1"
  11.  
  12. TIMESTAMP=`date "+%Y%m%d%H%M"`
  13. USERID=`whoami`
  14.  
  15. PATCHES_ARGS=" \
  16. -i theme -i navigation-buttons \
  17. -i minimized-playback -i remember-video-quality \
  18. -i video-ads -i hide-ads \
  19. -i comments -i hide-info-cards -i hide-endscreen-cards \
  20. -i remove-player-controls-background \
  21. -i hide-breaking-news-shelf -i hide-shorts-components \
  22. -i video-speed -i hide-watermark -i copy-video-url \
  23. "
  24.  
  25. PACKAGE_NAME="com.google.android.youtube"
  26. APKMIRROR_APP_DEVELOPER_NAME="google-inc"
  27. APKMIRROR_APP_NAME="youtube"
  28. #CLI_VERSION=""
  29. #INTEGRATIONS_VERSION=""
  30. #PATCHES_VERSION=""
  31. #APK_VERSION=""
  32. CURL_HEADER="User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Firefox/102.0"
  33.  
  34. AAPT2_PATH=`which aapt2`
  35. AAPT2_ARGS="--custom-aapt2-binary $AAPT2_PATH"
  36. ANY_ARGS=$1
  37. CACHE_PATH="$WORKSPACE/revanced-cache"
  38. OPTIONS_PATH="$WORKSPACE/options.json"
  39.  
  40. if [ ! -e "$WORKSPACE" ]; then
  41. mkdir -p $WORKSPACE
  42. fi
  43.  
  44. if [ -f "$OPTIONS_PATH" ]; then
  45. echo "Removing $OPTIONS_PATH"
  46. rm -f $OPTIONS_PATH
  47. fi
  48. cat << EOF > $OPTIONS_PATH
  49. [ {
  50. "patchName" : "theme",
  51. "options" : [ {
  52. "key" : "darkThemeBackgroundColor",
  53. "value" : "@android:color/system_neutral1_900"
  54. }, {
  55. "key" : "lightThemeBackgroundColor",
  56. "value" : "@android:color/system_neutral1_50"
  57. }, {
  58. "key" : "splashScreenBackgroundColor",
  59. "value" : "@android:color/system_neutral1_900"
  60. } ]
  61. } ]
  62. EOF
  63.  
  64. UMOUNT_SCRIPT_NAME="umount_revanced_${PACKAGE_NAME}.sh"
  65. UMOUNT_SCRIPT_PATH="${WORKSPACE}/${UMOUNT_SCRIPT_NAME}"
  66. if [ -f "$UMOUNT_SCRIPT_PATH" ]; then
  67. echo "Removing $UMOUNT_SCRIPT_PATH"
  68. rm -f $UMOUNT_SCRIPT_PATH
  69. fi
  70. cat <<EOF > $UMOUNT_SCRIPT_PATH
  71. #!/usr/bin/env bash
  72. echo "Unmounting ..."
  73. su -mm -c 'am force-stop ${PACKAGE_NAME} && \\
  74. grep ${PACKAGE_NAME} /proc/mounts | \\
  75. while read -r line; do echo \$line | \\
  76. cut -d " " -f 2 | \\
  77. sed "s/apk.*/apk/" | \\
  78. xargs -r umount -l > /dev/null 2>&1; done'
  79. EOF
  80. chmod 755 $UMOUNT_SCRIPT_PATH
  81. $UMOUNT_SCRIPT_PATH
  82.  
  83. MOUNT_SCRIPT_NAME="mount_revanced_${PACKAGE_NAME}.sh"
  84. MOUNT_SCRIPT_PATH="${WORKSPACE}/${MOUNT_SCRIPT_NAME}"
  85. MOUNT_SCRIPT_ROOT_PATH="/data/adb/service.d/${MOUNT_SCRIPT_NAME}"
  86. if [ -f "$MOUNT_SCRIPT_PATH" ]; then
  87. echo "Removing $MOUNT_SCRIPT_PATH"
  88. rm -f $MOUNT_SCRIPT_PATH
  89. fi
  90. cat <<EOF > $MOUNT_SCRIPT_PATH
  91. #!/system/bin/sh
  92. MAGISKTMP="\$(magisk --path)" || MAGISKTMP=/sbin
  93. MIRROR="\$MAGISKTMP/.magisk/mirror"
  94. while [ "\$(getprop sys.boot_completed | tr -d '\r')" != "1" ]; do sleep 1; done
  95.  
  96. base_path="/data/adb/${PACKAGE_NAME}.apk"
  97. stock_path=\$( pm path ${PACKAGE_NAME} | grep base | sed 's/package://g' )
  98.  
  99. chcon u:object_r:apk_data_file:s0 \$base_path
  100. mount -o bind \$MIRROR\$base_path \$stock_path
  101. EOF
  102. chmod 755 $MOUNT_SCRIPT_PATH
  103.  
  104. CLI_AUTHOR=${AUTHOR}
  105. if [ -z "$CLI_VERSION" ]; then
  106. CLI_VERSION="$(curl -s https://api.github.com/repos/${CLI_AUTHOR}/revanced-cli/releases/latest | grep "tag_name")"
  107. CLI_VERSION="${CLI_VERSION:16:-2}"
  108. fi
  109.  
  110. echo "revanced-cli --version: $CLI_VERSION"
  111. CLI_PATH="$WORKSPACE/revanced-cli-$CLI_VERSION-all.jar"
  112. if [ ! -f "$CLI_PATH" ]; then
  113. curl "https://github.com/${CLI_AUTHOR}/revanced-cli/releases/download/v$CLI_VERSION/revanced-cli-$CLI_VERSION-all.jar" -sSL -o "$CLI_PATH"
  114. fi
  115.  
  116. PATCHES_AUTHOR=${AUTHOR}
  117. if [ -z "$INTEGRATIONS_VERSION" ]; then
  118. INTEGRATIONS_VERSION="$(curl -s https://api.github.com/repos/${PATCHES_AUTHOR}/revanced-integrations/releases/latest | grep "tag_name")"
  119. INTEGRATIONS_VERSION="${INTEGRATIONS_VERSION:16:-2}"
  120. fi
  121.  
  122. echo "revanced-integrations --version: $INTEGRATIONS_VERSION"
  123. INTEGRATIONS_PATH="$WORKSPACE/revanced-integrations-$INTEGRATIONS_VERSION.apk"
  124. if [ ! -f "$INTEGRATIONS_PATH" ]; then
  125. curl "https://github.com/${PATCHES_AUTHOR}/revanced-integrations/releases/download/v$INTEGRATIONS_VERSION/revanced-integrations-$INTEGRATIONS_VERSION.apk" -sSL -o "$INTEGRATIONS_PATH"
  126. fi
  127.  
  128. if [ -z "$PATCHES_VERSION" ]; then
  129. PATCHES_VERSION="$(curl -s https://api.github.com/repos/${PATCHES_AUTHOR}/revanced-patches/releases/latest | grep "tag_name")"
  130. PATCHES_VERSION="${PATCHES_VERSION:16:-2}"
  131. fi
  132.  
  133. echo "revanced-patches --version: $PATCHES_VERSION"
  134. PATCHES_PATH="$WORKSPACE/revanced-patches-$PATCHES_VERSION.jar"
  135. PATCHES_JSON_PATH="$WORKSPACE/patches-$PATCHES_VERSION.json"
  136. if [ ! -f "$PATCHES_PATH" ]; then
  137. curl "https://github.com/${PATCHES_AUTHOR}/revanced-patches/releases/download/v$PATCHES_VERSION/revanced-patches-$PATCHES_VERSION.jar" -sSL -o "$PATCHES_PATH"
  138. fi
  139.  
  140. if [ ! -f "$PATCHES_JSON_PATH" ]; then
  141. curl "https://github.com/${PATCHES_AUTHOR}/revanced-patches/releases/download/v$PATCHES_VERSION/patches.json" -sSL -o "$PATCHES_JSON_PATH"
  142. fi
  143.  
  144. APK_SUPPORTED_VERSIONS="$(cat "$PATCHES_JSON_PATH" | \
  145. jq -r '.[].compatiblePackages[] | select(.name == "'$PACKAGE_NAME'") | .versions[]' | \
  146. sort -n | uniq)"
  147. echo "Supported versions($PACKAGE_NAME): $(echo $APK_SUPPORTED_VERSIONS)"
  148. APK_SUPPORTED_VERSION=$(echo "${APK_SUPPORTED_VERSIONS[*]}" | sort -nr | head -n 1)
  149. APK_INSTALLED_VERSION=$(echo $(su -c "dumpsys package $PACKAGE_NAME" | grep versionName) | sed -r "s/versionName=//")
  150. echo "Installed versions($PACKAGE_NAME): $APK_INSTALLED_VERSION"
  151. APK_DOWNLOAD_PATH="$WORKSPACE/$PACKAGE_NAME-$APK_SUPPORTED_VERSION.apk"
  152. if [ -z "$APK_VERSION" ] && [[ "$APK_SUPPORTED_VERSION" != "$APK_INSTALLED_VERSION" ]]; then
  153. APKMIRROR_URL="https://www.apkmirror.com/apk/$APKMIRROR_APP_DEVELOPER_NAME/$APKMIRROR_APP_NAME/$APKMIRROR_APP_NAME-${APK_SUPPORTED_VERSION//./-}-release/"
  154. 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')"
  155. echo "downloaded apk from: $APKMIRROR_URL"
  156. APKMIRROR_URL="https://www.apkmirror.com$(curl $APKMIRROR_URL -fsSL -H "$CURL_HEADER" | tr '\n' ' ' | sed -n 's;.*href="\(.*key=[^"]*\)">.*;\1;p')"
  157. APKMIRROR_URL="https://www.apkmirror.com$(curl $APKMIRROR_URL -fsSL -H "$CURL_HEADER" | tr '\n' ' ' | sed -n 's;.*href="\(.*key=[^"]*\)">.*;\1;p')"
  158. curl $APKMIRROR_URL -sSL -H "$CURL_HEADER" -o "$APK_DOWNLOAD_PATH"
  159. su -c "pm install -i com.android.vending $APK_DOWNLOAD_PATH"
  160. fi
  161.  
  162. PATCHES_JSON_TXT_PATH="$WORKSPACE/list-patches-$PATCHES_VERSION-$PACKAGE_NAME.txt"
  163. cat "$PATCHES_JSON_PATH" | \
  164. jq -r '.[] | select(.compatiblePackages[].name == "'$PACKAGE_NAME'") | .result = .name + ": " + .description | .result' \
  165. > "$PATCHES_JSON_TXT_PATH"
  166.  
  167. APK_PATH="$WORKSPACE/$PACKAGE_NAME.apk"
  168. su -mm -c "cp \$(pm path ${PACKAGE_NAME} | grep base | sed 's/package://g') ${APK_PATH} && \
  169. chown ${USERID} ${APK_PATH} && \
  170. chmod 644 ${APK_PATH}"
  171.  
  172. OUTPUT_PATH="$APK_PATH.rv-$TIMESTAMP.apk"
  173.  
  174. CLI_COMMAND_ARGS=" \
  175. -jar $CLI_PATH \
  176. -a $APK_PATH \
  177. -o $OUTPUT_PATH \
  178. -b $PATCHES_PATH \
  179. -m $INTEGRATIONS_PATH \
  180. $PATCHES_ARGS \
  181. $AAPT2_ARGS \
  182. --mount \
  183. --exclusive \
  184. -t $CACHE_PATH \
  185. --options $OPTIONS_PATH \
  186. "
  187.  
  188. #echo "Command:"
  189. COMMAND_TXT_PATH="$WORKSPACE/command-$TIMESTAMP.txt"
  190. echo "java $CLI_COMMAND_ARGS $ANY_ARGS" | \
  191. sed -e 's/\ \+/\ /g' \
  192. > "$COMMAND_TXT_PATH"
  193.  
  194. echo "Java:"
  195. java $CLI_COMMAND_ARGS $ANY_ARGS
  196. rm -rf $CACHE_PATH
  197.  
  198. if [ ! -f "$OUTPUT_PATH" ]; then
  199. echo "$OUTPUT_PATH not exist"
  200. echo "Build failed"
  201. exit 0
  202. fi
  203.  
  204. $UMOUNT_SCRIPT_PATH
  205. chmod 644 $OUTPUT_PATH
  206. echo "Copying to root ..."
  207.  
  208. su -mm -c "cp ${MOUNT_SCRIPT_PATH} ${MOUNT_SCRIPT_ROOT_PATH} && \
  209. cp ${OUTPUT_PATH} /data/adb/${PACKAGE_NAME}.apk; \
  210. ${MOUNT_SCRIPT_ROOT_PATH}"
  211.  
  212. echo "Finished!"
  213.  
  214. exit 0
  215.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement