update docs

Signed-off-by: androidacy-user <opensource@androidacy.com>
pull/89/head
androidacy-user 2 years ago
parent d282e7c5ac
commit 6430a4114d

@ -1,189 +1,83 @@
# Androidacy Module Manager
### Developed by Androidacy. Find us on the web [here](https://www.androidacy.com/?utm_source=fox-readme&utm_medium=web&utm_campaign=github).
## Introduction
<sub>We'd like to thank Fox2Code for his initial work on the app. This app was previously known as Fox's Magisk Module Manager (FoxMMM) and may still be referred to as that. Androidacy thanks Fox2Code for their initial work on this app, and wishes him the best in his future endeavours.</sub>
### Developed by Androidacy
[![GitHub release (latest by date)](https://img.shields.io/github/v/release/Androidacy/AndroidacyModuleManager?color=neon&label=Latest%20release&style=for-the-badge)](https://www.androidacy.com/downloads/?view=FoxMMM)
Explore our diverse range of offerings on our [official website](https://www.androidacy.com/?utm_source=fox-readme&utm_medium=web&utm_campaign=github-readme).
## About
<sub>Originally known as Fox's Magisk Module Manager (FoxMMM), we thank Fox2Code for the foundational work.</sub>
The official Magisk Manager app has dropped it's support for downloading online modules, leaving users without a way to easily search for and download them. This app was created to help users download and install modules, and manage their own modules. We pride ourselves on our code quality, ease of use, and our commitment to the community.
[![Latest Release](https://img.shields.io/github/v/release/Androidacy/AndroidacyModuleManager?color=neon&label=Latest%20release&style=for-the-badge)](https://www.androidacy.com/downloads/?view=FoxMMM&utm_source=fox-readme&utm_medium=web&utm_campaign=github-readme)
**This app is not officially supported by Magisk, KernelSU, Google, or in any way affiliated with the above**
## Overview and Purpose
**The modules shown in this app are not affiliated with this app or Magisk**.
The Androidacy Module Manager serves as a robust alternative to the official Magisk Manager app, which has discontinued support for online module downloads.
## Features
- Download and install modules
- Manage your own modules
- Search for and download modules
- Supports custom repos
- Separate lists of local and remote modules
- Check for module updates automatically
- Monet theming
- Fully MD3 themed
- Easy to use
- (Androidacy Repo only) Automatic VirusTotal scans
- (Androidacy Repo only) Module reviews
- (Androidacy Repo only) Revenue sharing program
- (Coming soon) Repo creation wizard
- (Coming soon) Module creator
**Disclaimer:** This application is not officially endorsed by Magisk, KernelSU, Google, or any other affiliated entities.
## Community
## Comprehensive Feature Set
[![Telegram Group](https://img.shields.io/endpoint?color=neon&style=for-the-badge&url=https%3A%2F%2Ftg.sumanjay.workers.dev%2Fandroidacy_discussions)](https://telegram.dog/androidacy_discussions)
- **Module Management:** Download, install, and manage your modules.
- **Search Functionality:** Find new modules.
- **Custom Repository Support:** Add your own repositories.
- **Automatic Updates:** Keeps your system up-to-date.
- **Theming:** Monet theming.
- **User Interface:** Material Design 3 (MD3) compliant.
<a href="http://translate.nift4.org/engage/foxmmm/">
<img src="http://translate.nift4.org/widgets/foxmmm/-/287x66-white.png" alt="Translation status" />
</a>
### Exclusive to Androidacy Repository
## Screenshots
- **Security:** Automatic VirusTotal scans.
- **Community Engagement:** Module reviews.
- **Revenue Sharing:** Financially rewards module developers.
- **Ad-Supported:** Ads allow us to keep this app and our repository free, but can be removed with a subscription. [Subscribe Now](https://www.androidacy.com/membership-join/?utm_source=fox-readme&utm_medium=web&utm_campaign=github-readme)
Main activity:
### Future Updates
| Dark theme | Light theme |
|:-----------------------------------------------------------------------------:|:-------------------------------------------------------------------------------:|
| [<img src="docs/screenshot-dark.jpg" width="250"/>](docs/screenshot-dark.jpg) | [<img src="docs/screenshot-light.jpg" width="250"/>](docs/screenshot-light.jpg) |
- Repository Creation Wizard
- Module Creation Tool
## Requirements
### Default Repositories
### Minimum / Recommended:
- [Androidacy](https://www.androidacy.com/magisk-modules-repository/?utm_source=fox-readme&utm_medium=web&utm_campaign=github-readme): Fast, optimized, and secure. The official Androidacy repository. May display non-intrusive ads.
- [Magisk Alt Repo](https://github.com/Magisk-Modules-Alt-Repo/): A community-driven repository for Magisk modules. Not affiliated with Magisk or Topjohnwu, and may contain low-quality or malicious modules.
- Android: 8.0+ / Android 9.0+
- Magisk: 21.0+ / Magisk 24.0+
- KernelSU **(experimental)**: 0.5.0+ / latest
- An internet connection / A stable wifi connection
## Community Engagement and Support
Note: This app may require the use of a VPN in countries with a state wide firewall.
Join our [Telegram Group](https://telegram.dog/androidacy_discussions?utm_source=fox-readme&utm_medium=web&utm_campaign=github-readme).
## Installation
## System Requirements
To install the app go to [our website](https://www.androidacy.com/downloads/?view=FoxMMM),
and download and install the latest `.apk` for your architecture on your device.
### Minimum and Recommended Specifications
## Repositories Available
- **Android OS:** 8.0 / 9.0+
- **Magisk:** 21.0 / 24.0+
- **KernelSU (Experimental Support):** 0.5.0+ / Latest
- **Internet Connectivity:** Required / Stable Wi-Fi Recommended
#### Please note that we reserve the right to add, remove, and change default repos at any time, and the inclusion of any repo does not equate endorsement or any agreement with or of said repo.
> **Note:** A VPN may be required in certain regions.
The app currently use the below repos as module sources, each with their own benefits and
drawbacks. Note that the app developers do not actively monitor any repos, and downloading or
installing from them is at the user's own risk. Default repos can be enabled or disabled in-app.
## Installation Guidelines
#### [Androidacy](https://www.androidacy.com/magisk-modules-repository/?utm_source=fox-readme&utm_medium=web&utm_campagin=github)
Visit [our website](https://www.androidacy.com/downloads/?view=FoxMMM&utm_source=fox-readme&utm_medium=web&utm_campaign=github-readme) to download the latest `.apk`.
- Accepting new
modules [here](https://www.androidacy.com/module-repository-applications/?utm_source=fox-readme&utm_medium=web&utm_campagin=github)
- Modules downloadable easily outside the app
- Rigorously reviewed and tested modules
- Officially supported by AMM
- May show ads to help cover infrastructure costs. Can be removed with subscription.
- [Read more](https://www.androidacycom/doing-it-alone-the-what-the-how-and-the-why/?utm_source=fox-readme&utm_medium=web&utm_campagin=github)
| [Privacy policy](https://www.androidacy.com/privacy/?utm_source=fox-readme&utm_medium=web&utm_campagin=github)
- Added features like module reviews, automatic VirusTotal scans, and more.
- Pays module developers for their work as part of the Revenue Sharing Program
## Developer Guidelines
**Support:**
Consult our [Developer Documentation](docs/DEVELOPERS.md?utm_source=fox-readme&utm_medium=web&utm_campaign=github-readme).
&emsp; [![Telegram Group](https://img.shields.io/endpoint?color=neon&style=for-the-badge&url=https%3A%2F%2Ftg.sumanjay.workers.dev%2Fandroidacy_discussions)](https://telegram.dog/androidacy_discussions)
## Translation Contributions
#### [Magisk Alt Repo](https://github.com/Magisk-Modules-Alt-Repo)
Visit our [Weblate page](https://translate.nift4.org/engage/foxmmm/?utm_source=fox-readme&utm_medium=web&utm_campaign=github-readme). Advanced users may also send us a pull request on GitHub.
- Accepting new modules [here](https://github.com/Magisk-Modules-Alt-Repo/submission)
- Less restrictive than the original repo
- May have lower quality, untested, or otherwise broken modules due to their policies or lack
thereof.
- Officially supported by AMM
- Disabled by default and no longer recommended. Kept as an alternative for those who want it
## Legal and Compliance
**Support:**
&emsp; [![GitHub issues](https://img.shields.io/github/issues/Magisk-Modules-Alt-Repo/submission?style=for-the-badge&color=neon)](https://github.com/Magisk-Modules-Alt-Repo/submission/issues)
By using this application, you agree to abide by our [Terms of Service](https://www.androidacy.com/terms/?utm_source=fox-readme&utm_medium=web&utm_campaign=github-readme), our [LICENSE](LICENCE?utm_source=fox-readme&utm_medium=web&utm_campaign=github-readme) and the [EULA](https://www.androidacy.com/foxmmm-eula/?utm_source=fox-readme&utm_medium=web&utm_campaign=github-readme). **If you do not agree to any of those terms, you are to discontinue usage of the app immediately.**
**Please do not use GitHub issues for help or questions. GitHub issues are specifically for bug
reporting and general app feedback.**
## Disclaimer
If a module is in multiple repos, the manager will just pick the most up to date version of the
module, if a module is in multiple repos it will just use first registered repo.
## For developers
THIS SOFTWARE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE SOFTWARE IS WITH YOU.
The manager can read a few new meta keys to allow modules to customize their own entry
It also use `minApi`, `maxApi` and `minMagisk` in the `module.prop` to detect compatibility
And support the `support` and `donate` properties to allow them to add their own support links
And if you want to be event fancier you can setup `config` to your own config app.
(Note: the manager use fallback values for some modules, see developer documentation for more info)
It also add new ways to control the installer ui via a new `#!` command system
It allows module developers to craft a more customizable install experience.
If you created and uploaded a module and it doesn't appear in your module list you can disable
the low quality filter in the app settings after enabling developer mode. **Ideally, we recommend you to fix your module metadata rather than disabling that filter.**
For more information please check the [developer documentation](docs/DEVELOPERS.md)
## Help us make our app more accessible!
**We need your help!** The app has started lagging behind in translations, and we need your help to
catch up! As a reminder, translations are required to be at 60% or more to be included in the app.
### Weblate (recommended)
We use Weblate for
translations: [https://translate.nift4.org/engage/foxmmm/](https://translate.nift4.org/engage/foxmmm/)
- You can create an account and start translating
- You may need to check your spam folder for the confirmation email
### GitHub method (advanced users)
See [`app/src/main/res/values/strings.xml`](https://github.com/Androidacy/MagiskModuleManager/blob/master/app/src/main/res/values/strings.xml)
If your language is right to left don't forget to set `lang_support_rtl` to `true`.
Translators do not need to have any previous coding experience.
## Add your own repos
See [the documentation](docs/add-repo.md).
## Issues with a repo
If you have a problem with a repo, please contact the repo owner **first**. If you are unable to
reach them or they are not willing to help, you can contact us as a last resort.
_The developers of this app are unable to help with any issues arising from use or installation of
modules, and may be of limited help with issues arising from a specific repo._
Default repo owners:
- Androidacy: [Telegram](https://telegram.dog/androidacy_discussions)
- Magisk-Modules-Alt-Repo: [GitHub](https://github.com/Magisk-Modules-Alt-Repo/submission/issues)
Custom repos may have their own support channels, and we are unable to provide any support
whatsoever for them, outside of direct implementation bugs.
## License
Androidacy Module Manager, the icon, and names are copyright
2021-present [Fox2Code](https://github.com/Fox2Code). The Androidacy name(s), logo, integration, and
later portions of the code are copyright
2022-present [Androidacy](https://www.androidacy.com/?utm_source=fox-repo&utm_medium=web). See
[LICENSE](LICENCE) for details. Library licenses can be found in the licenses section of the app.
Modules and their files, names, and other assets are not covered by this license or other
agreements, and are not warranted, checked, or otherwise guaranteed by the authors of this app, and may have their own licenses, agreements, and terms, of which the author(s) of this app do not check or have any responsibility for.
Some third party backend services may have additional terms, please check their
terms of service before
using them.
## EULA
The EULA can be found [here](https://www.androidacy.com/foxmmm-eula/). By downloading, installing,
or using this app you agree to the supplemental terms of the EULA.
**IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR AN CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.**
> **Copyright © 2023 Androidacy. All rights reserved.**

@ -43,6 +43,8 @@ import io.noties.markwon.Markwon
import io.noties.markwon.html.HtmlPlugin
import io.noties.markwon.image.ImagesPlugin
import io.noties.markwon.image.network.OkHttpNetworkSchemeHandler
import io.sentry.Sentry
import io.sentry.SentryLevel
import org.matomo.sdk.Matomo
import org.matomo.sdk.Tracker
import org.matomo.sdk.TrackerBuilder
@ -58,6 +60,8 @@ import kotlin.math.abs
@Suppress("unused", "MemberVisibilityCanBePrivate")
class MainApplication : FoxApplication(), Configuration.Provider {
var isTainted = false
@JvmField
var modulesHaveUpdates = false
@ -318,6 +322,10 @@ class MainApplication : FoxApplication(), Configuration.Provider {
// Force initialize language early.
LanguageSwitcher(this)
updateTheme()
if (!BuildConfig.DEBUG && isDeveloper) {
Timber.e("Developer mode is enabled! Support will not be provided if you are not a developer!")
isTainted = true
}
// Update emoji config
val fontRequestEmojiCompatConfig = DefaultEmojiCompatConfig.create(this)
if (fontRequestEmojiCompatConfig != null) {
@ -450,12 +458,22 @@ class MainApplication : FoxApplication(), Configuration.Provider {
class ReleaseTree : Timber.Tree() {
override fun log(priority: Int, tag: String?, message: String, t: Throwable?) {
// basically silently drop all logs below error, and write the rest to logcat
if (priority >= Log.ERROR) {
@Suppress("NAME_SHADOWING") var message = message
if (INSTANCE!!.isTainted) {
// prepend [TAINTED] to the message
message = "[TAINTED] $message"
}
if (priority >= Log.WARN) {
if (t != null) {
Log.println(priority, tag, message)
t.printStackTrace()
Sentry.captureException(t)
} else {
Log.println(priority, tag, message)
when (priority) {
Log.ERROR -> Sentry.captureMessage(message, SentryLevel.ERROR)
Log.WARN -> Sentry.captureMessage(message, SentryLevel.WARNING)
}
}
}
}

@ -5,15 +5,10 @@
package com.fox2code.mmm.utils
import com.fox2code.mmm.BuildConfig
import com.fox2code.mmm.MainApplication
import com.fox2code.mmm.MainApplication.ReleaseTree
import io.sentry.Sentry
import io.sentry.SentryLevel
import io.sentry.android.timber.SentryTimberTree
import timber.log.Timber
import timber.log.Timber.Forest.plant
@Suppress("UnstableApiUsage")
object TimberUtils {
@JvmStatic
@ -23,17 +18,7 @@ object TimberUtils {
if (BuildConfig.DEBUG) {
plant(Timber.DebugTree())
} else {
if (MainApplication.isCrashReportingEnabled) {
plant(
SentryTimberTree(
Sentry.getCurrentHub(),
SentryLevel.WARNING,
SentryLevel.WARNING
)
)
} else {
plant(ReleaseTree())
}
plant(ReleaseTree())
}
}
}

@ -1,47 +1,46 @@
# Androidacy Module Manager (Developer documentation)
# Androidacy Module Manager: Developer Documentation
Note: This doc assume you already read the
[official Magisk module developer guide](https://topjohnwu.github.io/Magisk/guides.html)
## Table of Contents
Note: official repo do not accept new modules anymore, submit
[here](https://github.com/Magisk-Modules-Alt-Repo/submission) instead.
- [Introduction](#introduction)
- [Special Considerations](#special-considerations)
- [Custom Repository Format](#custom-repository-format)
- [Module Properties](#module-properties)
- [ANSI Styling](#ansi-styling)
- [Installer Commands](#installer-commands)
- [Developer Mode](#developer-mode)
- [Conclusion](#conclusion)
Index:
- [Special notes](DEVELOPERS.md#special-notes)
- [Properties](DEVELOPERS.md#properties)
- [ANSI Styling](DEVELOPERS.md#ansi-styling)
- [Installer commands](DEVELOPERS.md#installer-commands)
- [Developer mode](DEVELOPERS.md#developer-mode)
- [End note](DEVELOPERS.md#end-note)
## Introduction
## Special notes
This document serves as a comprehensive guide for developers interested in integrating their modules with the Androidacy Module Manager (AMM). It is assumed that the reader is already familiar with the [official Magisk module developer guide](https://topjohnwu.github.io/Magisk/guides.html).
MitM: Certificate pinning is only available since Android 7.0,
any issue regarding MitM that can only be performed of
Android versions that doesn't support this feature will be ignored.
> **Note:** The official Magisk repository no longer accepts new modules. Developers are encouraged to submit their modules to the [Androidacy Repository](https://www.androidacy.com/magisk-modules-repository/).
App hiding: I don't intent on hiding the app, the package names should always be
`com.fox2code.mmm` or starts with `com.fox2code.mmm.`, however I notice the presence of
my app is causing issues due to it existing, I may add an hiding feature to the app.
## Special Considerations
Low quality module filter: Implemented at `com.fox2code.mmm.utils.io.PropUtils.isLowQualityModule`,
it is a check that verify that the module is declaring the minimum required to
allow the app to show your module to the user without hurting his experience.
Filling all basic Magisk properties is often enough to not get filtered out by it.
### MitM and Certificate Pinning
## Custom Repo format
Certificate pinning is supported only from Android 7.0 onwards. Issues related to MitM on unsupported Android versions will not be entertained.
Note: This feature is for `0.6.0` version that is not released yet.
### App Hiding
`last_update` fields uses unix millis.
The application does not support hiding features. The package names should either be `com.fox2code.mmm` or `com.androidacy.mmm`.
### Low-Quality Module Filter
The low-quality module filter is implemented at `com.fox2code.mmm.utils.io.PropUtils.isLowQualityModule`. This filter ensures that only modules meeting a minimum quality standard are displayed to the end-users.
## Custom Repository Format
This section outlines the JSON format for custom repositories. The feature is slated for release in version `0.6.0`.
Json format is
```json
{
"name": "Repo name",
"website": "repo website",
"support": "optional support url",
"donate": "optional support url",
"donate": "optional support url",
"submitModule": "optional submit module URL",
"last_update": 0,
"modules": [
@ -56,21 +55,9 @@ Json format is
}
```
## Properties
### Module Properties
In addition to the standard Magisk properties, AMM supports several optional properties to enhance module functionality and user experience.
In addition to the following required magisk properties
```properties
# Magisk supported properties
id=<string>
name=<string>
version=<string>
versionCode=<int>
author=<string>
description=<string>
```
Note: The AMM will not show the module if theses values are not filled properly
This the manager support these new optional properties
```properties
# AMM supported properties
minApi=<int>
@ -83,116 +70,23 @@ config=<package>
changeBoot=<boolean>
mmtReborn=<boolean>
```
Note: All urls must start with `https://`, or else will be ignored
Note²: For `minMagisk`, `XX.Y` is parsed as `XXY00`, so you can just put the Magisk version name.
- `minApi` and `maxApi` tell the manager which is the SDK version range the module support
(See: [Codenames, Tags, and Build Numbers](https://source.android.com/setup/start/build-numbers))
- `minMagisk` tell the manager which is the minimum Magisk version required for the module
(Often for magisk `xx.y` the version code is `xxyzz`, `zz` being non `00` on canary builds)
- `needRamdisk` tell the manager the module need boot ramdisk to be installed
- `support` support link to direct users when they need support for you modules
- `donate` donate link to direct users to where they can financially support your project
- `config` package name of the application that configure your module
(Note: The icon won't appear in the module list if the module or target app is not installed)
- `changeBoot` tell the manager the module may change the boot image
- `mmtReborn` tell the manager to use [MMT-Reborn](https://github.com/iamlooper/MMT-Reborn) logging style
(For example `- Hello world` will be transformed to `[*] Hello world`, do not apply to modules installed from storage)
Note: AMM will the use fallback
[here](../app/src/main/java/com/fox2code/mmm/utils/io/PropUtils.kt#L36)
for some modules
Theses values are only used if not defined in the `module.prop` files
So the original module maker can still override them
## ANSI Styling
FoxMMM declare `ANSI_SUPPORT` to `true` if ANSI is supported.
It use [AndroidANSI](https://github.com/Fox2Code/AndroidANSI) library,
please check it's [README.md](https://github.com/Fox2Code/AndroidANSI/blob/master/README.md)
for the list of supported codes.
## Installer commands
FoxMmm also allow better control over it's installer interface
FoxMmm define the variable `MMM_EXT_SUPPORT` to expose it's extensions support
All the commands start with it `#!`, by default the manager process command as log output
unless `#!useExt` is sent to indicate that the app is ready to use commands
Commands:
- `useExt`: Tell the manager you would like to use commands
(Note: Any command executed before this one will just appear as log in the console)
- `addLine <arg>`: Add line to the terminal, this commands can be useful if
you want to display text that start with `#!` inside the terminal
- `setLastLine <arg>`: Set the last line of text displayed in the terminal
(Note: If the terminal is empty it will just add a new line)
- `clearTerminal`: Clear the terminal of any text, making it empty
- `scrollUp`: Scroll up at the top of the terminal
- `scrollDown`: Scroll down at the bottom of the terminal
- `showLoading <max>`: Show a progress bar with `<max>` as max value
(Note: Status bar is indeterminate if nothing or 0 is provided)
- `setLoading <progress>`: Set loading progress if the bar is not indeterminate.
- `hideLoading`: Hide the indeterminate progress bar if previously shown
- `setSupportLink <url>`: Set support link to show when the install finish
(Note: Modules installed from repo will not show the config button if a link is set)
- `disableANSI`: Disable ANSI support if enabled
Variables:
- `MMM_EXT_SUPPORT` declared if extensions are supported
- `MMM_USER_LANGUAGE` the current user selected language
- `MMM_APP_VERSION` display version of the app (Ex: `x.y.z`)
- `MMM_TEXT_WRAP` is set to `1` if text wrapping is enabled
Note:
The current behavior with unknown command is to ignore them,
I may add or remove commands/variables in the future depending of how they are used
A wrapper script to use theses commands could be
```sh
if [ -n "$MMM_EXT_SUPPORT" ]; then
ui_print "#!useExt"
mmm_exec() {
ui_print "$(echo "#!$@")"
}
else
mmm_exec() { true; }
fi
```
And there is an instance of it in use
```sh
# mmm_exec only take effect if inside the loader
mmm_exec showLoading
ui_print "The installer doesn't support mmm_exec"
mmm_exec setLastLine "The installer support mmm_exec"
# Wait to simulate the module doing something
sleep 5
mmm_exec hideLoading
mmm_exec setSupportLink https://github.com/Androidacy/MagiskModuleManager
```
[You may look at the examples modules and their codes.](examples)
Note: All URLs must start with `https://`.
## Developer mode
### ANSI Styling
AMM declares the ANSI_SUPPORT variable as true if ANSI is supported. The application utilizes the AndroidANSI library for this feature.
FoxMMM contain a developer mode to unlock unstable, dangerous, or experimental features.
### Installer Commands
AMM provides a set of specialized commands to control the installer interface. These commands are prefixed with #!.
To unlock developer mode you must do the following in this order:
- Go to setting
- Open theme selector option
- Close it without selecting a theme
- Click on show license
- Go back to setting page
- Click on source code button
Note: A wrapper script example is provided for better understanding.
To disable dev mode just repeat the exact same steps.
### Developer Mode
Developer mode in AMM unlocks features that are unstable, dangerous, or experimental. Developer mode can be enabled by tapping the version number in the settings menu 7 times. **We don't recommend enabling developer mode unless you know what you're doing. Bug reports will not be accepted with developer mode on.**
## End Note
### Conclusion
The Androidacy Module Manager API offers a robust set of features designed to enhance the user experience during module installation. Developers are encouraged to leverage these features to create a unique installation experience.
Have fun with the API making your user install experience a unique experience
Also there is the source of the app icon
[here](https://romannurik.github.io/AndroidAssetStudio/icons-launcher.html#foreground.type=clipart&foreground.clipart=extension&foreground.space.trim=0&foreground.space.pad=0.25&foreColor=rgb(255%2C%20255%2C%20255)&backColor=rgb(255%2C%20152%2C%200)&crop=0&backgroundShape=circle&effects=elevate&name=ic_launcher)
.
> **Copyright © 2023 Androidacy. All rights reserved.**
>

@ -1,47 +1,63 @@
## Adding custom repositories
# How to Add Custom Repositories to Androidacy Module Manager
You have two options:
## Table of Contents
### Option 1: Add your repo to the app for yourself:
- [Introduction](#introduction)
- [Adding a Repo for Personal Use](#adding-a-repo-for-personal-use)
- [Adding a Repo for Public Use](#adding-a-repo-for-public-use)
- [How to Apply for Inclusion](#how-to-apply)
1. You need the modules.json link of your repo, if you don't have one please contact the repo owner.
2. Open the app and go to the settings.
3. Go to repos at the top.
4. Scroll to the bottom and click on the "Add repo" button.
5. Paste the modules.json link and click on the "Add" button.
6. You can now download modules from your repo.
## Introduction
### Option 2: Add your repo to the app for everyone:
This guide shows you how to add custom repositories to the Androidacy Module Manager (AMM). There are two ways to do this:
To add you own repo to AMM it need to follow theses conditions:
1. **Adding a Repo for Personal Use**: This is for individual users who want to add a specific repo just for themselves.
2. **Adding a Repo for Public Use**: This is for repo owners who want their repo to be available to all AMM users.
- The module repo or at least one of it's owners must be known.
- Modules in the repo must be monitored, and malicious modules must be removed.
- Module repo must have a valid, working, automatically or frequently updated `modules.json`
([Example](https://github.com/Magisk-Modules-Alt-Repo/json/blob/main/modules.json))
## Adding a Repo for Personal Use
These guidelines are not mandatory, but not following them may result in your repo being removed or
not being added in the first place.
### Steps
1. **Get the URL**: You need the `modules.json` link of the repo you want to add. If you don't have it, ask the repo owner.
2. **Open the App**: Go to the settings in the AMM app.
3. **Find Repos**: Click on the 'Repos' option at the top of the settings.
4. **Add New Repo**: Scroll down and click the 'Add repo' button.
5. **Enter the URL**: Paste the `modules.json` link and click 'Add'.
> **Note**: Some features might not work fully with custom repos.
## Adding a Repo for Public Use
### Requirements
**In short:**
- **Known Owner**: The repo or one of its owners should be well-known.
- **Safe Modules**: The repo should actively remove any harmful modules.
- **Updated Data**: The repo must have an up-to-date `modules.json` file.
**In detail:**
<details>
<summary>Click to see the guidelines</summary>
- Repos must process and take-down off their repo module where it's removal was provably
requested by
their
original author
- Repos may not collect and/or distribute any personally identifiable data (including IP
addresses) without
informing
users
that they do so and offering a way to opt out
- Modules owners must be aware that their modules are being hosted on the repository and/or have a
way to remove their modules from the repository
- Modules owners must be aware of any change made of the distributed version of their modules.
- Repos should make an effort to keep users safe, via a review process, or by using a
whitelist/blacklist
<summary>Click to expand full guidelines</summary>
- **Author Approval**: Repos should only host modules if the original author agrees or the license permits. If repository uses automated tools to add modules, they should have an opt out process or a way to request removal.
- **Privacy**: Don't collect personal data without telling users. Data used for advertising and analytics should be anonymized where possible, or otherwise declared in accordance with applicable laws.
- **Transparency**: Let module owners know if their module is on your repo and if you make any changes to it. This can be done by including a searchable list of modules on your website.
- **Safety**: Try to keep users safe by reviewing modules or using a whitelist/blacklist. Reasonable measures should be taken to prevent malware and other harmful modules from being hosted, and to protect other's intellectual property.
</details>
In all scenarios, insofar that their policies are not in conflict with the above, the repo owner's
poloicies take precedence over the above guidelines. We encourage users to check the guidelines of
the repo they are using.
_**Note**: Repo owners can have their own rules, but they should not conflict with these guidelines. Always check the repo's own guidelines. In addition, these are just guidelines, and Androidacy reserves the right to remove any repo or refuse to add any repo for any reason whatsoever._
### How to Apply
If your repo meets these requirements, open an issue with:
- **Repo Name**: The name of your repo.
- **Website**: The official website of the repo.
- **Contact**: A way to contact you, like email or Telegram.
- **How to Add**: Steps or documentation on how to add the repo to AMM.
**Note**: Each repo will be reviewed on a case-by-case basis. Meeting these guidelines does not guarantee inclusion in AMM.
> Copyright © 2023 Androidacy. All Rights Reserved.

Loading…
Cancel
Save