[MOD] Audio Modification Library v4.0

Which mods do you use?

  • AM3D

    Votes: 60 4.1%
  • V4AFX

    Votes: 1,029 70.1%
  • V4AXhifi

    Votes: 98 6.7%
  • Dolby Atmos (ahrion)

    Votes: 171 11.7%
  • Dolby Atmos Oreo (guitardedhero)

    Votes: 159 10.8%
  • Dolby Digital Plus

    Votes: 173 11.8%
  • B&O Ice (Ainur)

    Votes: 25 1.7%
  • Arkamys (Ainur)

    Votes: 25 1.7%
  • Dirac (Ainur)

    Votes: 28 1.9%
  • Dirac Hexagon (Ainur)

    Votes: 30 2.0%
  • JamesDSP

    Votes: 134 9.1%
  • Audio Compatibility Patch (formerly udbr)

    Votes: 175 11.9%
  • Ainur Sauron

    Votes: 333 22.7%

  • Total voters
    1,467
Search This thread

Zackptg5

Recognized Developer
Sep 18, 2014
4,086
6,680
zackptg5.com
Audio Modification Library is a library of known audio mods. It'll search your magisk directory for any supported audio mods and incorporate them into itself. It's been completely redone to act as a standalone module so devs no longer need to worry about using a framework for their audio mods and users no longer are limited to just mods using that framework.

Some history
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 function 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.

Troubleshooting:
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
Currently Supported Mods:
  • AM3D
  • AudioWizard
  • V4AFX
  • V4AXhifi
  • 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)
  • JamesDSP
  • MaxX Audio 3
  • Audio Compatibility Patch (formerly universal deep_buffer remover)
  • Ainur Sauron
  • SquareSound
  • Sony Xperia Z2 Sound System
  • Ainur Narsil
  • Ainur DTSX
  • Ainur DTS Ultra
  • Dolby Atmos Pie/Q+ (guitardedhero's ports)

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:
  1. 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>
    For example:
    Code:
    patch_cfgs v4a_fx 41d3c987-e6cf-11e3-a88a-11aba5d5c51b v4a_standard_fx /vendor/lib/soundfx/libv4a_fx.so
    Note that this patch_cfgs function is for audio effects files only. If you're patching audio policy or mixer_paths files, then you'll need to make the patches the old fashioned way yourself.
    So if you're not patch audio effects files, skip on down to the 'Some other variables/options' section :cowboy:

    'patch_cfgs' has several flags that can be used (the format followed by an example for each is listed here as well):
    • -l: patch library
      Code:
      patch_cfgs -l <library_name> <library_path>
      Code:
      patch_cfgs -l v4a_fx /vendor/lib/soundfx/libv4a_fx.so
    • -e: patch effect
      Code:
      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 well
      Code:
      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 well
      Code:
      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 itself
      Code:
      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-696f6e726861
      But it's typically used with 'l'
      Code:
      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)
  2. For patching other files: just add you script logic like it it was in your mod.
    If you're patching mixers for example:
    Code:
    for i in $(find $MODPATH/system -type f -name "*mixer_paths*.xml"); do
      <add_patch_here> for mixer '$i'
    done
    MODPATH is equivalent to aml's directory since it's running the aml.sh script
  3. Then when AML is installed, it'll detect this .aml.sh file and apply the patches accordingly

Source

Download
 
Last edited:

Zackptg5

Recognized Developer
Sep 18, 2014
4,086
6,680
zackptg5.com
Awesome work! Excited to try it out. Will the usual AML mods such as ainur and v4a be updated or can I go ahead and test out with the current v2.9 zips?
Just finished updating everything. Usual aml mods are now unity mods so you don't even need to worry about that anymore. I'll put a list of supported mods to the op in a min

Edit: OP updated, ainur mods will likely be released tomorrow so you'll need to hold off until then to use them :)
 
Last edited:

Zackptg5

Recognized Developer
Sep 18, 2014
4,086
6,680
zackptg5.com
v1.2 has been dropped. Hopefully this will be the last release for a while.
Changelog: Fixed janky bootmode stuff, Fix uninstall/upgrade when a supported audio mod has just been upgraded in bootmode

So basically any weird things that happened when flashing in magisk manager are now fixed
 

cmo220

Senior Member
Aug 26, 2010
1,288
393
Google Pixel 5
v1.2 has been dropped. Hopefully this will be the last release for a while.
Changelog: Fixed janky bootmode stuff, Fix uninstall/upgrade when a supported audio mod has just been upgraded in bootmode

So basically any weird things that happened when flashing in magisk manager are now fixed

Thanks! Seems to be working right on Pixel 2 XL now.
 
  • Like
Reactions: Zackptg5

preference

Senior Member
May 3, 2017
987
554
OnePlus 5T
OnePlus 7 Pro
Safety net got tripped,RR unofficial 7.1.2, I passed again after uninstalling aml.

Gonna try again but install from twrp...seemed to fix my viper issues, might do the same for aml

---------- Post added at 08:27 AM ---------- Previous post was at 08:18 AM ----------

Safety net got tripped,RR unofficial 7.1.2, I passed again after uninstalling aml.

Gonna try again but install from twrp...seemed to fix my viper issues, might do the same for aml
Yep, twrp install works with no safety net trip. I've never had this many issues using the direct install in magisk. I doubt that it's a module issue, I'm probably messing up the process.
 

Top Liked Posts

  • There are no posts matching your filters.
  • 131
    Audio Modification Library is a library of known audio mods. It'll search your magisk directory for any supported audio mods and incorporate them into itself. It's been completely redone to act as a standalone module so devs no longer need to worry about using a framework for their audio mods and users no longer are limited to just mods using that framework.

    Some history
    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 function 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.

    Troubleshooting:
    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
    Currently Supported Mods:
    • AM3D
    • AudioWizard
    • V4AFX
    • V4AXhifi
    • 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)
    • JamesDSP
    • MaxX Audio 3
    • Audio Compatibility Patch (formerly universal deep_buffer remover)
    • Ainur Sauron
    • SquareSound
    • Sony Xperia Z2 Sound System
    • Ainur Narsil
    • Ainur DTSX
    • Ainur DTS Ultra
    • Dolby Atmos Pie/Q+ (guitardedhero's ports)

    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:
    1. 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>
      For example:
      Code:
      patch_cfgs v4a_fx 41d3c987-e6cf-11e3-a88a-11aba5d5c51b v4a_standard_fx /vendor/lib/soundfx/libv4a_fx.so
      Note that this patch_cfgs function is for audio effects files only. If you're patching audio policy or mixer_paths files, then you'll need to make the patches the old fashioned way yourself.
      So if you're not patch audio effects files, skip on down to the 'Some other variables/options' section :cowboy:

      'patch_cfgs' has several flags that can be used (the format followed by an example for each is listed here as well):
      • -l: patch library
        Code:
        patch_cfgs -l <library_name> <library_path>
        Code:
        patch_cfgs -l v4a_fx /vendor/lib/soundfx/libv4a_fx.so
      • -e: patch effect
        Code:
        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 well
        Code:
        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 well
        Code:
        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 itself
        Code:
        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-696f6e726861
        But it's typically used with 'l'
        Code:
        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)
    2. For patching other files: just add you script logic like it it was in your mod.
      If you're patching mixers for example:
      Code:
      for i in $(find $MODPATH/system -type f -name "*mixer_paths*.xml"); do
        <add_patch_here> for mixer '$i'
      done
      MODPATH is equivalent to aml's directory since it's running the aml.sh script
    3. Then when AML is installed, it'll detect this .aml.sh file and apply the patches accordingly

    Source

    Download
    29
    AML 3.0 is finally HERE!!!

    I've had several different beta channels over the past couple months including many scrapped ideas. The big one was using diff3 but there was no good way to automate conflict merging and so that was scrapped.
    Instead I rewrote 2.5 to be much learner, more efficient, and easier to make an aml.sh script for if you need to.
    Note that the logic for aml.sh files has been changed - it's much easier now - as you can see by the bottom section in the OP

    If you were on a previous beta, completely uninstall that beta first (I used different directories in that one). If you fail to do this, you'll have to reinstall all of your audio mods

    Changelog:
    * Complete overhaul - most everything happens in the boot script now, no need for redunduncies
    * Added Guitardedhero's Dolby Atmos Pie/Q
    * Added Ainur DTS
    * Removed IceWizard
    20
    Updated AML to v1.8.3!
    It came to my attention that there may be the situation in which a user may disable one audio mod rather than uninstall it. In this case, AML would do nothing and so all of the patches/props would still be present for that mod. So with this update, I fixed that.
    Changelog: Have AML remove patches/props for disabled mods and have it not patch disabled mods in the first place

    So now you can disable/enable audio mods and aml will compensate for that
    18
    So a quick update on the progress for AML v3.0

    As you may already know, it's completely different from aml v2.x in that it uses diffutils to compare files and some hacky scripting to merge conflicts. The problem here is that conflict merging is a manual process and so there's no way for me to script it to be truly automated. Due to this, I'm not going ahead with the v3 beta that uses the diffutils. I took down the beta builds I posted here to eliminate confusion

    Instead, I'm working on updating and revamping/redoing v2.x so it'll become the v3 once it's ready.

    What's changed?
    The mod itself has been completely rewritten - slimmer, more efficient, more idiot proofed.
    The big change for any audio module devs is that the aml.sh logic has changed slightly - it actually makes things much easier now:
    • The extra variables (NAME, LIBDIR, RUNONCE, COUNT) have been removed. There's no need for them anymore and they made things way more confusing then they needed to be.
      The aml.sh script only runs once which is why the above is no longer needed. If you're patching aml files, call them like you would any other - $MODPATH/system/whatever
      This isn't really a change - it behaved the same way before minus how many times the script is run
    • The syntax for patch_cfgs has changed to be more streamlined. the <library_path> actually should point to your library now:
      i.e. /vendor/lib/soundfx/whatever.so
      Note that lack of $MODPATH or any magisk paths - just use what the path would show up as if you were patching an audio_effect file

    Once this becomes stable - I'll update the OP and such with better instructions but as you can see, the changes you would need to make are minimal and make life easier
    18
    Updated AML to new magisk template! Note that it's compatible with magisk 18+ now (19 fixes issues with most problem devices anyways)
Our Apps
Get our official app!
The best way to access XDA on your phone
Nav Gestures
Add swipe gestures to any Android
One Handed Mode
Eases uses one hand with your phone