2024-02-25 03:30:08 +01:00
< p align = "center" >
< picture >
< source
width="256px"
media="(prefers-color-scheme: dark)"
srcset="../assets/revanced-headline/revanced-headline-vertical-dark.svg"
>
< img
width="256px"
src="../assets/revanced-headline/revanced-headline-vertical-light.svg"
>
< / picture >
< br >
< a href = "https://revanced.app/" >
< picture >
< source height = "24px" media = "(prefers-color-scheme: dark)" srcset = "../assets/revanced-logo/revanced-logo.svg" / >
< img height = "24px" src = "../assets/revanced-logo/revanced-logo.svg" / >
< / picture >
< / a >
< a href = "https://github.com/ReVanced" >
< picture >
< source height = "24px" media = "(prefers-color-scheme: dark)" srcset = "https://i.ibb.co/dMMmCrW/Git-Hub-Mark.png" / >
< img height = "24px" src = "https://i.ibb.co/9wV3HGF/Git-Hub-Mark-Light.png" / >
< / picture >
< / a >
< a href = "http://revanced.app/discord" >
< picture >
< source height = "24px" media = "(prefers-color-scheme: dark)" srcset = "https://user-images.githubusercontent.com/13122796/178032563-d4e084b7-244e-4358-af50-26bde6dd4996.png" / >
< img height = "24px" src = "https://user-images.githubusercontent.com/13122796/178032563-d4e084b7-244e-4358-af50-26bde6dd4996.png" / >
< / picture >
< / a >
< a href = "https://reddit.com/r/revancedapp" >
< picture >
< source height = "24px" media = "(prefers-color-scheme: dark)" srcset = "https://user-images.githubusercontent.com/13122796/178032351-9d9d5619-8ef7-470a-9eec-2744ece54553.png" / >
< img height = "24px" src = "https://user-images.githubusercontent.com/13122796/178032351-9d9d5619-8ef7-470a-9eec-2744ece54553.png" / >
< / picture >
< / a >
< a href = "https://t.me/app_revanced" >
< picture >
< source height = "24px" media = "(prefers-color-scheme: dark)" srcset = "https://user-images.githubusercontent.com/13122796/178032213-faf25ab8-0bc3-4a94-a730-b524c96df124.png" / >
< img height = "24px" src = "https://user-images.githubusercontent.com/13122796/178032213-faf25ab8-0bc3-4a94-a730-b524c96df124.png" / >
< / picture >
< / a >
< a href = "https://x.com/revancedapp" >
< picture >
< source media = "(prefers-color-scheme: dark)" srcset = "https://user-images.githubusercontent.com/93124920/270180600-7c1b38bf-889b-4d68-bd5e-b9d86f91421a.png" >
< img height = "24px" src = "https://user-images.githubusercontent.com/93124920/270108715-d80743fa-b330-4809-b1e6-79fbdc60d09c.png" / >
< / picture >
< / a >
< a href = "https://www.youtube.com/@ReVanced" >
< picture >
< source height = "24px" media = "(prefers-color-scheme: dark)" srcset = "https://user-images.githubusercontent.com/13122796/178032714-c51c7492-0666-44ac-99c2-f003a695ab50.png" / >
< img height = "24px" src = "https://user-images.githubusercontent.com/13122796/178032714-c51c7492-0666-44ac-99c2-f003a695ab50.png" / >
< / picture >
< / a >
< br >
< br >
Continuing the legacy of Vanced
< / p >
# 👶 Setting up a development environment
2024-02-25 04:50:44 +01:00
To start developing patches with ReVanced Patcher, you must prepare a development environment.
2024-02-25 03:30:08 +01:00
## 📝 Prerequisites
- A Java IDE with Kotlin support, such as [IntelliJ IDEA ](https://www.jetbrains.com/idea/ )
- Knowledge of Java, [Kotlin ](https://kotlinlang.org ), and [Dalvik bytecode ](https://source.android.com/docs/core/runtime/dalvik-bytecode )
- Android reverse engineering skills and tools such as [jadx ](https://github.com/skylot/jadx )
## 🏃 Prepare the environment
Throughout the documentation, [ReVanced Patches ](https://github.com/revanced/revanced-patches ) will be used as an example project.
2024-10-27 16:04:30 +01:00
> [!NOTE]
> To start a fresh project,
> you can use the [ReVanced Patches template](https://github.com/revanced/revanced-patches-template).
2024-02-25 03:30:08 +01:00
1. Clone the repository
```bash
git clone https://github.com/revanced/revanced-patches & & cd revanced-patches
```
2. Build the project
```bash
./gradlew build
```
2024-02-25 04:50:44 +01:00
> [!NOTE]
> If the build fails due to authentication, you may need to authenticate to GitHub Packages.
> Create a PAT 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.
>
> Example `gradle.properties` file:
>
> ```properties
> gpr.user = user
> gpr.key = key
> ```
2024-02-25 03:30:08 +01:00
3. Open the project in your IDE
> [!TIP]
2024-07-21 22:45:45 +02:00
> It is a good idea to set up a complete development environment for ReVanced, so that you can also test your patches
> by following the [ReVanced documentation](https://github.com/ReVanced/revanced-documentation).
2024-02-25 03:30:08 +01:00
## ⏭️ What's next
The next page will go into details about a ReVanced patch.
Continue: [🧩 Anatomy of a patch ](2_2_patch_anatomy.md )