[HOWTO]More smooth scroll & volume step increase for MOST android phones[Poweramp OK]

Search This thread

AndroidON

Senior Member
May 10, 2011
209
533
Cheongju-si
[HOWTO]More smooth scroll & volume step increase for MOST android phones[Poweramp OK]

※Do this when you completely understand this.
This is not for people who are noob to phone and computer things.



This is a framework.jar mod which will affect on overall scrolling and volume steps.

I've searched through several references and found some modification.

By following steps below, you will modify your rom's framework.jar.

And it will make your phone's volume control more precise and scroll to be more smooth.

Some phones may have different structure in framework.jar so I'm not sure.

(I've tested this on HTC desire and Motorola Atrix. I'm an Atrix user.)



Ok, so here's everything you need before start.

1. framework.jar of your phone. (Deodexed ROM needed)

2. Java software Development Kit
http://www.oracle.com/technetwork/java/javase/downloads/jdk-7u2-download-1377129.html

3. smali/baksmali tool (Thanks to the Korean guy, 'vorcot')
http://api2.ge.tt/0/9LvgHdB/0/blob/download


4. Text editor - Window basic text editor can be used..but I recommend Notepad++
http://notepad-plus-plus.org/

5. Program which can extract .jar file. (I prefer 7zip)

6. File manager which can access to phone's internal system.
(Like root explorer)

7. Your rom's original zip under SDcard for in case of bootloop.




A. Basic steps.

1. Unzip the smali/baksmali tool to certain folder and put the framework.jar in same folder.

2. Run baksmali manager.bat.

3. Select framework.jar by pressing 4 -> 2 in main menu.

4. Press 1 to Baksmali the framework.jar.

5. Wait.

6. Make it sure that new 'framework' folder is created and files inside it. (Don't close the baksmali manager window yet!)




B. Modification Steps


Volume steps mod
- Since I saw some people are complaining about android's volume control is jumping to large amount, I made some mod.

This will adjust your phone volume steps.

screen201112201423ma.png


Sorry for not showing you by English, but you can recognize the media volume counts increased from 15 to 30.


Here's what you have to modify:

1. Open the framework/android/media/AudioService.smali with text editor.

2. Press Ctrl + F to open the search window and serch for 'max_'

3. Continue search until you find the line below.
111C6F4B4EF1C16B1C50D2


4. You can see the 'array_1ba' in screenshot. This may vary for roms. (But usually only '1ba' changes.)
This will lead you to data of max volume.
Search for 'array_1ba' again.

5. You will see like this:
121C6F4B4EF1C16B1D89F7


This data's meaning is same with this. (From CM7 source)
131C6F4B4EF1C16B1E5F2A


6. So if you want modify your music or movie volume, you have to modify 4th line's 'f'.
(This 'f' means 15 by hexadecimal number)
If you use bluetooth, modify 7th line too.
I changed 'f' to '1e', which means 30 in hexadecimal number.

7. Press the text editor's save button if you finished.



Smooth scroll mod


Add - This tweak will be included in CM7 officially. Editing smali manually will not needed.
So you can find the option in performance setting. Thanks cyanogenmod team!
(But other stock based roms still can do this like 'Sense','Blur','Touchwiz',etc)


- Some android applications have some lag when they scroll.

I found in logcat that garbage collector is working to much when I do some scroll in application.

I googled about it and found the 'scrollingcache' function inside android making problem.

Some application developers recommend disable 'scrollingcache' in app's internal config.

But not all applications have disabled scrollingcache.

So the mod I'll do will disable the scrollingcache throughout the Android OS.

All apps will have no problem with scrollingcache.

I've had scrolling improvements with facebook,playerpro,poweramp,gallery apps , etc.

It is simillar with volume step mod but different value to change.


Here's what you have to modify:

1. Open the framework/android/widget/AbsListView.smali with text editor.

2. Search through 'ScrollingCache' and change it like below screenshot.
191AE04E4EF7F62A32BD44


-----------------------------------------------------------------------------------------------

201AE04E4EF7F62A336233


-------------------------------------------------------------------------------------------------

111AE04E4EF7F62A3436AC


3. Press the text editor's save button if you finished.



C. Finishing steps.


1. Come back to baksmali manager window.

2. Press 2 to smali.

3. Wait. (It will create classes.dex file after finish)

4. Open the framework.jar file with 7zip.

5. Overwrite the classes.dex file inside the framework.jar.
(You can just drag&drop the classes.dex file to 7zip window.)



D. Installing steps.


1. Put modified framework.jar to your phone's sdcard.

2. Open the phone's file manager which have root access and copy the modified framework.jar to /system.

3. Set permission to rw-r--r-- or like this:
screen201112201620.png


4. Move it to /system/framework. (Select yes for overwrite.)

5. Reboot.




I've used a lot of time for searching this.

You can use this for your own rom but please tell me before you use it.

And any bug reports or impressions will be appriciated.

Enjoy :)


EDIT - Some people are complaining about volume mod that it is not working with poweramp.

You can use it by changing your setting.

Power Amp settings - Audio Engine - Advanced Tweaks - Uncheck 'Direct Volume Control'

This will solve the problem.

This info is by 'wd2347' from Korean Atrix forum.
 
Last edited:

le_manhpro

Senior Member
Aug 25, 2011
298
93
Buôn Mê Thuột
I have tried installing on my xperia arc s, steps by steps, and line of arc is 164 (.line165)
When I rebooted the machine and adjust volume from only min-> max, or max-> min:eek:, and no custom sorry my english is not good
 

Notorious544d

Senior Member
Aug 18, 2011
2,104
2,370
London
Thanks A LOT!! VERY clear instructions, can't thank you enough. You must have put in a lot of time finding these stuff, so hats up from me. :)
 

Orilin

Senior Member
Mar 22, 2011
234
57
Napoli
Thank you!! It works on Samsung Galaxy 3 (Apollo)! The first boot is been very long, like a bootloop, so I reboot two time after about 10 minutes of bootanimation, then the phone boot normally. It work like a charm!
 

Looki75

Senior Member
Apr 1, 2010
1,708
1,450
I implemented the mod for the scolling improvement.

Thank you so much! It is working perfect!
The entire system is now scrolling fast and reactive+++, including home app!

:):):)
 

Peaster111

Senior Member
Feb 9, 2009
720
359
Ft. Worth, TX
about changing f with 1e, does it mean to change 0xft with 0x1et or 0x1e?

It needs to be 0x1et. The compile will fail if you use 0x1e. Without a "t" its an invalid array.

---------- Post added at 04:31 PM ---------- Previous post was at 04:19 PM ----------


...Do this when you completely understand this.
This is not for people who are noob to phone and computer things.

The scrolling mod is super... everything seems to scroll very smooth now.. no stuttering.

The audio mod didn't work correctly on the AT&T SGSII (SGH-I777) though. It stepped through volume increments of 0-30 (instead of 0-15) as your mod depicts, but the volume level max'd out a 15 and reset to "0" at 16. My AudioService.smali didn't have 'array_1ba'. Only an 'array_12'.

I'm happy the scrolling worked well though. Thanks for the mod... nice work!
 
Last edited:

AndroidON

Senior Member
May 10, 2011
209
533
Cheongju-si
It needs to be 0x1et. The compile will fail if you use 0x1e. Without a "t" its an invalid array.

---------- Post added at 04:31 PM ---------- Previous post was at 04:19 PM ----------




The scrolling mod is super... everything seems to scroll very smooth now.. no stuttering.

The audio mod didn't work correctly on the AT&T SGSII (SGH-I777) though. It stepped through volume increments of 0-30 (instead of 0-15) as your mod depicts, but the volume level max'd out a 15 and reset to "0" at 16. My AudioService.smali didn't have 'array_1ba'. Only an 'array_12'.

I'm happy the scrolling worked well though. Thanks for the mod... nice work!


I've heard it from who use samsung galaxy tab p1000 too.

Maybe samsung devices have different method to get max volume.

Voodoo can affect max volume....I think.
 

Peaster111

Senior Member
Feb 9, 2009
720
359
Ft. Worth, TX
I've heard it from who use samsung galaxy tab p1000 too.

Maybe samsung devices have different method to get max volume.

Voodoo can affect max volume....I think.

I have a admit I wasn't surprised. Samsung has has tweaked a lot of stuff. For example... The music player is hard coded to "15".

Thanks for the scrolling mod! It is clear you spent a lot of time and research on it.
 

Scratch0805

Senior Member
Jun 18, 2011
2,133
1,279
Sheffield
Wow..... I wasn't expecting much from the smoother scrolling and I've so far only tested on the xda app but I must say I'm impressed with how I can fling it straight to the bottom of the page without it lagging which I couldn't do on my crappy htc wildfire before. :)

Sent from my HTC Wildfire using xda premium
 

Peaster111

Senior Member
Feb 9, 2009
720
359
Ft. Worth, TX
You notice a difference? Realistic?

Yes, but I'm not 100% sure. Scrolling overall seems smoother... no stuttering in apps that previously did. I moded gtg's v2.2.1 unnamed framework.jar with the scroll mod only and posted it in his ROM thread (post 3868). I'm hoping to get some feedback on it. Not much so far. I may have to put it out on its own thread and see what happens. Maybe you can try the mod out in your ROM?
 

Top Liked Posts

  • There are no posts matching your filters.
  • 322
    [HOWTO]More smooth scroll & volume step increase for MOST android phones[Poweramp OK]

    ※Do this when you completely understand this.
    This is not for people who are noob to phone and computer things.



    This is a framework.jar mod which will affect on overall scrolling and volume steps.

    I've searched through several references and found some modification.

    By following steps below, you will modify your rom's framework.jar.

    And it will make your phone's volume control more precise and scroll to be more smooth.

    Some phones may have different structure in framework.jar so I'm not sure.

    (I've tested this on HTC desire and Motorola Atrix. I'm an Atrix user.)



    Ok, so here's everything you need before start.

    1. framework.jar of your phone. (Deodexed ROM needed)

    2. Java software Development Kit
    http://www.oracle.com/technetwork/java/javase/downloads/jdk-7u2-download-1377129.html

    3. smali/baksmali tool (Thanks to the Korean guy, 'vorcot')
    http://api2.ge.tt/0/9LvgHdB/0/blob/download


    4. Text editor - Window basic text editor can be used..but I recommend Notepad++
    http://notepad-plus-plus.org/

    5. Program which can extract .jar file. (I prefer 7zip)

    6. File manager which can access to phone's internal system.
    (Like root explorer)

    7. Your rom's original zip under SDcard for in case of bootloop.




    A. Basic steps.

    1. Unzip the smali/baksmali tool to certain folder and put the framework.jar in same folder.

    2. Run baksmali manager.bat.

    3. Select framework.jar by pressing 4 -> 2 in main menu.

    4. Press 1 to Baksmali the framework.jar.

    5. Wait.

    6. Make it sure that new 'framework' folder is created and files inside it. (Don't close the baksmali manager window yet!)




    B. Modification Steps


    Volume steps mod
    - Since I saw some people are complaining about android's volume control is jumping to large amount, I made some mod.

    This will adjust your phone volume steps.

    screen201112201423ma.png


    Sorry for not showing you by English, but you can recognize the media volume counts increased from 15 to 30.


    Here's what you have to modify:

    1. Open the framework/android/media/AudioService.smali with text editor.

    2. Press Ctrl + F to open the search window and serch for 'max_'

    3. Continue search until you find the line below.
    111C6F4B4EF1C16B1C50D2


    4. You can see the 'array_1ba' in screenshot. This may vary for roms. (But usually only '1ba' changes.)
    This will lead you to data of max volume.
    Search for 'array_1ba' again.

    5. You will see like this:
    121C6F4B4EF1C16B1D89F7


    This data's meaning is same with this. (From CM7 source)
    131C6F4B4EF1C16B1E5F2A


    6. So if you want modify your music or movie volume, you have to modify 4th line's 'f'.
    (This 'f' means 15 by hexadecimal number)
    If you use bluetooth, modify 7th line too.
    I changed 'f' to '1e', which means 30 in hexadecimal number.

    7. Press the text editor's save button if you finished.



    Smooth scroll mod


    Add - This tweak will be included in CM7 officially. Editing smali manually will not needed.
    So you can find the option in performance setting. Thanks cyanogenmod team!
    (But other stock based roms still can do this like 'Sense','Blur','Touchwiz',etc)


    - Some android applications have some lag when they scroll.

    I found in logcat that garbage collector is working to much when I do some scroll in application.

    I googled about it and found the 'scrollingcache' function inside android making problem.

    Some application developers recommend disable 'scrollingcache' in app's internal config.

    But not all applications have disabled scrollingcache.

    So the mod I'll do will disable the scrollingcache throughout the Android OS.

    All apps will have no problem with scrollingcache.

    I've had scrolling improvements with facebook,playerpro,poweramp,gallery apps , etc.

    It is simillar with volume step mod but different value to change.


    Here's what you have to modify:

    1. Open the framework/android/widget/AbsListView.smali with text editor.

    2. Search through 'ScrollingCache' and change it like below screenshot.
    191AE04E4EF7F62A32BD44


    -----------------------------------------------------------------------------------------------

    201AE04E4EF7F62A336233


    -------------------------------------------------------------------------------------------------

    111AE04E4EF7F62A3436AC


    3. Press the text editor's save button if you finished.



    C. Finishing steps.


    1. Come back to baksmali manager window.

    2. Press 2 to smali.

    3. Wait. (It will create classes.dex file after finish)

    4. Open the framework.jar file with 7zip.

    5. Overwrite the classes.dex file inside the framework.jar.
    (You can just drag&drop the classes.dex file to 7zip window.)



    D. Installing steps.


    1. Put modified framework.jar to your phone's sdcard.

    2. Open the phone's file manager which have root access and copy the modified framework.jar to /system.

    3. Set permission to rw-r--r-- or like this:
    screen201112201620.png


    4. Move it to /system/framework. (Select yes for overwrite.)

    5. Reboot.




    I've used a lot of time for searching this.

    You can use this for your own rom but please tell me before you use it.

    And any bug reports or impressions will be appriciated.

    Enjoy :)


    EDIT - Some people are complaining about volume mod that it is not working with poweramp.

    You can use it by changing your setting.

    Power Amp settings - Audio Engine - Advanced Tweaks - Uncheck 'Direct Volume Control'

    This will solve the problem.

    This info is by 'wd2347' from Korean Atrix forum.
    7
    3. smali/baksmali tool (Thanks to the Korean guy, 'vorcot')
    http://api2.ge.tt/0/9LvgHdB/0/blob/download
    Download link don't work can some one upload it ?

    https://rapidshare.com/files/3133579762/baskmali.rar
    4
    If you're looking for an actual USABLE smali, here's a link:

    http://xdaforums.com/showthread.php?t=2311766

    Pretty lame that there's all these broken links in this thread, and NO clarification that the official site does not have a .bat file anywhere in the downloads.
    3
    I have tried installing on my xperia arc s, steps by steps, and line of arc is 164 (.line165)
    When I rebooted the machine and adjust volume from only min-> max, or max-> min:eek:, and no custom sorry my english is not good

    Did you changed 'f' to '1e' ?

    I think you have changed it to '1' instead of '1e'.
    3
    Why not do it in source?

    http://goo.gl/kPZJC

    That's how I did this mod from source, just look at the AbListView.java

    Works great, thanks for pointing this mod out for everyone in the Android community

    Sent from my PG06100 using Tapatalk