[Magisk] ahrion:
I want to give a shout-out to [MENTION=6037748]Zackptg5[/MENTION] for his work in this project. Some of the things he has added or improved upon is great. This project and even the Ainur project wouldn't be the same without him.

While a lot of users don't understand the complexity of Unity Installer or AML, let me explain why we're so excited with it (since people are confused, especially developers).

As you know, Audio Modification Library or AML for short, allows multiple audio mods to utilize the same files without compatibility issues. Some ask why this is necessary right? Well this is necessary because Magisk does it's job by symlinking files. Almost every audio modification or app utilizes audio_effect.conf files by doing patches to that specific file. This is where we run into the problems. Only one of the same file can be symlinked at any given time, so say I download a non AML ViPER4Android module and a non AML Dolby module, whichever audio_effect.conf file is symlinked last, will be the one that is loaded by the system. This will cause either Dolby or V4A to not work. AML fixes this issue so any mod that utilizes AML will just simply patch the AML module, thus fixing the Magisk issue. With v2.0+ AML is different in the fact that it also brings other features besides being a simple framework, but it also assists with System installs as well rather than just Magisk as well as allows SELinux patching for SELinux Enforcing (allows audio mods to work on SELinux Enforcing). It's easy to add support for AML for developers as well by simply utilizing the Unity Installer. It's a copy/paste job (easy) from there.

Unity Installer and AML are both bundled together, Unity Installer is where a lot of the magic happens. The developer who wants to use Unity has the option to make a mod by setting AudModLib=false, in that case AML will not be installed or utilized in a non-audio mod module. Unity Installer is a multi-purpose and multi-compatibility installer that ranges across arm/x84 to Nexus and Pixel devices, and allowing one installer to detect and install on either Magisk or non-Magisk (System install), and adds many features for both developers AND users. Some of the features included rootless, addon.d, init.d, MagiskSU, phh SU, LineageOS SU, other root options, and SELinux Enforcing support. Among other features, Unity also allows Magisk user's to force uninstall by adding "uninstall" to the zip name and force System install by adding "system" to the zip name (if Magisk is already installed). You can also uninstall by flashing the installed version a second time. Another new unreleased feature is the fact that the mod always uninstalls itself when a new version is detected because if the new version is missing previous files from an older version, this cleans up for the new install.

Now people might think Unity or AML is dumb or useless because it looks confusing, and it is, but not for the user or developer. The reason being is among all the features it has, all the internal update-binary script doesn't need to be edited AT ALL for any of these features. The update-binary doesn't need to be touched. It's literally a copy/past game for the developer to the specified files we've created for them. So say for example I want to make a Liveboot module based on Chainfire's app, you would literally just place the file in the system directory of the Unity template, change the necessary files for the module (only if Magisk) and voila, the installer will automatically create the addon.d script, any necessary boot scripts, and the uninstaller will work for whatever apps or files placed without the developer or user adding any code or lines. It's all automated. Cool right? Now there are some special cases where a lib might be installed differently and this is where the custom rules comes in, we allow the developer to manually define the conditions to place their files, but the installer will still automate the process for addon.d, scripts, and uninstall process. So. How can this be relevant? Say we have ARISE right? That mod has over 100+ files right? Literally all that needs to be done is a copy/paste job and the installer/Uninstaller automates the rest. One thing that is developers hate about Uninstallers is always having to update it any time a file is added or changed, imagine being [MENTION=4445176]guitardedhero[/MENTION] from ARISE constantly editing an installer for over 100+ lines of code to reflect every file in his mod. Yeah. . That's not gonna happen, which is why many modules don't have uninstallers. This fixes that issue because it's all automated.

Among all the crazy usefulness of an installer like Unity, it's not for everyone. I didn't even finish listing all of the cool features. I just wanted to clear up some confusion on why every time a new feature is released I'm excited, and why I think it would benefit a lot of people other than myself, Zack, or the Ainur project.