Skip to content

Commit

Permalink
chore: Add click-to-run scripts
Browse files Browse the repository at this point in the history
  • Loading branch information
oSumAtrIX committed Oct 19, 2024
1 parent 504c6c1 commit e87ee9c
Show file tree
Hide file tree
Showing 19 changed files with 284 additions and 2 deletions.
5 changes: 4 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -122,4 +122,7 @@ revanced-cache/
options.toml

# Generated by Android projects
local.properties
local.properties

# Generated by scripts
scripts/workspace
2 changes: 1 addition & 1 deletion docs/0_prerequisites.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ To use ReVanced CLI, you will need to fulfill specific requirements.

## 🤝 Requirements

- Java Runtime Environment 11 ([Azul Zulu JRE](https://www.azul.com/downloads/?version=java-11-lts&package=jre#zulu) or [OpenJDK](https://jdk.java.net/archive/))
- Java Runtime Environment 11 or higher ([Eclipse Temurin JRE](https://adoptium.net/temurin/releases/?package=jre) or [OpenJDK](https://jdk.java.net/archive/))
- [Android Debug Bridge (ADB)](https://developer.android.com/studio/command-line/adb) if you want to install the patched APK file on your device
- x86 or x86-64 (For [other architectures](https://github.com/ReVanced/revanced-manager/tree/main/android/app/src/main/jniLibs) use the `--custom-aapt2-binary` option)

Expand Down
29 changes: 29 additions & 0 deletions scripts/1-setup-environment.bat
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
@echo off

echo Check, if OpenJDK/ Eclipse Temurin 11 or newer is installed.
pause
echo:

cd modules
call run java -version
cd ..

echo:
set /P INSTALLED_JAVA=Can you see OpenJDK/ Eclipse Temurin 11 or newer? (y/n)

if "%INSTALLED_JAVA%"=="y" (
echo The environment is set up.
pause
exit
)

cls
echo Install Eclipse Temurin JRE 21.
pause

cd modules
call install-java
cd ..

echo The environment is set up. Rerun this script to check your environment.
pause
11 changes: 11 additions & 0 deletions scripts/2-download.bat
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
@echo off

echo Download necessary files from GitHub.
pause

cd modules
call composite download %~dp0\workspace
cd ..

echo Files downloaded.
pause
14 changes: 14 additions & 0 deletions scripts/3-patch.bat
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
@echo off
setlocal

echo Patch an APK with the patches in the workspace.
pause

cd modules
call composite patch %~dp0\workspace
cd ..

mv %~dp0\workspace\patched.apk %~dp0\patched.apk

echo Patched APK saved at %~dp0\patched.apk.
pause
11 changes: 11 additions & 0 deletions scripts/4-cleanup.bat
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
@echo off

echo Clean the workspace.
pause

cd modules
call composite clean %~dp0\workspace
cd ..

echo Cleaned workspace.
pause
8 changes: 8 additions & 0 deletions scripts/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
# 📜 Scripts

This directory contain click-to-run scripts to use ReVanced CLI.

## Prerequisites

- [cURL](https://curl.haxx.se/)
- [WinGet](https://aka.ms/getwinget), if you are on Windows
1 change: 1 addition & 0 deletions scripts/customize.bat
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
notepad modules\env.bat
12 changes: 12 additions & 0 deletions scripts/modules/check-java.bat
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
@echo off
setlocal

for /f "tokens=8 delims=. " %%a in ('java --version 2^>nul ^| findstr /r "build"') do (
set JAVA_VERSION_MAJOR=%%a
goto :break
)
:break

if %JAVA_VERSION_MAJOR% LSS 11 (
echo It looks like Java version is less than 11. Install OpenJDK/ Eclipse Temurin 11 or newer.
)
51 changes: 51 additions & 0 deletions scripts/modules/composite.bat
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
@echo off
setlocal EnableDelayedExpansion

if "%~1"=="" (
set INVALID_ARGS=true
)
if "%~2"=="" (
set INVALID_ARGS=true
)
if defined INVALID_ARGS (
echo Runs curated compositions of scripts.
echo:
echo Usage: composite ^<script^> ^<workspace^>
echo Example: composite patch C:/revanced
echo:
echo Available commands:
echo: download - Download files
echo: patch - Patches an application
echo: clean - Cleans the workspace
echo: env - Check for a valid environment setup
exit /b 1
)

call env

set WORKSPACE=%2

if "%~1"=="download" (
call create %WORKSPACE%

if not exist %WORKSPACE%/revanced-cli.jar (
echo Downloading ReVanced CLI...
call download %CLI_REPO% jar %WORKSPACE%/revanced-cli.jar
)

if not exist %WORKSPACE%/patches.rvp (
echo Downloading ReVanced patches...
call download %PATCHES_REPO% jar %WORKSPACE%/patches.rvp
)
)
if "%~1"=="patch" (
set /p APK="Path to the APK file: "

call patch !APK! %WORKSPACE%
)
if "%~1"=="clean" (
call delete %WORKSPACE%
)
if "%~1"=="env" (
call check-java
)
19 changes: 19 additions & 0 deletions scripts/modules/create.bat
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
@echo off
setlocal

if "%~1"=="" (
set INVALID_ARGS=true
)
if defined INVALID_ARGS (
echo Creates a directory using the mkdir command.
echo:
echo Usage: create ^<path^>
echo Example: create C:/revanced
exit /b 1
)

set DIRECTORY=%1

if not exist %DIRECTORY% (
run "mkdir.exe" -p %DIRECTORY%
)
20 changes: 20 additions & 0 deletions scripts/modules/delete.bat
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
@echo off
setlocal

if "%~1"=="" (
set INVALID_ARGS=true
)
if defined INVALID_ARGS (
echo Deletes a directory relative to the current directory using the rmdir command.
echo:
echo Usage: delete ^<path^>
echo Example: delete C:/revanced
exit /b 1
)

set DIRECTORY=%1

if exist %DIRECTORY% (
echo Confirm deletion of
run rmdir /s %DIRECTORY%
)
30 changes: 30 additions & 0 deletions scripts/modules/download.bat
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
@echo off
setlocal

if "%~1"=="" (
set INVALID_ARGS=true
)
if "%~2"=="" (
set INVALID_ARGS=true
)
if "%~3"=="" (
set INVALID_ARGS=true
)
if defined INVALID_ARGS (
echo Downloads a file from a GitHub repository release.
echo:
echo Usage: download ^<repo^> ^<asset-extension^> ^<out^>
echo Example: download revanced/revanced-cli jar C:/revanced/revanced-cli.jar
exit /b 1
)

set REPO=%1
set ASSET_EXTENSION=%2
set OUT=%3

set URL=https://api.github.com/repos/%REPO%/releases/latest
for /f "delims=" %%i in ('curl -s %URL% ^| jq -r ".assets[] | select(.name | endswith(\"%ASSET_EXTENSION%\")) | .browser_download_url"') do (
set JAR_URL=%%i
)

run curl --silent --location --output %OUT% %JAR_URL%
6 changes: 6 additions & 0 deletions scripts/modules/env.bat
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
@echo off

:: Customize your environment.

set CLI_REPO=revanced/revanced-cli
set PATCHES_REPO=revanced/revanced-patches
1 change: 1 addition & 0 deletions scripts/modules/install-java.bat
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
run install EclipseAdoptium.Temurin.21.JRE
1 change: 1 addition & 0 deletions scripts/modules/install-jq.bat
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
run install jqlang.jq
14 changes: 14 additions & 0 deletions scripts/modules/install.bat
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
@echo off

if "%~1"=="" (
set INVALID_ARGS=true
)
if defined INVALID_ARGS (
echo Installs a package using winget.
echo:
echo Usage: install ^<id^>
echo Example: install jqlang.jq
exit /b 1
)

run winget install -e --id=%1
28 changes: 28 additions & 0 deletions scripts/modules/patch.bat
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
@echo off
setlocal

if "%~1"=="" (
set INVALID_ARGS=true
)
if "%~2"=="" (
set INVALID_ARGS=true
)
if defined INVALID_ARGS (
echo Patches an application using the specified patches.
echo:
echo Usage: patch ^<apk^> ^<workspace^>
echo Example: patch C:/app.apk C:/workspace
exit /b 1
)

set APK=%1
set WORKSPACE=%2

call run java -jar %WORKSPACE%/revanced-cli.jar patch ^
--patch-bundle %WORKSPACE%/patches.rvp ^
--temporary-files-path %WORKSPACE%/temporary-files ^
--out %WORKSPACE%/patched.apk ^
--purge ^
%APK%

mv %WORKSPACE%/patched.apk
23 changes: 23 additions & 0 deletions scripts/modules/run.bat
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
@echo off

if "%~1"=="" (
set INVALID_ARGS=true
)
if defined INVALID_ARGS (
echo Run a command with arguments.
echo:
echo Usage: run.bat ^<command^> [arguments]
echo Example: run.bat echo Hello, World!
exit /b 1
)

%*

if %ERRORLEVEL% NEQ 0 (
echo:
echo Failed to run command with exit code %ERRORLEVEL%.
echo Failed command: %*
echo:
pause
exit /b %ERRORLEVEL%
)

0 comments on commit e87ee9c

Please sign in to comment.