You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
MagiskModuleManager/docs/DEVELOPERS.md

92 lines
3.4 KiB
Markdown

# Androidacy Module Manager: Developer Documentation
4 years ago
## Table of Contents
4 years ago
- [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)
## Introduction
4 years ago
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).
> **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/).
## Special Considerations
### MitM and Certificate Pinning
Certificate pinning is supported only from Android 7.0 onwards. Issues related to MitM on unsupported Android versions will not be entertained.
### App Hiding
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
{
"name": "Repo name",
"website": "repo website",
"support": "optional support url",
"donate": "optional support url",
"submitModule": "optional submit module URL",
"last_update": 0,
"modules": [
{
"id": "module id",
"last_update": 0,
"notes_url": "notes url",
"prop_url": "module.prop url",
"zip_url": "module.zip url"
}
]
}
```
### Module Properties
In addition to the standard Magisk properties, AMM supports several optional properties to enhance module functionality and user experience.
4 years ago
```properties
# AMM supported properties
4 years ago
minApi=<int>
maxApi=<int>
4 years ago
minMagisk=<int>
needRamdisk=<boolean>
4 years ago
support=<url>
donate=<url>
config=<package>
changeBoot=<boolean>
mmtReborn=<boolean>
4 years ago
```
Note: All URLs must start with `https://`.
4 years ago
### ANSI Styling
AMM declares the ANSI_SUPPORT variable as true if ANSI is supported. The application utilizes the AndroidANSI library for this feature.
### Installer Commands
AMM provides a set of specialized commands to control the installer interface. These commands are prefixed with #!.
Note: A wrapper script example is provided for better understanding.
### 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.**
### 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.
4 years ago
> **Copyright © 2023 Androidacy. All rights reserved.**
>