I got so used to using the volume rocker to wake my DHD and show the lockscreen instead of the power button that i decided to try and add the same functionality to the OneX. The only caveat with this is that sometimes the volume slider shows up when it wakes, but i can live with that
Hopefully, in time, the ROM devs will add this in by default or as an option. Until then it'll require these manual mods...
Don't try the following if you're unsure what you're doing as you could potentially break the ROM if not done correctly. I recommend backing up first in Clockwork Recovery in case things go wrong.
I accept no responsibility for any issues encountered making these changes!
Requirements
Rooted phone
Android-SDK
baksmali/smali from here
Step 1 - Update android.policy.jar
1. Do the following to get the android.policy.jar from your phone and disassemble it
Code:
adb pull /system/framework/android.policy.jar .
baksmali -x android.policy.jar -o classout
2. Open the following file in a text editor
Code:
classout/com/android/internal/policy/impl/KeyguardViewMediator.smali
3. Find the method "isWakeKeyWhenKeyguardShowing(IZ)Z"
4. At the bottom of the method, there's a switch statement. Remove the following 2 lines from it:
Code:
0x18 -> :sswitch_5
0x19 -> :sswitch_5
5. Save the file and close it.
6. Run the following commmand to re-assemble classes.dex
Code:
smali classout -o classes.dex
7. Drag the classes.dex into the android.policy.jar file to update the file in there.
8. Push the updated android.policy.jar back to the phone
Code:
adb push android.policy.jar /sdcard/
adb shell
su
sysrw
cp /sdcard/android.policy.jar /system/framework/
chmod 644 /system/framework/android.policy.jar
Step 2 - Update Generic.kl
1. Pull the file from your phone
Code:
adb pull /system/usr/keylayout/Generic.kl
2. Open it in a text editor and change the lines
Code:
key 114 VOLUME_DOWN
key 115 VOLUME_UP
to
Code:
key 114 VOLUME_DOWN WAKE_DROPPED
key 115 VOLUME_UP WAKE_DROPPED
3. Push the file back to your phone
Code:
adb push Generic.kl /sdcard/
adb shell
su
sysrw
cp /sdcard/Generic.kl /system/usr/keylayout/
chmod 644 /system/usr/keylayout/Generic.kl
(of course, you could also make those changes to the file directly using a root file explorer app and text editor.)
Step 3
Reboot the phone.
Note: The first time it boots after changing android.policy.jar, there'll be an 'Android is upgrading' dialog. This is normal and it won't happen on subsequent reboots.
How if I play music in off screen mode adjusting the volume?
w1nter456 said:
How if I play music in off screen mode adjusting the volume?
Click to expand...
Click to collapse
It'll still work, but the screen will wake too.
thanks much. I need this feature much.
One question, is this change use up volume or down volume or both will work?
Am I correct that this mod will work only on deodexed android.policy.jar ?
mmx6688 said:
thanks much. I need this feature much.
One question, is this change use up volume or down volume or both will work?
Click to expand...
Click to collapse
Yep, it'll work for both.
ckpv5 said:
Am I correct that this mod will work only on deodexed android.policy.jar ?
Click to expand...
Click to collapse
Yep, the above steps are for de-odexed ROMs, but you may still be able to disassemble if you pull the jar and odex and run baksmali on android.policy.odex. If you get errors trying that then pull everything from the /system/framework folder and try it again
Annoyingly, i've just noticed that once the phone goes into a 'deep sleep', the volume buttons don't always wake it. Sometimes they'll work after a double press sometimes it needs to be the power button :-\
Thanks it worked on my device. And I have added your mod to my mod pack for easy enabling and disabling
any kind person can help to make it into a flashable zip?
ck_looi said:
any kind person can help to make it into a flashable zip?
Click to expand...
Click to collapse
+1 10 chars
Would it in theory be possible to use the home button to wake the phone or is that impossible because the buttons don't work when the screen is off?
I have wake on TP on my Desire now.
mgmCube said:
Would it in theory be possible to use the home button to wake the phone or is that impossible because the buttons don't work when the screen is off?
I have wake on TP on my Desire now.
Click to expand...
Click to collapse
Not possible as the buttons don't work when the screen is off.
And when the phone goes to deep sleep mode, volume button to wake it not really works (tried both on odex and deodex ROMs).
Totally eager to try this out.
I'm using the LC ModPack 2.1.0 and this doesn't work
ckpv5 said:
Not possible as the buttons don't work when the screen is off.
And when the phone goes to deep sleep mode, volume button to wake it not really works (tried both on odex and deodex ROMs).
Click to expand...
Click to collapse
Ok so this volume unlock doesn't really work when in deep sleep?
This isn't mentioned in the first post.
So what if I use this volume unlock and disable the power button, then I have a problem after deep sleep?
mgmCube said:
Ok so this volume unlock doesn't really work when in deep sleep?
This isn't mentioned in the first post.
So what if I use this volume unlock and disable the power button, then I have a problem after deep sleep?
Click to expand...
Click to collapse
Yeah... most of the time it doesn't work when in deep spleep. OP mentioned this on post #6 too.
With volume to wake (not unlock, you still need the swipe up to unlock), and disable the power button, you will have problem to wake and unlock when it goes deep sleep. When you have this problem, the only way to wake it is to plug-in a usb cable or charger as it will wake the phone, then you can unlock.
Well then.. I think its better to disable it as it does messes up my volume levels even if it doesnt wake up the device..
Any chance of a full feature here? Coz the phone is expected to go into deep sleep most of the time..
Sent from my HTC One X using XDA
Jumping in here real quick, i dont (unfortunately) have an amazing all powerful OneX but i do have an HD2
Anyhow, im posting in regards to the isWakeKeyWhenKeyguardShowing(I)Z method in the KeyguardViewMediator.smali file found in android.policy.jar. I already have the volume wake keys set via cyanogen mod, my question is this:
How can i ADD keys to this file to prevent the device from waking?
I tried converting the hex values from that file but they dont correspond with any key values (ex, volume down is 115) but 0x18 is 24, decimal value, so im not sure exactly what numbers must be added to correspond to the correct key.
Thanks all for your efforts and time spent reading!
Thank you for the guide. I don't have Generic.kl on my Motorola XT530, so I think I might need to fiddle round with the .kl files to see if I can get this mod working.
I had to modify my process slightly, so I'll explain what I did in case it may be of help to anyone else.
1. To copy android.policy.jar to my PC, I used Android Commander. It's nice and simple. Make sure you make a back up of android.policy.jar before you modify it in case you need/want to restore it.
2. Use Command Prompt and navigate to the folder in which android.policy.jar is located. For example:
Code:
cd C:\Android\temp
3. Disassemble classes.dex using the following command:
Code:
java -jar baksmali-1.3.2.jar -x android.policy.jar -o classout
4. Edit and save KeyguardViewMediator.smali as per the original post.
5. Reassemble classes.dex using the following command:
Code:
java -jar smali-1.3.2.jar classout -o classes.dex
6. Open android.policy.jar with 7-Zip (any archive manager should work) and replace classes.dex with the modified one.
7. Use Android Commander to replace android.policy.jar on phone.
8. Edit Generic.kl as per original post. I don't have Generic.kl on my phone, so I just left-out this step. I figured I could poke around the .kl files later if need be. I haven't done so yet.
9. Reboot.
Note: The filenames for baksmali-1.3.2.jar and smali-1.3.2.jar may be different if you have a different version. Simply adjust the commands above accordingly.
HTC Ones S --Works
Was looking for this on the HOS forums but found this close enough instead. Prob everyone knows this, but I did this same setup on my one s (t-mo-us) version, and it stuck. So thanks for this nice little tweak. Good to know dev's have our backs in everything.
this was much appreciated for my inc2!
we got a new kernel and messed up it working in the tweaks app, so this really saved me, I didn't realize the Generic.kl needed to be updated.
thanks again!
in defy, it's umts_jordan-keypad.kl instead of Generic.kl (doesn't exist).
Related
Hi guys,
Since there seems to be some demand for this kind of thing, I decided to post instructions on a mod I made a while back. This gives you the option of choosing between Samsung's GlassLock (i.e. the default TW lockscreen) or the stock keyguard of Android 2.1.
The method involves de- and re-compiling /system/framework/android.policy.odex, and you should have some basic knowledge of the tools involved (i'm not gonna spell out every step). Before beginning, take a backup of android.policy.jar and android.policy.odex (or preferably the whole framework folder). You should issue the commands in recovery mode.
Required tools: rooted SGS (I've done this only with JM2, and the code *might* need modifying for other roms, though I doubt it), adb, smali/baksmali, dexopt-wrapper, text & hex editor, winrar (or any jar editor).
Here we go:
1. Use adb to pull out /system/framework/android.policy.odex and other framework .odexes (required for de-odexing). Might be wise to backup the whole /system/framework/ directory at this point.
2. Use baksmali to deodex the file (java -jar baksmali.jar -x android.policy.odex -o android.policy). Baksmali will let you know if you are missing any of the framework .odexes.
3. Open LockPatternKeyguardView.smali and find the method getLockScreenMode()Lcom/android/internal/policy/impl/LockPatternKeyguardView$LockScreenMode;
4. Replace the contents of this method with the attached file getLockScreenMode.txt.
5. Save LockPatternKeyguardView.smali.
6. Use smali to compile the files back to classes.dex (java -jar smali.jar android.policy -o classes.dex)
7. Pull /system/framework/android.policy.jar, add the newly created classes.dex to it, and push it back to the device.
8. On your phone, do:
# cd /system/framework
# dexopt-wrapper android.policy.jar patched.odex /system/framework/core.jar:/system/framework/ext.jar:/system/framework/framework.jar:/system/framework/android.policy.jar:/system/framework/services.jar
Ouput should be:
--- BEGIN 'android.policy.jar' (bootstrap=0) ---
--- would reduce privs here
--- waiting for verify+opt, pid=3105
--- END 'android.policy.jar' (success) ---
9. You now have odexed the file into patched.odex. However, the signature of the file is not compatible with the other framework files, so you need to fix it. I think the proper way should be to re-odex all the framework files, but I haven't encountered any issues with just patching the signature.
10. Open the original android.policy.odex in a hex editor, and copy signature bytes from offsets 0x34-0x47 to the new patched.odex, and save it. Optionally, you can also do this on your device by issuing the command:
# dd if=original.android.policy.odex of=patched.odex bs=1 count=20 skip=52 seek=52 conv=notrunc
Where if="..." is the original file, and of="..." is the file you want to patch.
11. Push the patched and hex-edited file to /system/framework/android.policy.odex and restore the original /system/framework/android.policy.jar.
12. Reboot and enjoy your good ol' keyguard
Some notes:
- If you want to revert back to Samsung's lock screen, just create a file called /data/local/enable_glass_lock ("adb touch /data/local/enable_glass_lock").
- By default, the menu button will also unlock the screen. To disable this behavior, you have to modify /res/values-hdpi-v4/bools.xml in /system/framework/framework-res.apk, and change the value of <bool name="config_disableMenuKeyInLockScreen">false</bool> to true. Can also be done by modifying code.
On a side note, the code for Smart Unlock (present in some Samsung phones) seems to be in there... it would be an interesting project to get that working
Great stuff, i've been waiting for someone to find out how to get rid of the glass screeen since first day.
Sadly i'm a real noob so it is useless for me.
Maybe someone can create an apk or a win program out of this.
thank you !
but could you explain it better ?
toca79 said:
Maybe someone can create an apk or a win program out of this.
Click to expand...
Click to collapse
+1 for an automated solution, provided method seems too hard for me.
Excellent post Ateisti! We need more of these advanced mods for SGS.
Ateisti said:
adb, smali/baksmali, dexopt-wrapper,
Click to expand...
Click to collapse
Could you provide links to this?
Or are those sw included in the Android SDK?
I want to do 6-step but I see:
Code:
C:\Users\Konrad>"C:\Program Files (x86)\Java\jre6\bin\java.exe" -jar "C
:\Users\Konrad\Desktop\smali.jar" android.policy -o classes.dex
android.policy\com\android\internal\policy\impl\LockPatternKeyguardView$LockScre
enMode.smali[0,-1] The file must contain a .class directive
What's wrong?
EDIT:
I've changed a wrong smali.
In step 10, how do i copy the signature bytes with my hex editor? I dont understand what offsets 0x34-0x57 is...
10. Open the original android.policy.odex and copy signature bytes from offsets 0x34-0x47 to the new patched.odex, and save it.
Click to expand...
Click to collapse
Can anyone who successfully coped with getting this done following the instructions above please do a video showing us how to do it, I think that might help us a lot... thanks a lot on behalf of us noobs
Stefanauss said:
Could you provide links to this?
Or are those sw included in the Android SDK?
Click to expand...
Click to collapse
ADB is included in the SDK, Smali and Baksmali can be downloaded here and dexopt-wrapper for example here.
qwas00 said:
In step 10, how do i copy the signature bytes with my hex editor? I dont understand what offsets 0x34-0x57 is...
Click to expand...
Click to collapse
It means to seek to the 52nd byte (or 0x34 in hex) of the file, and then copy and replace the following 20 bytes to the second file. But you can also do it on the device by issuing this command (I think busybox is required):
dd if=original.android.policy.odex of=patched.android.policy.odex bs=1 count=20 skip=52 seek=52 conv=notrunc
...where "if=..." is the original file and "of=..." is the file you want to patch.
Ateisti said:
Hi guys,
Since there seems to be some demand for this kind of thing, I decided to post instructions on a mod I made a while back. This gives you the option of choosing between Samsung's GlassLock (i.e. the default TW lockscreen) or the stock keyguard of Android 2.1.
The method involves de- and re-compiling /system/framework/android.policy.odex, and you should have some basic knowledge of the tools involved (i'm not gonna spell out every step). Before beginning, take a backup of android.policy.jar and android.policy.odex (or preferably the whole framework folder). You should issue the commands in recovery mode.
Required tools: rooted SGS (I've done this only with JM2, and the code *might* need modifying for other roms, though I doubt it), adb, smali/baksmali, dexopt-wrapper, text & hex editor, winrar (or any jar editor).
Here we go:
1. Use adb to pull out /system/framework/android.policy.odex and other framework .odexes (required for de-odexing). Might be wise to backup the whole /system/framework/ directory at this point.
2. Use baksmali to deodex the file (java -jar baksmali.jar -x android.policy.odex -o android.policy). Baksmali will let you know if you are missing any of the framework .odexes.
3. Open LockPatternKeyguardView.smali and find the method getLockScreenMode()Lcom/android/internal/policy/impl/LockPatternKeyguardView$LockScreenMode;
4. Replace the contents of this method with the attached file getLockScreenMode.txt.
5. Save LockPatternKeyguardView.smali.
6. Use smali to compile the files back to classes.dex (java -jar smali.jar android.policy -o classes.dex)
7. Pull /system/framework/android.policy.jar, add the newly created classes.dex to it, and push it back to the device.
8. On your phone, do:
# cd /system/framework
# dexopt-wrapper android.policy.jar patched.odex /system/framework/core.jar:/system/framework/ext.jar:/system/framework/framework.jar:/system/framework/android.policy.jar:/system/framework/services.jar
Ouput should be:
--- BEGIN 'android.policy.jar' (bootstrap=0) ---
--- would reduce privs here
--- waiting for verify+opt, pid=3105
--- END 'android.policy.jar' (success) ---
9. You now have odexed the file into patched.odex. However, the signature of the file is not compatible with the other framework files, so you need to fix it. I think the proper way should be to re-odex all the framework files, but I haven't encountered any issues with just patching the signature.
10. Open the original android.policy.odex and copy signature bytes from offsets 0x34-0x47 to the new patched.odex, and save it.
11. Push the patched and hex-edited file to /system/framework/android.policy.odex and restore the original /system/framework/android.policy.jar.
12. Reboot and enjoy your good ol' keyguard
Some notes:
- If you want to revert back to Samsung's lock screen, just create a file called /data/local/enable_glass_lock ("adb touch /data/local/enable_glass_lock").
- By default, the menu button will also unlock the screen. To disable this behavior, you have to modify /res/values-hdpi-v4/bools.xml in /system/framework/framework-res.apk, and change the value of <bool name="config_disableMenuKeyInLockScreen">false</bool> to true. Can also be done by modifying code.
On a side note, the code for Smart Unlock (present in some Samsung phones) seems to be in there... it would be an interesting project to get that working
Click to expand...
Click to collapse
THANX TO ALL YOUR EFFORTS........ can you please attach a screen shot of the lock what you are talking about.. and does it work flawlessly without any sort of a lag.. and is it 100% bugs free?????
Could you also choose any other lockscreen, like WidgetLocker or SimplyLockscreen?
That would be great
Ateisti said:
It means to seek to the 52nd byte (or 0x34 in hex) of the file, and then copy and replace the following 20 bytes to the second file. But you can also do it on the device by issuing this command (I think busybox is required):
dd if=original.android.policy.odex of=patched.android.policy.odex bs=1 count=20 skip=52 seek=52 conv=notrunc
...where "if=..." is the original file and "of=..." is the file you want to patch.
Click to expand...
Click to collapse
Thanks, that worked fine
Thanks! This method worked like a charm. I hated that glass unlock thingy.
However my /system/framework/framework-res.apk doesn't have a value folder, so I can't remove the possibility to unlock with the menu button.
Couldn't find any bools.xml in there at all.
This is replacing the music player controls when the screen is locked, right? It's a nice functionality and would be a pity to loose it.
Otherwise its a great mod and it would be cool if someone can make the One Click LockScreen Changer ;-)
Sent from my GT-I9000 using Tapatalk
thE_29 said:
Could you also choose any other lockscreen, like WidgetLocker or SimplyLockscreen?
That would be great
Click to expand...
Click to collapse
Not as such, but technically it should be possible with some additional coding. I however don't have the time to undertake such a task.
Tharfrin said:
Thanks! This method worked like a charm. I hated that glass unlock thingy.
However my /system/framework/framework-res.apk doesn't have a value folder, so I can't remove the possibility to unlock with the menu button.
Couldn't find any bools.xml in there at all.
Click to expand...
Click to collapse
This might be a ROM version thingy. On my system there are actually two XML files with that same setting, but only one of them works (the one I mentioned in my original post). Just search all your framework-res xml files for "config_disableMenuKeyInLockScreen", and change every instance to true. Should do the trick.
Or if all else fails, just edit the file LockScreen.smali, method "shouldEnableMenuKey()", and make it always return 0 ("return v4" -> "return v6").
mobilx said:
This is replacing the music player controls when the screen is locked, right? It's a nice functionality and would be a pity to loose it.
Otherwise its a great mod and it would be cool if someone can make the One Click LockScreen Changer ;-)
Click to expand...
Click to collapse
That is unfortunately the case. The music controls (as well as the puzzle pieces) are coded into the GlassLock class, so it would required some additional reverse engineering to implement those in the stock keyguard.
4 hours working and it works (jm2).
I'm going to test on the jpc.
EDIT:
I put it on the jpc and it doesn't work.
Did not work with JPC I really want to use the stock lockscreen!
Sent from my GT-I9000 using XDA App
hi guy thanks for your instruction. However I'm using samset's 1.9f which has the ROM deodexed and i found no .odex files but .jar files. Is there a way to workaround this? I'd really love to revert back to stock eclair lockscreen~!
billytcf said:
hi guy thanks for your instruction. However I'm using samset's 1.9f which has the ROM deodexed and i found no .odex files but .jar files. Is there a way to workaround this? I'd really love to revert back to stock eclair lockscreen~!
Click to expand...
Click to collapse
same here no odex files...
Hi,
Here's a patch for stock odexed XXKI3 to remove vibrate icon from status bar. I don't know whether it's a bug or a feature but I hated it and removed according to instructions from this thread
Thanks to tripc1 for instructions.
RAWI.NO_VIBRATE_ICON.MOD.zip
This one is with:
- CRT Effect
- % Circle Battery mod
RAWI.NO_VIBRATE_ICON.MOD_2.zip
If the first doesn't work then try the second file. I removed the icon having already crt and battery mode applied, so SystemUI.apk was different than stock.
PLEASE DO BACKUP PRIOR TO INSTALLING!
As I can't post in Android Development section (I haven't made 10 posts requirement) I'm posting it here.
This Mod is by vintozver
Removing vibrator icon on ODEXED roms. If you have deodexed one - you will not need to odex the apk again, you will need to sign the apk instead.
The method works for ANY android version actually. You SHOULD backup your device prior doing this. You SHOULD think what you do.
Patch may not work for your device. I did this for SGS2 2.3.6 KI4 (stock).
===
We need:
0. jre/jdk
1. adb
2. apktool (for looking for resources if they differ in your version).
3. smali/baksmali tools
4. dexopt-wrapper (on Device)
Process:
1. Download SystemUI.apk and SystemUI.odex on your computer.
2. Download /system/framework to your computer (framework folder for clarity).
3. BOOTCLASSPATH=framework /opt/smali/baksmali -d framework/ -o dx_obj --api-level 9 -x SystemUI.odex
You'll have dx_obj folder filled with dalvik VM source code (dex-source).
4. Apply patch (see below), which strips out unnecessary code and icon updates.
5. /opt/smali/smali dx_obj/
6. Rename out.dex to classes.dex
7. Put classes.dex to SystemUI.apk file
8. copy updated SystemUI.apk to temporary folder on your device like: adb push SystemUI.apk /sdcard/SystemUI.apk
9. adb shell
# cd /sdcard
# dexopt-wrapper SystemUI.apk SystemUI.odex
# cp SystemUI.odex /system/app/SystemUI.odex
# sync
10. reboot the device (you may issue "reboot" command in the shell as well).
Enjoy!
Patch may be different for some roms and some android versions. The best method of searching the code has been explained in http://forum.xda-developers.com/showthread.php?p=18033801 (unpacking apk within apktool and looking for identifiers). PM me for further help.
You haven't packed the apk mate.
Hm, it's not necessary, the change is only in .odex file....
The solution is based not on removing the actual vibrate icon from apk file but on removing lines of code that shows the icon in status bar.
did NOT work ! :s
Ok, I posted the second file. Now it's with SystemUI.apk but also with other tweaks.
The second file works for sure.
Appologise for inconvenience.
Can you tell us what tweaks please? I'd like to know what I'm doing to my device before making any changes.
Tweaks for batt circle mod and crt effects comes from this thread and this.
After that I patched against vibrate icon according to the instructions.
Strange, I'm on KI3 and don't have the issue with the vibrate icon when vibrate is set to always on.
gr8 second file made me lose notification bar ...
Have you installed any other themes/mods that also modifiy SystemUI.apk?
The file I posted works perfect on pure stock xxki3 from samfirmware.com...
I have KI3... dont have the vibrate icon aftet i set it to NEVER in settings->sound->vibration...
is it the same thing we are talking here? why do we needed a modified app to do the same ?
Yes, but the problem occurs when you want to set the option to ALWAYS and you DONT want to see the vibrate icon all the time
You can upload ONLY remove Vibrate MOD without CRT Effect and % Circle Battery mod, cause I don't want change it.
JKay Settings app has a lot of tweaks, including removal of vibro-icon and it works on any rom.
Thanks for trying anyway.
Sent from my GT-I9100 using xda premium
Is this in the Android market? Can't find it.
Sorry, I didn't read carefully. After installing the file from the first link, everything is in ok! Thanks guys.
ikeny said:
Is this in the Android market? Can't find it.
Click to expand...
Click to collapse
You must install the file from the first link by CFW.
There is also a free app "Contact Vibrate". You can set all calls to vibrate even though you don't have it on "Always Vibrate" under general setting.
With the app, you can even customize the vibration pattern for each contact (if you wish to). If not, it will use a master pattern (your choice) for all.
This is good for unrooted users, or those that don't want to mess with the ROM anymore.
It is possible for KI4?
ikeny said:
There is also a free app "Contact Vibrate". You can set all calls to vibrate even though you don't have it on "Always Vibrate" under general setting.
With the app, you can even customize the vibration pattern for each contact (if you wish to). If not, it will use a master pattern (your choice) for all.
This is good for unrooted users, or those that don't want to mess with the ROM anymore.
Click to expand...
Click to collapse
Thx for the tip, works fine and i don't see the vibrate icon anymore.
Remove vibration/silence icon on any android 2.3.x
Removing vibrator icon on ODEXED roms. If you have deodexed one - you will not need to odex the apk again, you will need to sign the apk instead.
The method works for ANY android version actually. You SHOULD backup your device prior doing this. You SHOULD think what you do.
Patch may not work for your device. I did this for SGS2 2.3.6 KI4 (stock).
===
We need:
0. jre/jdk
1. adb
2. apktool (for looking for resources if they differ in your version).
3. smali/baksmali tools
4. dexopt-wrapper (on Device)
Process:
1. Download SystemUI.apk and SystemUI.odex on your computer.
2. Download /system/framework to your computer (framework folder for clarity).
3. BOOTCLASSPATH=framework /opt/smali/baksmali -d framework/ -o dx_obj --api-level 9 -x SystemUI.odex
You'll have dx_obj folder filled with dalvik VM source code (dex-source).
4. Apply patch (see below), which strips out unnecessary code and icon updates.
5. /opt/smali/smali dx_obj/
6. Rename out.dex to classes.dex
7. Put classes.dex to SystemUI.apk file
8. copy updated SystemUI.apk to temporary folder on your device like: adb push SystemUI.apk /sdcard/SystemUI.apk
9. adb shell
# cd /sdcard
# dexopt-wrapper SystemUI.apk SystemUI.odex
# cp SystemUI.odex /system/app/SystemUI.odex
# sync
10. reboot the device (you may issue "reboot" command in the shell as well).
Enjoy!
Patch may be different for some roms and some android versions. The best method of searching the code has been explained in http://forum.xda-developers.com/showthread.php?p=18033801 (unpacking apk within apktool and looking for identifiers). PM me for further help.
This fix allows you to use the one button or middle button on your headsets. You will be able to pause/start music answer/hangup phone for Samsung Galaxy S II and other phones using Gingerbread that the headset buttons may no longer work on.
I spent way too much time on this, so I figured I would share a how to for all of you.
You WILL need to Root your phone. I’ve found what I think is the best/easiest way of doing this. This Root process WILL NOT flash or change your OS.
Step 1:
Root your phone with DooMLoRD fantastic ‘Easy Root Toolkit’ link http://forum.xda-developers.com/showthread.php?t=1321582 you can read the 27 plus page link like I did or just trust me it works great. I rebooted the phone before running the install I used his V2 on the first page. Download his DooMLoRD_v2_ROOT-zergRush-busybox-su.zip <NEW> from the link on the first page. Again his process DOES NOT flash your phone as other rooting processes with ODIN will. He also has an unRoot.
Step 2:
Install one of the file managers I use Linda File Manager and/or File Expert from the market.
Install a texted editor I use Text Edit from the market.
Install a terminal emulator I use Android Terminal Emulator from the market.
Install Jays Headset Control. (This app is no longer available from the market for the SGS2. Compatibility issues stemming from the improper coding the sec_jack.kl file. The developer of Jays Headset is kind enough to post a link to app, see link at the bottom of this post.)
Step 3:
Open the terminal emulator
(To bring up the soft keyboard hit the menu button then the toggle soft keyboard “the menu button is at the bottom left of the SGS2” ) now type and enter the following commands:
cd /sdcard
mkdir fixbutton
cp /system/usr/keylayout/sec_jack.kl /sdcard/fixbutton/sec_jack.kl
cd /sdcard/fixbutton
ls
You should see the sec_jack.kl file.
To make a backup of the original type and enter the following command:
cp /system/usr/keylayout/sec_jack.kl /sdcard/fixbutton/sec_jack.kl.bkp
(if you have this problem where the i to turns into an I in the mkdir command the work around is type mkdi then hit the menu key and the toggle soft keyboard twice then enter the r)
Hit the home button
Step 4:
Open Linda File Manager
Hit SD Card
Scroll to fixbutton directory hit it
Hit the sec_jack.kl
Select Text Edit
It will look like this:
key 163 MEDIA_NEXT WAKE
key 165 MEDIA_PREVIOUS WAKE
key 226 SEND_END WAKE
change SEND_END to HEADSETHOOK
And add
key 164 MEDIA_PLAY_PAUSE WAKE
hit menu key then save.
It should look like this
key 163 MEDIA_NEXT WAKE
key 164 MEDIA_PLAY_PAUSE WAKE
key 165 MEDIA_PREVIOUS WAKE
key 226 HEADSETHOOK WAKE
Step5:
Find the mount point of /system . On my SGS2 its /dev/block/mmcblk0p9
Open Terminal Emulator and type and enter the following command (this is just a display command):
mount
The /system mount point is in the middle. If you click on the attachment below you will see a display from my SGS2, in the middle of the display on line 14 is the mount point
/dev/block/mmcblk0p9 /system ext4 ro,realtime,battier=1,data=ordered 0 0
The mount point is the first part of that line, on my SGS2 its:
/dev/block/mmcblk0p9
Other phones will be different, so write it down.
Step 6:
Remount /system in read write mode and copy the modified kl file back. (Click Allow for the su command when it pops up). If your mount point is different then /dev/block/mmcblk0p9 replace your mount point in the mount command below.
Open the terminal emulator and enter the following commands:
su
mount -o remount,rw /dev/block/mmcblk0p9 /system
cp /sdcard/fixbutton/sec_jack.kl /system/usr/keylayout/sec_jack.kl
hit the back button power off and power on
Step 7:
Open Jays Headset Controller
Choose Advanced
Hit Button Actions
Change Phone options right side of Click and Hold to Answer and End call
Change Headset options left side of Click and Hold to whatever you want (I like Play/Pause)
Enjoy, Click and Hold button for a second or 2 this will
Startup Music Player / Pause / Start / Music / Answer / Hangup phone calls
That’s it, if this helps you give me a thumbs up and send money to the people that created the software that helps you!
Another tip, to save a lot of battery life, every time you reboot the phone hit Settings>Applications>Running services then hit DRM content > stop > ok, turn your display down to under 50%
Jays software can be found here http://forum.xda-developers.com/showpost.php?p=20033923&postcount=86
Now in a Flashable zip file
Made by ravizzle....thank you
Ok so i made a flashable zip of this mod. Op feel free to add this to the first post. Thanks for the mod in the first place!
Instructions:
1)Download zip
2)Flash in cwm
3)download "Jays headset control"
4)open Jays headset control app~ choose advanced~ button actions~ change phone options next to "click and hold" to answer and end call ~ change options on music icon next to "click and hold" to desired actions (OP used for pause/play, i personally use it to skip to next track.)
5) Enjoy!
if you have any problems or instructions are unclear please let me know and i will try to correct them.
Attached Files Headset button mod-signed.zip here or at the bottom of this post
/*
Anyone using a Custom ROM can use this code for the sec_jack.kl file, it will allow for more options working:
key 226 HEADSETHOOK WAKE
key 164 HEADSETHOOK WAKE #V2 Hardware support
key 163 MEDIA_NEXT WAKE
key 165 MEDIA_PREVIOUS WAKE
key 168 MEDIA_REWIND WAKE #V2 Hardware support
key 208 MEDIA_FAST_FORWARD WAKE #v2 Hardware support
key 115 VOLUME_UP WAKE
key 114 VOLUME_DOWN WAKE
key 107 ENDCALL WAKE
key 113 MUTE WAKE
key 231 CALL WAKE
key 248 HEADSETHOOK WAKE
key 76 HEADSETHOOK WAKE
Thanks for the awesome work. Gonna try it out.
Does dbl click skip to next track? If not, Any way to get that?
Sent from my Galaxy S2
ravizzle said:
Thanks for the awesome work. Gonna try it out.
Does dbl click skip to next track? If not, Any way to get that?
Sent from my Galaxy S2
Click to expand...
Click to collapse
Thanks for the thanks, let me know how it goes if you have any questions post em I'll be checking. Well you can skip tracks also but then you can't pause/start its one or the other. I'm just really happy I got this to work with pause/start answer/hangup with a long press. I may try again to get the next/previous to work, along with pause/start but my time is valuable and I need to make money like everyone else. Being an independent systems programmer having no real knowledge of phones software and just being a hack. I spent the whole day on this stupid phone problem..lol. I'd really would like to have next/previous double and triple press. I was hoping that the new OS Ice Cream due to hit the SGS2 sometime next year would address this issue, but I doubt they will fix it.
/* Glenn
Glenn54 said:
Thanks for the thanks, let me know how it goes if you have any questions post em I'll be checking. Nope, I'm just really happy I got this to work with pause/start answer/hangup with a long press. I may try again to get the next/previous to work, but my time is valuable and I need to make money like everyone else. Being an independent systems programmer having no real knowledge of phones software and just being a hack. I spent the whole day on this stupid phone problem..lol. I'd really would like to have next/previous double and triple press, but I was hoping that the new OS Ice Cream due to hit the SGS2 sometime next year would address this issue, that's been like this for a long time, I doubt they will fix it though.
/* Glenn
Click to expand...
Click to collapse
Can i do this fix over any rom or do i have to use doomlord's easy root kit?
currently running calkulin's rom v1.1
And thanks for your efforts. you definently got the wheels turning.
donp2700 said:
Can i do this fix over any rom or do i have to use doomlord's easy root kit?
currently running calkulin's rom v1.1
And thanks for your efforts. you definently got the wheels turning.
Click to expand...
Click to collapse
If your phone is rooted you can start with Step 2
Welcome!
Glenn54 said:
If your phone is rooted you can start with Step 2
Welcome!
Click to expand...
Click to collapse
I entered "mkdir /fixbutton"
and got
mkdir failed for /fixbutton, read-only file system
Did i miss somthing?
donp2700 said:
I entered "mkdir /fixbutton"
and got
mkdir failed for /fixbutton, read-only file system
Did i miss somthing?
Click to expand...
Click to collapse
sorry i fixed the doc it should be mkdir fixbutton without the /
Glenn54 said:
do you have a SGS2?
did you cd / to your are your sdcard?
Click to expand...
Click to collapse
yes and yes
E4GT
running calkulins rom.
donp2700 said:
yes and yes
E4GT
running calkulins rom.
Click to expand...
Click to collapse
try it without the / just mkdir fixbutton sorry
Glenn54 said:
try it without the / just mkdir fixbutton sorry
Click to expand...
Click to collapse
sorry but iam not understanding how step 5 and 6 work. how do i find the mount point and remount? Im fairly new to this.
donp2700 said:
sorry but iam not understanding how step 5 and 6 work. how do i find the mount point and remount? Im fairly new to this.
Click to expand...
Click to collapse
open the terminal emulator and enter
mount
click on the attachment above you will see in the middle of the display line 14
/dev/block/mmcblk0p9 /system ext4 ro,realtime........
the mount point is the first part of that line, on my SGS2 its
/dev/block/mmcblk0p9
This didn't work for me. I tried 3 different headsets. The center buttons don't activate anything. Thanks for your work though.
Glenn54 said:
try it without the / just mkdir fixbutton sorry
Click to expand...
Click to collapse
IT WORKS!!!!!!
Forget my previous noob questions, i figuered it out and you are a genius!!!!!!!!
I dont care much for pausing and answering calls from the HS button, so i simply chose the next track option under long click on the headset controller app.
It works and i cant understand why no one has figured this out already. Thank you for your work, much appreciated.
dtruong23 said:
This didn't work for me. I tried 3 different headsets. The center buttons don't activate anything. Thanks for your work though.
Click to expand...
Click to collapse
Are you sure all the commands worked? With Linda File Manager you can look at the sec_jack.kl file
Open up Linda
Hit My Phone
Hit Enter to the Alert
Scroll down and hit system
Scroll down and hit usr
Hit keylayout
hit sec_jack.kl
Scroll down and hit Text Edit
It should look like this
key 163 MEDIA_NEXT WAKE
key 164 MEDIA_PLAY_PAUSE WAKE
key 165 MEDIA_PREVIOUS WAKE
key 226 HEADSETHOOK WAKE
Oh I thought I put that in the Step 4 I left out
Add
key 164 MEDIA_PLAY_PAUSE WAKE
I'll fix the doc now, please try it again sorry this will and does work!
donp2700 said:
IT WORKS!!!!!!
Forget my previous noob questions, i figuered it out and you are a genius!!!!!!!!
I dont care much for pausing and answering calls from the HS button, so i simply chose the next track option under long click on the headset controller app.
It works and i cant understand why no one has figured this out already. Thank you for your work, much appreciated.
Click to expand...
Click to collapse
Oh Great! your welcome just give me a thumbs up and enjoy
If this works for you can just post a 'It worked for me' and give me a thumbs up. Thanks!
Also, I'm sure this would work for other phones/devices not just the SGS2. The sec_jack.kl file and the mount point would be a different name on other devices. If you send a dir of your /system/usr/keylayout/ directory someone should be able to tell you what file to use.
/* Glenn
Any way to make this a flashable mod?
Sent from my Galaxy S2
ravizzle said:
Any way to make this a flashable mod?
Sent from my Galaxy S2
Click to expand...
Click to collapse
I'm sure the MOD makers can do this. This procedure is pretty easy to follow and I think a little safer then flashing!
It works now!!! I guess I needed that key 164 entry. Thanks so much.
Glenn54 said:
Are you sure all the commands worked? With Linda File Manager you can look at the sec_jack.kl file
Open up Linda
Hit My Phone
Hit Enter to the Alert
Scroll down and hit system
Scroll down and hit usr
Hit keylayout
hit sec_jack.kl
Scroll down and hit Text Edit
It should look like this
key 163 MEDIA_NEXT WAKE
key 164 MEDIA_PLAY_PAUSE WAKE
key 165 MEDIA_PREVIOUS WAKE
key 226 HEADSETHOOK WAKE
Oh I thought I put that in the Step 4 I left out
Add
key 164 MEDIA_PLAY_PAUSE WAKE
I'll fix the doc now, please try it again sorry this will and does work!
Click to expand...
Click to collapse
it worked for me without that extra line. What would the diffrence be with the additional command?
and do i have to redo steps 5 and 6 after edit or can i just edit the sec_jack.kl file and save?
First & as always, it's safest, since you're working in the /sys or /system file path to make a nandroid backup before hand just in case.
hasn't been tested for JB but i believe it will work.
using a file explorer on the phone, mount the system as Read/Write,
navigate to the directory path:
WAKE - turns on volume rocker wake
WAKE_DROPPED - shuts the the wake off
/system/usr/keylayout/
find the "ffa-keypad.kl" file, long press it, open in text editor
find VOLUME_UP
and
VOLUME_DOWN
and type "WAKE" next to each entry. this will enable wake on volume rocker.
if you were wanting to disable wake on volume rocker type "WAKE_DROPPED".
then settings or menu and "save changes"
now, in the same directory, open "fluid-keypad.kl", "generic.kl.
and do the same steps to add "WAKE" or "WAKE_DROPPED" accordingly next to each Volume UP/DOWN entry.
may require a restart of the phone to take effect.
exelent info ..thanks
I'm on stock UVMC6 rooted and this is not working for me. I've made changes to all three files and after a reboot, no luck.
Help? I really need this mod. I've seen edits to Android policy .jar in the past but I'm not too sure how that works or whether that is needed in this case.
I tried this too and it didn't work. I followed the instructions and had no luck with it.
Same, both files say dropped, but still able to wake screen with volume keys. Running Jedi mind trick
Sent from my SGH-T989 using xda premium
to enable vol wake, you have to mod the android.policy.jar
does this make both volume up and volume down to function as the power button? or just one of them? also, is it possible to change the power button to act as volume down/up?
thanks!
Sent from my SGH-T989D using xda app-developers app
YourPartyBoy said:
First & as always, it's safest, since you're working in the /sys or /system file path to make a nandroid backup before hand just in case.
hasn't been tested for JB but i believe it will work.
using a file explorer on the phone, mount the system as Read/Write,
navigate to the directory path:
WAKE - turns on volume rocker wake
WAKE_DROPPED - shuts the the wake off
/system/usr/keylayout/
find the "ffa-keypad.kl" file, long press it, open in text editor
find VOLUME_UP
and
VOLUME_DOWN
and type "WAKE" next to each entry. this will enable wake on volume rocker.
if you were wanting to disable wake on volume rocker type "WAKE_DROPPED".
then settings or menu and "save changes"
now, in the same directory, open "fluid-keypad.kl", "generic.kl.
and do the same steps to add "WAKE" or "WAKE_DROPPED" accordingly next to each Volume UP/DOWN entry.
may require a restart of the phone to take effect.
Click to expand...
Click to collapse
Thanks for the info.
Was anyone ever able to get this working? I tried the guide in the first post and no luck.
Running UVMC6, rooted.
Does anyone have an android.policy.jar for this ROM edited for volume wake?
Joe USer said:
Was anyone ever able to get this working? I tried the guide in the first post and no luck.
Running UVMC6, rooted.
Does anyone have an android.policy.jar for this ROM edited for volume wake?
Click to expand...
Click to collapse
Try using my guide, it seems to work for everybody.
http://forum.xda-developers.com/showthread.php?t=2299222
joyj112 said:
Try using my guide, it seems to work for everybody.
http://forum.xda-developers.com/showthread.php?t=2299222
Click to expand...
Click to collapse
Thanks, but I'm trying to enable, not disable.
Solved
Solved it.
Install the stock ROM from here http://forum.xda-developers.com/showthread.php?t=2226860 and the volume mod is available as well.
Joe USer said:
Solved it.
Install the stock ROM from here http://forum.xda-developers.com/showthread.php?t=2226860 and the volume mod is available as well.
Click to expand...
Click to collapse
You could do that if you want, but I think in order to turn non the volume wake mod, you just reverse the process and everything should be working
joyj112 said:
You could do that if you want, but I think in order to turn non the volume wake mod, you just reverse the process and everything should be working
Click to expand...
Click to collapse
I tried that first, unfortunately it doesn't work with Jellybean. JB requires changes to the android.policy.jar which requires far more work.
Hi there,
here is the mod for skipping music tracks when long-pressing the volume buttons. This is for stock ROM 14.71.8 DEODEXED ONLY!!
So, if you have an unlocked bootloader and have root access, you may apply my following mod. I'll guide you step through step as we got no CWM recovery yet, so you must do it manually.
- download android.policy.jar and move it to your internal SD card with an explorer or via adb:
Code:
adb push android.policy.jar /sdcard/
- after that type in the following commands, beware that su wants you to grant root access (SuperSU popup)
Code:
adb shell
su
stop
mount -o rw,remount /system/ /system/
cp /sdcard/android.policy.jar /system/framework/
mount -o ro,remount /system/ /system/
reboot
Done! Enjoy this mod
Reminder: Although this mod was tested on my device, I'll take no responsibility if you damage your system, so just do it if you know what you do!
If we have CWM, I will provide a flashable .zip then.
Modification?
shaftenberg said:
here is the mod for skipping music tracks when long-pressing the volume buttons
Click to expand...
Click to collapse
Thanks for this, something I miss from my old Sony Ericsson are the physical music player buttons.
I was wondering if you could point me in the right direction of modifying this to make a small alteration; instead of vol-down skipping backward a track I'd like it to have the Play/Pause functionality. That is a button press that I'd use much more often!
Another (perhaps more complicated) solution is to have a double-tap of the power button do this Play/Pause, with double taps of the volume buttons providing the skip tracks effect.
Silently said:
I was wondering if you could point me in the right direction of modifying this to make a small alteration; instead of vol-down skipping backward a track I'd like it to have the Play/Pause functionality. That is a button press that I'd use much more often!
Click to expand...
Click to collapse
Change the keycode in line 48 in com\android\internal\policy\impl\PhoneWindowManager$VolumeLongPressR.smali from 58 to 55 and you are done.
Unfortunately this mod doesn't support double taps and I don't know how to integrate this easily
shaftenberg, could you please give a sources? Or just a list of .smalli files that you changed?
Sure.
You have to add 2 files in com\android\internal\policy\impl and have to edit PhoneWindowManager.smali.
Note, there are two/three different mods around here at XDA. I used all of them and I found out that the one with "lyapota" (you will see in the sources) works most reliable, whereas the other one (I used it in the Nexus 5 mod) works too but is a little bit less responsive and doesn't work with all media players.
The hardest part is to find the right variables, if you want to use this mod in other phones. The first time I did this, I used this thread as a good start but you can't simply copy as this won't work then
Attached are my modded .smali, the 2 ones you have to add and a .txt with the diff's to the original MotoG-smali.
Nice trick mate, can't wait to see this in a custom rom.
Skip music tracks with Volume buttons 4.4.2
shaftenberg I'm with rom kitkat 4.4.2 and would like function if do not ask for much could do this mod for it
I'm with the rom Blur_Version.171.44.31.falcon_umtsds.Brasil.en.BR
I'll leave the files from my rom
sorry for bad english I'm Brazilian
and greatly appreciate all of you who make mods
I thank
Thank you dear
i think i did the same thing but with Xposed and gravity bot in media option
it works only when the screen is off
Thank you again
Sorry for my n00b post, but what you mean with: Deodexed?
DragonautMk said:
Sorry for my n00b post, but what you mean with: Deodexed?
Click to expand...
Click to collapse
Google it..
Sent from my XT1032 using XDA Premium 4 mobile app