4.1 KiB
Fox's Magisk Module Manager (Developer documentation)
Note: This doc assume you already read the official Magisk module developer guide
Index:
Properties
In addition to the following magisk properties
# Magisk supported properties
id=<string>
name=<string>
version=<string>
versionCode=<int>
author=<string>
description=<string>
This the manager support these new properties
# Fox's Mmm supported properties
minApi=<int>
minMagisk=<int>
support=<url>
donate=<url>
config=<package>
(Note: All urls must start with https://
, or else will be ignored)
minApi
tell the manager which is the minimum SDK version required for the module
(See: Codenames, Tags, and Build Numbers)minMagisk
tell the manager which is the minimum Magisk version required for the module (Often for magiskxx.y
the version code isxxy00
)support
support link to direct users when they need support for you modulesdonate
donate link to direct users to where they can financially support your projectconfig
package name of the application that configure your module (Note: The icon won't appear in the module list if the module and target app is not installed)
Note: Fox's Mmm use fallback
here
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
Installer commands
The Fox's Mmm also allow better control over it's installer interface
Fox's Mmm defined the variable MMM_EXT_SUPPORT
to expose it's extension 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 terminalsetLastLine <arg>
: Set the last line of text displayed in the terminalclearTerminal
: Clear the terminal of any text, making it emptyscrollUp
: Scroll up at the top of the terminalscrollDown
: Scroll down at the bottom of the terminalshowLoading
: Show an indeterminate progress bar (Note: the bar is automatically hidden when the install finish)hideLoading
: Hide the indeterminate progress bar if previously shownsetSupportLink <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)
Note: The current behavior with unknown command is to ignore them, I may add or remove commands in the future depending of how they are used
A wrapper script to use theses commands could be
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
# 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 simulate module doing something
sleep 5
mmm_exec hideLoading
mmm_exec setSupportLink https://github.com/Fox2Code/FoxMagiskModuleManager
You may look at the example module code or download the module zip and try it yourself
Have fun with the API making the user install experience a unique experience
Also there is the source of the app icon here .