## File: README.md

# 💊 ReVanced Manager




Application to use ReVanced on Android

## ❓ About

ReVanced Manager is an application that uses [ReVanced Patcher](https://github.com/revanced/revanced-patcher) to patch Android apps.

## 💪 Features

Some of the features ReVanced Manager provides are:

- ⬇️ **Download**: Automatically download apps using the ReVanced Manager downloader system
- 💉 **Patch**: Select and apply patches to any Android app
- 🛠️ **Customize**: Manage patches, apps, signing, themes, updates, and many more settings

## 🔽 Download

You can download the most recent version of ReVanced Manager at [revanced.app/download](https://revanced.app/download) or from [GitHub releases](https://github.com/ReVanced/revanced-manager/releases/latest).  
Learn how to use ReVanced Manager by following the [documentation](/docs).

## 📚 Everything else

### 📙 Contributing

Thank you for considering contributing to ReVanced Manager.
You can find the contribution guidelines [here](CONTRIBUTING.md).

### 🛠️ Building

To build a ReVanced Manager, you can follow the [documentation](/docs).

### 📄 Documentation

You can find the documentation for ReVanced Manager [here](/docs).

## ⚖️ License

ReVanced Manager is licensed under the GPLv3 license. Please see the [license file](LICENSE) for more information.
[tl;dr](https://www.tldrlegal.com/license/gnu-general-public-license-v3-gpl-3) you may copy, distribute and modify ReVanced Manager as long as you track changes/dates in source files.
Any modifications to ReVanced Manager must also be made available under the GPL, along with build & install instructions.

---

## File: docs/0_prerequisites.md

# 💼 Prerequisites

In order to use ReVanced Manager, certain requirements must be met.

## 🤝 Requirements

- An Android device running Android Oreo (8.0) or higher

## ⏭️ What's next

The next page will guide you through the installation of ReVanced Manager.

Continue: [⬇️ Installation](1_installation.md)

---

## File: docs/1_installation.md

# ⬇️ Installation

In order to use ReVanced on your Android device, ReVanced Manager must be installed.

## ✅ Installation steps

1. Download the latest version of ReVanced Manager at [revanced.app/download](https://revanced.app/download) or from [GitHub releases](https://github.com/ReVanced/revanced-manager/releases/latest)
2. Install ReVanced Manager

## ⏭️ What's next

The next page will guide you through using ReVanced Manager.

Continue: [🛠️ Usage](2_usage.md)

---

## File: docs/2_1_patching.md

# 💉 Patching apps

Learn how to use ReVanced Manager to patch apps.

## ✅ Steps to patch apps

1. Navigate to the `Apps` tab at the top navigation bar
2. Select an app to patch or tap select from storage[^1]
3. Optionally change the selection of patches[^1][^2]
4. Optionally select a specific downloader to download the app[^3]
5. Tap on the `Patch` button to begin the patching process
6. Follow the instructions on the screen if prompted
7. Tap on the `Install` button to install the patched app or export it with 💾 save button in bottom left corner

[^1]: This option is protected by safeguard
[^2]: It is recommended to use the default set of patches by tapping on the `Reset` button in the bottom right corner.
[^3]: By default, all available downloaders will be used to download the app.
If you want to use a specific downloader, you can change it here.

## ⏭️ What's next

The next page will explain how to view, open, re-patch or uninstall apps.

Continue: [🧰 Managing apps](2_2_managing_apps.md)

---

## File: docs/2_usage.md

# 🛠️ Usage

The following pages will guide you through using ReVanced Manager to patch and manage apps, 
manage patches, and update or configure ReVanced Manager.

## 📖 Table of contents

1. [💉 Patching apps](2_1_patching.md)
2. [🧰 Managing apps](2_2_managing_apps.md)
3. [🧩 Managing patches](2_3_managing_patches.md)
4. [🧩 Managing downloaders](2_4_managing_downloaders.md)
4. [🔄 Updating ReVanced Manager](2_5_updating.md)
5. [⚙️ Configuring ReVanced Manager](2_6_settings.md)

## ⏭️ What's next

The next page will explain how to use ReVanced Manager to patch apps.

Continue: [💉 Patching apps](2_1_patching.md)

---

## File: docs/3_troubleshooting.md

# ❓ Troubleshooting

Find common issues and their solutions below.

## 🆘 Common issues

- **Patching fails with an error or patched app crashes**:
  - Make sure ReVanced Manager is up to date by following [🔄 Updating ReVanced Manager](2_4_updating.md)  
  - Reset the safeguard settings under `Settings` > `Advanced` to their default values
  - If a patch has options, reset them to their default values or correctly configure them
  - Make sure you are patching a full APK file and not an [APK bundle](https://developer.android.com/guide/app-bundle/app-bundle-format)
- **Patches fail to load**: The selected file is not using the ReVanced API format or the remote URL is not reachable.
- **Patching takes too long**: Make sure you are using a device with enough storage space and free memory.
  Be patient during the patching process.
- **Patching fail because of Out Of Memory error**: Try enabling [_**(Experimental) Run patcher in another process**_](/docs/2_6_settings.md#-settings).

## ⏭️ What's next

Learn how to build ReVanced Manager from source.

Continue: [🔨 Build from source](4_building.md)

---

## File: docs/4_building.md

# 🛠️ Build from source

This page will guide you through building ReVanced Manager from source.

1. Install Java Development Kit 17 (e.g. [Temurin JDK](https://adoptium.net/temurin/releases/?os=any&arch=any&version=17))

   Using [WinGet](https://learn.microsoft.com/en-us/windows/package-manager/winget):
   ``sh
   winget install EclipseAdoptium.Temurin.17.JDK
   ``
   
   Using [SDKMAN!](https://sdkman.io/):
   ```sh
   sdk install java 17.0.18-tem
   ```

2. Clone the repository

   ```sh
   git clone https://github.com/revanced/revanced-manager.git && cd revanced-manager
   ```

3. Build the APK

   ```sh
   ./gradlew assembleRelease
   ```

> [!NOTE]
> If the build fails due to authentication, you may need to authenticate to GitHub Packages.
> Create a personal access tokens with the scope `read:packages` [here](https://github.com/settings/tokens/new?scopes=read:packages&description=ReVanced) and add your token to ~/.gradle/gradle.properties. Create the file if it does not exist.
>
> Example `gradle.properties` file:
>
> ```properties
> githubPackagesUsername = <GitHub username>
> githubPackagesPassword = 
> ```