├── .github └── FUNDING.yml ├── LICENSE ├── META-INF └── com │ └── google │ └── android │ ├── update-binary │ └── updater-script ├── README.md ├── acdb.conf ├── action.sh ├── aml.sh ├── arm64-v8a └── libmagiskpolicy.so ├── armeabi-v7a └── libmagiskpolicy.so ├── cleaner.sh ├── copy.sh ├── customize.sh ├── function.sh ├── module.prop ├── package.txt ├── post-fs-data.sh ├── sepolicy.rule ├── service.sh ├── system.prop ├── system ├── etc │ ├── dlb-default.xml │ └── sysconfig │ │ └── config-com.atmos.xml ├── priv-app │ └── Atmos │ │ └── Atmos.apk └── vendor │ └── lib │ ├── libstdcda.so │ └── soundfx │ └── libdlbatmos.so ├── uninstall.sh ├── x86 └── libmagiskpolicy.so └── x86_64 └── libmagiskpolicy.so /.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | # These are supported funding model platforms 2 | 3 | github: reiryuki # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2] 4 | patreon: # Replace with a single Patreon username 5 | open_collective: # Replace with a single Open Collective username 6 | ko_fi: reiryuki # Replace with a single Ko-fi username 7 | tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel 8 | community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry 9 | liberapay: reiryuki # Replace with a single Liberapay username 10 | issuehunt: # Replace with a single IssueHunt username 11 | otechie: # Replace with a single Otechie username 12 | lfx_crowdfunding: # Replace with a single LFX Crowdfunding project-name e.g., cloud-foundry 13 | custom: https://www.paypal.me/reiryuki # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2'] 14 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2021 reiryuki 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /META-INF/com/google/android/update-binary: -------------------------------------------------------------------------------- 1 | #!/sbin/sh 2 | 3 | ################# 4 | # Initialization 5 | ################# 6 | 7 | umask 022 8 | 9 | # echo before loading util_functions 10 | ui_print() { echo "$1"; } 11 | 12 | require_new_magisk() { 13 | ui_print "*******************************" 14 | ui_print " Please install Magisk v20.4+! " 15 | ui_print "*******************************" 16 | exit 1 17 | } 18 | 19 | ######################### 20 | # Load util_functions.sh 21 | ######################### 22 | 23 | OUTFD=$2 24 | ZIPFILE=$3 25 | 26 | mount /data 2>/dev/null 27 | 28 | [ -f /data/adb/magisk/util_functions.sh ] || require_new_magisk 29 | . /data/adb/magisk/util_functions.sh 30 | [ $MAGISK_VER_CODE -lt 20400 ] && require_new_magisk 31 | 32 | install_module 33 | exit 0 34 | -------------------------------------------------------------------------------- /META-INF/com/google/android/updater-script: -------------------------------------------------------------------------------- 1 | #MAGISK 2 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Dolby Atmos Magic Revision Magisk Module 2 | 3 | ## DISCLAIMER 4 | - Dolby apps and blobs are owned by Dolby™. 5 | - The MIT license specified here is for the Magisk Module only, not for Dolby apps and blobs. 6 | 7 | ## Descriptions 8 | - Dolby Surround equalizer sound effect ported and integrated as a Magisk Module for all supported and rooted devices with Magisk 9 | - Global type sound effect 10 | 11 | ## Sources 12 | - Dolby Magic MD2 Magisk Module by Little Monk 13 | - https://apkmirror.com com.dolby DAX1-1.9.3_r1 by HTC Corporation 14 | - libmagiskpolicy.so: Kitsune Mask R6687BB53 15 | 16 | ## Screenshots 17 | - https://t.me/androidryukimodsdiscussions/78576 18 | 19 | ## Requirements 20 | - armeabi-v7a or arm64-v8a architecture 21 | - 32 bit audio service (this also can be found in 64 bit ROM with 32 bit support, not only 32 bit ROM) 22 | - Android 4.2 (SDK 17) and up 23 | - Magisk or KernelSU installed 24 | 25 | ## Installation Guide & Download Link 26 | - Install this module https://www.pling.com/p/1610004/ via Magisk app or KernelSU app or Recovery if Magisk installed 27 | - Install AML Magisk Module https://t.me/ryukinotes/34 only if using any other else audio mod module 28 | - If you are using KernelSU, you need to disable Unmount Modules by Default in KernelSU app settings 29 | - Reboot 30 | - If you are using KernelSU, you need to allow superuser list manually all package name listed in package.txt (and your home launcher app also) (enable show system apps) and reboot afterwards 31 | - If you are using SUList, you need to allow list manually your home launcher app (enable show system apps) and reboot afterwards 32 | - If you have sensors issue (fingerprint, proximity, gyroscope, etc), then READ Optionals bellow! 33 | 34 | ## Optionals 35 | - https://t.me/ryukinotes/8 36 | - Global: https://t.me/ryukinotes/35 37 | - Stream: https://t.me/ryukinotes/52 38 | 39 | ## Troubleshootings 40 | - https://t.me/ryukinotes/11 41 | - Global: https://t.me/ryukinotes/34 42 | 43 | ## Support & Bug Report 44 | - https://t.me/ryukinotes/54 45 | - If you don't do above, issues will be closed immediately 46 | 47 | ## Credits and Contributors 48 | - @HuskyDG 49 | - https://t.me/viperatmos 50 | - https://t.me/androidryukimodsdiscussions 51 | - You can contribute ideas about this Magisk Module here: https://t.me/androidappsportdevelopment 52 | 53 | ## Sponsors 54 | - https://t.me/ryukinotes/25 55 | 56 | 57 | -------------------------------------------------------------------------------- /acdb.conf: -------------------------------------------------------------------------------- 1 | 2 | # Audio Configuration Database 3 | # gh 4 | 5 | 6 | # acdb.conf is a module configuration file sourced by the ACDB module to add or remove the configuration of libraries and effects included in this module - determined by the status of a Magisk module being installed, disabled, or enabled. 7 | 8 | 9 | # Simply insert the appropriate value for the required parameters below for consistent results: 10 | 11 | 12 | # Required: 13 | 14 | libraryid=dlbatmos 15 | libraryname=libdlbatmos.so 16 | 17 | effectid=dlbatmos 18 | effectuuid=9d4921da-8225-4f29-aefa-39537a041337 19 | 20 | 21 | # Optional: 22 | 23 | musicstream= 24 | 25 | -------------------------------------------------------------------------------- /action.sh: -------------------------------------------------------------------------------- 1 | MODPATH=${0%/*} 2 | 3 | # info 4 | echo "- Apps caches from this module will be re-cleaned" 5 | echo " at the next boot." 6 | echo " " 7 | 8 | # rename 9 | FILE=$MODPATH/cleaner.sh 10 | if [ -f $FILE.txt ]; then 11 | mv -f $FILE.txt $FILE 12 | fi 13 | 14 | 15 | -------------------------------------------------------------------------------- /aml.sh: -------------------------------------------------------------------------------- 1 | [ ! "$MODPATH" ] && MODPATH=${0%/*} 2 | [ ! "$API" ] && API=`getprop ro.build.version.sdk` 3 | 4 | # destination 5 | if [ ! "$libdir" ]; then 6 | if [ "$API" -ge 26 ]; then 7 | libdir=/vendor 8 | else 9 | libdir=/system 10 | fi 11 | fi 12 | MODAECS=`find $MODPATH -type f -name *audio*effects*.conf` 13 | MODAEXS=`find $MODPATH -type f -name *audio*effects*.xml` 14 | MODAPS=`find $MODPATH -type f -name *policy*.conf -o -name *policy*.xml` 15 | 16 | # function 17 | archdir() { 18 | if [ -f $libdir/lib/soundfx/$LIB ]\ 19 | || [ -f $MODPATH/system$libdir/lib/soundfx/$LIB ]\ 20 | || [ -f $MODPATH$libdir/lib/soundfx/$LIB ]; then 21 | ARCHDIR=/lib 22 | elif [ -f $libdir/lib64/soundfx/$LIB ]\ 23 | || [ -f $MODPATH/system$libdir/lib64/soundfx/$LIB ]\ 24 | || [ -f $MODPATH$libdir/lib64/soundfx/$LIB ]; then 25 | ARCHDIR=/lib64 26 | else 27 | unset ARCHDIR 28 | fi 29 | } 30 | remove_conf() { 31 | for RMV in $RMVS; do 32 | sed -i "s|$RMV|removed|g" $MODAEC 33 | done 34 | sed -i 's|path /vendor/lib/soundfx/removed||g' $MODAEC 35 | sed -i 's|path /system/lib/soundfx/removed||g' $MODAEC 36 | sed -i 's|path /vendor/lib/removed||g' $MODAEC 37 | sed -i 's|path /system/lib/removed||g' $MODAEC 38 | sed -i 's|path /vendor/lib64/soundfx/removed||g' $MODAEC 39 | sed -i 's|path /system/lib64/soundfx/removed||g' $MODAEC 40 | sed -i 's|path /vendor/lib64/removed||g' $MODAEC 41 | sed -i 's|path /system/lib64/removed||g' $MODAEC 42 | sed -i 's|library removed||g' $MODAEC 43 | sed -i 's|uuid removed||g' $MODAEC 44 | sed -i "/^ removed {/ {;N s/ removed {\n }//}" $MODAEC 45 | sed -i 's|removed { }||g' $MODAEC 46 | sed -i 's|removed {}||g' $MODAEC 47 | } 48 | remove_xml() { 49 | for RMV in $RMVS; do 50 | sed -i "s|\"$RMV\"|\"removed\"|g" $MODAEX 51 | done 52 | sed -i 's|||g' $MODAEX 53 | sed -i 's|||g' $MODAEX 54 | sed -i 's|||g' $MODAEX 55 | sed -i 's|||g' $MODAEX 56 | sed -i 's|||g' $MODAEX 57 | sed -i 's|||g' $MODAEX 58 | sed -i 's|||g' $MODAEX 59 | sed -i 's|||g' $MODAEX 60 | sed -i 's|||g' $MODAEX 61 | sed -i 's|||g' $MODAEX 62 | sed -i 's|||g' $MODAEX 63 | sed -i 's|||g' $MODAEX 64 | sed -i 's|||g' $MODAEX 65 | sed -i 's|||g' $MODAEX 66 | } 67 | 68 | # store 69 | RMVS="ring_helper alarm_helper music_helper voice_helper 70 | notification_helper ma_ring_helper ma_alarm_helper 71 | ma_music_helper ma_voice_helper ma_system_helper 72 | ma_notification_helper sa3d fens lmfv dirac dtsaudio 73 | dlb_music_listener dlb_ring_listener dlb_alarm_listener 74 | dlb_system_listener dlb_notification_listener" 75 | 76 | # setup audio effects conf 77 | for MODAEC in $MODAECS; do 78 | for RMV in $RMVS; do 79 | sed -i "/^ $RMV {/ {;N s/ $RMV {\n }//}" $MODAEC 80 | sed -i "s|$RMV { }||g" $MODAEC 81 | sed -i "s|$RMV {}||g" $MODAEC 82 | done 83 | if ! grep -q '^output_session_processing {' $MODAEC; then 84 | sed -i '$a\ 85 | \ 86 | output_session_processing {\ 87 | music {\ 88 | }\ 89 | ring {\ 90 | }\ 91 | alarm {\ 92 | }\ 93 | system {\ 94 | }\ 95 | voice_call {\ 96 | }\ 97 | notification {\ 98 | }\ 99 | bluetooth_sco {\ 100 | }\ 101 | dtmf {\ 102 | }\ 103 | enforced_audible {\ 104 | }\ 105 | accessibility {\ 106 | }\ 107 | tts {\ 108 | }\ 109 | assistant {\ 110 | }\ 111 | call_assistant {\ 112 | }\ 113 | patch {\ 114 | }\ 115 | rerouting {\ 116 | }\ 117 | }\' $MODAEC 118 | else 119 | if ! grep -q '^ rerouting {' $MODAEC; then 120 | sed -i "/^output_session_processing {/a\ rerouting {\n }" $MODAEC 121 | fi 122 | if ! grep -q '^ patch {' $MODAEC; then 123 | sed -i "/^output_session_processing {/a\ patch {\n }" $MODAEC 124 | fi 125 | if ! grep -q '^ call_assistant {' $MODAEC; then 126 | sed -i "/^output_session_processing {/a\ call_assistant {\n }" $MODAEC 127 | fi 128 | if ! grep -q '^ assistant {' $MODAEC; then 129 | sed -i "/^output_session_processing {/a\ assistant {\n }" $MODAEC 130 | fi 131 | if ! grep -q '^ tts {' $MODAEC; then 132 | sed -i "/^output_session_processing {/a\ tts {\n }" $MODAEC 133 | fi 134 | if ! grep -q '^ accessibility {' $MODAEC; then 135 | sed -i "/^output_session_processing {/a\ accessibility {\n }" $MODAEC 136 | fi 137 | if ! grep -q '^ enforced_audible {' $MODAEC; then 138 | sed -i "/^output_session_processing {/a\ enforced_audible {\n }" $MODAEC 139 | fi 140 | if ! grep -q '^ dtmf {' $MODAEC; then 141 | sed -i "/^output_session_processing {/a\ dtmf {\n }" $MODAEC 142 | fi 143 | if ! grep -q '^ bluetooth_sco {' $MODAEC; then 144 | sed -i "/^output_session_processing {/a\ bluetooth_sco {\n }" $MODAEC 145 | fi 146 | if ! grep -q '^ notification {' $MODAEC; then 147 | sed -i "/^output_session_processing {/a\ notification {\n }" $MODAEC 148 | fi 149 | if ! grep -q '^ voice_call {' $MODAEC; then 150 | sed -i "/^output_session_processing {/a\ voice_call {\n }" $MODAEC 151 | fi 152 | if ! grep -q '^ system {' $MODAEC; then 153 | sed -i "/^output_session_processing {/a\ system {\n }" $MODAEC 154 | fi 155 | if ! grep -q '^ alarm {' $MODAEC; then 156 | sed -i "/^output_session_processing {/a\ alarm {\n }" $MODAEC 157 | fi 158 | if ! grep -q '^ ring {' $MODAEC; then 159 | sed -i "/^output_session_processing {/a\ ring {\n }" $MODAEC 160 | fi 161 | if ! grep -q '^ music {' $MODAEC; then 162 | sed -i "/^output_session_processing {/a\ music {\n }" $MODAEC 163 | fi 164 | fi 165 | done 166 | 167 | # setup audio effects xml 168 | for MODAEX in $MODAEXS; do 169 | for RMV in $RMVS; do 170 | sed -i "s|||g" $MODAEX 171 | sed -i "s|||g" $MODAEX 172 | done 173 | if ! grep -q '' $MODAEX\ 174 | || grep -q ' 43 | 44 | aobf=[43, 129, 215, 301, 431, 603, 775, 947, 1206, 1550, 2067, 2756, 3618, 4651, 5685, 7063, 8958, 11025, 13781, 18777] aobg=[2, 1, 0, 274, 136, 196, 119, 87, 55, 68, 118, 63, 51, 166, 155, 59, -35, -79, -22, 1, 1, 3, 1, 0, 274, 136, 196, 119, 89, 59, 70, 118, 63, 51, 167, 154, 58, -37, -80, -23, 1, 1] arbf=[43, 129, 215, 301, 431, 603, 775, 947, 1206, 1550, 2067, 2756, 3618, 4651, 5685, 7063, 8958, 11025, 13781, 18777] arbh=[-960, -960, -346, -448, -402, -422, -422, -392, -232, -252, -482, -412, -330, -458, -420, -270, -346, -320, -960, -960] arbl=[-960, -960, -538, -640, -594, -614, -614, -584, -424, -444, -674, -604, -522, -650, -612, -462, -538, -512, -960, -960] arbi=[1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1] arod=[0] artp=[15] dssa=[10] 45 | 46 | 47 | aocc=[2] aonb=[20] arnb=[20] dvli=[-320] dvlo=[-320] dvmc=[0] gebf=[43, 129, 215, 301, 431, 603, 775, 947, 1206, 1550, 2067, 2756, 3618, 4651, 5685, 7063, 8958, 11025, 13781, 18777] genb=[20] iebf=[65, 136, 223, 332, 467, 634, 841, 1098, 1416, 1812, 2302, 2909, 3663, 4598, 5756, 7194, 8976, 11186, 13927, 17326] ienb=[20] 48 | 49 | 50 | true 51 | true 52 | true 53 | true 54 | true 55 | true 56 | true 57 | true 58 | true 59 | 60 | -------------------------------------------------------------------------------- /system/etc/sysconfig/config-com.atmos.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /system/priv-app/Atmos/Atmos.apk: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/reiryuki/Dolby-Atmos-MagicRevision-Magisk-Module/8d0abc006b0ed269ee2a459c176a25f82dd01f8a/system/priv-app/Atmos/Atmos.apk -------------------------------------------------------------------------------- /system/vendor/lib/libstdcda.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/reiryuki/Dolby-Atmos-MagicRevision-Magisk-Module/8d0abc006b0ed269ee2a459c176a25f82dd01f8a/system/vendor/lib/libstdcda.so -------------------------------------------------------------------------------- /system/vendor/lib/soundfx/libdlbatmos.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/reiryuki/Dolby-Atmos-MagicRevision-Magisk-Module/8d0abc006b0ed269ee2a459c176a25f82dd01f8a/system/vendor/lib/soundfx/libdlbatmos.so -------------------------------------------------------------------------------- /uninstall.sh: -------------------------------------------------------------------------------- 1 | mount -o rw,remount /data 2 | [ ! "$MODPATH" ] && MODPATH=${0%/*} 3 | [ ! "$MODID" ] && MODID=`basename "$MODPATH"` 4 | UID=`id -u` 5 | [ ! "$UID" ] && UID=0 6 | 7 | # log 8 | exec 2>/data/adb/$MODID\_uninstall.log 9 | set -x 10 | 11 | # run 12 | . $MODPATH/function.sh 13 | 14 | # cleaning 15 | remove_cache 16 | PKGS=`cat $MODPATH/package.txt` 17 | for PKG in $PKGS; do 18 | rm -rf /data/user*/"$UID"/$PKG 19 | done 20 | remove_sepolicy_rule 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | -------------------------------------------------------------------------------- /x86/libmagiskpolicy.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/reiryuki/Dolby-Atmos-MagicRevision-Magisk-Module/8d0abc006b0ed269ee2a459c176a25f82dd01f8a/x86/libmagiskpolicy.so -------------------------------------------------------------------------------- /x86_64/libmagiskpolicy.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/reiryuki/Dolby-Atmos-MagicRevision-Magisk-Module/8d0abc006b0ed269ee2a459c176a25f82dd01f8a/x86_64/libmagiskpolicy.so --------------------------------------------------------------------------------