Originally, Unity Installer and AML were combined into one. That's what's archived on ahrions github.
Nowadays, unity is its own thing and AML was completely redesigned into what it is today. The whole purpose of aml is to combine the audio effect/policy/mixer/etc files from multiple audio mods into one set because only one copy of a file can be active mounted at any given time. With non-magisk installs, the actual copies of those audio files are all modified by various mods (aka they all work with the same copy) and so there's no need for aml
What is the purpose of this?
Audio mods often f
unction in part by modifying some audio files (such as audio_effects, mixer_paths, etc.). The problem here is that each mod has it's own copy of the files and magisk can only mount 1 copy of each, so only 1 mod will completely work. AML functions by combining them all into one set of files to remedy this issue.
So how does it work?
It's now a standalone zip that is flashed once and forgetten about. It's magisk only for obvious reasons and will incorporate all supported audio mods into itself automatically during install, and then during each boot if any changes were detected. So it will adjust for any changes in audio mods such as new ones being installed, some being removed, or an existing one being updated.
Where the Mod is Located:
This is more of the nitty gritty for anyone interested but the aml specific copies of audio files and the mod itself are stored in the aml folder in the magisk directory like a typical module. However, it moves any detected audio files out of the folder of any audio mods so they won't be mounted by magisk and conflict. They're moved to .core/aml for safe keeping so they can be restored back to the mod later if you choose to uninstall aml or if upgrading aml
When do I flash this?
Unlike with older version of aml, order doesn't matter. However, it's best to flash aml FIRST. The reason for this is that an increasing number of audio mods look for aml and behave differently if it doesn't yet exist.
If a mod didn't work before you flashed aml, it probably won't work after. Take up the issue on the mod's thread.
Otherwise, if a mod works before flashing aml and doesn't after: First, try uninstalling all audio mods and then reinstalling them (including aml). If that doesn't work, then I'll need you to make a post with this in it:
- Recovery log after flashing AML
- List of Audio Mods Installed
- AML version last working on (if applicable)
- Zip attachment of your aml magisk module (/data/adb/modules/aml) folder (note that there's a debug.log file in here that's shows everything)
- Zip attachment of your aml backup folder (/data/adb/aml) folder
- Dolby Atmos (ahrion's ports)
- Dolby Atmos Axon 7 Oreo (guitardedhero's port)
- Dolby Digital Plus
- Bang&Olufsen ICEPower (only tested ainur version)
- Arkamys (only tested ainur version)
- Dirac (only tested ainur version)
- Dirac Hexagon (only tested ainur version)
- MaxX Audio 3
- Audio Compatibility Patch (formerly universal deep_buffer remover)
- Ainur Sauron
- Sony Xperia Z2 Sound System
- Ainur Narsil
- Ainur DTSX
- Ainur DTS Ultra
- Dolby Atmos Pie/Q+ (guitardedhero's port)
Want an audio mod added to AML?
Make a post about it and I'll see if it's eligible. No guarantees that I'll add it but these are things that it must have to even be considered:
- Original/unique (so not a repackaging of other audio mods)
- Universal(ish) (support a large number of devices - not specific to a handful of devices)
- Patches files rather than replaces them (the whole point of aml is to be a collection of patches)
- Patches must be static (won't be changing with each mod update)
Audio Mod Can't be Added to AML Directly? You can still add it in!
If it doesn't meet these requirements, you can still make it aml compatible.
You just need your mod to create a file called ".aml.sh" in the root of the mod directory ($MODPATH typically). It'll need to have the patches for your mod in a format that aml can understand:
- For patching audio_effect files, AML includes a 'patch_cfgs' function that makes life much easier. So if you have an effect and library to add: Code:
patch_cfgs <effect_name> <UUID> <library_name> <library_path>Code:
patch_cfgs v4a_fx 41d3c987-e6cf-11e3-a88a-11aba5d5c51b v4a_standard_fx /vendor/lib/soundfx/libv4a_fx.so
So if you're not patch audio effects files, skip on down to the 'Some other variables/options' section
'patch_cfgs' has several flags that can be used (the format followed by an example for each is listed here as well):
- -l: patch libraryCode:
patch_cfgs -l <library_name> <library_path>Code:
patch_cfgs -l v4a_fx /vendor/lib/soundfx/libv4a_fx.so
- -e: patch effectCode:
patch_cfgs -e <effect_name> <UUID> <library_name>Code:
patch_cfgs -e v4a_standard_fx 41d3c987-e6cf-11e3-a88a-11aba5d5c51b v4a_fx
- -o: patch output_session_processing (postprocessing). Typically used with both 'l' and 'e' flags as wellCode:
patch_cfgs -ole <osp_section> <effect_name> <UUID> <library_name> <library_path>Code:
patch_cfgs -ole music atmos 9d4921da-8225-4f29-aefa-aacb40a73593 atmos /vendor/lib/soundfx/libatmos.so
- -q: patch pre_processing (preprocessing). Typically used with both 'l' and 'e' flags as wellCode:
patch_cfgs -qle <pp_section> <effect_name> <UUID> <library_name> <library_path>Code:
patch_cfgs -qle music atmos 9d4921da-8225-4f29-aefa-aacb40a73593 atmos /vendor/lib/soundfx/libatmos.so
- -p: patch proxy effect (note that since this is a special kind of effect, it cannot be used with '-e'). When used by itselfCode:
patch_cfgs -p <proxy_effect_name> <proxy_UUID> <sw_library_name> <sw_UUID> <hw_library_name> <hw_UUID>Code:
patch_cfgs -p dax 9d4921da-8225-4f29-aefa-6e6f69726861 dax_sw 6ab06da4-c516-4611-8166-6168726e6f69 dax_hw a0c30891-8246-4aef-b8ad-696f6e726861Code:
patch_cfgs -pl <proxy_effect_name> <proxy_UUID> <sw_library_name> <sw_UUID> <sw_library_path> <hw_library_name> <hw_UUID> <hw_library_path>Code:
patch_cfgs -pl dax 9d4921da-8225-4f29-aefa-6e6f69726861 dax_sw 6ab06da4-c516-4611-8166-6168726e6f69 /vendor/lib/soundfx/libswdax.so dax_hw a0c30891-8246-4aef-b8ad-696f6e726861 /vendor/lib/soundfx/libhwdax.so
- -r: replace. Normally, aml will only apply any of the above if it doesn't exist in the audio cfg file. With this flag enabled however, it'll replace any existing effects. It's pretty rare that this would be needed (none of the mods patches built-in to aml have this)
- no flag specified: if no flags are specified, patch_cfgs will use -le by default (patch library and effect). This is what's typically used (like in the first example before this list)
- -l: patch library
- For patching other files: just add you script logic like it it was in your mod.
If you're patching mixers for example:
for i in $(find $MODPATH/system -type f -name "*mixer_paths*.xml"); do <add_patch_here> for mixer '$i' done
- Then when AML is installed, it'll detect this .aml.sh file and apply the patches accordingly