+
# 🗄 ReVanced Documentation
-Documentation for ReVanced. Also contains guides, walkthroughs, and tutorials.
+Collection of all ReVanced documentation.
## 📖 Table of contents
-- [💻 ReVanced CLI](./docs/revanced-cli)
-- [🧩 ReVanced Patches](./docs/revanced-patches)
-- [💊 ReVanced Manager](./docs/revanced-manager)
-- [🛠️ ReVanced Development](./docs/revanced-development)
-- [🟠 ReVanced Reddit](./docs/revanced-external-documentation/reddit)
+- [💊 ReVanced Manager](./docs/revanced-manager): Documentation and usage guides for ReVanced Manager
+- [💻 ReVanced CLI](./docs/revanced-cli): Documentation and usage guides for ReVanced CLI
+- [💉 ReVanced Patcher](./docs/revanced-patcher): Documentation and usage guides for ReVanced Patcher
+- [🛠️ ReVanced Development](./docs/revanced-development): Documentation to setup a development environment for ReVanced
+- [🟠 ReVanced Other](./docs/revanced-other): Miscellaneous documents used on our platforms, such as Reddit or Discord
+
+> [!WARNING]
+> Under `docs/` you will find symbolic links to the documentation of the respective repositories.
+>
+> Because GitHub does not render symbolic links, you need to clone this repository recursively to see the content of the linked directories or browse the submodules directly under `repositories/`.
+
+## 🚀 Get started
+
+1. Checkout the repository recursively:
+
+ ```sh
+ git clone -c core.symlinks=true https://github.com/revanced/revanced-documentation --recursive && cd revanced-documentation
+ git submodule update --remote
+ ```
+
+2. Open the documentation in a reader of your choice, such as [Visual Studio Code](https://code.visualstudio.com/), [Sublime Text](https://www.sublimetext.com/), or [Typora](https://typora.io/)
+
+## 📜 Licence
+
+ReVanced Documentation 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 Documentation as long as you track changes/dates in source files.
+Any modifications to ReVanced Documentation must also be made available under the GPL,
+along with build & install instructions.
diff --git a/assets/revanced-headline/revanced-headline-vertical-dark.svg b/assets/revanced-headline/revanced-headline-vertical-dark.svg
new file mode 100644
index 0000000..a59bfb5
--- /dev/null
+++ b/assets/revanced-headline/revanced-headline-vertical-dark.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/revanced-headline/revanced-headline-vertical-light.svg b/assets/revanced-headline/revanced-headline-vertical-light.svg
new file mode 100644
index 0000000..3c5eecc
--- /dev/null
+++ b/assets/revanced-headline/revanced-headline-vertical-light.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/revanced-logo/revanced-logo.svg b/assets/revanced-logo/revanced-logo.svg
new file mode 100644
index 0000000..901e191
--- /dev/null
+++ b/assets/revanced-logo/revanced-logo.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/docs/revanced-cli b/docs/revanced-cli
index 710da35..02952ec 120000
--- a/docs/revanced-cli
+++ b/docs/revanced-cli
@@ -1 +1 @@
-../repositories/revanced-cli/docs/
+../repositories/revanced-cli/docs/
\ No newline at end of file
diff --git a/docs/revanced-development/0_prerequisites.md b/docs/revanced-development/0_prerequisites.md
index b242834..2fcc77b 100644
--- a/docs/revanced-development/0_prerequisites.md
+++ b/docs/revanced-development/0_prerequisites.md
@@ -4,13 +4,12 @@ To develop with ReVanced, you will need to fulfill certain requirements.
## 🤝 Requirements
-- A Java IDE such as [IntelliJ IDEA](https://www.jetbrains.com/idea/)
-- An Android IDE such as [Android Studio](https://developer.android.com/studio)
-- Understanding on how to use the ReVanced CLI
+- A Java/ Kotlin IDE such as [IntelliJ IDEA](https://www.jetbrains.com/idea/)
- Java SDK 17 (Azul JDK or OpenJDK)
+- Knowdledge of Git, Gradle and how to setup and use multi-module projects
## ⏭️ Whats next
-The next section will explain, how to setup a convenient development environment for ReVanced with [IntelliJ IDEA](https://www.jetbrains.com/idea/) and [Android Studio](https://developer.android.com/studio)
+The next section will explain, how to setup a convenient development environment for ReVanced with [IntelliJ IDEA](https://www.jetbrains.com/idea/)
-Continue: [👨💻 Setup a development environment for ReVanced](1_setup_development_environment.md)
+Continue: [👨💻 Setup a development environment for ReVanced](1_setup.md)
diff --git a/docs/revanced-development/1_setup.md b/docs/revanced-development/1_setup.md
new file mode 100644
index 0000000..7ae0744
--- /dev/null
+++ b/docs/revanced-development/1_setup.md
@@ -0,0 +1,103 @@
+# 👨💻 Setup a development environment for ReVanced
+
+A certain development environment is suggested to allow for streamlined development on ReVanced.
+
+## 1. ⬇️ Clone repositories
+
+```bash
+mkdir revanced && cd revanced
+
+repositories=(
+ "revanced-cli"
+ "revanced-patches"
+ "revanced-patcher" # Only if you want to work on ReVanced Patcher
+ "revanced-library" # Only if you want to work on ReVanced Library
+ "revanced-integrations"
+)
+
+for repository in "${repositories[@]}" ; do
+ git clone -b dev --single-branch --depth 1 https://github.com/revanced/$repository
+done
+```
+
+## 2. 🛠️ Build
+
+To build all projects, run the following command from the directory which contains the repositories
+
+```bash
+for project in */; do
+ (cd "$project" && ./gradlew build)
+done
+```
+
+> [!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
+> ```
+
+## ⚙️ Workspace setup in IntelliJ IDEA
+
+1. Open the `revanced-cli` project in IntelliJ IDEA and ensure you are using the right JDK from [💼 Prerequisites](0_prerequisites.md)
+2. Import other projects you cloned earlier as modules to the `revanced-cli` project
+
+ - Open the `Project Structure` dialog by pressing `Ctrl + Alt + Shift + S`
+ - Click on `Modules` and add the other projects as modules to the `revanced-cli` project
+
+3. Add a new Run/Debug configuration for `revanced-cli`; Make sure to add `Before launch` tasks to build `revanced-patches` or `revanced-integrations` if necessary
+
+ - Open the `Run/Debug Configurations` dialog by pressing `Alt + Shift + F10` and selecting `Edit Configurations...`
+ - Add a new `Kotlin` configuration and configure it as follows:
+
+ - `Main class`: `app.revanced.cli.command.MainCommandKt`
+ - `Program arguments`: The program arguments you would use to run ReVanced CLI from the command line
+ Example program arguments:
+
+ ```sh
+ patch
+ -b revanced-patches\build\libs\revanced-patches-.jar
+ -m revanced-integrations\app\build\outputs\apk\release\revanced-integrations-.apk
+ binaries\some.apk
+ -d
+ ```
+
+ - `Working directory`: The parent directory of the `revanced-cli` project (`$ProjectFileDir$/..`)
+ - `Before launch`: Add a `Gradle` task to build `revanced-patches` (and `revanced-integrations` if necessary)
+
+ - Click on the `+` button and select `Gradle`
+ - Select the `revanced-patches` project and add the `build` task
+ - Optionally, add the `revanced-integrations` project and the `build` task
+
+ Make sure the `Build` task of the `revanced-cli` project is the last task in the list
+
+> [!WARNING]
+> With every release in the `revanced-patches` and `revanced-integrations` projects, the names of the artifacts change.
+> **Do not forget to update them in the run configuration program arguments when you pull new commits.**
+
+> [!TIP]
+> In order to test the `revanced-patcher` and `revanced-library` projects, publish them to your local maven repository
+> by running `./gradlew publishToMavenLocal`.
+> You can now use them as dependencies in your local projects such as in `revanced-patches` or `revanced-cli`.
+
+## 5. ⚠️ Troubleshoot your development environment
+
+Confirm that your development environment works as intended:
+
+- Debug the build configuration for `revanced-cli` and confirm that your IDE reaches and breaks at the breakpoint. Continue and let ReVanced CLI exit.
+
+ - If ReVanced CLI output is unexpected, confirm if you supplied the correct program arguments by following [💻 ReVanced CLI](/docs/revanced-cli).
+ - If the breakpoint was not hit, confirm that you correctly added the necessary projects as modules to the `revanced-cli` project
+
+## ❗ Afterword
+
+A couple of things should be considered with the development environment for ReVanced:
+
+- Follow [conventional commits](https://www.conventionalcommits.org/en/v1.0.0/)
+- If you intend to contribute to ReVanced, ensure that you branch off and PR to `dev` branches and follow the contribution guidelines of the respective repository
+- Merge new commits reguarly from the remotes to keep your branch up to date
+- Keep your Run/Debug configuration up to date. After pulling new commits, ensure you use the correct paths in `Program arguments`. If you forget to do this, you might end up debugging for hours until realizing, you supply paths to old artifacts, because the artifact names change with new releases
diff --git a/docs/revanced-development/1_setup_development_environment.md b/docs/revanced-development/1_setup_development_environment.md
deleted file mode 100644
index 72704b3..0000000
--- a/docs/revanced-development/1_setup_development_environment.md
+++ /dev/null
@@ -1,98 +0,0 @@
-# 👨💻 Setup a development environment for ReVanced
-
-A certain development environment is suggested to allow for streamlined development on ReVanced.
-
-## 1. ⬇️ Clone necessary repositories
-
-```bash
-repositories=(
- "revanced-cli"
- "revanced-patches"
- "revanced-patcher" # optional
- "revanced-integrations"
-)
-
-for repository in "${repositories[@]}" ; do
- git clone -b dev --single-branch --depth 1 https://github.com/revanced/$repository
-done
-```
-
-## 2. 🛠️ Build from source
-
-### To build all projects, run the following command from the directory which contains the repositories
-
-```bash
-repositories=(
- "revanced-cli"
- "revanced-patches"
- "revanced-patcher" # optional
- "revanced-integrations"
-)
-
-for repository in "${repositories[@]}" ; do
- cd $repository
- ./gradlew build
- cd ..
-done
-```
-
-## 3. ⚙️ Setup IntelliJ IDEA
-
-1. Open the `revanced-cli` project in IntelliJ IDEA and ensure you are using the right JDK from [💼 Prerequisites](0_prerequisites.md)
-2. Import the `revanced-patches` and optionally the `revanced-patcher` project as modules into the `revanced-cli` project
-3. Add a new Run/Debug configuration for the `revanced-cli` project; Make sure to add `Before launch` tasks to build `revanced-patches` and optionally publish `revanced-patcher`
-
- Example configuration:
-
- ```xml
-
-
-
-
-
-
-
-
-
-
-
-
- ```
-
- > **Note**: The build file names of `revanced-patches` and `revanced-integrations` change. **Do not forget to update them in the run configuration program arguments.**
-
-## 4. ⚙️ Setup Android Studio
-
-1. Open the `revanced-integrations` project in Android Studio and ensure you are using the latest Android SDK.
-2. Add a new default build configuration and confirm if it succeeds.
-
-## 5. ⚠️ Troubleshoot your development environment
-
-To confirm your development environment works as intended, set a breakpoint in any patch from the `revanced-patches` project in IntelliJ IDEA. Run the build configuration for `revanced-cli` and confirm that your IDE reaches and breaks at the breakpoint. Continue and let ReVanced CLI exit.
-
-- If ReVanced CLI output is unexpected, confirm if you supplied the correct program arguments by following [💻 ReVanced CLI](/docs/revanced-cli).
-
-- If the breakpoint was not hit, confirm that you correctly added the necessary projects as modules to the `revanced-cli` project
-
-## ❗ Afterword
-
-A couple of things should be considered with the development environment for ReVanced:
-
-- Follow [conventional commits](https://www.conventionalcommits.org/en/v1.0.0/)
-
-- Pull new commits from remote to keep your branch up to date
-
-- Keep your Run/Debug configuration up to date. After pulling new commits, ensure you use the correct paths in your program argument. If you forget to do this, you might end up debugging for hours until realizing, you supply the wrong paths to ReVanced CLI
-
-- Use development branches and always branch off and PR to `dev` branches
-
-- To use the local `revanced-patcher` project in the `revanced-cli` and `revanced-patches` projects, make sure you publish it to the local Maven repository with `./gradlew publish` and use the correct version in the `build.gradle.kts` file in the `revanced-cli` and `revanced-patches` projects, otherwise, it will use the package from GitHub Packages
diff --git a/docs/revanced-development/README.md b/docs/revanced-development/README.md
index c32dc2a..8a3fe57 100644
--- a/docs/revanced-development/README.md
+++ b/docs/revanced-development/README.md
@@ -5,4 +5,4 @@ Documentation to start working with ReVanced.
## 📖 Table of contents
- [💼 Prerequisites](0_prerequisites.md)
-- [👨💻 Setup a development environment for ReVanced](1_setup_development_environment.md)
+- [👨💻 Setup a development environment for ReVanced](1_setup.md)
diff --git a/docs/revanced-external-documentation/questions.md b/docs/revanced-other/questions.md
similarity index 100%
rename from docs/revanced-external-documentation/questions.md
rename to docs/revanced-other/questions.md
diff --git a/docs/revanced-external-documentation/reddit/megathread.md b/docs/revanced-other/reddit/megathread.md
similarity index 100%
rename from docs/revanced-external-documentation/reddit/megathread.md
rename to docs/revanced-other/reddit/megathread.md
diff --git a/docs/revanced-external-documentation/reddit/wiki/documentation.md b/docs/revanced-other/reddit/wiki/documentation.md
similarity index 100%
rename from docs/revanced-external-documentation/reddit/wiki/documentation.md
rename to docs/revanced-other/reddit/wiki/documentation.md
diff --git a/docs/revanced-external-documentation/reddit/wiki/help/help.md b/docs/revanced-other/reddit/wiki/help/help.md
similarity index 100%
rename from docs/revanced-external-documentation/reddit/wiki/help/help.md
rename to docs/revanced-other/reddit/wiki/help/help.md
diff --git a/docs/revanced-external-documentation/reddit/wiki/help/questions.md b/docs/revanced-other/reddit/wiki/help/questions.md
similarity index 100%
rename from docs/revanced-external-documentation/reddit/wiki/help/questions.md
rename to docs/revanced-other/reddit/wiki/help/questions.md
diff --git a/docs/revanced-external-documentation/reddit/wiki/help/troubleshooting.md b/docs/revanced-other/reddit/wiki/help/troubleshooting.md
similarity index 100%
rename from docs/revanced-external-documentation/reddit/wiki/help/troubleshooting.md
rename to docs/revanced-other/reddit/wiki/help/troubleshooting.md
diff --git a/docs/revanced-external-documentation/reddit/wiki/index.md b/docs/revanced-other/reddit/wiki/index.md
similarity index 100%
rename from docs/revanced-external-documentation/reddit/wiki/index.md
rename to docs/revanced-other/reddit/wiki/index.md
diff --git a/docs/revanced-external-documentation/reddit/wiki/links.md b/docs/revanced-other/reddit/wiki/links.md
similarity index 100%
rename from docs/revanced-external-documentation/reddit/wiki/links.md
rename to docs/revanced-other/reddit/wiki/links.md
diff --git a/docs/revanced-external-documentation/troubleshooting.md b/docs/revanced-other/troubleshooting.md
similarity index 100%
rename from docs/revanced-external-documentation/troubleshooting.md
rename to docs/revanced-other/troubleshooting.md
diff --git a/docs/revanced-patcher b/docs/revanced-patcher
new file mode 120000
index 0000000..96d4658
--- /dev/null
+++ b/docs/revanced-patcher
@@ -0,0 +1 @@
+../repositories/revanced-patcher/docs/
\ No newline at end of file
diff --git a/docs/revanced-patches b/docs/revanced-patches
deleted file mode 120000
index 20f5126..0000000
--- a/docs/revanced-patches
+++ /dev/null
@@ -1 +0,0 @@
-../repositories/revanced-patches/docs/
\ No newline at end of file
diff --git a/repositories/revanced-cli b/repositories/revanced-cli
index 2a3dbaf..3c26457 160000
--- a/repositories/revanced-cli
+++ b/repositories/revanced-cli
@@ -1 +1 @@
-Subproject commit 2a3dbafd17184f98c9d8f5fbfb9d0cfa2db3d98d
+Subproject commit 3c264572a23d150f91a86ab9aa5513f75c44a1fb
diff --git a/repositories/revanced-manager b/repositories/revanced-manager
index e45a782..bb1b0da 160000
--- a/repositories/revanced-manager
+++ b/repositories/revanced-manager
@@ -1 +1 @@
-Subproject commit e45a7824c1c62e8d2949f92594df7e3d836c8c82
+Subproject commit bb1b0da749a7a80731f170ccf8a169a9a6135403
diff --git a/repositories/revanced-patcher b/repositories/revanced-patcher
new file mode 160000
index 0000000..f57e571
--- /dev/null
+++ b/repositories/revanced-patcher
@@ -0,0 +1 @@
+Subproject commit f57e571a147d33eed189b533eee3aa62388fb354
diff --git a/repositories/revanced-patches b/repositories/revanced-patches
deleted file mode 160000
index eddd8b1..0000000
--- a/repositories/revanced-patches
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit eddd8b1ad6ce5fca5721ed67efb9151b76c1f521