395

[MOD] Audio Modification Library v4.0

 2 years ago
source link: https://forum.xda-developers.com/t/mod-audio-modification-library-v4-0.3745466/page-46#post-86288209
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

Top Liked Posts

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:
  • 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:
Source

Download
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
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
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
Updated AML to new magisk template! Note that it's compatible with magisk 18+ now (19 fixes issues with most problem devices anyways)

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK