[HOWTO] Finally! a REAL solution to disable noise reduction - Galaxy S II Themes and Apps

I searched a solution to disable NR in the beginning of the call. I had an echo problem in my phone, and the only way to fix it was to disable the NR.
The problem - each time you place or answer a call we need to go to menu and disable it.
All the codes that posted here didn't disable the NR. they only disabled the menu.
After digging for a few days in the smali of the Phone.apk I found the solution -
You need to edit CallNotifier.smali -
Search for - turnOnNoiseSuppression and rem the line
In my case it looks like this.
Code:
.line 957
.local v3, noise_reduction:Z
iget-object v8, p0, Lcom/android/phone/CallNotifier;->mApplication:Lcom/android/phone/PhoneApp;
const/4 v9, 0x1
[COLOR="Red"]# [/COLOR]invoke-static {v8, v3, v9}, Lcom/android/phone/PhoneUtils;->turnOnNoiseSuppression(Landroid/content/Context;ZZ)V
And in PhoneApp$PhoneAppBroadcastReceiver.smali (not all APk's needs it)-
Code:
.line 1930
sget-object v1, Lcom/android/phone/PhoneUtils$AMRState;->WB:Lcom/android/phone/PhoneUtils$AMRState;
invoke-static {v1}, Lcom/android/phone/PhoneUtils;->setAMRCodec(Lcom/android/phone/PhoneUtils$AMRState;)V
.line 1940
:goto_9
iget-object v1, p0, Lcom/android/phone/PhoneApp$PhoneAppBroadcastReceiver;->this$0:Lcom/android/phone/PhoneApp;
invoke-virtual {v1}, Lcom/android/phone/PhoneApp;->getApplicationContext()Landroid/content/Context;
move-result-object v1
invoke-static {v1}, Lcom/android/phone/PhoneUtils;->isSupportedNoiseReductionInWBMode(Landroid/content/Context;)Z
move-result v1
if-nez v1, :cond_21
if-ne v0, v5, :cond_21
iget-object v0, p0, Lcom/android/phone/PhoneApp$PhoneAppBroadcastReceiver;->this$0:Lcom/android/phone/PhoneApp;
invoke-virtual {v0}, Lcom/android/phone/PhoneApp;->getApplicationContext()Landroid/content/Context;
move-result-object v0
invoke-static {v0}, Lcom/android/phone/PhoneUtils;->isNoiseSuppressionOn(Landroid/content/Context;)Z
move-result v0
if-ne v0, v5, :cond_21
.line 1943
iget-object v0, p0, Lcom/android/phone/PhoneApp$PhoneAppBroadcastReceiver;->this$0:Lcom/android/phone/PhoneApp;
invoke-virtual {v0}, Lcom/android/phone/PhoneApp;->getApplicationContext()Landroid/content/Context;
move-result-object v0
[COLOR="Red"]# [/COLOR]invoke-static {v0, v4, v4}, Lcom/android/phone/PhoneUtils;->turnOnNoiseSuppression(Landroid/content/Context;ZZ)V
Different apk's versions may have different line number and variables numbers.
This change will make the phone starts calls with NR off. (may not work in the first call after the phone boots up - looking for a fix)
you can still turn it on if you want, during the call
Enjoy!

This is driving me insane.
I cannot, for the life of me, get a smali folder when I decompile Phone.apk. I've tried using APKManager 4.9, and directly using APKTool.
Using APKManager, I set my project, decompile with dependencies, drag twframework-res.apk when asked.
Using APKTool, I type:
apktool d Phone.apk
Both methods, all I get are a res folder, AndroidManifest.xml, and apktool.yml.
Is there something I am missing?

ctomgee said:
This is driving me insane.
I cannot, for the life of me, get a smali folder when I decompile Phone.apk. I've tried using APKManager 4.9, and directly using APKTool.
Using APKManager, I set my project, decompile with dependencies, drag twframework-res.apk when asked.
Using APKTool, I type:
apktool d Phone.apk
Both methods, all I get are a res folder, AndroidManifest.xml, and apktool.yml.
Is there something I am missing?
Click to expand...
Click to collapse
Yeah, you're missing the fact that your ROM is probably odexed and not deodexed.

petsasj said:
Yeah, you're missing the fact that your ROM is probably odexed and not deodexed.
Click to expand...
Click to collapse
Such a simple answer... *sigh*
You are correct. So how can I edit the .smali file of an odexed Phone.apk?
EDIT: Nevermind... I supposed I can just find a deodexed Phone.apk to make the change on, yeah?

ctomgee said:
Such a simple answer... *sigh*
You are correct. So how can I edit the .smali file of an odexed Phone.apk?
EDIT: Nevermind... I supposed I can just find a deodexed Phone.apk to make the change on, yeah?
Click to expand...
Click to collapse
Finding a deodexed Phone.apk is probably easiest fo you. I don't think you're accustomed to smali/baksmali deodexing procedures? There's a nice How-To by sicopat, but still, get a deodexed Phone.apk

petsasj said:
Finding a deodexed Phone.apk is probably easiest fo you. I don't think you're accustomed to smali/baksmali deodexing procedures? There's a nice How-To by sicopat, but still, get a deodexed Phone.apk
Click to expand...
Click to collapse
Just started learning about deodexing, yeah. I think I've found a deodexed Phone.apk for my ROM version, thanks for your help.

thanks but what about MIUI and CM7 roms?
i have echo problem in these roms!
cheers,
SX

SignalX said:
thanks but what about MIUI and CM7 roms?
i have echo problem in these roms!
cheers,
SX
Click to expand...
Click to collapse
Have you looked to see if that same line is in the file?

Anyone can confirm it really works?
Thank you for the solution but can anyone post deodexed phone.apk with this solution here (xxki4 or xwkj3)?

yay1974 said:
Thank you for the solution but can anyone post deodexed phone.apk with this solution here (xxki4 or xwkj3)?
Click to expand...
Click to collapse
I can confirm that it DOES work. I was able to edit a deodexed Phone.apk from XXKI3, and now it defaults NR to being OFF during calls. (though, as drorsi states in the OP, it is still on for the first call after the phone boots). You still have the option of turning it on during the call if you wish.
You can find what you need to know on how to decompile/recompile .apk files at http://forum.xda-developers.com/showthread.php?t=695701.

i try to do this fix into the phone.apk from checkrom with call record but i didn´t find the CallNotifier.smali so i give up ;( maybe someone can help me please `
Greetz Marcel

knightnz said:
Have you looked to see if that same line is in the file?
Click to expand...
Click to collapse
no
you think its same?
can you please check mate?
cheers,
SX

maybe someone can help me please so i upload the phone.apk
http://www.megaupload.com/?d=GEEHBN37
thx in advice
v0dKa

Guys, could somebody be so kindly and share with us Phone.apk with NR off as default for last software KJ3 please?
ps
v0dKa, that the apk is it? from what version, why, could you explain please?

Sorry its the apk from the checkrom rom with call record
When someone have a patched apk without record but with non increasing ringtone for the kj3 please upload it
Sent from my GT-I9100 using Tapatalk

SignalX said:
thanks but what about MIUI and CM7 roms?
i have echo problem in these roms!
cheers,
SX
Click to expand...
Click to collapse
Same here on CM7, solution would be welcome! (BTW there is a disable noise reduction tweak in VillainROM's VRTweaks)

I've got the same problem with CM7 (and other ROM's btw).
Driving me insane as well.
Is there anyone kind enough to help me with this problem?
I tried the villain rom as well, with the villain tweak. But that doesnt seem to work either....

Help
A question:
i used apkmanager and followed 1st post instructions for .smali files but when i recompile apk it asks to delete modified files from "keep" folder, what must i do?

code72 said:
A question:
i used apkmanager and followed 1st post instructions for .smali files but when i recompile apk it asks to delete modified files from "keep" folder, what must i do?
Click to expand...
Click to collapse
When recompiling, there will be a "keep" folder at some point. (you will be prompted on this step) Delete any file you might have edited from this folder at this step. If you edited any xml files, you'll need to delete the resources.arsc file.
Sent from my GT-I9100 using XDA App

ctomgee said:
When recompiling, there will be a "keep" folder at some point. (you will be prompted on this step) Delete any file you might have edited from this folder at this step. If you edited any xml files, you'll need to delete the resources.arsc file.
Sent from my GT-I9100 using XDA App
Click to expand...
Click to collapse
Ok, but in "keep" folder there aren't .smali file so how can i delete them?

Related

[Mod] Long press volume buttons to skip songs.

Attached is a mod I've spent the last week and a half working on for my friend and I. We were working out and found it a hassle to have to bring out our phones from our pocket in order to seek past tracks. This mod allows you to now seek from your pocket easily.
Those of you who've used CM6/7 are probably aware of a feature they have where you can seek music tracks with the screen off using the volume up (forward track) / volume down (previous track) buttons.
Essentially, I've ported this feature onto the Samsung Framework. Since the Samsung Framework is closed source, I had to reverse engineer a lot of their functions in the Android.Policy framework which took a while. Although the CM6/7 is open source, the code they provide is in Java which you can't really inline with dalvik assembler code so converting their relevant functions into .smali compatible code took more time.
Because of this, I'm only releasing this for Leomar75 (v. 2.6 XXKH3) Rom since it's the Rom I've settled on. I have not tested it on other roms, it may or may not work with others, I make no guarantees. However, I'm ~80% sure it will work with other KH3 based Samsung Firmwares. I don't have time, or the will, to port it to other roms so please don't ask.
Installation:
Make a Nandroid backup using Clockwork Recovery.
Wipe your Cache & Dalvik Cache.
Unzip the file.
ADB push the file to your phone:
Code:
adb push android.policy.jar /system/framework/
Make sure permissions are correct:
Code:
adb shell
busybox chmod -R 644 /system/framework/android.policy.jar
Reboot.
Usage:
When the screen is off, and music is playing, holding the volume up button for ~1 second will seek forward 1 track.
Holding the volume down button for ~1 second will seek back 1 track.
When you do either actions, the screen will not wake (battery life is conserved).
If the screen is ON, and music is playing, it will not seek forward/back if you hold the buttons.
Known bugs:
My friend told me this breaks JKAY AOSP Lockscreen mods. I don't use JKAY mods so that bug probably won't be fixed.
Caveats:
I don't want any donations, plz don't ask.
If you want to disassemble this using baksmali to try to see what I've changed, that's fine by me. I don't really care tbh.
If you have honest questions I will answer but if it's answerable with a Google search, I probably will not bother.
Credits:
Jon Boekenoogen (metalhead8816): First guy to submit the 'Long press volume buttons to skip songs' concept for CM6. Thanks for this simple, but great feature.
Obviously the CM6/7 team: I disassembled & used your code, thanks.
Leomar75: I use your rom, thanks.
JesusFreak: You made an awesome tool for disassembling and assembling .dex. Thanks.
You are my hero ! Thx for this. But sadly not working on Batista 3.7.6 so I have to change to Leo Rom
Sent from my GT-I9100 using xda premium
Could you please release the changes that were made in the android.policy.jar? Please post the code and what was changed so developers (and users) modify it themselves.
Thanks a lot.
Wow, nice work. I'll try this later.
Edit : works perfectly on leomars rom. Thank you very much!
Sent from my GT-I9100 using Tapatalk
Works on Cognition ROM 1.5.1 !
edit post . ( restore a nandroid backup .
Does not work with leo rom and root explorer have to try it later with adb but should not make any diiference
Edit: works fine even with explorer but tw 4.5 breaks it
Sent from my GT-I9100 using xda premium
I think fugutweaks breaks your mod do you have installed it ?
Sent from my GT-I9100 using xda premium
Sonic7 said:
Does not work with leo rom and root explorer have to try it later with adb but should not make any diiference
Sent from my GT-I9100 using xda premium
Click to expand...
Click to collapse
It works with rootexplorer. I did it this way. Maybe you forgot to set permissions?
Sent from my GT-I9100 using Tapatalk
Awesome feature. It works on Criskelo rom. Thanks a lot.
Sent from my GT-I9100 using XDA App
nexxus. said:
It works with rootexplorer. I did it this way. Maybe you forgot to set permissions?
Sent from my GT-I9100 using Tapatalk
Click to expand...
Click to collapse
I installed the touchwiz 4.5 and I think this breaks the mod. It works fine on a fresh instal
Sent from my GT-I9100 using xda premium
Sonic7 said:
I think fugutweaks breaks your mod do you have installed it ?
Sent from my GT-I9100 using xda premium
Click to expand...
Click to collapse
I don't have it installed. If it modifies the android.policy.jar it will probably interfere with this. You could try installing this first and then applying fugutweaks.
it's possible to flash with cwm?
Working fabulously with VR 2.4.2 /w EDT tweaks + Ninpo latest. Transfered into /system/app with TotalCom, sorted out permissions and voila.
Now I can uninstall JustShake, which was wonky in use anyways.
Thanks bud!
EDIT: Scratch that. It's conflicting with power menu. Sigh.
Hi aerobahn, first of all Thanks for your hard work in this excellent mod. I'm actually using jkay and of course this mod breaks jkay lockscreen options, because jkay also modifies android.policy. For this reason i'm trying to adapt your mod over jkay android.policy
I see your mod only modifies two files
GlobalActions.smali
PhoneWindowManager.smali
and add 5 files
GlobalActions$8. smali
GlobalActions$9. smali
GlobalActions$10. smali
PhoneWindowManager$12.smali
PhoneWindowManager$13.smali
The PhoneWindowManager is ready, I've pasted all the code into jkay PhoneWindowManager. My problem is with GlobalActions because jkay also uses files named 8, 9 and 10... until 20. I think it's possible change your files to the next numbers availables like this GlobalActions$21, 22 and 23 and modify the code to refer it with this new name.
Then, I need add this code to jkay's GlobalActions.smali and change the hex values for const, but don't know how can I do it... i'm newbie editing smali code...
Code:
aput-object v2, v0, v1
const/4 v1, 0x4
new-instance v2, Lcom/android/internal/policy/impl/GlobalActions$21;
const v3, 0x108045b
const v4, 0x1040505
invoke-direct {v2, p0, v3, v4}, Lcom/android/internal/policy/impl/GlobalActions$21;-><init>(Lcom/android/internal/policy/impl/GlobalActions;II)V
aput-object v2, v0, v1
const/4 v1, 0x5
new-instance v2, Lcom/android/internal/policy/impl/GlobalActions$22;
const v3, 0x108045c
const v4, 0x1040503
invoke-direct {v2, p0, v3, v4}, Lcom/android/internal/policy/impl/GlobalActions$22;-><init>(Lcom/android/internal/policy/impl/GlobalActions;II)V
aput-object v2, v0, v1
const/4 v1, 0x6
new-instance v2, Lcom/android/internal/policy/impl/GlobalActions$23;
const v3, 0x1080456
const v4, 0x1040504
invoke-direct {v2, p0, v3, v4}, Lcom/android/internal/policy/impl/GlobalActions$23;-><init>(Lcom/android/internal/policy/impl/GlobalActions;II)V
¿Can you help me please? I added the files. For if you can take a look. Thanks in advance
Ps: I know... my english is horrible!! xD sorry for this
Can others please verify... I'd have added this feature to my Deluxe Themes but it seems to break radio volume control!
How to test: start radio instead music player and turn off screen. Now try and change volume using volume keys... on my phone nothing happens!!!
Sent from my GT-I9100 using xda premium
_JKay_ said:
Can others please verify... I'd have added this feature to my Deluxe Themes but it seems to break radio volume control!
How to test: start radio instead music player and turn off screen. Now try and change volume using volume keys... on my phone nothing happens!!!
Sent from my GT-I9100 using xda premium
Click to expand...
Click to collapse
On my phone works fine...
nitsuajd said:
On my phone works fine...
Click to expand...
Click to collapse
Hmm... ok I'll see if I can get the FM radio volume to work in my mod too... then I'll include this great feature into version 10 of JKay Deluxe.
Sent from my GT-I9100 using xda premium
_JKay_ said:
Hmm... ok I'll see if I can get the FM radio volume to work in my mod too... then I'll include this great feature into version 10 of JKay Deluxe.
Sent from my GT-I9100 using xda premium
Click to expand...
Click to collapse
This would make my day JKay ( wow that rhymes )
nitsuajd said:
Hi aerobahn, first of all Thanks for your hard work in this excellent mod. I'm actually using jkay and of course this mod breaks jkay lockscreen options, because jkay also modifies android.policy. For this reason i'm trying to adapt your mod over jkay android.policy
I see your mod only modifies two files
GlobalActions.smali
PhoneWindowManager.smali
and add 5 files
GlobalActions$8. smali
GlobalActions$9. smali
GlobalActions$10. smali
PhoneWindowManager$12.smali
PhoneWindowManager$13.smali
The PhoneWindowManager is ready, I've pasted all the code into jkay PhoneWindowManager. My problem is with GlobalActions because jkay also uses files named 8, 9 and 10... until 20. I think it's possible change your files to the next numbers availables like this GlobalActions$21, 22 and 23 and modify the code to refer it with this new name.
Then, I need add this code to jkay's GlobalActions.smali and change the hex values for const, but don't know how can I do it... i'm newbie editing smali code...
Code:
aput-object v2, v0, v1
const/4 v1, 0x4
new-instance v2, Lcom/android/internal/policy/impl/GlobalActions$21;
const v3, 0x108045b
const v4, 0x1040505
invoke-direct {v2, p0, v3, v4}, Lcom/android/internal/policy/impl/GlobalActions$21;-><init>(Lcom/android/internal/policy/impl/GlobalActions;II)V
aput-object v2, v0, v1
const/4 v1, 0x5
new-instance v2, Lcom/android/internal/policy/impl/GlobalActions$22;
const v3, 0x108045c
const v4, 0x1040503
invoke-direct {v2, p0, v3, v4}, Lcom/android/internal/policy/impl/GlobalActions$22;-><init>(Lcom/android/internal/policy/impl/GlobalActions;II)V
aput-object v2, v0, v1
const/4 v1, 0x6
new-instance v2, Lcom/android/internal/policy/impl/GlobalActions$23;
const v3, 0x1080456
const v4, 0x1040504
invoke-direct {v2, p0, v3, v4}, Lcom/android/internal/policy/impl/GlobalActions$23;-><init>(Lcom/android/internal/policy/impl/GlobalActions;II)V
¿Can you help me please? I added the files. For if you can take a look. Thanks in advance
Ps: I know... my english is horrible!! xD sorry for this
Click to expand...
Click to collapse
I ported the mod to my XXKG2 rom and i never modifed anything except phonewindowmanager and added $12 and $13 files and its working fine
Maybe i did something wrong but it seems fine to me....
Hope that helps
Sent from my GT-I9100
Works Fine with Criskelo Rom!!!
Thanks

[GUIDE]How to add lidroid 14 statusbar toggle buttons for Galaxy Y

All Credits belongs to Lidroid
Please refers to lidroid original thread below
http://forum.xda-developers.com/showthread.php?t=1289896
Notes:
1. need a Computer which is has JDK installed
2. apktool
3. notepad++ / other text editor
4. know how to compile/decompile apk (dont ask me.. just use the search bar.. there a bunch of tuts how to do that)
firstly download this file :
1. lidroid-res
http://forum.xda-developers.com/attachment.php?attachmentid=750399&d=1318661697
2. LidroidSystemUI
http://forum.xda-developers.com/attachment.php?attachmentid=750756&d=1318701014
3. QuickPanelSettings
http://forum.xda-developers.com/attachment.php?attachmentid=751238&d=1318747162
or u can visit lid thread above n download it from #1 post attachment
How to :
1. Download LidroidSystemUI.apk and decompile it with apktool, then you get LidroidSystemUI dir.
2. Pull and Decompile your SystemUI.apk, copy LidroidSystemUI/smali/* into SystemUI/smali.
3. Open SystemUI/smali/com/android/systemui/status/StatusBarService.smali. Find(Ctrl + F) QuickSettingsView, changes codes below
(this code i've got from mr. sileshnair. big thanks for him )
Code:
.local v3, qsv:Lcom/android/systemui/statusbar/quickpanel/QuickSettingsView;
const v7, 0x7f030002
invoke-static {p1, v7, v9}, Landroid/view/View;->inflate(Landroid/content/Context;ILandroid/view/ViewGroup;)Landroid/view/View;
move-result-object v3
.end local v3 #qsv:Lcom/android/systemui/statusbar/quickpanel/QuickSettingsView;
check-cast v3, Lcom/android/systemui/statusbar/quickpanel/QuickSettingsView;
.line 352
.restart local v3 #qsv:Lcom/android/systemui/statusbar/quickpanel/QuickSettingsView;
with
Code:
const v7, 0x3030003
invoke-static {p1, v7, v9}, Landroid/view/View;->inflate(Landroid/content/Context;ILandroid/view/ViewGroup;)Landroid/view/View;
move-result-object v3
check-cast v3, Lcom/lidroid/systemui/quickpanel/PowerWidget;
.line 352
.local v3, qsv:Lcom/lidroid/systemui/quickpanel/PowerWidget;
invoke-virtual {v3}, Lcom/lidroid/systemui/quickpanel/PowerWidget;->setupWidget()V
4. Compile SystemUI with apktool,
5. open up your SystemUI.apk with winrar or 7zip
6. locate to SystemUI/build/apk/ and find classes.dex onto the winrar/7zip
7. Then Push it into /system/app/
5. push lidroid-res.apk in /system/framework/, push QuickPanelSettings.apk in /system/app, reboot.
More mod :
Originally Posted by [email protected]
To have 6 visible toggles : edit : SystemUI/smali/com/lidroid/systemui/quickpanel/PowerWidget.smali
change :
Code:
.field private static final LAYOUT_SCROLL_BUTTON_THRESHOLD_PORT:I = 0x5
to
.field private static final LAYOUT_SCROLL_BUTTON_THRESHOLD_PORT:I = 0x6
Code:
div-int/lit8 v2, v2, 0x5
to
div-int/lit8 v2, v2, 0x6
Note: i skip editing androidmanfest.xml (cuz when we do this... we should sign all of the apk in /system/app and /system/framework. ..but if u insist.. please see the original thread above how to do that...unless if u dont do editing androidmanifest.xml u'll got FC when pressing Flashlight button. anyway i dont need it.. so its not a big deal)
dont thanks me... please thanks too three man above for their great job
sharing is caring
Nice but its too tough for me to do it
Sent from my GT-S5360 using XDA App
Nice tutorial dude just made a nice bar but a bit complicated though.
Sent from my GT-S5360 using xda premium
u'll never know, unless u try
I will try this. Thanks for sharing dude!
was going to modify the PNG files of this apk,
decompiled all files, recompiled and resigned APK however when i force it into the system status bar gets force close,
deathnotice01 said:
was going to modify the PNG files of this apk,
decompiled all files, recompiled and resigned APK however when i force it into the system status bar gets force close,
Click to expand...
Click to collapse
dont resigned the system .apk unless u must resigned all off the apk file in /system/app and /system/framework
The SystemUI.apk is to be pulled from our SGY unit, right? You forgot to mention this on your tutorial.
bumslayer said:
The SystemUI.apk is to be pulled from our SGY unit, right? You forgot to mention this on your tutorial.
Click to expand...
Click to collapse
Ups .... em sorry ... my bad...
Sent from my GT-S5360 using Tapatalk
Here's my statusbar: I'm using Hybrid 2.1.
Thank you very much for your wonderful tutorial bro! I am one happy camper!
bumslayer said:
Here's my statusbar: I'm using Hybrid 2.1.
Thank you very much for your wonderful tutorial bro! I am one happy camper!
Click to expand...
Click to collapse
Well nice dude thanks to lidroid btw
:-D
rawk
ow this is a nice guide ...im planning to make a ICS status bar from this i wish its not impossible
bumslayer said:
Here's my statusbar: I'm using Hybrid 2.1.
Thank you very much for your wonderful tutorial bro! I am one happy camper!
Click to expand...
Click to collapse
Can you share this bro??
Just follow the tutorial kill3d graciously provided. Worked for me.
Sent from my GT-S5360 using xda premium
Hey OP, apparently this works for deodexed ROMS only, because the SystemUI.apk of the DXLB1 stock ROM does not have a smali folder.
bumslayer said:
Hey OP, apparently this works for deodexed ROMS only, because the SystemUI.apk of the DXLB1 stock ROM does not have a smali folder.
Click to expand...
Click to collapse
Indeed...
Cuz the smali came from came from the classes.dex.
rawk
im having a problem on making the notifcations work, i followed the tutorial, the notification works but the 14 toggles isnt working.. hmm. whats wrong
bumslayer said:
Here's my statusbar: I'm using Hybrid 2.1.
Thank you very much for your wonderful tutorial bro! I am one happy camper!
Click to expand...
Click to collapse
can you upload your SystemUI.apk
I dont understand the tutorial
kimbaduds said:
im having a problem on making the notifcations work, i followed the tutorial, the notification works but the 14 toggles isnt working.. hmm. whats wrong
Click to expand...
Click to collapse
Did u edit the smali code??
Did u miss point 6?
Did u push lidroid-res.apk . Quickpanelsettings.apk . ??
rawk
guys dont forget to change the permissions to the files you will push to the phone as well. just look at the permissions of the other files under /system/apps and /system/framework.
Sent from my GT-S5360 using xda premium

[MOD][DEV][LP3/LP2]Remove "Swipe Screen to Unlock"(Multilanguage)(Noob-proof)

[MOD][DEV][LP3/LP2]Remove "Swipe Screen to Unlock"(Multilanguage)(Noob-proof)
Intro​
Okay I heard a lot of people want to disable this text from the Lockscreen, first time it may be useful! But then it just becomes plain Ugly..
So with a little of research, I have come to see where this text comes from, and with the knowledge that the lockscreen is built from classes inside the android.policy.jar I searched there a little and found what I was looking for.
So let's do it! First of all, if you don't know about smali and baksmali this tutorial contains the commands, but it will still be a little hard for beginners so I included a ZIP for flashing.
Needed Resources​You need the JRE to run the jars, found here
You will also need the smali and baksmali jars.
Smali: here
Baksmali: here
[This is for Windows, Although I use Ubuntu] I'll also make things easier for you, here download my simple scripts to make the usage of smali and baksmali easier: here
The Process​
*Now we will use baksmali to revive the code to a low-level language (hard to understand, not like java which is a high-level language) called smali.
*So once you have all resources extract Smali.jar/Baksmali.jar/Smali.bat/Baksmali.bat to any folder you like.
*Extract the android.policy.jar found in the system/framework directory inside the ROM, to the same folder.
*Now we need to open a cmd (or terminal for linux) window pointing to the folder, an easy way to do this in windows if I remember correctly, was Hold Shift and then press right button on the folder, and select Open command window here.
*Once you do this, let's get to work. In your cmd type this command:
Code:
baksmali android.policy.jar -o extracted
and don't close the cmd, just minimize it as we will need it later on.
NOTE: Basically, this command extracts the classes.dex (which is the code) found inside android.policy.jar and then reverses it to the smali language, then moves the resulting code to the directory named extracted.
NOTE 2: This is the same as extracting the classes.dex using an archiver (like 7-zip) and using this command: baksmali classes.dex -o extracted. The one above is a faster way to do it.
*Now you will notice the newly created folder called extracted. Open it then go to: com/android/internal/policy/impl. You'll see a lot of files (Don't freak out ).
*Now find the file named CircleLockScreen.smali and open it using any text editor, I prefer notepad++ for windows. (Don't mind other files sharing the same name with a $ and a number at the end, these are called sub-classes)
*Now we need to find the chunk of code which sets the text to "Swipe screen to unlock" and delete it completely.
So using the find functionality (CTRL + F) find this code
Code:
.line 178
iget-object v5, p0, Lcom/android/internal/policy/impl/CircleLockScreen;->mHelpText:Landroid/widget/TextView;
const v6, 0x10405f6
invoke-virtual {v5, v6}, Landroid/widget/TextView;->setText(I)V
And Simply Delete it!
*We're done so now we should compile the code to classes.dex again. To do this go back to your cmd you had before and type this code
Code:
smali extracted -o classes.dex
*A new classes.dex file will be created (will overwrite the old one if you had an old classes.dex), so Simply open android.policy.jar with an archiver (like winrar) and drag the classes.dex and drop it inside.
NOTE: If it asks you to overwrite the classes.dex choose yes.
And we are ready to go, now you have your android.policy.jar you can try it by pushing it to /system/framework and rebooting.
You can also use it inside your ROMs
For LP3 ZIP Click here! Many thanks to Krendelrus!
Happy Modding!
does it work on LPQ?
readon1 said:
does it work on LPQ?
Click to expand...
Click to collapse
The method works on LPQ
Sorry, i had to be more specific x). I mean does the zipfile work on LPQ?
Many thanks in advance!
Sent from my GT-I9100 using XDA
readon1 said:
Sorry, i had to be more specific x). I mean does the zipfile work on LPQ?
Many thanks in advance!
Sent from my GT-I9100 using XDA
Click to expand...
Click to collapse
Probably not. Public number must match with the one in framework-res assigned to the string "swipe screen to unlock"
The guide is very clear, just need to follow it ;-)
As soon as i get home i will attach the one for LPQ
To do this I will need 1minute ;-)
By the way LK95, great stuff ;-)
---------- Post added at 08:55 PM ---------- Previous post was at 08:45 PM ----------
Done
Easy enjoy
here is the flashable zip
Sweeet thanks man!!!
Sent from my GT-I9100 using XDA
Unfortunatly it did not work...
Sent from my GT-I9100 using XDA
readon1 said:
Unfortunatly it did not work...
Sent from my GT-I9100 using XDA
Click to expand...
Click to collapse
works on stock deodexed LPQ, just attach you android.policy.jar and i make it 4u
Man, you are great! I'm having a lot of troubles making my own tests and i can't make the things happen but now, everything looks perfect. Really, thanks a lot!
Enviado desde mi GT-I9100 usando Tapatalk
Mirko ddd said:
works on stock deodexed LPQ, just attach you android.policy.jar and i make it 4u
Click to expand...
Click to collapse
Mirko, please make attached android.policy.jar? Thanks
Thx for the work but i am on lp2 and after flash your zip file with cwm, nothing happens.
Any idea ? Thx
Use this method to modify stock ZSLPE ROM , and it worked.
Thanks a lot.
Qwerty__- said:
Thx for the work but i am on lp2 and after flash your zip file with cwm, nothing happens.
Any idea ? Thx
Click to expand...
Click to collapse
Are you sure? The text should be removed after flashing.
hsupi said:
Use this method to modify stock ZSLPE ROM , and it worked.
Thanks a lot.
Click to expand...
Click to collapse
No problem
Yes =\
I think i will try manuel method.
(may be ICS domination theme make a problem ?)
Did it. Works like a charm
Thanks
liamR said:
Did it. Works like a charm
Thanks
Click to expand...
Click to collapse
No problem Glad it worked
Does this method work on unrooted phone?
kyzla said:
Does this method work on unrooted phone?
Click to expand...
Click to collapse
If you can find a way to push the edited android.policy.jar to /system/framework
then yes.
Thanks to the LegendK95 for the great manual
Here I attached LP3 modified android.policy.jar - enjoy (don't forget to rename this file to android.policy.jar before pushing to system)
i try manual method for see what happens but i haven't the ".line 178..." so the .zip which i flash do the job, but nothing happens on my lockScreen...
Here the code line 177 to 179
Code:
.line 177
new-instance v5, Landroid/widget/TextView;
invoke-direct {v5, p1}, Landroid/widget/TextView;-><init>(Landroid/content/Context;)V
iput-object v5, p0, Lcom/android/internal/policy/impl/CircleLockScreen;->mHelpText:Landroid/widget/TextView;
.line 179
iget-object v5, p0, Lcom/android/internal/policy/impl/CircleLockScreen;->mHelpText:Landroid/widget/TextView;
const/high16 v6, 0x3f80
const/high16 v7, 0x3f80
const/high16 v8, 0x3f80
const/high16 v9, -0x100
invoke-virtual {v5, v6, v7, v8, v9}, Landroid/widget/TextView;->setShadowLayer(FFFI)V
any idea ? ^^

[MOD] Make SGS-3 correctly show 1X / 3G

This MOD is based on this thread by nivron:
http://forum.xda-developers.com/showthread.php?t=1682112
The smali edit is exactly the same, but the location is a little different for SGS-3. You will have to extract and decompile classes.dex from SystemUI.apk using SMALI/BAKSMALI.
Code:
.line 1265
:cond_126
:pswitch_126
iget-boolean v0, p0, Lcom/android/systemui/statusbar/policy/NetworkController;->mShowAtLeastThreeGees:Z
[B]if-nez v0, :cond_141[/B]
Place # in front of the bolded line to remark it out: #if-nez v0, :cond_141. Recompile classes.dex, place it back into SystemUI.apk and replace it in /system/app directory using Root Explorer or something similar. Don't forget to fix permissions and change owner to root/root.
DO NOT FORGET TO BACK UP YOUR ORIGINAL SystemUI.apk !!!!!
6uPMAH said:
This MOD is based on this thread by nivron:
http://forum.xda-developers.com/showthread.php?t=1682112
The smali edit is exactly the same, but the location is a little different for SGS-3.
Code:
.line 1265
:cond_126
:pswitch_126
iget-boolean v0, p0, Lcom/android/systemui/statusbar/policy/NetworkController;->mShowAtLeastThreeGees:Z
[B]if-nez v0, :cond_141[/B]
Place # in front of the bolded line to remark it out: #if-nez v0, :cond_141. Recompile SystemUI.apk and replace it in /system/app directory using Root Explorer or something similar. Don't forget to fix permissions and change owner to root/root.
DO NOT FORGET TO BACK UP YOUR ORIGINAL SystemUI.apk !!!!!
Click to expand...
Click to collapse
Thanks a bunch man. May i ask what tool you use to edit your SystemUI.apk?
Sent from my SPH-L710 using Tapatalk 2
clark44 said:
Thanks a bunch man. May i ask what tool you use to edit your SystemUI.apk?
Sent from my SPH-L710 using Tapatalk 2
Click to expand...
Click to collapse
The only tools you need are SMALI/BAKSMALI. You don't have to decompile SystemUI.apk. You have to decompile classes.dex only using SMALI/BAKSMALI.
Will this fix the issue where my att version always shows 4g instead of 3g.
Sent from my SAMSUNG-SGH-I747 using Tapatalk 2
lgkahn said:
Will this fix the issue where my att version always shows 4g instead of 3g.
Sent from my SAMSUNG-SGH-I747 using Tapatalk 2
Click to expand...
Click to collapse
Nope.

How to make reduce 4 dots for pattern lock to 3 dots required as minimium to unlock.

4 dots are minimium to use for pattern lock. I want to reduce it to 3 or even 2. Not talking about 3x3 pattern grid but the number of dots used to unlock.
Sent from my Moto G using xda app-developers app
jatanshah said:
4 dots are minimium to use for pattern lock. I want to reduce it to 3 or even 2. Not talking about 3x3 pattern grid but the number of dots used to unlock.
Sent from my Moto G using xda app-developers app
Click to expand...
Click to collapse
interesting idea.
I'll look at it and hopefully will find a solution
a small how-to
Keyguard\smali\com\android\keyguard\KeyguardPatternView$UnlockPatternListener.smali
Code:
.line 279
invoke-interface {p1}, Ljava/util/List;->size()I
move-result v8
const/4 v9, 0x4
if-lt v8, v9, :cond_3
move v5, v6
where const/4 v9 sets minimum number of dots.
So, I changed it to 2.
And the same thing with Settings\smali\com\android\settings\ChooseLockPattern$ChooseLockPatternFragment$1.smali
Code:
.line 165
:cond_4
invoke-interface {p1}, Ljava/util/List;->size()I
move-result v0
const/4 v1, 0x4
if-ge v0, v1, :cond_5
Here is my modified Keyguard.apk and Settings.apk from 4.4.4 retail.en.US
Can u please give me for 4.4.2 as soon as possible
Thank u
G 2nd gen??
S0bes said:
a small how-to
Keyguard\smali\com\android\keyguard\KeyguardPatternView$UnlockPatternListener.smali
Code:
.line 279
invoke-interface {p1}, Ljava/util/List;->size()I
move-result v8
const/4 v9, 0x4
if-lt v8, v9, :cond_3
move v5, v6
where const/4 v9 sets minimum number of dots.
So, I changed it to 2.
And the same thing with Settings\smali\com\android\settings\ChooseLockPattern$ChooseLockPatternFragment$1.smali
Code:
.line 165
:cond_4
invoke-interface {p1}, Ljava/util/List;->size()I
move-result v0
const/4 v1, 0x4
if-ge v0, v1, :cond_5
Here is my modified Keyguard.apk and Settings.apk from 4.4.4 retail.en.US
Click to expand...
Click to collapse
@S0bes
will this same thing work on moto g 2nd gen xt 1068 running stock 4.4.4 retaildsdsallen?
TIA
Harsh.gundecha said:
@S0bes
will this same thing work on moto g 2nd gen xt 1068 running stock 4.4.4 retaildsdsallen?
TIA
Click to expand...
Click to collapse
only if you'll edit your files. btw no need for keyguard.apk. you should edit only settings.apk.
if you take my .apk file from moto G 1st gen 90% that you will see settings FC
S0bes said:
only if you'll edit your files. btw no need for keyguard.apk. you should edit only settings.apk.
if you take my .apk file from moto G 1st gen 90% that you will see settings FC
Click to expand...
Click to collapse
@S0bes
1) i also assumed that putting the apk would not work and that's why i didn't even tries that way of doing it.
so now i will have to do it manually (of course with YOUR help).
2) here by info. that i have what i mean by smali is that classes.dex file(correct me if i am wrong) and FYI let me tell you that there's no "Settings\smali\com\android" instead i have google folder in place of android folder.
i hope we will be still do it anyhow.
TIA
sorry as my 8 thanks of today are over will thank you later ☺
=============================================================================================================
EDIT:-
my bad, got till the code and also to the 165th line now just please help me to clearly understand what i exactly need to change? and also let me know that the code above is ORIGINAL or MODIFIED ??
TIA
below is code of settings apk in case you need a look ☺
Code:
.line 165
:cond_50
invoke-interface {p1}, Ljava/util/List;->size()I
move-result v0
const/4 v1, 0x4
if-ge v0, v1, :cond_5f
Harsh.gundecha said:
@S0bes
1) i also assumed that putting the apk would not work and that's why i didn't even tries that way of doing it.
so now i will have to do it manually (of course with YOUR help).
2) here by info. that i have what i mean by smali is that classes.dex file(correct me if i am wrong) and FYI let me tell you that there's no "Settings\smali\com\android" instead i have google folder in place of android folder.
i hope we will be still do it anyhow.
TIA
sorry as my 8 thanks of today are over will thank you later ☺
=============================================================================================================
EDIT:-
my bad, got till the code and also to the 165th line now just please help me to clearly understand what i exactly need to change? and also let me know that the code above is ORIGINAL or MODIFIED ??
TIA
below is code of settings apk in case you need a look ☺
Code:
.line 165
:cond_50
invoke-interface {p1}, Ljava/util/List;->size()I
move-result v0
const/4 v1, 0x4
if-ge v0, v1, :cond_5f
Click to expand...
Click to collapse
Change 0x4 to 0x1
S0bes said:
Change 0x4 to 0x1
Click to expand...
Click to collapse
@S0bes & @jatanshah
thanks man you made my day
gonna try it and will let you know later
Thanks once again to you and also to the one who asked this question
I have Galaxy S3 mini i8200N. How can i do this? What tools i need and that stuff? Thank You!
I have APK Studio but in my SecSettings.apk (theres no Settings.apk on my phone) i can't find smali. I tried Your Settings.apk and smali is there. How can i do it then? Thank You!
iMessa said:
I have APK Studio but in my SecSettings.apk (theres no Settings.apk on my phone) i can't find smali. I tried Your Settings.apk and smali is there. How can i do it then? Thank You!
Click to expand...
Click to collapse
smali - app is deodexed
no smali - there's an .odex file of .apk should be
to get smali folder inside apk you should deodex it. there're a lot of guides for different android versions available on xda
S0bes said:
smali - app is deodexed
no smali - there's an .odex file of .apk should be
to get smali folder inside apk you should deodex it. there're a lot of guides for different android versions available on xda
Click to expand...
Click to collapse
So i should deodex .apk, edit it and then install it?
Edit: When i try to deodex with Quick Deodex Tool it says "Framework not found" and framework is there i pasted it from phone.
When i use Universal Deodexer V5, everything is done but finished app is same like original (no smali) and log says:
Everything is Ok
1 file(s) copied.
DEODEXING COMPLETE!
================COMPLETED DEODEXING===============
===================DEODEXED 1 of 1===============
Done checking 100%
FAILED : SecSettings.apk
I did it with Ultimate Deodexer but i don't have line 165. I edited 187 coz it looks like yours but still asks for minimal 4 dots..What should i do? I need this very bad.
S0bes said:
smali - app is deodexed
no smali - there's an .odex file of .apk should be
to get smali folder inside apk you should deodex it. there're a lot of guides for different android versions available on xda
Click to expand...
Click to collapse
@S0bes
It still requires 4 dots to be joined any idea why?
do i have to clear cache or edit odex file?
TIA
Harsh.gundecha said:
@S0bes
It still requires 4 dots to be joined any idea why?
do i have to clear cache or edit odex file?
TIA
Click to expand...
Click to collapse
1)if your firmware is odexed then you have to replace odexed .apk with deodexed one and delete standalone .odex file from this folder (or even completely delete arm folder if you're on LL)
may be you should clear dalvik cache as well.
2)if you've completely deodexed your firmware and all apk and jar files on your phone have .dex file inside you should delete all standalone odex files from entire system. It means that you should delete .odex files from each folder inside /system/app and /system/priv-app/ and also delete boot.oat and boot.(forgot how to name it may be boot.art) from /system/framework or system/framework/arm because .oat file consist of .dex files.
if it still requires 4 dots, then pull out settings.apk from the phone and decompile it so you will see if the changes that you've made are still here cause may be you did smth wrong when you were building modified .apk file
S0bes said:
1)if your firmware is odexed then you have to replace odexed .apk with deodexed one and delete standalone .odex file from this folder (or even completely delete arm folder if you're on LL)
may be you should clear dalvik cache as well.
2)if you've completely deodexed your firmware and all apk and jar files on your phone have .dex file inside you should delete all standalone odex files from entire system. It means that you should delete .odex files from each folder inside /system/app and /system/priv-app/ and also delete boot.oat and boot.(forgot how to name it may be boot.art) from /system/framework or system/framework/arm because .oat file consist of .dex files.
if it still requires 4 dots, then pull out settings.apk from the phone and decompile it so you will see if the changes that you've made are still here cause may be you did smth wrong when you were building modified .apk file
Click to expand...
Click to collapse
@S0bes
i am on stock kk and as there also exists .odex files for all system apps so i guess its odexed (its moto g2 xt1068) stock ROM??(correct me if i am wrong)
so does it mean i will have to do all this deleting odex and some cleanup from system??
sorry if such noobish question irritates. xd
TIA
Harsh.gundecha said:
@S0bes
i am on stock kk and as there also exists .odex files for all system apps so i guess its odexed (its moto g2 xt1068) stock ROM??(correct me if i am wrong)
so does it mean i will have to do all this deleting odex and some cleanup from system??
sorry if such noobish question irritates. xd
TIA
Click to expand...
Click to collapse
yep, your rom is odexed and all you need is to delete settings.odex, replace settings.apk with modified !deodexed! one and may be clear dalvik cache (also set perm-s to the file after replacing).
if still system requires 4 dots then pull out your settings.apk, decompile it and share
Working
Can confirm that this still works on 5.1.1 Lollipop.
Tried this on Note 5 and it works.:good:

Categories

Resources