diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 0000000000..e8cd2c333f --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,111 @@ +

+ + + + +
+ + + + + +     + + + + + +     + + + + + +     + + + + + +     + + + + + +     + + + + + +     + + + + + + +
+
+ Continuing the legacy of Vanced +

+ +# 👋 Contribution guidelines + +Welcome to contribution guidelines, this document contains +everything you'll need to contribute to ReVanced Manager (and might even possibly apply to our other project like ReVanced Patches!) + +There are many ways to contribute like writing docs and code, opening issues, +helping people out in our community, translating or sponsoring our project, etc. + +## 📖 Resources to help you get started + +* The [documentation](/docs/developer/README.md) provides steps to build ReVanced Manager from source +* Our [backlog](https://github.com/orgs/ReVanced/projects/12) is where we keep track of what we're working on +* [Issues](https://github.com/ReVanced/revanced-manager/issues) are where we keep track of bugs and feature requests + +## 🙏 Submitting a feature request + +Features can be requested by opening an issue using the +[feature request issue template](https://github.com/ReVanced/revanced-manager/issues/new?assignees=&labels=feature-request&projects=&template=feature-issue.yml&title=feat%3A+%3Ctitle%3E). + +> [!NOTE] +> Requests can be accepted or rejected at the discretion of maintainers of ReVanced Manager. +> Good motivation has to be provided for a request to be accepted. + +## 🐞 Submitting a bug report + +If you encounter a bug while using the ReVanced Manager app, open an issue using the +[bug report issue template](https://github.com/ReVanced/revanced-manager/issues/new?assignees=&labels=bug&projects=&template=bug-issue.yml&title=bug%3A+%3Ctitle%3E). + +## 🌐 Submitting translations + +You can contribute translations at translate.revanced.app + +> [!TIP] +> * Try to keep the translated text roughly the same length as the original. +> * Consider opting for gender-neutral words for language with variations of words based on gender. + +## 🧑‍💻 Developing for ReVanced Manager + +See the guidelines for developing for ReVanced Manager [here](/docs/developer/README.md) + +## 🔒 Submitting a vulnerability + +See the guideline for reporting security vulnerability [here](/SECURITY.md) + +## 🤚 I don't want to do any of that but I want to contribute either way + +You can still contribute by spreading positive word about us or if you'd like to sponsor us, checkout https://revanced.app/donate +to learn more on how to you can sponsor via GitHub, Open Collective and cryptocurrencies. + +❤️ Thank you for considering contributing to ReVanced Manager, +ReVanced diff --git a/README.md b/README.md index c742bcab29..83b1e505da 100644 --- a/README.md +++ b/README.md @@ -1,55 +1,104 @@ -# ReVanced Manager (Compose Rewrite) - -[![GitHub license](https://img.shields.io/github/license/revanced/revanced-manager)](../../blob/main/LICENSE) -[![GitHub last commit](https://img.shields.io/github/last-commit/revanced/revanced-manager/compose-dev)](https://github.com/ReVanced/revanced-manager/commits/compose-dev) -[![GitHub commit activity](https://img.shields.io/github/commit-activity/w/revanced/revanced-manager/compose-dev)](https://github.com/ReVanced/revanced-manager/commits/compose-dev) - -_(Yet another)_ rewrite of the ReVanced Manager using Kotlin and Jetpack Compose. - -## Design system - -In this rewrite, we are adopting the latest Material Design principles and guidelines by using Material 3 and Material You. - -Material Design is a design system developed by Google that provides a unified visual language for building beautiful and consistent user interfaces across all platforms and devices. Material You is an extension of Material Design that provides even more customization options for users, making it possible for them to personalize their device and create a unique look and feel. - -### Why Material 3? - -* **Consistent design language** -* **Improved accessibility** -* **Better user experience** - -By using Material 3 and Material You, we are ensuring that the app's user interface is consistent, customizable, accessible, and engaging for our users. This will help to improve the overall user experience and increase user satisfaction with the the manager. - -## Technology stack - -* Kotlin: Kotlin is a modern and concise programming language that is fully interoperable with Java and provides improved safety, readability, and maintainability compared to Java. -* Jetpack Compose: Jetpack Compose is a modern UI toolkit for Android development that allows developers to build beautiful and performant user interfaces using declarative programming. It provides a unified and efficient way of building UI that is well-integrated with the Android framework. - -## Why Kotlin and Compose? - -* **Improved safety:** Kotlin provides improved safety compared to Java, which reduces the likelihood of common programming mistakes that can cause security vulnerabilities or crashes. -* **Concise and readable code:** Kotlin's concise syntax and expressive type system make the code more readable, which makes it easier for developers to understand and maintain the codebase. -* **Better performance:** Jetpack Compose uses the power of the Android framework to provide smooth and fast performance, which enhances the user experience. -* **Modern and efficient UI development:** Jetpack Compose provides a modern and efficient way of building UI, which makes it easier for developers to create beautiful and performant user interfaces. +

+ + + + +
+ + + + + +     + + + + + +     + + + + + +     + + + + + +     + + + + + +     + + + + + +     + + + + + + +
+
+ Continuing the legacy of Vanced +

+ +# 💊 ReVanced Manager + +[![GitHub Workflow Status](https://img.shields.io/github/actions/workflow/status/ReVanced/revanced-manager/release.yml)](https://github.com/ReVanced/revanced-manager/actions/workflows/release.yml) +[![GPLv3 License](https://img.shields.io/badge/License-GPL%20v3-yellow.svg)](#️-license) + +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: + +- 💉 **Patch apps**: Apply any patch of your choice to Android apps +- 📱 **Portable**: ReVanced Patcher that fits in your pocket +- 🤗 **Simple UI**: Quickly understand the ins and outs of ReVanced Manager +- 🛠️ **Customization**: Configurable API, custom sources, language, signing keystore, theme and more ## 🔽 Download -You can obtain ReVanced Manager by downloading it from either [revanced.app/download](https://revanced.app/download) or [GitHub Releases](https://github.com/ReVanced/revanced-manager/releases) +You can get ReVanced Manager the most recent version of by downloading from +the [ReVanced site](https://revanced.app/download) or [GitHub releases](https://github.com/ReVanced/revanced-manager/releases/latest). -## 📝 Prerequisites +Learn how to use ReVanced Manager by following the [documentation](/docs). -For a list of prerequisites, refer to [docs/0_prerequisites.md](docs/0_prerequisites.md) +## 📚 Everything else -## 🔴 Issues +### 📙 Contributing -For suggestions and bug reports, open an issue [here](https://github.com/revanced/revanced-manager/issues/new/choose). +Thank you for considering contributing to ReVanced Manager. -## 🌐 Translation +The [contribution guidelines](CONTRIBUTING.md) provides information you'll need to open an issue, develop for ReVanced Manager and translations. -[![Crowdin](https://badges.crowdin.net/revanced/localized.svg)](https://crowdin.com/project/revanced) +### 📄 Documentation -We're accepting translations on [Crowdin](https://translate.revanced.app) +You can find the documentation for ReVanced Manager [here](/docs). -## 🛠️ Building Manager from source +## ⚖️ License -For instructions on how to build ReVanced Manager from source, refer to [docs/4_building.md](docs/4_building.md) \ No newline at end of file +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. diff --git a/SECURITY.md b/SECURITY.md index b8c6fd144b..6d0b26282c 100644 --- a/SECURITY.md +++ b/SECURITY.md @@ -13,8 +13,8 @@
- - + +     @@ -64,15 +64,20 @@ This document describes how to report security vulnerabilities for ReVanced Mana ## 🚨 Reporting a Vulnerability -Please open an issue in our [advisory tracker](https://github.com/ReVanced/revanced-manager/security/advisories/new) or reach out privately to us on [Discord](https://discord.gg/revanced). +Please open an issue in our [advisory tracker](https://github.com/ReVanced/revanced-manager/security/advisories/new) +or reach out privately to us on [Discord](https://discord.gg/revanced). -If a vulnerability is confirmed and accepted, you can join our [Discord](https://discord.gg/revanced) server to receive a special contributor role. +If a vulnerability is confirmed and accepted, they will be published and +you can join our [Discord](https://discord.gg/revanced) server to receive a +special contributor role. ### ⏳ Supported Versions -| Version | Branch | Supported | -| ------- | ------------|------------------- | -| v1.18.0 | main | :white_check_mark: | -| latest | dev | :white_check_mark: | -| latest | compose-dev | :white_check_mark: | +| Version | Branch | Supported | +| ---------------------------------------- | ------------- | ------------------ | +| ![Latest stable release][LatestRelBadge] | `main` | :white_check_mark: | +| ![Latest version][LatestVerBadge] | `dev` | :white_check_mark: | +| ![Latest version][LatestVerBadge] | `compose-dev` | :white_check_mark: | +[LatestRelBadge]: https://img.shields.io/github/v/release/ReVanced/revanced-manager?style=for-the-badge "Latest stable release" +[LatestVerBadge]: https://img.shields.io/badge/version-latest-brightgreen?style=for-the-badge "Latest version" \ No newline at end of file diff --git a/assets/revanced-logo/revanced-logo-round.svg b/assets/revanced-logo/revanced-logo.svg similarity index 100% rename from assets/revanced-logo/revanced-logo-round.svg rename to assets/revanced-logo/revanced-logo.svg diff --git a/docs/0_prerequisites.md b/docs/0_prerequisites.md index 9d86cd5438..11bcf61514 100644 --- a/docs/0_prerequisites.md +++ b/docs/0_prerequisites.md @@ -1,10 +1,18 @@ # 💼 Prerequisites -In order to use ReVanced Manager, certain requirements must be met. +To use ReVanced Manager, certain requirements have to be met. ## 🤝 Requirements -- An Android device running Android 8 or higher +- Android device running Android 8.0 or higher +- System that support running at least `arm64-v8a`, `armeabi-v7a`, `x86_64`, or `x86` application + +### Additional Requirements + +> [!NOTE] +> These requirements are optional. + +- Rooted Android device with latest version of [KernelSU](https://github.com/tiann/KernelSU) or [Magisk](https://github.com/topjohnwu/Magisk) ## ⏭️ What's next diff --git a/docs/1_installation.md b/docs/1_installation.md index d4c08984af..67e3518cda 100644 --- a/docs/1_installation.md +++ b/docs/1_installation.md @@ -1,10 +1,13 @@ # ⬇️ Installation -In order to use ReVanced on your Android device, ReVanced Manager must be installed. +To use ReVanced on your Android device, ReVanced Manager have to be install, +refer to the [Prerequisites](0_prerequisites.md) if haven't already. -## ✅ Installation steps +## 🪜 Installation steps -1. Download the latest version of ReVanced Manager from [here](https://github.com/revanced/revanced-manager/releases/latest) +1. Get the latest version of ReVanced Manager from + the [ReVanced site](https://revanced.app/download) + or [GitHub releases](https://github.com/ReVanced/revanced-manager/releases/latest). 2. Install ReVanced Manager ## ⏭️ What's next diff --git a/docs/2_1_patching.md b/docs/2_1_patching.md index 7203affa2a..2cb565e9c2 100644 --- a/docs/2_1_patching.md +++ b/docs/2_1_patching.md @@ -11,7 +11,8 @@ The following pages will guide you through using ReVanced Manager to patch apps. 5. Select the patches you want to apply 6. Tap the Patch button 7. Tap on the **Install** button - > **Note**: If you are rooted, you can mount the patched app on top of the original app.[^3] + > [!Note] + > If you are rooted, you can mount the patched app on top of the original app.[^3] > Optionally, you may export the patched app to storage using the options in the top right corner. [^1]: Non-root users may be prompted to select an APK from storage, in which case you have to source the APK file yourself. ReVanced does not provide any APK files. diff --git a/docs/2_2_managing.md b/docs/2_2_managing.md index 29ec56fc4f..c72a0cd275 100644 --- a/docs/2_2_managing.md +++ b/docs/2_2_managing.md @@ -6,7 +6,9 @@ After patching an app, you may want to manage it. This page will guide you throu 1. Navigate to the Apps tab from the top navigation bar 2. Select the app you want to manage + 3. + ## ⏭️ What's next The next page will bring you back to the usage page. diff --git a/docs/3_troubleshooting.md b/docs/3_troubleshooting.md index 5a860c6b12..5ac930e81f 100644 --- a/docs/3_troubleshooting.md +++ b/docs/3_troubleshooting.md @@ -23,9 +23,3 @@ In case you encounter any issues while using ReVanced Manager, please refer to t - 🚨 Patched app crashes on launch Select the **Default** button when choosing patches. - -## ⏭️ What's next - -The next page will teach you how to build ReVanced Manager from source. - -Continue: [🔨 Building from source](4_building.md) diff --git a/docs/4_building.md b/docs/4_building.md deleted file mode 100644 index 56917e5fad..0000000000 --- a/docs/4_building.md +++ /dev/null @@ -1,38 +0,0 @@ -# 🛠️ Building from source - -This page will guide you through building ReVanced Manager from source. - -1. Download Java SDK 17 ([Azul JDK](https://www.azul.com/downloads/?version=java-17-lts&package=jdk#zulu) or [OpenJDK](https://jdk.java.net/java-se-ri/17)) and add it to path - -2. Clone the repository - - ```sh - git clone https://github.com/revanced/revanced-manager.git && cd revanced-manager - ``` - -3. Create a GitHub personal access token with the `read:packages` scope [here](https://github.com/settings/tokens/new?scopes=read:packages&description=ReVanced) - -4. Add your GitHub username and the token to `~/.gradle/gradle.properties` - - ```properties - gpr.user = YourUsername - gpr.key = ghp_longrandomkey - ``` - -5. Set the `sdk.dir` property in `local.properties` to your Android SDK location - - ```properties - sdk.dir = /path/to/android/sdk - ``` - -6. Build the APK - - Debug: - ```sh - ./gradlew assembleDebug - ``` - - Release: - ```sh - ./gradlew assembleRelease -Psign - ``` diff --git a/docs/README.md b/docs/README.md index af2926b6c1..26ed78b342 100644 --- a/docs/README.md +++ b/docs/README.md @@ -1,6 +1,6 @@ # 💊 ReVanced Manager -This documentation explains how to use [ReVanced Manager](https://github.com/revanced/revanced-manager). +This documentation explains how to use [ReVanced Manager](https://github.com/ReVanced/revanced-manager). ## 📖 Table of contents @@ -12,7 +12,10 @@ This documentation explains how to use [ReVanced Manager](https://github.com/rev 3. [🔄 Updating ReVanced Manager](2_3_updating.md) 4. [⚙️ Configuring ReVanced Manager](2_4_settings.md) 3. [❔ Troubleshooting](3_troubleshooting.md) -4. [🔨 Building from source](4_building.md) + +## 🧑‍💻 Developing for ReVanced Manager + +Checkout the documentation for developer [here](developer/README.md). ## ⏭️ Start here diff --git a/docs/developer/0_prerequisites.md b/docs/developer/0_prerequisites.md new file mode 100644 index 0000000000..e96aa19d5d --- /dev/null +++ b/docs/developer/0_prerequisites.md @@ -0,0 +1,29 @@ +# 💼 Prerequisites + +Here's everything you'll need to develop on ReVanced Manager + +## 🤝 Recommended enviroment + +- Any environment that capable of running the latest Android Studio, latest Android SDK and JDK 17 with at least 4 GB of memory for coding +- Any devices with preferably the latest Android version or at least higher than the [`minSdk`](/app/build.gradle.kts) for testing + +### Additional Requirements + +- Device with root capabilities with latest version of [KernelSU](https://github.com/tiann/KernelSU) or [Magisk](https://github.com/topjohnwu/Magisk) + +## ⚙️ Setting up + +### Authenticating to GitHub Registry + +ReVanced Manager uses dependency from the GitHub Registry and so your build may fail without authenticating to the service, to authenticate you must add create a personal access token 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. + +```properties +gpr.user = username +gpr.key = ghp_****************************** +``` + +## ⏭️ What's next + +The next page will guide you through developing for ReVanced Manager. + +Continue: [🧑‍💻 Developing for ReVanced Manager](1_develop.md) diff --git a/docs/developer/1_develop.md b/docs/developer/1_develop.md new file mode 100644 index 0000000000..023288f582 --- /dev/null +++ b/docs/developer/1_develop.md @@ -0,0 +1,25 @@ +# 🧑‍💻 Developing for ReVanced Manager + +ReVanced Manager is developed on Kotlin using [Jetpack Compose](https://developer.android.com/compose), here are some tips to help you get started. + +## Code style + +The styling is based on https://kotlinlang.org/docs/coding-conventions.html + +## Commit + +At ReVanced, we adopt a naming convention for commit called [Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0/) so for example when your adding new feature you must add `feat: ` before the description of your commit. + +## Building + +To build ReVanced Manager, simply hit build button on your IDE or run: + +```sh +./gradlew assembleDebug +``` + +## ⏭️ What's next + +The next page will guide you through developing for ReVanced Manager. + +Continue: [🎉 Submitting your Pull Request](2_submitting.md) diff --git a/docs/developer/2_submitting.md b/docs/developer/2_submitting.md new file mode 100644 index 0000000000..746cbc8052 --- /dev/null +++ b/docs/developer/2_submitting.md @@ -0,0 +1,12 @@ +# 🎉 Submitting your Pull Request + +> [!TIP] +> We recommend that you discuss your changes with +> the maintainers of ReVanced Manager before contributing. +> This will help you determine whether your change is acceptable. + +1. Fork the repository and create your branch from `dev` +2. Commit your changes in [Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0/) style +3. Submit a pull request to the `dev` branch of the repository and reference issues that your pull request closes in the description of your pull request +4. Our team will review your pull request and provide feedback. Once your pull request is approved, it will be merged into the `dev` branch and will be included in + the next release of ReVanced Manager diff --git a/docs/developer/3_verifying.md b/docs/developer/3_verifying.md new file mode 100644 index 0000000000..8bfd030477 --- /dev/null +++ b/docs/developer/3_verifying.md @@ -0,0 +1,8 @@ +# ✒️ Verifying ReVanced Manager + +> [!NOTE] +> This information is more relevant to alternative store providers + +The certificate hash of the APK will always be `b6362c6ea7888efd15c0800f480786ad0f5b133b4f84e12d46afba5f9eac1223` + +ReVanced Manager include prebuilts binaries of [`libaapt2.so`](/app/src/main/jniLibs/) from https://github.com/ReVanced/aapt2 which fixes issue on ARM32 system, attestation is provided here: https://github.com/ReVanced/aapt2/attestations diff --git a/docs/developer/README.md b/docs/developer/README.md new file mode 100644 index 0000000000..19549d6bdd --- /dev/null +++ b/docs/developer/README.md @@ -0,0 +1,25 @@ +# 💊 ReVanced Manager + +> [!WARNING] +> This guide is for people who want to develop for ReVanced Manager, may feature technical words or jargons. +> For regular user you may want to view this [documentation](/docs/README.md) instead. + +This documentation explains how to develop for [ReVanced Manager](https://github.com/ReVanced/revanced-manager). + +## 📖 Table of contents + +## Developing + +0. [💼 Prerequisites](0_prerequisites.md) +1. [🧑‍💻 Developing for ReVanced Manager](1_developing.md) +2. [🎉 Submitting your Pull Request](2_submitting.md) + +## Store provider + +1. [✒️ Verifying ReVanced Manager](3_verifying.md) + +## ⏭️ Start here + +The next page will tell you about the prerequisites for developing for ReVanced Manager. + +Continue: [💼 Prerequisites](0_prerequisites.md)