Related
this is the final method that will add reboot,recovery and download options
to the power menu updated 10/21/2010
============================================================
Step 1.
the first thing we need to do is add string and image resources to framwork-res
for this example I am using a stock JI6 ROM your resource id's will be different
if on another ROM
use apk_manager to decompile framework-res
open "values\strings.xml" and add our string resources
Code:
<string name="reboot_recovery">Recovery</string>
<string name="reboot_download">Download</string>
<string name="reboot">Reboot</string>
save and close
open "values\public.xml" and assign our strings resource id's
scroll until you get to the end of the "<public type="string"" id list
note the id of the last string, in this example it is "10403c2" sometimes
the id's are out of order so search for "10403c2 + 1" or "10403c3"
if the next id is unused then we can start assigning id's to the strings
we added.
Code:
<public type="string" name="reboot_recovery" id="0x010403c3" />
<public type="string" name="reboot_download" id="0x010403c4" />
<public type="string" name="reboot" id="0x010403c5" />
now is a good time to add the image resources so add your icons to
"res\drawable-hdpi"
and assign id's to them the same way we did for the strings
in this example, using the example icons in the zip file I had
Code:
<public type="drawable" name="reboot" id="0x010803aa" />
<public type="drawable" name="recovery" id="0x010803ab" />
<public type="drawable" name="download" id="0x010803ac" />
save and close
now framework-res has the resources needed for this mod use
apk_manager to compile.
============================================================
Step 2.
next we need to modify Samsung's shutdown method to accept 3 more options
so decompile framework and open "com\android\internal\app\ShutdownThread.smali"
since we are going to pass an integer to ShutdownThread and then evaluate
that integer when the code runs we have to have a spot for the integer so
add this to line 37
Code:
.field public static mReboot:I
then in method run at line 1463 add this code before "invoke-static {}, Landroid/os/Power;->shutdown()V"
Code:
sget v1, Lcom/android/internal/app/ShutdownThread;->mReboot:I
const/4 v2, 0x1
if-eq v1, v2, :reboot
const/4 v2, 0x2
if-eq v1, v2, :rebootRecovery
const/4 v2, 0x3
if-eq v1, v2, :rebootDownload
then after this code on about line 1477
Code:
.line 531
invoke-static {}, Landroid/os/Power;->shutdown()V
.line 532
return-void
add this code
Code:
:reboot
const-string v4, "now"
invoke-static {v4}, Landroid/os/Power;->reboot(Ljava/lang/String;)V
return-void
:rebootRecovery
const-string v4, "recovery"
invoke-static {v4}, Landroid/os/Power;->reboot(Ljava/lang/String;)V
return-void
:rebootDownload
const-string v4, "download"
invoke-static {v4}, Landroid/os/Power;->reboot(Ljava/lang/String;)V
return-void
save and close
compile framework
============================================================
Step 3.
now we are going to add the extra options to the power menu
decompile android.policy
open "com\android\internal\policy\impl\GlobalActions.smali"
the first thing that we need to do is increase the array length by 3
so in method createDialog on line 431 change this
Code:
const/4 v0, 0x3
new-array v0, v0, [Lcom/android/internal/policy/impl/GlobalActions$Action;
to this
Code:
const/4 v0, 0x6
new-array v0, v0, [Lcom/android/internal/policy/impl/GlobalActions$Action;
now add the new menu items this is where the resource id's that we added
to framework-res com into play so on line 457 after "aput-object v2, v0, v1"
add this code
Code:
const/4 v1, 0x3
new-instance v2, Lcom/android/internal/policy/impl/GlobalActions$7;
const v3, 0x10803aa # reboot icon resource id
const v4, 0x10403c5 # reboot string resource id
invoke-direct {v2, p0, v3, v4}, Lcom/android/internal/policy/impl/GlobalActions$7;-><init>(Lcom/android/internal/policy/impl/GlobalActions;II)V
aput-object v2, v0, v1
const/4 v1, 0x4
new-instance v2, Lcom/android/internal/policy/impl/GlobalActions$8;
const v3, 0x10803ab # recovery icon resource id
const v4, 0x10403c3 # recovery string resource id
invoke-direct {v2, p0, v3, v4}, Lcom/android/internal/policy/impl/GlobalActions$8;-><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$9;
const v3, 0x10803ac # download icon resource id
const v4, 0x10403c4 # download string resource id
invoke-direct {v2, p0, v3, v4}, Lcom/android/internal/policy/impl/GlobalActions$9;-><init>(Lcom/android/internal/policy/impl/GlobalActions;II)V
aput-object v2, v0, v1
make sure to change the resource id's to match what you added to to framework-res
save and close
next add the code that runs when the menu item is pressed
copy GlobalActions$3.smali and name it GlobalActions$7.smali
open GlobalActions$7 and replace all instances of GlobalActions$3
with GlobalActions$7 then add this code to line 52 before
"invoke-static {v0, v1}, Lcom/android/internal/app/ShutdownThread;->shutdown(Landroid/content/Context;Z)V"
Code:
const/4 v2, 0x1
sput v2, Lcom/android/internal/app/ShutdownThread;->mReboot:I
save and close
copy GlobalActions$3.smali and name it GlobalActions$8.smali
open GlobalActions$8 and replace all instances of GlobalActions$3
with GlobalActions$8 then add this code to line 52 before
"invoke-static {v0, v1}, Lcom/android/internal/app/ShutdownThread;->shutdown(Landroid/content/Context;Z)V"
Code:
const/4 v2, 0x2
sput v2, Lcom/android/internal/app/ShutdownThread;->mReboot:I
save and close
copy GlobalActions$3.smali and name it GlobalActions$9.smali
open GlobalActions$9 and replace all instances of GlobalActions$3
with GlobalActions$9 then add this code to line 52 before
"invoke-static {v0, v1}, Lcom/android/internal/app/ShutdownThread;->shutdown(Landroid/content/Context;Z)V"
Code:
const/4 v2, 0x3
sput v2, Lcom/android/internal/app/ShutdownThread;->mReboot:I
save and close
compile android.policy
done test on the phone.
flash the attached update.zip with the stock updater.
Anyway to get this in a flashable zip? I don't know how to decompile files
BabyBoi.JN said:
Anyway to get this in a flashable zip? I don't know how to decompile files
Click to expand...
Click to collapse
bump Bump bump please
Nice
Sent from my vibrant
BabyBoi.JN said:
Anyway to get this in a flashable zip? I don't know how to decompile files
Click to expand...
Click to collapse
I second that. I miss that option
where is policy file
how to decompile
i use ubuntu
thx
Sent from my SGH-T959 using XDA App
sounds like a great add-in if could be made flashable
adm1jtg said:
sounds like a great add-in if could be made flashable
Click to expand...
Click to collapse
Either that or a how to for dummies version
Sent from Vibrant Frankin Twiz Update3 JI2 modem.bin jac kernel with voodoo lagfix on XDA app with no fc's FINALLY!
daddysays said:
Either that or a how to for dummies version!
Click to expand...
Click to collapse
EXACTLY!!! That's what I need LOL
untermensch said:
someone asked for this so here it is.
decompile android.policy
make a copy of GlobalActions$3.smali and name it to GlobalActions$7.smali open GlobalActions$7.smali
and replace all instances of GlobalActions$3 with GlobalActions$7
replace method onPress with this
Code:
.method public onPress()V
.registers 3
const-string v0, "Reboot Now"
invoke-static {v0}, Landroid/os/Power;->reboot(Ljava/lang/String;)V
return-void
.end method
save and close
now open GlobalActions.smali
and in method createDialog
the first thing that we need to do is increase the array length by 1 so find this
Code:
const/4 v0, 0x3
new-array v0, v0, [Lcom/android/internal/policy/impl/GlobalActions$Action;
and change to
Code:
const/4 v0, 0x4
new-array v0, v0, [Lcom/android/internal/policy/impl/GlobalActions$Action;
next we add the new menu item so on line 457 we add this next bit of code after "aput-object v2, v0, v1"
Code:
const/4 v1, 0x3 # position in the menu array
new-instance v2, Lcom/android/internal/policy/impl/GlobalActions$7;
const v3, 0x1080030 # power icon
const v4, 0x10402af # reboot string
invoke-direct {v2, p0, v3, v4}, Lcom/android/internal/policy/impl/GlobalActions$7;-><init>(Lcom/android/internal/policy/impl/GlobalActions;II)V
aput-object v2, v0, v1
framework-res already has a string for reboot so no modifications are needed to framework-res
save and close then compile android.policy
Click to expand...
Click to collapse
Hi,
Thanks so much for this, absolutely fantastic work like always!
For anyone that doesn't know how to decompile/compile apk files search for either APK Manager, or smali/baksmali tutorial/help/etc., it should help you out greatly.
And for those that want a flashable .zip, well, here you go, BUT, I'm lazy, so it requires some conditions:
1) You use a rom based on JI6 that's fully deodexed
2) you have previously flashed (or your custom rom included) the epic/puzzle lockscreen mod (also from untermensch)
3) You disable voodoo (if you use it) prior to flashing since this zip attempts to wipe your dalvik-cache
That said, zip should flash fine from clockwork, and all it does is replace your android.policy.jar with one pre-modded for lockscreen & reboot option support, and it wipes your dalvik-cache since that's the safest thing to do after applying any mod, period.
Cheers, =)
s0niqu3 said:
Hi,
Thanks so much for this, absolutely fantastic work like always!
For anyone that doesn't know how to decompile/compile apk files search for either APK Manager, or smali/baksmali tutorial/help/etc., it should help you out greatly.
And for those that want a flashable .zip, well, here you go, BUT, I'm lazy, so it requires some conditions:
1) You use a rom based on JI6 that's fully deodexed
2) you have previously flashed (or your custom rom included) the epic/puzzle lockscreen mod (also from untermensch)
3) You disable voodoo (if you use it) prior to flashing since this zip attempts to wipe your dalvik-cache
That said, zip should flash fine from clockwork, and all it does is replace your android.policy.jar with one pre-modded for lockscreen & reboot option support, and it wipes your dalvik-cache since that's the safest thing to do after applying any mod, period.
Cheers, =)
Click to expand...
Click to collapse
I was just about to upload the zip...
Oh well, beat me to it
s0niqu3 said:
Hi,
Thanks so much for this, absolutely fantastic work like always!
For anyone that doesn't know how to decompile/compile apk files search for either APK Manager, or smali/baksmali tutorial/help/etc., it should help you out greatly.
And for those that want a flashable .zip, well, here you go, BUT, I'm lazy, so it requires some conditions:
1) You use a rom based on JI6 that's fully deodexed
2) you have previously flashed (or your custom rom included) the epic/puzzle lockscreen mod (also from untermensch)
3) You disable voodoo (if you use it) prior to flashing since this zip attempts to wipe your dalvik-cache
That said, zip should flash fine from clockwork, and all it does is replace your android.policy.jar with one pre-modded for lockscreen & reboot option support, and it wipes your dalvik-cache since that's the safest thing to do after applying any mod, period.
Cheers, =)
Click to expand...
Click to collapse
You sir are a gentleman and a scholar
b0ricuaguerrero said:
You sir are a gentleman and a scholar
Click to expand...
Click to collapse
lol,
Appreciate the thought, but wrong gender, =)
b0ricuaguerrero said:
You sir are a gentleman and a scholar
Click to expand...
Click to collapse
LOL perhaps you meant you maam are a babe and a diva. Either way thanks so much for this.
Very nice, thank's for sharing.
Looks like I'm disabling Voodoo once again.
great job. done
Sent from my SGH-T959 using XDA App
Fyi the reboot after install takes longer than after installing a new rom
Sent from my SGH-T959
Many thanks for the file!
...but because I'm lazy and if I'm reading the file poster's req's correctly her version requires I flash a lockscreen I don't currently have, would any Gentleman or Lady be kind enough to build a .zip file which will work on a Stock Vibrant JI6 install?
Thnx!
I just got done flashing and it works great ty
Sent from bionix 1.9.1 jacs oc/uv vodoo kernel
{TUTORIAL}[How To] 4-Way Reboot + Theminig MediaTeK Devices - MTK & Low End Device
Hello Everyone,
First Of All and Everything, Let me Thank Some People First To made it possible what I am posting Today.
Credits@iBotPeaches - Without Him Decompiling and Recompiling any apk is a dream. So we must thank him for this (ApkTool).
@Ticklefish - For His Wonderful Tool TMA. Just loving to work with that at ease,
@Adi Aisiteru Reborn - A Wonderful Person, Very Helpful and have so many nice guides to go through and learn.
@majdinj- A wonderful Guide to get 4-way reboot method.
@bombaybadboy - A nice person and a really a nice contributor to this community.
@joehanh88 - A Good Guide to follow and will help you in everything you do.
@akash akya- A good friend who helped me in doing some nice thing for MediaTek Device and So many guides are also by him to follow with.
@ XDA Forum - Can't Say anything, As Its my school and being a student I will never like to hear anything wrong related to it.
@ To All Other Dev Who Made It possible or If I am including anything from yours so please PM to mention your name in Credits. Please....
Now Let's Star With this Guide :-
-: Transparent Status bar & Notification Full Down:-
The Most Common thing to get first but then also a difficult thing to figure it out.
Decompile your SystemUI.apk and go to SystemUI/res/values--
So the First thing is Changing the "Drawables.xml" -
Find this
Code:
<item type="drawable" name="status_bar_background">#[COLOR=Red]3f000000[/COLOR]</item>
Change this RED Values with anything that you want to as accordingly with the HEX Color values.
Wait we are not done with that.
Now Copy these lines at the end of drawable before this line "</resources>"
Code:
<item type="drawable" name="notification_header_bg">#[COLOR=Red]88000000[/COLOR]</item>
<item type="drawable" name="notification_panel_bg">#[COLOR=Red]88000000[/COLOR]</item>
<item type="drawable" name="status_bar_bg_tile">#[COLOR=Red]00000000[/COLOR]</item>
Again Same Change RED values with what your need is.
Now Open "Colors.xml"
and change this line -
Code:
<color name="notification_panel_solid_background">#[COLOR=Red]3f000000[/COLOR]</color>
The Transparency Values are like :-
Code:
#00000000 - black with 100% transparency
#3F000000 - black with 75% transparency
#7F000000 - black with 50% transparency
#BF000000 - black with 25% transparency
Now You need to find some ".9.png" and delete it.
So Go to - SystemUI/res/drwable-hdpi (as per the resolution of your devices).
Notification_panel_bg.9.png
Status_bar_bg_tile.9.png
Notification_header_bg.9.png
Delete this image where ever you find it in your SystemUI.apk
"Notification_panel_bg.9.png"
Deleting this will give you your notification panel transparency.
Now Lets Move To Editing Smali. So now go to SystemUI/smali/com/android/systemui/statusbar/phone/
And Open "PhoneStatusBar$FastColorDrawable.smali"
Find this
Code:
.parameter "canvas"
And in that method change this line
Code:
iget v0, p0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar$FastColorDrawable;->mColor:I
To This
Code:
const v0, 0x[COLOR=Red]00000000[/COLOR]
. Again change RED to the transparency level to suit your need.
Now Decompile your "android.policy.jar"
And go to android.poliy.jar.out/smali/com/android/internal/policy/impl/---
Open "PhoneWindowManager.smali"
There do like mentioned below.
Delete RED Lines
Code:
.line 2627 ------*******
iget v0, p0, Lcom/android/internal/policy/impl/PhoneWindowManager;->mSystemBottom:I
iput v0, p1, Landroid/graphics/Rect;->bottom:I ------ Find This line.
[COLOR=Red]
.line 3061
iget-object v0, p0, Lcom/android/internal/policy/impl/PhoneWindowManager;->mStatusBar:Landroid/view/WindowManagerPolicy$WindowState;
if-eqz v0, :cond_1b
iget-object v0, p0, Lcom/android/internal/policy/impl/PhoneWindowManager;->mStatusBar:Landroid/view/WindowManagerPolicy$WindowState;
invoke-interface {v0}, Landroid/view/WindowManagerPolicy$WindowState;->getSurfaceLayer()I
move-result v0
.line 3063
:goto_1a
return v0
.line 3062
:cond_1b
iget-object v0, p0, Lcom/android/internal/policy/impl/PhoneWindowManager;->mNavigationBar:Landroid/view/WindowManagerPolicy$WindowState;
if-eqz v0, :cond_26
iget-object v0, p0, Lcom/android/internal/policy/impl/PhoneWindowManager;->mNavigationBar:Landroid/view/WindowManagerPolicy$WindowState;
invoke-interface {v0}, Landroid/view/WindowManagerPolicy$WindowState;->getSurfaceLayer()I
move-result v0
goto :goto_1a
[/COLOR]
.line 3063 ------- *****This line number can be different in yours .
:cond_26
const/4 v0, 0x0
[COLOR=Blue]goto :goto_1a[/COLOR] -------- Change this to "[COLOR=Blue]return v0[/COLOR]"
.end method
Make Sure that the line marked with "******" will have a difference of 3.
So After Doing this it will look like this
Code:
.line 2627
iget v0, p0, Lcom/android/internal/policy/impl/PhoneWindowManager;->mSystemBottom:I
iput v0, p1, Landroid/graphics/Rect;->bottom:I
.line 2630
:cond_1
const/4 v0, 0x0
return v0
.end method
Now Recompile your SystemUI.apk & android.policy.jar and flash it.
4-Way Reboot Menu - Thanks to majdinj sir
Decompile Your "android.policy.jar"
Go To android.poliy.jar.out/smali/com/android/internal/policy/impl/
Open GlobalActions$3.smali and find this-***
Code:
invoke-interface {v0, v1}, Landroid/view/WindowManagerPolicy$WindowManagerFuncs;->reboot(Z)V
If its there then proceed and if not then find above line in all files with name "GlobalActions$#.smali" where "#" will be number.
Ok you find that so lets proceed.
Now in the same folder open "GlobalActions.smali"
And Change the lines (There will be two lines only) -
Code:
Lcom/android/internal/policy/impl/GlobalActions$3
Please Note :- You have to find the number same as in which you find the above *** mentioned lines.
So please make sure for this.
Now Change the "3" or "#" to "99" where "#" is the number in which you find the *** lines.
Done That.
Now Open - "GlobalActions$SinglePressAction.smali"
And Do like given -
Add the BLUE lines in that like its given below
Code:
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lcom/android/internal/policy/impl/GlobalActions;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x40a
name = "SinglePressAction"
.end annotation
[COLOR=Blue][COLOR=Black] -----------------------Make Sure the gap will be of 2(two) lines[/COLOR]
# static fields
.field protected static rebootMode:I
.field protected static final rebootOptions:[Ljava/lang/String;[/COLOR]
[COLOR=Blue][COLOR=Black] -----------------------Make Sure the gap will be of 2(two) lines[/COLOR][/COLOR]
# instance fields
.field private final mIcon:Landroid/graphics/drawable/Drawable;
Now Find "#direct methods"
and paste these lines just after this and whithout any gap between "#direct methods" and the lines you pasted.
Code:
.method static constructor <clinit>()V
.registers 3
const/4 v0, 0x4
new-array v0, v0, [Ljava/lang/String;
const/4 v1, 0x0
const-string v2, "Normal Reboot"
aput-object v2, v0, v1
const/4 v1, 0x1
const-string v2, "Soft Reboot"
aput-object v2, v0, v1
const/4 v1, 0x2
const-string v2, "Hard Reboot"
aput-object v2, v0, v1
const/4 v1, 0x3
const-string v2, "Recovery"
aput-object v2, v0, v1
sput-object v0, Lcom/android/internal/policy/impl/GlobalActions$SinglePressAction;->rebootOptions:[Ljava/lang/String;
return-void
.end method
Now Download the given zip file and extract it. Copy all the files of the zip to -
"android.poliy.jar.out/smali/com/android/internal/policy/impl/ here" (here=files downloaded from this guide).
Done That. Now Recompile it and Flash it. Make sure to make a backup before you flash any MOD.
You Successfully Modded these things then Don't Forget To Hit "THANKS" Button for all the persons mentioned in the "CREDITS" section and to Me Also p) and Rate This Thread 5 star.
If you Got in Trouble then post it here. I will be there to help you out. I work as machine but very Unfortunate to say that I am also a human being and I too have Office work, personal life, friends, families, etc. So please have patience. The Time I will see your post, I promise, I will try my best to help you out.
Need More Guides- Find those in post #3.
Want To See My Contributions [ SuperDroid-BOND ]
Though I know, I haven't contributed much to the Community, but here are few of my Works:-
Older Ones (Till 2015)
External Apps Modded :-
SlimKat Camera for CM11 & CM12 ROMs
ROM :-
TURBO-Zet™ ROM for Micromax A110
SLT-Nexus-TSUNAMI for Micromax A110
SLT-HYBRID-Rainbow for Micromax A110
RECOVERY :-
Carliv Touch Recovery & CWM Recovery 6.0.4.0 for Micromax A110 | Cynus T2 | Wiko Cing King
Cannibal Open Touch [COT] Recovery for Micromax A110 | Cynus T2 | Wiko Cing King
MODS :-
1) Sony Xperia Small App For 4.2.2
2) Sony Small Apps For 4.1.1
3) The Hybrid-UI MOD
4) The Transparency MOD
5) The Lockscreen MOD
GUIDES :-
1) The Power Menu + Screenshot GUIDE
2) The 4-Way Reboot Menu Guide
3) The Extra Theme to Device and Moving Toggles to Bottom
#@# My Dev-Host Account
Newer Ones [Since 2017]
MODs :-
1) Sultan SnapCam
ROMs :-
1) Vanir AOSP for OnePlus 3/T Unified
2) ColtOS for OnePlus 3/T Unified
Usefull Links - For MediaTek Buddies & Other Low End Devices
1) MTK Referrence Thread By @akash akya
2) Moving Toggles To the Bottom of Pull Down Menu By BOND1987.
More Will be Added After wards. Just Have Patience......:victory::victory::victory:
BOND1987 said:
1) MTK Referrence Thread By @akash akya
2) Moving Toggles To the Bottom of Pull Down Menu By BOND1987.
More Will be Added After wards. Just Have Patience......:victory::victory::victory:
Click to expand...
Click to collapse
good one... :good:
small tip, also make sure in dimensions (res/values/dimen.xml) :
Code:
<item type="dimen" name="status_bar_icon_drawing_alpha">100.0%</item>
else transparency look bit odd...
Nice work m8 and a well put together guide, here is your first 5☆ :thumbup:
Sent from my GT-I9100 using xda premium
bombaybadboy said:
Nice work m8 and a well put together guide, here is your first 5☆ :thumbup:
Sent from my GT-I9100 using xda premium
Click to expand...
Click to collapse
All of your works sir but with MTK modification.
akash akya said:
good one... :good:
small tip, also make sure in dimensions (res/values/dimen.xml) :
Code:
<item type="dimen" name="status_bar_icon_drawing_alpha">100.0%</item>
else transparency look bit odd...
Click to expand...
Click to collapse
Will add that also brother. I know it's auto dimming feature by "daxgirl".
""Hitting Thanks Don't Cost You Anything, then, Why You All Are Getting Bothered in Doing So. Hitting Thanks Increases My Motivation to Work for this Community....""
Hi Bond, Very nice guide.. Now i'll also give it a try.. :good:
Implementing Auto-Close SystemUI feature
@ Devs @BOND1987 , @akash akya ,
There is no need to edit any thing else but only systemuiservice.smali.....
I have taken these resources from Suvi v12 rom by bsuhas. So actual credits to bsuhas
Just Replace your entire OnClick Method by the below method:-
Code:
[B][COLOR="black"].method public [COLOR="red"]SettingsButton[/COLOR](Landroid/view/View;)V
.locals 3
.parameter "v"
.prologue
.line 2431
new-instance v0, Landroid/content/Intent;
invoke-direct {v0}, Landroid/content/Intent;-><init>()V
.line 2432
const-string v1, "[COLOR="Red"]com.android.settings[/COLOR]"
const-string v2, "[COLOR="red"]com.android.settings.Settings[/COLOR]"
invoke-virtual {v0, v1, v2}, Landroid/content/Intent;->setClassName(Ljava/lang/String;Ljava/lang/String;)Landroid/content/Intent;
const/high16 v2, 0x1000
invoke-virtual {v0, v2}, Landroid/content/Intent;->setFlags(I)Landroid/content/Intent;
move-result-object v0
.line 2433
invoke-virtual {p0, v0}, Landroid/content/Context;->startActivity(Landroid/content/Intent;)V
const-string v1, "statusbar"
invoke-virtual {p0, v1}, Landroid/content/Context;->getSystemService(Ljava/lang/String;)Ljava/lang/Object;
move-result-object v0
check-cast v0, Landroid/app/StatusBarManager;
[COLOR="red"]invoke-virtual {v0}, Landroid/app/StatusBarManager;->collapse()V[/COLOR]
.line 1720
return-void
.end method[/COLOR][/B]
and then make the following changes
* replace red ones with the following -
in the 1st line, give any name to the button u want to define . eg:- .method public ProfileButton(Landroid/view/ViewV
in const-string v1, " * put target class name here*
in const - string v2, " * put the target class name as well as an activity to call it *
for eg:-
in const - string v1 ----- target class is to call the complete app ---------> com.android.contacts
and in const - string v2 ----- add package name + an activity to call it --------> com.android.contacts.activities.PeopleActivity
Lets take an example for defining a method and calling it . i'll call Settings here
Code:
.method public [COLOR="red"]settingsButton[/COLOR](Landroid/view/View;)V
.locals 3
.parameter "v"
.prologue
.line 2431
new-instance v0, Landroid/content/Intent;
invoke-direct {v0}, Landroid/content/Intent;-><init>()V
.line 2432
const-string v1, "[COLOR="red"]com.android.settings[/COLOR]"
const-string v2, "[COLOR="red"]com.android.settings.Settings[/COLOR]"
invoke-virtual {v0, v1, v2}, Landroid/content/Intent;->setClassName(Ljava/lang/String;Ljava/lang/String;)Landroid/content/Intent;
const/high16 v2, 0x1000
invoke-virtual {v0, v2}, Landroid/content/Intent;->setFlags(I)Landroid/content/Intent;
move-result-object v0
.line 2433
invoke-virtual {p0, v0}, Landroid/content/Context;->startActivity(Landroid/content/Intent;)V
const-string v1, "statusbar"
invoke-virtual {p0, v1}, Landroid/content/Context;->getSystemService(Ljava/lang/String;)Ljava/lang/Object;
move-result-object v0
check-cast v0, Landroid/app/StatusBarManager;
invoke-virtual {v0}, Landroid/app/StatusBarManager;->collapse()V
.line 1720
return-void
.end method
after this we have to call it on clicking a tile . so lets define it in the quickpanel_quick_settings_space.xml
Add this wherever you want the tile to appear .
Code:
<RelativeLayout android:id="@id/settings_button" android:background="@drawable/tile_toggle" android:layout_width="125.0px" android:layout_height="150.0px" android:layout_weight="1.0">
<Button android:layout_gravity="center_horizontal" android:background="@drawable/set" android:layout_width="wrap_content" android:layout_height="wrap_content" [COLOR="Red"][SIZE="4"]android:onClick="settingsButton"[/SIZE][/COLOR] />
<TextView android:textSize="14.0dip" android:textColor="#ffffffff" android:gravity="center" android:background="#00000000" android:layout_width="240.0px" android:layout_height="wrap_content" android:layout_marginBottom="3.0px" android:text="Settings" android:singleLine="true" android:layout_alignParentBottom="true" />
</RelativeLayout>
Video to Confirm it working. :highfive:
Sorry if the above explaination is too long :fingers-crossed::fingers-crossed:
easy & nice tut...
@BOND1987
-: Transparent Status bar & Notification Full Down:-
Click to expand...
Click to collapse
4-Way Reboot Menu - Thanks to majdinj sir
Click to expand...
Click to collapse
I've successfully made my own transparent statusbar & 4 way rebooter according to ur guide & works very charm on my stock deodex rom.
thanks alot bro... :good::good:
1 question: how to increase statusbar height?
sir
recovery reboot doesn't work please help
Hi, I tried the 4-way reboot menu and it just replaced the shutdown function on the dialog box. It says reboot, but when I tap it, phone shutsdown. I'm on MT6575 running GB 2.3.6 which doesn't have reboot/restart function.
iZLeeP said:
Hi, I tried the 4-way reboot menu and it just replaced the shutdown function on the dialog box. It says reboot, but when I tap it, phone shutsdown. I'm on MT6575 running GB 2.3.6 which doesn't have reboot/restart function.
Click to expand...
Click to collapse
OK brother,
Upload you android policy. Jar and I'll try to solve this in my free time.
WinchyHanepp said:
recovery reboot doesn't work please help
Click to expand...
Click to collapse
Brother,
Regarding your problem, I asked my ""MAGIC BOWL"" that what's the problem, but....
Come on Guys,
I'm not a astrologer to judge what's gone wrong. I need logs and apps for checking what's the problem.
Sent from my A110 using Tapatalk
SuperDroid-BOND said:
OK brother,
Upload you android policy. Jar and I'll try to solve this in my free time.
Attached file as requested. Thanks mate.
Click to expand...
Click to collapse
Hey @SuperDroid-BOND sir... I tried for transparency but when i recompile the apk then gets this error.. Please can you help me.. Hope you will help me..
See error here :::-
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
Abhinav_Rocks said:
Hey @SuperDroid-BOND sir... I tried for transparency but when i recompile the apk then gets this error.. Please can you help me.. Hope you will help me..
See error here :::-
Click to expand...
Click to collapse
Brother,
You have mentioned notification_header_bg two times in your drawable.xml inside the values folder.
Try deleting it. It will recompile easily.
Sent from my A110 using Tapatalk
SuperDroid-BOND said:
Brother,
You have mentioned notification_header_bg two times in your drawable.xml inside the values folder.
Try deleting it. It will recompile easily.
Sent from my A110 using Tapatalk
Click to expand...
Click to collapse
No sir.. Its only one time, See ::
Abhinav_Rocks said:
No sir.. Its only one time, See ::
Click to expand...
Click to collapse
If it's not there then how apktool is giving it's entries 2 times at line number 3 and 14.
If it's not there then get to compile it and if error occurs then give screenshot of the full error.
Sent from my A110 using Tapatalk
SuperDroid-BOND said:
If it's not there then how apktool is giving it's entries 2 times at line number 3 and 14.
If it's not there then get to compile it and if error occurs then give screenshot of the full error.
Sent from my A110 using Tapatalk
Click to expand...
Click to collapse
Sorry sir i m doing mistake.. really sorry.. mistake is that you say.. sorry again.. and now SystemUI.apk is recompiling done..
But in jar file recompiling this error, please help me out ::-
Here is my android.policy.jar file ::- Download
---------- Post added at 01:46 AM ---------- Previous post was at 12:54 AM ----------
Now trying once again.. working awesome.. Thanks a lot bro.. I m beginner and you are GURU of mine and i m CHELA.. I have learn so much from you.. Thanks again sir for this awesome thread with simple steps..
---------- Post added at 02:41 AM ---------- Previous post was at 01:46 AM ----------
Sir.. Can you please tell me whats the work of these lines.. please sir.. and check screen that i m right or wrong..?? If i m wrong then please guide me.. Thanks in advance sir..
Sir please reply.. its only take 2 mint.. Please..
SuperDroid /QUOTE said:
..\Decompiled_jar\android.policy\com\android\internal\policy\impl\GlobalActions$99$1.smali[27,4] Error for input '.parameter': Invalid directive
..\Decompiled_jar\android.policy\com\android\internal\policy\impl\GlobalActions$99$1.smali[42,4] Error for input '.parameter': Invalid directive
..\Decompiled_jar\android.policy\com\android\internal\policy\impl\GlobalActions$99$1.smali[43,4] Error for input '.parameter': Invalid directive
..\Decompiled_jar\android.policy\com\android\internal\policy\impl\GlobalActions$99$1.smali[42,15] mismatched input '"dialog"' expecting END_METHOD_DIRECTIVE
..\Decompiled_jar\android.policy\com\android\internal\policy\impl\GlobalActions$99.smali[78,4] Invalid literal value: 260. Low 16 bits must be zeroed out.
hmmm any advice?
Click to expand...
Click to collapse
Hello Everyone,
Here, being on XDA, is like learning new things in a school and getting project homework on daily basis. And Speaking for this, I really like it.
So here is the project that I cleared today morning at around 4.30 AM IST (Indian Standard Time).
But before beginning for project let me THANK few IDOLS of XDA.
@tdunham - You are the master of Power menu Sir. Compared files with your guide. @Adi Aisiteru Reborn - The GOD of MOD & Guides for CM / AOSP / AOKP @ankurbata- For the files I used for comparing.
@Dzol Cp- You are the One brother who taught me these things.
@bombaybadboy-Awesome Thread by You Sir. Got everything working whenever I take help from your thread.
@Goldieking- For helping me in rectifying error.
@Ticklefish- Awesome and Simplest tool for Themers and noobs like me.
@My Wife - My Life's Companion, Dearest Friend, My Love & Encouragement. I love you Sweet-Heart. @Xda Forum- The School for New born Techie child like me.
Before beginning to this guide, please make sure that you followed this guide by tdunham line by line and you failed doing so.
I tried this on my Stock ROMs and Other ported ROMs of My Device forum and got this working.
PART-1
1st Step:-
Decompile Your framework-res.apk and go to - res/value/strings.xml
add this line at the end.
Code:
<string name="global_action_screenshot_txt">Screenshot</string>
<string name="global_action_recovery_txt">BOND Recovery</string>
And add the png attached in this thread to - res/value/drawable-hdpi/mdpi/xhdpi (any one folder you can choose to add the images as according to your device resolution).
Step-2
Now recompile the framework-res.apk and then again decompile the newly compiled framework-res.apk
Then go to - res/values/public.xml and leave it open.
PART-2
Step-1
Now Decompile your stock "android.policy.jar" and add the attached "android.policy" files to - "android.policy.jar\smali\com\android\internal\policy\impl"
Now open GlobalActions.smali.
and find this lines.
Code:
.field private mRingerModeReceiverRegistered:Z
Just below this line make space for a line just like as its there (One space above the line & One space below)
Then Add these lines
Code:
.field mScreenshotConnection:Landroid/content/ServiceConnection;
.field final mScreenshotLock:Ljava/lang/Object;
.field final mScreenshotTimeout:Ljava/lang/Runnable;
Now find this line
Code:
iput-object v4, p0, Lcom/android/internal/policy/impl/GlobalActions;->mAirplaneState:Lcom/android/internal/policy/impl/GlobalActions$ToggleAction$State;
Add these line below that.
Code:
.line 315
new-instance v4, Ljava/lang/Object;
invoke-direct {v4}, Ljava/lang/Object;-><init>()V
iput-object v4, p0, Lcom/android/internal/policy/impl/GlobalActions;->mScreenshotLock:Ljava/lang/Object;
.line 317
const/4 v4, 0x0
iput-object v4, p0, Lcom/android/internal/policy/impl/GlobalActions;->mScreenshotConnection:Landroid/content/ServiceConnection;
.line 318
new-instance v4, Lcom/android/internal/policy/impl/GlobalActions$12;
invoke-direct {v4, p0}, Lcom/android/internal/policy/impl/GlobalActions$12;-><init>(Lcom/android/internal/policy/impl/GlobalActions;)V
iput-object v4, p0, Lcom/android/internal/policy/impl/GlobalActions;->mScreenshotTimeout:Ljava/lang/Runnable;
Now Find This line -
Code:
.method static synthetic access$1800(Lcom/android/internal/policy/impl/GlobalActions;)V
.locals 0
.parameter "x0"
.prologue
.line 68
invoke-direct {p0}, Lcom/android/internal/policy/impl/GlobalActions;->handleShow()V
return-void
.end method
And Add the line below end method.
Code:
.method static synthetic access$1900(Lcom/android/internal/policy/impl/GlobalActions;)V
.locals 0
.parameter "x0"
.prologue
.line 64
invoke-direct {p0}, Lcom/android/internal/policy/impl/GlobalActions;->takeScreenshot()V
return-void
.end method
Now find this line
Code:
invoke-direct {v2, v0, v3, v4}, Lcom/android/internal/policy/impl/GlobalActions$3;-><init>(Lcom/android/internal/policy/impl/GlobalActions;II)V
And add this line below this method and above the line starting with-".line XXX"
Code:
.line 232
move-object/from16 v0, p0
iget-object v1, v0, Lcom/android/internal/policy/impl/GlobalActions;->mItems:Ljava/util/ArrayList;
new-instance v2, Lcom/android/internal/policy/impl/GlobalActions$11;
const v3, 0x1080691 [COLOR=Lime]<-------- This is the ID of "bond_screenshot"[/COLOR]
const v4, 0x1040516 [COLOR=Red] <-------- This is the ID of "global_action_screenshot_txt"[/COLOR]
move-object/from16 v0, p0
invoke-direct {v2, v0, v3, v4}, Lcom/android/internal/policy/impl/GlobalActions$11;-><init>(Lcom/android/internal/policy/impl/GlobalActions;II)V
invoke-virtual {v1, v2}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z
move-object/from16 v0, p0
iget-object v1, v0, Lcom/android/internal/policy/impl/GlobalActions;->mItems:Ljava/util/ArrayList;
new-instance v2, Lcom/android/internal/policy/impl/GlobalActions$14;
const v3, 0x1080692[COLOR=Lime] <-------- This is the ID of "bond_recovery"[/COLOR]
const v4, 0x1040517 [COLOR=Red]<-------- This is the ID of "global_action_recovery_txt"[/COLOR]
move-object/from16 v0, p0
invoke-direct {v2, v0, v3, v4}, Lcom/android/internal/policy/impl/GlobalActions$14;-><init>(Lcom/android/internal/policy/impl/GlobalActions;II)V
invoke-virtual {v1, v2}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z
Now Find this line--
Code:
# virtual methods
And add this lines just above it with gap of 2(two) Space between "end method" & "Virtual methods"
Code:
.method private takeScreenshot()V
.locals 8
.prologue
.line 330
iget-object v4, p0, Lcom/android/internal/policy/impl/GlobalActions;->mScreenshotLock:Ljava/lang/Object;
monitor-enter v4
.line 331
:try_start_0
iget-object v3, p0, Lcom/android/internal/policy/impl/GlobalActions;->mScreenshotConnection:Landroid/content/ServiceConnection;
if-eqz v3, :cond_0
.line 332
monitor-exit v4
.line 391
:goto_0
return-void
.line 334
:cond_0
new-instance v0, Landroid/content/ComponentName;
const-string v3, "com.android.systemui"
const-string v5, "com.android.systemui.screenshot.TakeScreenshotService"
invoke-direct {v0, v3, v5}, Landroid/content/ComponentName;-><init>(Ljava/lang/String;Ljava/lang/String;)V
.line 336
.local v0, cn:Landroid/content/ComponentName;
new-instance v2, Landroid/content/Intent;
invoke-direct {v2}, Landroid/content/Intent;-><init>()V
.line 337
.local v2, intent:Landroid/content/Intent;
invoke-virtual {v2, v0}, Landroid/content/Intent;->setComponent(Landroid/content/ComponentName;)Landroid/content/Intent;
.line 338
new-instance v1, Lcom/android/internal/policy/impl/GlobalActions$BondB;
invoke-direct {v1, p0}, Lcom/android/internal/policy/impl/GlobalActions$BondB;-><init>(Lcom/android/internal/policy/impl/GlobalActions;)V
.line 386
.local v1, conn:Landroid/content/ServiceConnection;
iget-object v3, p0, Lcom/android/internal/policy/impl/GlobalActions;->mContext:Landroid/content/Context;
const/4 v5, 0x1
invoke-virtual {v3, v2, v1, v5}, Landroid/content/Context;->bindService(Landroid/content/Intent;Landroid/content/ServiceConnection;I)Z
move-result v3
if-eqz v3, :cond_1
.line 387
iput-object v1, p0, Lcom/android/internal/policy/impl/GlobalActions;->mScreenshotConnection:Landroid/content/ServiceConnection;
.line 388
iget-object v3, p0, Lcom/android/internal/policy/impl/GlobalActions;->mHandler:Landroid/os/Handler;
iget-object v5, p0, Lcom/android/internal/policy/impl/GlobalActions;->mScreenshotTimeout:Ljava/lang/Runnable;
const-wide/16 v6, 0x2710
invoke-virtual {v3, v5, v6, v7}, Landroid/os/Handler;->postDelayed(Ljava/lang/Runnable;J)Z
.line 390
:cond_1
monitor-exit v4
goto :goto_0
.end local v0 #cn:Landroid/content/ComponentName;
.end local v1 #conn:Landroid/content/ServiceConnection;
.end local v2 #intent:Landroid/content/Intent;
:catchall_0
move-exception v3
monitor-exit v4
:try_end_0
.catchall {:try_start_0 .. :try_end_0} :catchall_0
throw v3
.end method
Few Things to remeber:-
1) The ID's Need to be Same as in public.xml or else boot loop will shake your hands.
2) The register values like - v0,v1,v2.... need to be managed like what it is in your GlobalActions.smali. For the Comparison I have attached My-GlobalActions.smali for comparison.
Just change the extention from zip to smali.
3) I am also human and will be here after my daily life. So please have patience. I will try to get you out of your problem, if and only if you have a adb logcat.
4) If you find any difficulties then post it in the thread.
The Results after successful completion of this will be same as screenshot.
http://dl.xda-developers.com/attach.../7/6/5/2/2/Screenshot_2013-08-09-02-00-21.jpg
Last But Not Least - Don't get bothered to hit thanks. It will not cost you anything but will surely increase my courage to work and try new things.
Awesome Guide My Brother!!
Happy Eid Mubarak to You and rest of your family
Dzol Cp said:
Awesome Guide My Brother!!
Happy Eid Mubarak to You and rest of your family
Click to expand...
Click to collapse
Thanks a lot brother...
Happy EID to you and The whole XDA family of ours brother...
"""Hitting Thanks Don't Cost You Anything So Why Don't You Try Hitting It......."""
Sent From Mind Blowing Canvas Using SUVI-Heart Rom.....<3<3<3
"Happy EID to you all and the whole XDA Family "
Hey, i want to ask something. What is the meaning of line 315 on this ".line315 new-instance v4, Ljava/lang/Object;"? Sorry, just want to know a bit java programming Thanks for your help
i manage to make it bro..sadly after pressing screenshot my phone reboots..but recovery is working just fine..great tut..
BOND1987 said:
Thanks a lot brother...
Happy EID to you and The whole XDA family of ours brother...
"""Hitting Thanks Don't Cost You Anything So Why Don't You Try Hitting It......."""
Sent From Mind Blowing Canvas Using SUVI-Heart Rom.....<3<3<3
Click to expand...
Click to collapse
I did as your followers. click on the menu button to display the power source immediately my phone reboot
Looking forward to your help
vuong95vjpboy said:
I did as your followers. click on the menu button to display the power source immediately my phone reboot
Looking forward to your help
Click to expand...
Click to collapse
Upload you global actions.smali and public.xml of framework....
"" Hitting Thanks Will Not Cost You Anything, So, Why Don't You Try Hitting It Once.....""
Sent While Checking The "AMOI 4.2.2 Beast".....
BOND1987 said:
Upload you global actions.smali and public.xml of framework....
"" Hitting Thanks Will Not Cost You Anything, So, Why Don't You Try Hitting It Once.....""
Sent While Checking The "AMOI 4.2.2 Beast".....
Click to expand...
Click to collapse
Hi sir, my GlobalActions.smali has different with your file, so i dont know put the code in what line
Can you help me? I attach my original GlobalActions.smali, can you mod the code help me? Thanks!
The id in my framework is:
Code:
<public type="drawable" name="bond_recovery" id="0x010805ef" />
<public type="drawable" name="bond_screenshot" id="0x010805f0" />
<public type="string" name="global_action_screenshot_txt" id="0x010404d5" />
<public type="string" name="global_action_recovery_txt" id="0x010404d6" />
My phone was use MTK chipset, ICS 4.0.4. Here is my power menu screenshot
Thanks!
^
^
@BOND1987 Can you help me sir? Thanks!
sieuan said:
^
^
@BOND1987 Can you help me sir? Thanks!
Click to expand...
Click to collapse
Yes brother,
Of course I'll help you. Yesterday night I corrupted my windows so brother you have to wait for today and tomorrow I'll do this for you.
BOND1987 said:
Yes brother,
Of course I'll help you. Yesterday night I corrupted my windows so brother you have to wait for today and tomorrow I'll do this for you.
Click to expand...
Click to collapse
Thanks sir!
After follow the guide in this thread: http://forum.xda-developers.com/showthread.php?t=2225970, I succes add 3-Way boot to Power Menu, and it work good
Before:
After:
Now, can you help me add screenshot option into Power Menu, sir? Here is my GlobalActions.smali. Thanks!
sieuan said:
Thanks sir!
After follow the guide in this thread: http://forum.xda-developers.com/showthread.php?t=2225970, I succes add 3-Way boot to Power Menu, and it work good
Before:
After:
Now, can you help me add screenshot option into Power Menu, sir? Here is my GlobalActions.smali. Thanks!
Click to expand...
Click to collapse
I absolutely love your set up. What ROM / Theme is that?
babalonius508 said:
I absolutely love your set up. What ROM / Theme is that?
Click to expand...
Click to collapse
A Vietnamese ROM, for a Chinese phone, modify by me with light holo theme, apex launcher and miui v5 icon pack.
That's a very cool setup! Thanks!
I can't seem to open the GlobalActions.smali in the OP for comparison because it says its corrupt? Any one else have this problem?
babalonius508 said:
That's a very cool setup! Thanks!
I can't seem to open the GlobalActions.smali in the OP for comparison because it says its corrupt? Any one else have this problem?
Click to expand...
Click to collapse
Brother,
Change the extension of zip to .Smali.
Or try opening with notepad++ and you will be able to coordinate with the guide as well.
If you get any problems further to this, just let me know by post it in this thread.
BOND1987 said:
Brother,
Change the extension of zip to .Smali.
Or try opening with notepad++ and you will be able to coordinate with the guide as well.
If you get any problems further to this, just let me know by post it in this thread.
Click to expand...
Click to collapse
Thanks a lot man! I missed that part of the instructions. Does this modification work for all devices?
babalonius508 said:
Thanks a lot man! I missed that part of the instructions. Does this modification work for all devices?
Click to expand...
Click to collapse
I think brother,
Other than TouchWiz, it will work on all AOSP based devices. Though I'm not sure for this but you can try. If you are in trouble, just let me know.
BOND1987 said:
I think brother,
Other than TouchWiz, it will work on all AOSP based devices. Though I'm not sure for this but you can try. If you are in trouble, just let me know.
Click to expand...
Click to collapse
Thank you for all your help!
For some reason, after I finish the modification, I hold the power button and my phone just reboots. I'm not sure what I'm doing wrong.
Here is my framework-res.apk: https://db.tt/xy0QGFiH
And my androidpolicy.jar: https://db.tt/IOe6JAkn
And a logcat: https://db.tt/EiN6Qcot
Thank you again!
babalonius508 said:
Thank you for all your help!
For some reason, after I finish the modification, I hold the post menu and my phone just reboots. I'm not sure what I'm doing wrong.
Here is my framework-res.apk: https://db.tt/xy0QGFiH
And my androidpolicy.jar: https://db.tt/IOe6JAkn
And a logcat: https://db.tt/EiN6Qcot
Thank you again!
Click to expand...
Click to collapse
Brother,
Give me 24 hours only to take look on your files. And I will revert you back as soon as possible. Thanks for posting it here. I appreciate your support brothers.
That sounds great! Thank you! I really hope I can get it working.
Sent from my Nexus 4
hi guys,
anyone an idea to disable (hack, apk, ...) the wifi popup notification whenever wifi is connected.
This drives me crazy ...
This notification is absolutely senseless, when connection is on i see it in the notification bar ...
I found a description but only for S III Verizon.
JackoMJ
JackoMJ said:
hi guys,
anyone an idea to disable (hack, apk, ...) the wifi popup notification whenever wifi is connected.
This drives me crazy ...
This notification is absolutely senseless, when connection is on i see it in the notification bar ...
I found a description but only for S III Verizon.
JackoMJ
Click to expand...
Click to collapse
Hi! Try this:
- decompile secsettings.apk
- go to file "smali\com\android\settings\wifi\WifiStatusReceiver.smali"
- open in notepad++ and find this code:
Code:
.line 194
invoke-virtual {v3}, Landroid/widget/Toast;->getView()Landroid/view/View;
move-result-object v1
const v4, 0x102000b
invoke-virtual {v1, v4}, Landroid/view/View;->findViewById(I)Landroid/view/View;
move-result-object v1
check-cast v1, Landroid/widget/TextView;
.line 195
const/16 v4, 0x11
invoke-virtual {v1, v4}, Landroid/widget/TextView;->setGravity(I)V
.line 196
[COLOR="Red"]invoke-virtual {v3}, Landroid/widget/Toast;->show()V[/COLOR]
goto :goto_1a3
And change it to (just add # before it):
Code:
[COLOR="Red"]#invoke-virtual {v3}, Landroid/widget/Toast;->show()V[/COLOR]
Thats all - save, recompile, copy to phone, restart and hope
somin.n said:
Hi! Try this:
- decompile secsettings.apk
- go to file "smali\com\android\settings\wifi\WifiStatusReceiver.smali"
- open in notepad++ and find this code:
Code:
.line 194
invoke-virtual {v3}, Landroid/widget/Toast;->getView()Landroid/view/View;
move-result-object v1
const v4, 0x102000b
invoke-virtual {v1, v4}, Landroid/view/View;->findViewById(I)Landroid/view/View;
move-result-object v1
check-cast v1, Landroid/widget/TextView;
.line 195
const/16 v4, 0x11
invoke-virtual {v1, v4}, Landroid/widget/TextView;->setGravity(I)V
.line 196
[COLOR="Red"]invoke-virtual {v3}, Landroid/widget/Toast;->show()V[/COLOR]
goto :goto_1a3
And change it to (just add # before it):
Code:
[COLOR="Red"]#invoke-virtual {v3}, Landroid/widget/Toast;->show()V[/COLOR]
Thats all - save, recompile, copy to phone, restart and hope
Click to expand...
Click to collapse
Hi somin mf,
WHAT THE HELL IS GOING ON?
you are the best. Works perfect. No f****** popup any more.
How do you know or find this out because i think it´s not easy to make it.
JackoMJ
JackoMJ said:
How do you know or find this out because i think it´s not easy to make it.
Click to expand...
Click to collapse
Hehe, you are true, it is not so easy, maybe it was luck that I find it. How I find it?
- i was looking for wifi is connected to bla,bla,bla string in system apk's
- then I find its public id in public.xml file
- then I was looking for this id in *.smali files
- and then it was luck that I find proper line "invoke-virtual {XX}, Landroid/widget/Toast;->show()V", I just know that this line is making toast messages
There was some bad tests, but one of my try was working. And here is result
somin.n said:
Hehe, you are true, it is not so easy, maybe it was luck that I find it. How I find it?
- i was looking for wifi is connected to bla,bla,bla string in system apk's
- then I find its public id in public.xml file
- then I was looking for this id in *.smali files
- and then it was luck that I find proper line "invoke-virtual {XX}, Landroid/widget/Toast;->show()V", I just know that this line is making toast messages
There was some bad tests, but one of my try was working. And here is result
Click to expand...
Click to collapse
Thanks for your time and patience you spent on it.
Do you make every test like me (decompile, change, compile, copy to phone, reboot)?
Hope your Powerbutton won´t break
Or is there a program you can simulate it on your pc without using your phone really?
That´s a very interesting question i think....
JackoMJ
JackoMJ said:
Thanks for your time and patience you spent on it.
Do you make every test like me (decompile, change, compile, copy to phone, reboot)?
Hope your Powerbutton won´t break
Or is there a program you can simulate it on your pc without using your phone really?
That´s a very interesting question i think....
JackoMJ
Click to expand...
Click to collapse
Yes one change and whole process with de/compile,restart,... in round. Don't know about pc sw to simulate it, but yes it would be great. And don't worry about my power button, sometimes I have to pull out my battery because of bootloop :laugh::victory:
Content:
- Show other power menu in default stock 5.1
- 3-way power menu (power off, reboot, recovery)
Note:
Do not merged but choose one of the above tutorial
- if confused with this guide, I've made a flashable zip in #3, #4, #5, #25
chose one with your same base firmware (LBY29G, LMY47I, LMY47O,LMY47O 8GB Indonesian variant)
Requirement:
- Deodex framework
if use LMY47O, You can download from
http://forum.xda-developers.com/crossdevice-dev/android-one-general/deodex-deodex-framework-t3067154
- Apktool, You can download from
http://forum.xda-developers.com/showpost.php?p=59436776&postcount=2812
- Notepad++, You can download from
http://notepad-plus-plus.org/
- Willing to learn, patience, and know decompile recompile
credit:
@ ThunderSky7 for deodex fw LMY47O
@ iBotPeaches for apktool
@ garynych for smali 5.0.1
:goodress Thanks if helped:good:
:goodLACE YOUR CURSOR ON THANKS BUTTON AND CLICK IT:good:
Show other power menu in default stock 5.1
*Decompile framework-res.apk
*open \framework-res\res\values\arrays.xml
*Search <string-array name="config_globalActionsList">Below <item>users</item>, insert this:
<item>airplane</item>
<item>lockdown</item>
<item>settings</item>
<item>silent</item>
So, we get like this :
<string-array name="config_globalActionsList">
<item>power</item>
<item>bugreport</item>
<item>users</item>
<item>airplane</item>
<item>lockdown</item>
<item>settings</item>
<item>silent</item>
</string-array>
*Save n recompile framework-res.apk
*Push to system\ framework with RW-R-R set permissions or via flashable zip (recommended)
:goodress Thanks if helped:good:
:goodLACE YOUR CURSOR ON THANKS BUTTON AND CLICK IT:good:
3-way power menu (power off, reboot, recovery)
If u get emoticon in some lines, u can edit manually it with ";" ")" (without the quotes) for
*decompile framework-res.apk
*open \framework-res\res\values\arrays.xmllooking for <item>power</item> immediately below this line inserted
Code:
<item>reboot</item>
<item>recovery</item>
then immediately open strings.xml and add at the end
Code:
<string name="reboot_recovery">Recovery</string>
same thing in the folder values-in (my country Indonesia or similar for your country)
Code:
<string name="reboot_recovery">Reboot kerecovery</string>
* Put the necessary files and copy to framework-res\res\drawable-hdpi
*Recompile and decompile again (that would be assigned id)
*Open public.xml in framework-res\res\values (we'll be here to watch the assigned id)record id (meybe you get different id):
<public type="drawable" name="ic_reboot" id="0x0108075e" />
<public type="string" name="factorytest_reboot" id="0x010403db" />
<public type="drawable" name="ic_recovery" id="0x0108075f" />
<public type="string" name="reboot_recovery" id="0x010406eb" />
*Decompile android.policy.jaropen GlobalActions.smali (smali/com/android/internal/policy)
paste below this line 20: Lcom/android/internal/policy/impl/GlobalActions$MyAdapter;,
the following:
Code:
Lcom/android/internal/policy/impl/GlobalActions$RebootAction;,
Lcom/android/internal/policy/impl/GlobalActions$RebootRecovery;,
paste below this line 38: .field private static final GLOBAL_ACTION_KEY_POWER:Ljava/lang/String; = "power"
the following:
Code:
.field private static final GLOBAL_ACTION_KEY_REBOOT:Ljava/lang/String; = "reboot"
.field private static final GLOBAL_ACTION_KEY_RECOVERY:Ljava/lang/String; = "recovery"
and delete this
.field private static final GLOBAL_ACTION_KEY_SETTINGS:Ljava/lang/String; = "settings"
Look field line 1030:
const-string v0, "airplane"
and replace the code from .line 275 to .line 276
Code:
:cond_3
const-string v0, "airplane"
invoke-virtual {v0, v7}, Ljava/lang/String;->equals(Ljava/lang/ObjectZ
move-result v0
if-eqz v0, :cond_4
at
Code:
:cond_3
const-string v0, "reboot"
invoke-virtual {v0, v7}, Ljava/lang/String;->equals(Ljava/lang/ObjectZ
move-result v0
if-eqz v0, :cond_4
.line 276
iget-object v0, p0, Lcom/android/internal/policy/impl/GlobalActions;->mItems:Ljava/util/ArrayList;
new-instance v1, Lcom/android/internal/policy/impl/GlobalActions$RebootAction;
const/4 v2, 0x0
invoke-direct {v1, p0, v2}, Lcom/android/internal/policy/impl/GlobalActions$RebootAction;-><init>(Lcom/android/internal/policy/impl/GlobalActions;Lcom/android/internal/policy/impl/GlobalActions$1V
invoke-virtual {v0, v1}, Ljava/util/ArrayList;->add(Ljava/lang/ObjectZ
goto :goto_3
now find
const-string v0, "settings"
and replace the code from .line 290 to .line 292
Code:
:cond_7
const-string v0, "settings"
invoke-virtual {v0, v7}, Ljava/lang/String;->equals(Ljava/lang/ObjectZ
move-result v0
if-eqz v0, :cond_8
.line 291
iget-object v0, p0, Lcom/android/internal/policy/impl/GlobalActions;->mItems:Ljava/util/ArrayList;
invoke-direct {p0}, Lcom/android/internal/policy/impl/GlobalActions;->getSettingsAction()Lcom/android/internal/policy/impl/GlobalActions$Action;
move-result-object v1
invoke-virtual {v0, v1}, Ljava/util/ArrayList;->add(Ljava/lang/ObjectZ
goto :goto_3
at
Code:
:cond_7
const-string v0, "recovery"
invoke-virtual {v0, v7}, Ljava/lang/String;->equals(Ljava/lang/ObjectZ
move-result v0
if-eqz v0, :cond_2
.line 291
iget-object v0, p0, Lcom/android/internal/policy/impl/GlobalActions;->mItems:Ljava/util/ArrayList;
new-instance v1, Lcom/android/internal/policy/impl/GlobalActions$RebootRecovery;
const/4 v2, 0x0
invoke-direct {v1, p0, v2}, Lcom/android/internal/policy/impl/GlobalActions$RebootRecovery;-><init>(Lcom/android/internal/policy/impl/GlobalActions;Lcom/android/internal/policy/impl/GlobalActions$1V
invoke-virtual {v0, v1}, Ljava/util/ArrayList;->add(Ljava/lang/ObjectZ
goto/16 :goto_3
*put the necessary files and paste to smali/com/android/internal/policy
*Open GlobalActions$RebootAction.smali
Change line 30 and 32 with your id which had been recorded
const v0, 0x0108075e (id ic_reboot)
const v1, 0x010403db (id factorytest_reboot)
*Open GlobalActions$RebootRecovery.smali
Change line 30 and 32 with your id which had been recorded
const v0, 0x0108075f (id ic_recovery)
const v1, 0x010406eb (id reboot_recovery)
*All done..!!!
You can push framework-res.apk and android.policy.jar to system
(flashable zip is recommended)
:goodress Thanks if helped:good:
:goodLACE YOUR CURSOR ON THANKS BUTTON AND CLICK IT:good:
Flashable zip for LBY29G
* First you must instal deodex framework LBY29G with your Custom Recovery
Download :
http://www.4shared.com/zip/hmKwrGlYba/DeOdex_Framework_LBY29G.html
* boot again to your Custom Recovery
* Now you can chose one, instal with your Custom Recovery
- Other Power Menu
Download:
http://www.4shared.com/zip/OJRejfhace/other_power_menu_LBY29G.html
- 3Way Power menu
Download:
http://www.4shared.com/zip/Lp-Vo5rbce/3way_power_menu_LBY29G.html
Press Thanks if helped :goodLACE YOUR CURSOR ON THANKS BUTTON AND CLICK IT:good:
Flashable zip for LMY47I
* First you must instal deodex framework LMY47I with your Custom Recovery
Download :
http://www.4shared.com/zip/sVfeVZMPba/DeOdex_Framework_LMY47I.html
* boot again to your Custom Recovery
* Now you can chose one, instal with your Custom Recovery
- Other Power Menu
Download:
http://www.4shared.com/zip/Tx4d4Z2Rba/other_power_menu_LMY47I.html
- 3Way Power menu
Download:
http://www.4shared.com/zip/ft-8r-esce/3way_power_menu_LMY47I.html
Press Thanks if helped:goodLACE YOUR CURSOR ON THANKS BUTTON AND CLICK IT:good:
Flashable zip for LMY47O
* First you must instal deodex framework LMY47O with your Custom Recovery
Download :
http://www.4shared.com/zip/gdIs0G66ce/DeOdex_Framework_LastUpdate.html
* Boot again to your Custom Recovery
* Now you can chose one, instal with your Custom Recovery
- Other Power Menu
Download:
http://www.4shared.com/zip/DKwkSE4yba/other_power_menu_LMY47O.html
- 3Way Power menu
Download:
http://www.4shared.com/zip/MSr0K9Ygba/3way_power_menu_LMY47O.html
If your base is LMY47O 8GB Indonesian variant from OTA update LMY29G to LMY47O, you can try this:
http://forum.xda-developers.com/showpost.php?p=60240307&postcount=25
Press Thanks if helped :goodLACE YOUR CURSOR ON THANKS BUTTON AND CLICK IT:good:
A flashable zip would be preferred (no offence)
please create for lollipop 5.1 lby29g "mito impact"
Saurabh K said:
A flashable zip would be preferred (no offence)
Click to expand...
Click to collapse
thank's, i will updated soon
ane coba mas bro
puturaya20 said:
please create for lollipop 5.1 lby29g "mito impact"
Click to expand...
Click to collapse
stay tuned NJ1 , I will share later there
because the same base LBY29G
Great effort
Apriciated with max thanks
qitaro said:
stay tuned NJ1 , I will share later there
because the same base LBY29G
Click to expand...
Click to collapse
wait
qitaro said:
stay tuned NJ1 , I will share later there
because the same base LBY29G
Click to expand...
Click to collapse
looking forward for LBY29G flashable zip
puturaya20 said:
wait
Click to expand...
Click to collapse
primaputra said:
looking forward for LBY29G flashable zip
Click to expand...
Click to collapse
Done...!!!
See in #4
Update Flashable zip
LBY29G
http://forum.xda-developers.com/showpost.php?p=59927651&postcount=4
LMY47I
http://forum.xda-developers.com/showpost.php?p=59927657&postcount=5
LMY47O
http://forum.xda-developers.com/showpost.php?p=59927666&postcount=6
thank you, it worked on Mito Impact A10, LBY29G
qitaro said:
LBY29G
http://forum.xda-developers.com/showpost.php?p=59927651&postcount=4
LMY47I
http://forum.xda-developers.com/showpost.php?p=59927657&postcount=5
LMY47O
http://forum.xda-developers.com/showpost.php?p=59927666&postcount=6
Click to expand...
Click to collapse
primaputra said:
thank you, it worked on Mito Impact A10, LBY29G
View attachment 3251149
Click to expand...
Click to collapse
primaputra said:
looking forward for LBY29G flashable zip
Click to expand...
Click to collapse
i'm testing bro for mito impact
i hope add feature kbps download and status battery for system ui bro
i hope Other Power Menu add button restart change button lock now
puturaya20 said:
i'm testing bro for mito impact
i hope add feature kbps download and status battery for system ui bro
i hope Other Power Menu add button restart change button lock now
Click to expand...
Click to collapse
:good:
for kbps u can download via playstore (status meter/etc)
for status battery already in http://forum.xda-developers.com/cro...de-enable-battery-percentage-battery-t3065416
other power menu i try it but not goog interface and some array disapper (see attachment thumb)
i got bootloop after flashing
3way_power_menu_LMY47O.zip
flashed from twrp with success remarks... versi ane sudah bener padahal gan. ada ide?
-----------------
sorry....forgot to deodex...will try once more
trims
no. it doesn't worked for me. got bootloop on Nexian Juned Wan LMY47O
deodexed with attachmed file and patched it accordingly...