mirror of
https://github.com/sotam0316/docker-py-revanced.git
synced 2026-04-24 19:38:36 +09:00
476 lines
31 KiB
Markdown
476 lines
31 KiB
Markdown
# 🤓Docker-Py-ReVanced
|
|
|
|

|
|
|
|
A little python script that will help you in building [Revanced](https://revanced.app/) [apps](#any-patch-apps) and sharing them anywhere.
|
|
|
|
**`Note`** - If you are a root user and want magisk module (Extended). Get them [here](https://github.com/nikhilbadyal/revanced-magisk-module)
|
|
|
|
<a id="only-builder-support"></a>This is just a builder for revanced and not a revanced support. Please be
|
|
understanding and refrain from asking about revanced features/bugs. Discuss those on proper relevant forums.
|
|
|
|
## Pre-Built APKs
|
|
|
|
You can get pre-built apks [here](https://@revanced_apks_1.t.me/)
|
|
|
|
## Facing issues? Click [here](https://github.com/nikhilbadyal/docker-py-revanced/issues/new/choose).<br>
|
|
## Build Yourself
|
|
|
|
You can use any of the following methods to build.
|
|
|
|
- 🚀 **GitHub** (**_`Recommended`_**)
|
|
|
|
1. Click Star to support the project.<br>
|
|
<img src="https://i.imgur.com/FFyXaWY.png" width="400" style="left"><br>
|
|
2. Fork the project.<br>
|
|
<img src="https://i.imgur.com/R5HdByI.png" width="400" style="left"><br>
|
|
3. Add `ENVS` (**optional**) secret to the repo. Required only if you want to cook specific apps/versions.
|
|
<details>
|
|
<summary>🚶Detailed step by step guide</summary>
|
|
|
|
- Go to the repo settings and then to actions->secret<br>
|
|
<img src="https://i.imgur.com/Inj82KK.png" width="600" style="left"><br>
|
|
- Add Repository secret<br>
|
|
<img src="https://i.imgur.com/V2Wfx3J.png" width="600" style="left">
|
|
|
|
</details>
|
|
|
|
4. Go to actions tab. Select `Build & Release`.Click on `Run Workflow`.
|
|
|
|
<details>
|
|
<summary>🚶Detailed step by step guide</summary>
|
|
|
|
- Go to actions tab<br>
|
|
<img src="https://i.imgur.com/XSCvzav.png" width="600" style="left"><br>
|
|
- Check the status of build, It should look green.<br>
|
|
<img src="https://i.imgur.com/CsJt9W1.png" width="600" style="left">
|
|
|
|
</details>
|
|
|
|
5. If the building process is successful, you'll get your APKs in the<br>
|
|
<img src="https://i.imgur.com/S5d7qAO.png" width="700" style="left">
|
|
6. Make sure to do below steps once in a while(daily or weekly) to keep the builder bug free.<br>
|
|
<img src="https://i.imgur.com/CbdH7vM.png" width="700" style="left">
|
|
|
|
- 🐳 **_Docker Compose_**<br>
|
|
|
|
1. Install [Docker Desktop](https://www.docker.com/products/docker-desktop/).
|
|
2. Clone the repo
|
|
```bash
|
|
git clone https://github.com/nikhilbadyal/docker-py-revanced
|
|
```
|
|
3. cd to the cloned repo
|
|
```bash
|
|
cd docker-py-revanced
|
|
```
|
|
4. Update `.env` file if you want some customization(See notes)
|
|
5. Run script with
|
|
```shell
|
|
docker compose up --build
|
|
```
|
|
|
|
- 🐳With Docker
|
|
|
|
1. Install Docker or [Docker Desktop](https://www.docker.com/products/docker-desktop/).
|
|
```bash
|
|
curl -fsSL https://get.docker.com -o get-docker.sh
|
|
sh get-docker.sh
|
|
```
|
|
2. Run script with
|
|
```shell
|
|
docker run -v "$(pwd)"/apks:/app/apks/ nikhilbadyal/docker-py-revanced
|
|
```
|
|
You can pass the below environment variables (See notes) with the `-e` flag or use the `--env-file`
|
|
[flag](https://docs.docker.com/engine/reference/commandline/run/#options).
|
|
|
|
- 🫠Without Docker
|
|
|
|
1. Install Java >= 17
|
|
2. Install Python >= 3.11
|
|
3. Create virtual environment
|
|
```
|
|
python3 -m venv venv
|
|
```
|
|
4. Activate virtual environment
|
|
```
|
|
source venv/bin/activate
|
|
```
|
|
5. Install Dependencies with
|
|
```
|
|
pip install -r requirements.txt
|
|
```
|
|
6. Run the script with
|
|
```
|
|
python main.py
|
|
```
|
|
|
|
## Configurations
|
|
|
|
### Global Config
|
|
|
|
| **Env Name** | **Description** | **Default** |
|
|
|:---------------------------------------------------------|:-------------------------------------------------------:|:----------------------------------------------------------------------------------------------------------------------|
|
|
| [PATCH_APPS](#patch-apps) | Apps to patch/build | youtube |
|
|
| [EXISTING_DOWNLOADED_APKS ](#existing-downloaded-apks) | Already downloaded clean apks | [] |
|
|
| [PERSONAL_ACCESS_TOKEN](#personal-access-token) | Github Token to be used | None |
|
|
| DRY_RUN | Do a dry run | False |
|
|
| [~~GLOBAL_CLI_DL*~~](#global-resources) | DL for CLI to be used for patching apps.(Disabled Temp) | [Revanced CLI](https://github.com/revanced/revanced-cli) |
|
|
| [GLOBAL_PATCHES_DL*](#global-resources) | DL for Patches to be used for patching apps. | [Revanced Patches](https://github.com/revanced/revanced-patches) |
|
|
| [GLOBAL_SPACE_FORMATTED_PATCHES*](#global-resources) | Whether patches are space formatted. | True |
|
|
| [GLOBAL_KEYSTORE_FILE_NAME*](#global-keystore-file-name) | Key file to be used for signing apps | [Builder's own key](https://github.com/nikhilbadyal/docker-py-revanced/blob/main/apks/revanced.keystore) |
|
|
| [GLOBAL_OLD_KEY*](#global-keystore-file-name) | Whether key was generated with cli v4(new) or not | <br/>[Builder's v3(old) own key](https://github.com/nikhilbadyal/docker-py-revanced/blob/main/apks/revanced.keystore) |
|
|
| [GLOBAL_OPTIONS_FILE*](#global-options-file) | Options file to be used | [Builder's default file](https://github.com/nikhilbadyal/docker-py-revanced/blob/main/apks/options.json) |
|
|
| [GLOBAL_ARCHS_TO_BUILD*](#global-archs-to-build) | Arch to keep in the patched apk. | All |
|
|
| REDDIT_CLIENT_ID | Reddit Client ID to patch reddit apps | None |
|
|
| [TELEGRAM_CHAT_ID](#telegram-support) | Receiver in Telegram upload | None |
|
|
| [TELEGRAM_BOT_TOKEN](#telegram-support) | APKs Sender for Telegram upload | None |
|
|
| [TELEGRAM_API_ID](#telegram-support) | Used for telegram Authentication | None |
|
|
| [TELEGRAM_API_HASH](#telegram-support) | Used for telegram Authentication | None |
|
|
| [EXTRA_FILES](#extra-files) | Extra files apk to upload in GitHub upload. | None |
|
|
| [APPRISE_URL](#apprise) | Apprise URL . | None |
|
|
| [APPRISE_NOTIFICATION_TITLE](#apprise) | Apprise Notification Title . | None |
|
|
| [APPRISE_NOTIFICATION_BODY](#apprise) | Apprise Notification Body . | None |
|
|
| MAX_RESOURCE_WORKERS | Maximum workers for downloading resources | 3 |
|
|
| MAX_PARALLEL_APPS | Maximum number of apps to process in parallel | 4 |
|
|
| DISABLE_CACHING | Disable download and resource caching | False |
|
|
|
|
`*` - Can be overridden for individual app.
|
|
### App Level Config
|
|
|
|
| Env Name | Description | Default |
|
|
|:--------------------------------------------------------------|:----------------------------------------------------------------------------------------------------:|:-------------------------------|
|
|
| [~~**APP_NAME**_CLI_DL~~](#global-resources) | DL for CLI to be used for patching **APP_NAME**.(Disabled Temp) | GLOBAL_CLI_DL |
|
|
| [**APP_NAME**_PATCHES_DL](#global-resources) | DL for Patches to be used for patching **APP_NAME**. Supports multiple bundles via comma separation. | GLOBAL_PATCHES_DL |
|
|
| [**APP_NAME**_SPACE_FORMATTED_PATCHES](#global-resources) | Whether patches are space formatted. **APP_NAME**. | GLOBAL_SPACE_FORMATTED_PATCHES |
|
|
| [**APP_NAME**_KEYSTORE_FILE_NAME](#global-keystore-file-name) | Key file to be used for signing **APP_NAME**. | GLOBAL_KEYSTORE_FILE_NAME |
|
|
| [**APP_NAME**_OLD_KEY](#global-keystore-file-name) | Whether key used was generated with cli > v4(new) <br/><br/>**APP_NAME**. <br/> <br/> | GLOBAL_OLK_KEY |
|
|
| [**APP_NAME**_ARCHS_TO_BUILD](#global-archs-to-build) | Arch to keep in the patched **APP_NAME**. | GLOBAL_ARCHS_TO_BUILD |
|
|
| [**APP_NAME**_EXCLUDE_PATCH**](#custom-exclude-patching) | Patches to exclude while patching **APP_NAME**. | [] |
|
|
| [**APP_NAME**_INCLUDE_PATCH**](#custom-include-patching) | Patches to include while patching **APP_NAME**. | [] |
|
|
| [**APP_NAME**_VERSION](#app-version) | Version to use for download for patching. | Recommended by patch resources |
|
|
| [**APP_NAME**_PACKAGE_NAME***](#any-patch-apps) | Package name of the app to be patched | None |
|
|
| [**APP_NAME**_DL_SOURCE***](#any-patch-apps) | Download source of any of the supported scrapper | None |
|
|
| [**APP_NAME**_DL***](#app-dl) | Direct download Link for clean apk | None |
|
|
|
|
`**` - By default all patches for a given app are included.<br>
|
|
`**` - Can be used to included universal patch.<br>
|
|
`***` - Can be used for unavailable apps in the repository (unofficial apps).
|
|
|
|
## Note
|
|
|
|
1. <a id="any-patch-apps"></a>**Officially** Supported values for **APP_NAME**** are :
|
|
|
|
- [youtube](https://www.apkmirror.com/apk/google-inc/youtube/)
|
|
- [youtube_music](https://www.apkmirror.com/apk/google-inc/youtube-music/)
|
|
- [photos](https://www.apkmirror.com/apk/google-inc/photos)
|
|
- [twitter](https://www.apkmirror.com/apk/twitter-inc/twitter/)
|
|
- [reddit](https://www.apkmirror.com/apk/redditinc/reddit/)
|
|
- [tiktok](https://www.apkmirror.com/apk/tiktok-pte-ltd/tik-tok-including-musical-ly/)
|
|
- [warnwetter](https://www.apkmirror.com/apk/deutscher-wetterdienst/warnwetter/)
|
|
- [spotify](https://spotify.en.uptodown.com/android)
|
|
- [nyx-music-player](https://nyx-music-player.en.uptodown.com/android)
|
|
- [icon_pack_studio](https://www.apkmirror.com/apk/smart-launcher-team/icon-pack-studio/)
|
|
- [ticktick](https://www.apkmirror.com/apk/appest-inc/ticktick-to-do-list-with-reminder-day-planner/)
|
|
- [twitch](https://www.apkmirror.com/apk/twitch-interactive-inc/twitch/)
|
|
- [hex-editor](https://m.apkpure.com/hex-editor/com.myprog.hexedit)
|
|
- [windy](https://www.apkmirror.com/apk/windy-weather-world-inc/windy-wind-weather-forecast/)
|
|
- [my-expenses](https://my-expenses.en.uptodown.com/android)
|
|
- [backdrops](https://backdrops.en.uptodown.com/android)
|
|
- [expensemanager](https://apksos.com/app/com.ithebk.expensemanager)
|
|
- [tasker](https://www.apkmirror.com/apk/joaomgcd/tasker-crafty-apps-eu/)
|
|
- [irplus](https://irplus.en.uptodown.com/android)
|
|
- [vsco](https://www.apkmirror.com/apk/vsco/vsco-cam/)
|
|
- [meme-generator-free](https://meme-generator-free.en.uptodown.com/android)
|
|
- [nova_launcher](https://www.apkmirror.com/apk/teslacoil-software/nova-launcher/)
|
|
- [netguard](https://www.apkmirror.com/apk/marcel-bokhorst/netguard-no-root-firewall/)
|
|
- [instagram](https://www.apkmirror.com/apk/instagram/instagram-instagram/)
|
|
- [inshorts](https://www.apkmirror.com/apk/inshorts-formerly-news-in-shorts/)
|
|
- [messenger](https://www.apkmirror.com/apk/facebook-/messenger/)
|
|
- [grecorder](https://opnemer.en.uptodown.com/android)
|
|
- [trakt](https://www.apkmirror.com/apk/trakt/trakt/)
|
|
- [candyvpn](https://www.apkmirror.com/apk/liondev-io/candylink-vpn/)
|
|
- [sonyheadphone](https://www.apkmirror.com/apk/sony-corporation/sony-headphones-connect/)
|
|
- [androidtwelvewidgets](https://m.apkpure.com/android--widgets-twelve/com.dci.dev.androidtwelvewidgets)
|
|
- [yuka](https://yuka.en.uptodown.com/android)
|
|
- [relay](https://www.apkmirror.com/apk/dbrady/relay-for-reddit-/)
|
|
- [boost](https://www.apkmirror.com/apk/ruben-mayayo/boost-for-reddit/)
|
|
- [rif](https://www.apkmirror.com/apk/talklittle/reddit-is-fun/)
|
|
- [sync](https://www.apkmirror.com/apk/red-apps-ltd/sync-for-reddit/)
|
|
- [infinity](https://www.apkmirror.com/apk/docile-alligator/infinity-for-reddit/)
|
|
- [slide](https://www.apkmirror.com/apk/haptic-apps/slide-for-reddit/)
|
|
- [bacon](https://www.apkmirror.com/apk/onelouder-apps/baconreader-for-reddit/)
|
|
- [microg](https://github.com/inotia00/mMicroG/releases/)
|
|
- [pixiv](https://www.apkmirror.com/apk/pixiv-inc/pixiv/)
|
|
- [strava](https://www.apkmirror.com/apk/strava-inc/strava-running-and-cycling-gps/)
|
|
- [solidexplorer](https://www.apkmirror.com/apk/neatbytes/solid-explorer-beta/)
|
|
- [lightroom](https://www.apkmirror.com/apk/adobe/lightroom/)
|
|
- [duolingo](https://www.apkmirror.com/apk/duolingo/duolingo-duolingo/)
|
|
- [musically](https://www.apkmirror.com/apk/tiktok-pte-ltd/tik-tok-including-musical-ly/)
|
|
- [photomath](https://www.apkmonk.com/app/com.microblink.photomath/)
|
|
- [joey](https://www.apkmonk.com/app/o.o.joey/)
|
|
- [vanced](https://www.apkmirror.com/apk/team-vanced/youtube-vanced/)
|
|
- [spotify-lite](https://www.apkmonk.com/app/com.spotify.lite/)
|
|
- [digitales](https://www.apkmonk.com/app/at.gv.oe.app/)
|
|
- [scbeasy](https://www.apkmonk.com/app/com.scb.phone/)
|
|
- [reddit-news](https://m.apkpure.com/relay-for-reddit/reddit.news)
|
|
- [finanz-online](https://apksos.com/app/at.gv.bmf.bmf2go)
|
|
- [tumblr](https://www.apkmirror.com/apk/tumblr-inc/tumblr/)
|
|
- [fitnesspal](https://www.apkmirror.com/apk/myfitnesspal-inc/calorie-counter-myfitnesspal/)
|
|
- [facebook](https://www.apkmirror.com/apk/facebook-2/facebook/)
|
|
- [lemmy-sync](https://www.apkmirror.com/apk/sync-apps-ltd/sync-for-lemmy/)
|
|
- [amazon](https://www.apkmirror.com/apk/amazon-mobile-llc/amazon-shopping/)
|
|
- [bandcamp](https://www.apkmirror.com/apk/bandcamp-inc/bandcamp/)
|
|
- [magazines](https://www.apkmirror.com/apk/bandcamp-inc/bandcamp/)
|
|
- [winrar](https://www.apkmirror.com/apk/rarlab-published-by-win-rar-gmbh/rar/)
|
|
- [soundcloud](https://www.apkmirror.com/apk/soundcloud/soundcloud-soundcloud/)
|
|
- [stocard](https://www.apkmirror.com/apk/stocard-gmbh/stocard-rewards-cards-wallet/)
|
|
- [willhaben](https://www.apkmirror.com/apk/willhaben/willhaben/)
|
|
- [proton-mail](https://www.apkmirror.com/apk/proton-technologies-ag/protonmail-encrypted-email/)
|
|
- [prime-video](https://www.apkmirror.com/apk/amazon-mobile-llc/amazon-prime-video/)
|
|
- [cricbuzz](https://www.apkmirror.com/apk/cricbuzz-com/cricbuzz-live-cricket-scores-news/)
|
|
- [crunchyroll](https://www.apkmirror.com/apk/crunchyroll-llc-2/crunchyroll/)
|
|
- [threads](https://www.apkmirror.com/apk/instagram/threads-an-instagram-app/)
|
|
- [orf-on](https://www.apkmirror.com/apk/orf-osterreichischer-rundfunk/orf-tvthek-video-on-demand-android-tv/)
|
|
- [pandora](https://www.apkmirror.com/apk/pandora/pandora-music-podcasts/)
|
|
- [cieid](https://www.apkmirror.com/apk/istituto-poligrafico-e-zecca-dello-stato-s-p-a/cieid/)
|
|
- [infinity-for-reddit-patreon](https://www.apkmirror.com/apk/docile-alligator/infinity-for-reddit-patreon-github-version/)
|
|
- [infinity-for-reddit-plus](https://www.apkmirror.com/apk/docile-alligator/infinity-for-reddit-plus/)
|
|
|
|
<br>`**` - You can also patch any other app which is **not** supported officially.To do so, you need to provide
|
|
few more inputs to the tool which are mentioned below. These config will override the sources config from the tool.
|
|
```ini
|
|
<APP_NAME>_DL_SOURCE=<apk-link-to-any-of-the-suppored-scrapper>
|
|
<APP_NAME>_PACKAGE_NAME=<package-name-of-the-application>
|
|
```
|
|
You can also provide DL to the clean apk instead of providing DL_SOURCES as mentioned in this [note](#app-dl).
|
|
Supported Scrappers are:
|
|
1. APKMIRROR - Supports downloading any available version
|
|
1. Link Format - https://www.apkmirror.com/apk/<organisation-name>/app-name/
|
|
2. Example Link - https://www.apkmirror.com/apk/google-inc/youtube/
|
|
2. UPTODOWN - Supports downloading any available version
|
|
1. Link Format - https://<app-name>.en.uptodown.com/android
|
|
2. Example Link - https://spotify.en.uptodown.com/android
|
|
3. APKSOS - Supports downloading any available version
|
|
1. Link Format - https://apksos.com/download-app/<package-name>
|
|
2. Example Link - https://apksos.com/download-app/com.expensemanager
|
|
4. APKPURE - Supports downloading any available version
|
|
1. Link Format - https://apkpure.net/-/<package-name>
|
|
2. Example Link - https://apkpure.net/-/com.google.android.youtube
|
|
5. APKMonk - Supports downloading any available version
|
|
1. Link Format - https://www.apkmonk.com/app/<package-name>/
|
|
2. Example Link - https://www.apkmonk.com/app/<package-name>/
|
|
6. APKEEP - Support downloading using [APKEEP](https://github.com/EFForg/apkeep)
|
|
1. Link Format - apkeep
|
|
2. Example Link - apkeep
|
|
Note - You need to provide APKEEP_EMAIL and APKEEP_TOKEN in the **DOCKER_PY_REVANCED_SECRETS** Github Secrets.
|
|
|
|
<br>Please verify the source of original APKs yourself with links provided. I'm not responsible for any damage
|
|
caused.If you know any better/safe source to download clean. Open a discussion.
|
|
|
|
2. By default, script build the latest version mentioned in `patches.json` file.
|
|
3. Remember to download the **_Microg_**. Otherwise, you may not be able to open YouTube/YouTube Music.
|
|
4. <a id="patch-apps"></a>By default, tool will build only `youtube,youtube_music`. To build other apps supported by patching
|
|
resources.Add the apps you want to build in `.env` file or in `ENVS` in `GitHub secrets` in the format
|
|
```ini
|
|
PATCH_APPS=<APP_NAME>
|
|
```
|
|
Example:
|
|
```ini
|
|
PATCH_APPS=youtube,twitter,reddit
|
|
```
|
|
Tip - If for some reason you want to patch app but want to go through all this .env while running you can enter app
|
|
name in <img src="https://i.imgur.com/DwhBH9H.png" width="300" style="left"><br> to be patched box.
|
|
5. <a id="existing-downloaded-apks"></a>If APKMirror or other apk sources are blocked in your region or script
|
|
somehow is unable to download from apkmirror. You can download apk manually from any source. Place them in
|
|
`/apks` directory and provide environment variable in `.env` file or in `ENVS` in `GitHub secrets`(Recommended)
|
|
in the format.
|
|
```dotenv
|
|
EXISTING_DOWNLOADED_APKS=<Comma,Seperate,App,Name>
|
|
```
|
|
Example:
|
|
```dotenv
|
|
EXISTING_DOWNLOADED_APKS=youtube,youtube_music
|
|
```
|
|
If you add above. Script will not download the `youtube` & `youtube_music`apk from internet and expects an apk in
|
|
`/apks` folder with **same** name.
|
|
6. <a id="personal-access-token"></a>If you run script again & again. You might hit GitHub API limit. In that case
|
|
you can provide your Personal GitHub Access Token in `.env` file or in `ENVS` in `GitHub secrets` (Recommended)
|
|
in the format -
|
|
```dotenv
|
|
PERSONAL_ACCESS_TOKEN=<PAT>
|
|
```
|
|
7. <a id="global-resources"></a>You can provide Direct download to the resource to used for patching apps `.env` file
|
|
or in `ENVS` in `GitHub secrets` (Recommended) in the format -
|
|
```dotenv
|
|
GLOBAL_CLI_DL=https://github.com/revanced/revanced-cli
|
|
GLOBAL_PATCHES_DL=https://github.com/revanced/revanced-patches
|
|
```
|
|
Resources downloaded from envs and will be used for patching for any **APP_NAME**.
|
|
Unless provided different resource for the individual app.<br><br>
|
|
Tool also support resource config at app level. You can patch A app with X resources while patching B with Y
|
|
resources.
|
|
This can be done by providing Direct download link for resources for app.<br>
|
|
Example:
|
|
```dotenv
|
|
YOUTUBE_CLI_DL=https://github.com/inotia00/revanced-cli
|
|
YOUTUBE_PATCHES_DL=https://github.com/inotia00/revanced-patches
|
|
```
|
|
With the config tool will try to patch YouTube with resources from inotia00 while other global resource will used
|
|
for patching other apps.<br>
|
|
|
|
**Multi-Patching Support**: You can now use multiple patch bundles from different creators for the same app:
|
|
```dotenv
|
|
# Comma-separated URLs
|
|
YOUTUBE_PATCHES_DL=https://github.com/ReVanced/revanced-patches,https://github.com/indrastorm/Dropped-patches
|
|
```
|
|
The tool will download all specified patch bundles and apply them together using the ReVanced CLI's multiple `-p` argument support.<br>
|
|
If you have want to provide resource locally in the apks folder. You can specify that by mentioning filename
|
|
prefixed with `local://`.<br>
|
|
_Note_ - The link provided must be DLs. Unless they are from GitHub.<br>
|
|
_Note_ - If your patches resource are available on GitHub and you want to select latest resource without excluding
|
|
pre-release you can add `latest-prerelease` to the URL.
|
|
Example:
|
|
```dotenv
|
|
YOUTUBE_PATCHES_DL=https://github.com/inotia00/revanced-patches/releases/latest-prerelease
|
|
```
|
|
For above example tool while selecting latest patches will consider pre-releases/beta too.
|
|
```dotenv
|
|
YOUTUBE_PATCHES_DL=https://github.com/inotia00/revanced-patches/releases/latest
|
|
```
|
|
For above example tool while selecting latest patches will exclude any pre-release/beta ie. will consider only
|
|
stable releases..<br>
|
|
_Note_ - Some of the patch source like inotia00 still provides **-** separated patches while revanced shifted to
|
|
Space formatted patches. Use `SPACE_FORMATTED_PATCHES` to define the type of patches.
|
|
|
|
8. <a id="global-keystore-file-name"></a>If you don't want to use default keystore. You can provide your own by
|
|
placing it inside `apks` folder. And adding the name of `keystore-file` in `.env` file or in `ENVS` in `GitHub
|
|
secrets` (Recommended) in the format
|
|
```dotenv
|
|
GLOBAL_KEYSTORE_FILE_NAME=revanced.keystore
|
|
```
|
|
Tool also support providing secret key at app level. You can sign A app with X key while signing B with Y
|
|
key.<br>
|
|
Example:
|
|
```dotenv
|
|
YOUTUBE_KEYSTORE_FILE_NAME=youtube.keystore
|
|
```
|
|
Note - If you are using your own keystore.And it was generated with cli > v4 Add
|
|
Example:
|
|
```dotenv
|
|
GLOBAL_OLD_KEY=False
|
|
```
|
|
if you are using different key for different apps. You need to specify at app level.
|
|
```dotenv
|
|
YOUTUBE_OLD_KEY=False
|
|
```
|
|
9. <a id="global-options-file"></a>If you don't want to use default options.json file. You can provide your own by
|
|
placing it inside `apks` folder. And adding the name of `options-file` in `.env` file or in `ENVS` in `GitHub
|
|
secrets` (Recommended) in the format
|
|
```dotenv
|
|
GLOBAL_OPTIONS_FILE=my_options.json
|
|
```
|
|
Tool also support providing secret key at app level. You can sign A app with X key while signing B with Y
|
|
key.<br>
|
|
Example:
|
|
```dotenv
|
|
YOUTUBE_OPTIONS_FILE=my_cool_yt_options.json
|
|
```
|
|
10. <a id="global-archs-to-build"></a>You can build only for a particular arch in order to get smaller apk files.This
|
|
can be done with by adding comma separated `ARCHS_TO_BUILD` in `ENVS` in `GitHub secrets` (Recommended) in the
|
|
format.
|
|
```dotenv
|
|
GLOABAL_ARCHS_TO_BUILD=arm64-v8a,armeabi-v7a
|
|
```
|
|
Tool also support configuring at app level.<br>
|
|
|
|
Example:
|
|
```dotenv
|
|
YOUTUBE_ARCHS_TO_BUILD=arm64-v8a,armeabi-v7a
|
|
```
|
|
_Note_ -
|
|
1. Possible values are: `armeabi-v7a`,`x86`,`x86_64`,`arm64-v8a`
|
|
2. Make sure the patching resource(CLI) support this feature.
|
|
11. <a id="extra-files"></a>If you want to include any extra file to the Github upload. Set comma arguments
|
|
in `.env` file or in `ENVS` in `GitHub secrets` (Recommended) in the format
|
|
```ini
|
|
EXTRA_FILES=<url>@<appName>.apk
|
|
```
|
|
Example:
|
|
```dotenv
|
|
EXTRA_FILES=https://github.com/inotia00/mMicroG/releases/latest@mmicrog.apk
|
|
```
|
|
12. <a id="custom-exclude-patching"></a>If you want to exclude any patch. Set comma separated patch in `.env` file
|
|
or in `ENVS` in `GitHub secrets` (Recommended) in the format
|
|
```ini
|
|
<APP_NAME>_EXCLUDE_PATCH=<PATCH_TO_EXCLUDE-1,PATCH_TO_EXCLUDE-2>
|
|
```
|
|
Example:
|
|
```dotenv
|
|
YOUTUBE_EXCLUDE_PATCH=custom-branding,hide-get-premium
|
|
YOUTUBE_MUSIC_EXCLUDE_PATCH=yt-music-is-shit
|
|
```
|
|
Note -
|
|
1. **All** the patches for an app are **included** by default.<br>
|
|
2. Revanced patches are provided as space separated, make sure you type those **-** separated here.
|
|
It means a patch named _**Hey There**_ must be entered as **_hey-there_** in the above example.
|
|
13. <a id="custom-include-patching"></a>If you want to include any universal patch. Set comma separated patch in `.env`
|
|
file or in `ENVS` in `GitHub secrets` (Recommended) in the format
|
|
```ini
|
|
<APP_NAME>_INCLUDE_PATCH=<PATCH_TO_EXCLUDE-1,PATCH_TO_EXCLUDE-2>
|
|
```
|
|
Example:
|
|
```dotenv
|
|
YOUTUBE_INCLUDE_PATCH=remove-screenshot-restriction
|
|
```
|
|
Note -
|
|
1. Revanced patches are provided as space separated, make sure you type those **-** separated here.
|
|
It means a patch named _**Hey There**_ must be entered as **_hey-there_** in the above example.
|
|
14. <a id="app-version"></a>If you want to build a specific version or latest version. Add `version` in `.env` file
|
|
or in `ENVS` in `GitHub secrets` (Recommended) in the format
|
|
```ini
|
|
<APP_NAME>_VERSION=<VERSION>
|
|
```
|
|
Example:
|
|
```ini
|
|
YOUTUBE_VERSION=17.31.36
|
|
YOUTUBE_MUSIC_VERSION=X.X.X
|
|
TWITTER_VERSION=latest
|
|
```
|
|
15. <a id="app-dl"></a>If you have your personal source for apk to be downloaded. You can also provide that and tool
|
|
will not scarp links from apk sources.Add `dl` in `.env` file or in `ENVS` in `GitHub secrets` (Recommended) in
|
|
the format
|
|
```ini
|
|
<APP_NAME>_DL=<direct-app-download>
|
|
```
|
|
Example:
|
|
```ini
|
|
YOUTUBE_DL=https://d.apkpure.com/b/APK/com.google.android.youtube?version=latest
|
|
```
|
|
16. <a id="telegram-support"></a>For Telegram Upload.
|
|
1. Set up a telegram channel, send a message to it and forward the message to
|
|
this telegram [bot](https://t.me/username_to_id_bot)
|
|
2. Copy `id` and save it to `TELEGRAM_CHAT_ID`<br>
|
|
<img src="https://i.imgur.com/22UiaWs.png" width="300" style="left"><br>
|
|
3. `TELEGRAM_BOT_TOKEN` - Telegram provides BOT_TOKEN. It works as sender. Open [bot](https://t.me/BotFather) and
|
|
create one copy api key<br>
|
|
<img src="https://i.imgur.com/A6JCyK2.png" width="300" style="left"><br>
|
|
4. `TELEGRAM_API_ID` - Telegram API_ID is provided by telegram [here](https://my.telegram.org/apps)<br>
|
|
<img src="https://i.imgur.com/eha3nnb.png" width="300" style="left"><br>
|
|
5. `TELEGRAM_API_HASH` - Telegram API_HASH is provided by telegram [here](https://my.telegram.org/apps)<br>
|
|
<img src="https://i.imgur.com/7n5k1mp.png" width="300" style="left"><br>
|
|
6. After Everything done successfully a part of the actions secrets of the repository may look like<br>
|
|
<img src="https://i.imgur.com/Cjifz1M.png" width="400">
|
|
17. Configuration defined in `ENVS` in `GitHub secrets` will override the configuration in `.env` file. You can use this
|
|
fact to define your normal configurations in `.env` file and sometimes if you want to build something different just
|
|
once. Add it in `GitHub secrets`.<br>
|
|
18. Sample Envs<br>
|
|
<img src="https://i.imgur.com/FxOtiGs.png" width="600" style="left">
|
|
19. <a id="apprise"></a>[Apprise](https://github.com/caronc/apprise)<br>
|
|
We also have apprise support to upload built apk anywhere.To use apprise. Add belows envs in `.env` file
|
|
or in `ENVS` in `GitHub secrets` (Recommended) in the format
|
|
```ini
|
|
APPRISE_URL=tgram://bot-token/chat-id
|
|
APPRISE_NOTIFICATION_BODY=What a great Body
|
|
APPRISE_NOTIFICATION_TITLE=What a great title
|
|
```
|