I don’t know if you have noticed but the default media volume of your Android device is divided in 15 steps (0 to 14). 0 is for mute and 14 is for maximum volume. Now the thing is, I always felt that 11 is too soft for me while 12 is a bit loud. It made me crave for a 12.5 or something on that scale.
Customizing this setting on other platforms is probably not possible. But we are talking about Android here, and the best thing about this OS is the flexibility it offers in terms of tweaking it.
So after bit of a research, I found an amazing article written by Chris Dube which helped me out in converting the 15 steps of media volume to 30 steps. Let’s see how it is done.
Note: You will need a rooted device for the task. We will be manipulating Android system files in the task and you must be very careful while editing the file. Do take a Nandroid backup of your phone first as a precautionary measure. Also, this a geeky tutorial and requires that you know stuff like installing ADB etc. So not for newbie Android users.
Tools you Need to Install on Your Computer.
These are the list of tools that must be installed on your system before you start the tutorial. Please install them if you don’t have them already.
Step 1: Download and install all the above tools on your computer and add the path to ADB files into Windows Path Environment Variables (check the link, you’ll find steps for adding a path to Windows variables). To test if the phone drivers are installed on your computer, connect the phone to your computer (enable USB debugging) and type in the command adb devices. If the Command Prompt returns a device, you can proceed to next step. If not, check ADB files and mobile drivers on your computer.
Step 2: Navigate to Baksmali Manager folder and open Command Prompt using the right-click option. Hold Control and Shift key while clicking the mouse to reveal that option.
Step 3: In the Command Prompt, type in adb pull /system/framework/framework.jar to copy your device framework file to your computer so that you can edit it.
Modifying the Framework File
Step 4: Now run Baksmali Manager using the command baksmali Manager.bat.
Step 5: In Baksmali Manager, Select 4 (Select File)—>2(Framework.jar)—>1(Baksmali) and leave the Command Prompt open. Switch to Baksmali Manager folder, navigate to framework—>android—>media folder and open AudioService.smali in NotePad++.
Step 6: When the file opens up in Notepad++ search for 0xft 0x0t 0x0t 0x0t to find a table of hexadecimal numbers. The first entry of the fourth line in the hexadecimal number of the number of media volume steps and 0xf is the hexadecimal value of 15.
Step 7: All you need to do is replace the f (hexadecimal of 15) with any other hexadecimal number. You can use Window Scientific Calculator for this. However like me, if you too want to make it 30, replace the f with 1e and save the file.
Step 8: After you save the file, open the Baksmali Manager command prompt which you left unattended in step 5 and press 2 to smali the file and create a classes.dex file out of it. After the dex file is created, open the framework.jar with 7-Zip and drag and replace the classes.dex file modified using the Baksmali Manager.
Replacing the Modified File
Step 9: Now exit the Baksmali Manager and type in adb remount to reconnect the phone.
Step 10: After you see a confirmation message, type adb push framework.jar /system/framework/framework.jar to replace the file.
Step 11: After replacing the file, run adb shell and type in chmod 644 framework.jar to change the permission of the file system.
Phew, it’s almost over. You can now reboot your device, play some songs on your phone and feel the difference for yourself.
I admit that the procedure is a bit lengthy just to change the volume steps, but this appears to be the only way to do this. Hopefully, the Android geeks among you will appreciate this and follow the steps without any hiccups.