[MOD / How To][5/11/13] - Extended Reboot Menu - De-Odex - MDL

Status
Not open for further replies.
Search This thread

Scott

Retired Recognized Developer
Reboot options as show :good:

Pre-requisites
  • De-Odex'ed devices only! Will not work on stock ROM!
  • Must have the the MDL De-Odex mod by Nottach to use this mod!



Installation
  • I used similar install method as Nottach to apply this mod.
  • Download the attachment. Unzip it to your desktop.
  • Simply copy the "Mods" folder to your internal storage
  • Run the "Mod Me.bat" file after copying
  • It will copy the mod to the correct location, clear cache, then reboot phone.

attachment.php



Feel free to use this in any mod or ROM you make.

Hit Thanks!
 

Attachments

  • Reboot.jpg
    Reboot.jpg
    20.8 KB · Views: 13,612
Last edited:

Scott

Retired Recognized Developer
To make this mod your self or further modify it do the following;

First decompile classes.dex in android.policy.jar. I wont get into that part as this mini tutorial assumes you know how to modify smali code.




Add the following BOLD ITALIC code to \com\android\internal\policy\impl\GlobalActions$SinglePressAction.smali

Modded Code:
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

[B][I]# static fields
.field protected static rebootMode:I

.field protected static final rebootOptions:[Ljava/lang/String;
[/I][/B]

# instance fields
.field private final mIcon:Landroid/graphics/drawable/Drawable;

.field private final mIconResId:I

.field private final mMessage:Ljava/lang/CharSequence;

.field private final mMessageResId:I


# direct methods
[B][I].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, "Reboot"

    aput-object v2, v0, v1

    const/4 v1, 0x1

    const-string v2, "Restart Shell"

    aput-object v2, v0, v1

    const/4 v1, 0x2

    const-string v2, "Download"

    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[/I][/B]

.method protected constructor <init>(II)V[I][/I]


FYI: You can change the string names to what you like best. For example most people word the second string as "Hot reboot" but I think that sounds lame so I call it what it is and that is a shell restart. Another example would be to change "Download" to "Download Mode"


Then change \com\android\internal\policy\impl\GlobalActions.smali

right below .line 566
new-instance v0, Lcom/android/internal/policy/impl/GlobalActions$5;
to
new-instance v0, Lcom/android/internal/policy/impl/GlobalActions$99;

Then create three smali files as shown below and add them to: \com\android\internal\policy\impl\



GlobalActions$99.smali
Code:
.class Lcom/android/internal/policy/impl/GlobalActions$99;
.super Lcom/android/internal/policy/impl/GlobalActions$SinglePressAction;
.source "GlobalActions.java"


# annotations
.annotation system Ldalvik/annotation/EnclosingMethod;
    value = Lcom/android/internal/policy/impl/GlobalActions;->createDialog()Landroid/app/AlertDialog;
.end annotation

.annotation system Ldalvik/annotation/InnerClass;
    accessFlags = 0x0
    name = null
.end annotation


# instance fields
.field final synthetic this$0:Lcom/android/internal/policy/impl/GlobalActions;


# direct methods
.method constructor <init>(Lcom/android/internal/policy/impl/GlobalActions;II)V
    .registers 4

    iput-object p1, p0, Lcom/android/internal/policy/impl/GlobalActions$99;->this$0:Lcom/android/internal/policy/impl/GlobalActions;

    invoke-direct {p0, p2, p3}, Lcom/android/internal/policy/impl/GlobalActions$SinglePressAction;-><init>(II)V

    return-void
.end method


# virtual methods
.method public onPress()V
    .registers 7

    const/4 v5, 0x4

    new-instance v1, Landroid/app/AlertDialog$Builder;

    iget-object v2, p0, Lcom/android/internal/policy/impl/GlobalActions$99;->this$0:Lcom/android/internal/policy/impl/GlobalActions;

    #getter for: Lcom/android/internal/policy/impl/GlobalActions;->mContext:Landroid/content/Context;
    invoke-static {v2}, Lcom/android/internal/policy/impl/GlobalActions;->access$000(Lcom/android/internal/policy/impl/GlobalActions;)Landroid/content/Context;

    move-result-object v2

    invoke-direct {v1, v2}, Landroid/app/AlertDialog$Builder;-><init>(Landroid/content/Context;)V

    const-string v2, "Reboot Menu"

    invoke-virtual {v1, v2}, Landroid/app/AlertDialog$Builder;->setTitle(Ljava/lang/CharSequence;)Landroid/app/AlertDialog$Builder;

    move-result-object v1

    sget-object v2, Lcom/android/internal/policy/impl/GlobalActions$SinglePressAction;->rebootOptions:[Ljava/lang/String;

    const/4 v3, 0x0

    new-instance v4, Lcom/android/internal/policy/impl/GlobalActions$99$2;

    invoke-direct {v4, p0}, Lcom/android/internal/policy/impl/GlobalActions$99$2;-><init>(Lcom/android/internal/policy/impl/GlobalActions$99;)V

    invoke-virtual {v1, v2, v3, v4}, Landroid/app/AlertDialog$Builder;->setSingleChoiceItems([Ljava/lang/CharSequence;ILandroid/content/DialogInterface$OnClickListener;)Landroid/app/AlertDialog$Builder;

    move-result-object v1

    const v2, 0x104000a

    new-instance v3, Lcom/android/internal/policy/impl/GlobalActions$99$1;

    invoke-direct {v3, p0}, Lcom/android/internal/policy/impl/GlobalActions$99$1;-><init>(Lcom/android/internal/policy/impl/GlobalActions$99;)V

    invoke-virtual {v1, v2, v3}, Landroid/app/AlertDialog$Builder;->setPositiveButton(ILandroid/content/DialogInterface$OnClickListener;)Landroid/app/AlertDialog$Builder;

    move-result-object v1

    const/high16 v2, 0x104

    const/4 v3, 0x0

    invoke-virtual {v1, v2, v3}, Landroid/app/AlertDialog$Builder;->setNegativeButton(ILandroid/content/DialogInterface$OnClickListener;)Landroid/app/AlertDialog$Builder;

    move-result-object v1

    invoke-virtual {v1}, Landroid/app/AlertDialog$Builder;->create()Landroid/app/AlertDialog;

    move-result-object v0

    invoke-virtual {v0}, Landroid/app/AlertDialog;->getWindow()Landroid/view/Window;

    move-result-object v1

    const/16 v2, 0x7d9

    invoke-virtual {v1, v2}, Landroid/view/Window;->setType(I)V

    iget-object v1, p0, Lcom/android/internal/policy/impl/GlobalActions$99;->this$0:Lcom/android/internal/policy/impl/GlobalActions;

    #getter for: Lcom/android/internal/policy/impl/GlobalActions;->mContext:Landroid/content/Context;
    invoke-static {v1}, Lcom/android/internal/policy/impl/GlobalActions;->access$000(Lcom/android/internal/policy/impl/GlobalActions;)Landroid/content/Context;

    move-result-object v1

    invoke-virtual {v1}, Landroid/content/Context;->getResources()Landroid/content/res/Resources;

    move-result-object v1

    const v2, 0x111000f

    invoke-virtual {v1, v2}, Landroid/content/res/Resources;->getBoolean(I)Z

    move-result v1

    if-nez v1, :cond_58

    invoke-virtual {v0}, Landroid/app/AlertDialog;->getWindow()Landroid/view/Window;

    move-result-object v1

    invoke-virtual {v1, v5, v5}, Landroid/view/Window;->setFlags(II)V

    :cond_58
    invoke-virtual {v0}, Landroid/app/AlertDialog;->show()V

    return-void
.end method

.method public showBeforeProvisioning()Z
    .registers 2

    .prologue
    .line 307
    const/4 v0, 0x1

    return v0
.end method

.method public showConditional()Z
    .registers 2

    .prologue
    .line 311
    const/4 v0, 0x1

    return v0
.end method

.method public showDuringKeyguard()Z
    .registers 2

    .prologue
    .line 304
    const/4 v0, 0x1

    return v0
.end method


GlobalActions$99$1.smali
Code:
.class Lcom/android/internal/policy/impl/GlobalActions$99$1;
.super Ljava/lang/Object;
.source "GlobalActions.java"

# interfaces
.implements Landroid/content/DialogInterface$OnClickListener;


# annotations
.annotation system Ldalvik/annotation/EnclosingMethod;
    value = Lcom/android/internal/policy/impl/GlobalActions$99;->onPress()V
.end annotation

.annotation system Ldalvik/annotation/InnerClass;
    accessFlags = 0x0
    name = null
.end annotation


# instance fields
.field final synthetic this$1:Lcom/android/internal/policy/impl/GlobalActions$99;


# direct methods
.method constructor <init>(Lcom/android/internal/policy/impl/GlobalActions$99;)V
    .registers 2
    .parameter

    .prologue
    .line 281
    iput-object p1, p0, Lcom/android/internal/policy/impl/GlobalActions$99$1;->this$1:Lcom/android/internal/policy/impl/GlobalActions$99;

    invoke-direct {p0}, Ljava/lang/Object;-><init>()V

    return-void
.end method


# virtual methods
.method public onClick(Landroid/content/DialogInterface;I)V
    .registers 7
    .parameter "dialog"
    .parameter "whichButton"

    .prologue
    const/4 v2, 0x1

    const/4 v3, 0x0

    .line 282
    sget v0, Lcom/android/internal/policy/impl/GlobalActions$SinglePressAction;->rebootMode:I

    const/4 v1, -0x1

    if-le v0, v1, :cond_20

    .line 291
    sget v0, Lcom/android/internal/policy/impl/GlobalActions$SinglePressAction;->rebootMode:I

    const/4 v1, 0x4

    if-eq v0, v1, :cond_4d

    .line 283
    sget v0, Lcom/android/internal/policy/impl/GlobalActions$SinglePressAction;->rebootMode:I

    if-eq v0, v2, :cond_2c

    .line 284
    iget-object v0, p0, Lcom/android/internal/policy/impl/GlobalActions$99$1;->this$1:Lcom/android/internal/policy/impl/GlobalActions$99;

    iget-object v0, v0, Lcom/android/internal/policy/impl/GlobalActions$99;->this$0:Lcom/android/internal/policy/impl/GlobalActions;

    #getter for: Lcom/android/internal/policy/impl/GlobalActions;->mContext:Landroid/content/Context;
    invoke-static {v0}, Lcom/android/internal/policy/impl/GlobalActions;->access$000(Lcom/android/internal/policy/impl/GlobalActions;)Landroid/content/Context;

    move-result-object v0

    sget v1, Lcom/android/internal/policy/impl/GlobalActions$SinglePressAction;->rebootMode:I

    if-nez v1, :cond_21

    const/4 v1, 0x0

    :goto_1d
    invoke-static {v0, v1, v3}, Lcom/android/server/power/ShutdownThread;->reboot(Landroid/content/Context;Ljava/lang/String;Z)V

    .line 291
    :cond_20
    :goto_20
    return-void

    .line 284
    :cond_21
    sget-object v1, Lcom/android/internal/policy/impl/GlobalActions$SinglePressAction;->rebootOptions:[Ljava/lang/String;

    sget v2, Lcom/android/internal/policy/impl/GlobalActions$SinglePressAction;->rebootMode:I

    aget-object v1, v1, v2

    invoke-virtual {v1}, Ljava/lang/String;->toLowerCase()Ljava/lang/String;

    move-result-object v1

    goto :goto_1d

    .line 288
    :cond_2c
    :try_start_2c
    invoke-static {}, Ljava/lang/Runtime;->getRuntime()Ljava/lang/Runtime;

    move-result-object v0

    const/4 v1, 0x4

    new-array v1, v1, [Ljava/lang/String;

    const/4 v2, 0x0

    const-string v3, "pkill"

    aput-object v3, v1, v2

    const/4 v2, 0x1

    const-string v3, "-TERM"

    aput-object v3, v1, v2

    const/4 v2, 0x2

    const-string v3, "-f"

    aput-object v3, v1, v2

    const/4 v2, 0x3

    const-string v3, "system_server"

    aput-object v3, v1, v2

    invoke-virtual {v0, v1}, Ljava/lang/Runtime;->exec([Ljava/lang/String;)Ljava/lang/Process;
    :try_end_4a
    .catch Ljava/lang/Exception; {:try_start_2c .. :try_end_4a} :catch_4b

    goto :goto_20

    .line 290
    :catch_4b
    move-exception v0

    goto :goto_20

    :cond_4d
    iget-object v0, p0, Lcom/android/internal/policy/impl/GlobalActions$99$1;->this$1:Lcom/android/internal/policy/impl/GlobalActions$99;

    iget-object v0, v0, Lcom/android/internal/policy/impl/GlobalActions$99;->this$0:Lcom/android/internal/policy/impl/GlobalActions;

    #getter for: Lcom/android/internal/policy/impl/GlobalActions;->mContext:Landroid/content/Context;
    invoke-static {v0}, Lcom/android/internal/policy/impl/GlobalActions;->access$000(Lcom/android/internal/policy/impl/GlobalActions;)Landroid/content/Context;

    move-result-object v0

    const/4 v1, 0x0

    invoke-static {v0, v1}, Lcom/android/server/power/ShutdownThread;->shutdown(Landroid/content/Context;Z)V

    goto :goto_20
.end method



GlobalActions$99$2.smali
Code:
.class Lcom/android/internal/policy/impl/GlobalActions$99$2;
.super Ljava/lang/Object;
.source "GlobalActions.java"

# interfaces
.implements Landroid/content/DialogInterface$OnClickListener;


# annotations
.annotation system Ldalvik/annotation/EnclosingMethod;
    value = Lcom/android/internal/policy/impl/GlobalActions$99;->onPress()V
.end annotation

.annotation system Ldalvik/annotation/InnerClass;
    accessFlags = 0x0
    name = null
.end annotation


# instance fields
.field final synthetic this$1:Lcom/android/internal/policy/impl/GlobalActions$99;


# direct methods
.method constructor <init>(Lcom/android/internal/policy/impl/GlobalActions$99;)V
    .registers 2

    iput-object p1, p0, Lcom/android/internal/policy/impl/GlobalActions$99$2;->this$1:Lcom/android/internal/policy/impl/GlobalActions$99;

    invoke-direct {p0}, Ljava/lang/Object;-><init>()V

    return-void
.end method


# virtual methods
.method public onClick(Landroid/content/DialogInterface;I)V
    .registers 3

    sput p2, Lcom/android/internal/policy/impl/GlobalActions$SinglePressAction;->rebootMode:I

    return-void
.end method


Recompile and done!






You can also change the names of the reboot method to your liking!
 
Last edited:

stevehkim

Senior Member
Oct 29, 2011
2,840
743
Slowly but surely here comes the goodies. Cant wait for flashy time for AT&T.

ATT S4 Rooted. Beastin.
4.2.2
 
  • Like
Reactions: sd_N

Dean1650

Senior Member
Dec 11, 2012
465
178
Webster
"Tettering" ay, right. Slow down a little, I can't keep up. Very usefull reboot menu. Works for me.

sent from my SGH-i317
 

Scott

Retired Recognized Developer
"Tettering" ay, right. Slow down a little, I can't keep up. Very usefull reboot menu. Works for me.

sent from my SGH-i317

Hehehehe.... It was a tough choice my friend. Hardest phone choice I had to make but then after owning both I decided this was going to be a power house!

Me slow down? Never! :angel:

Did you see my launcher mod in themes and apps?
 
  • Like
Reactions: Tenkie

powerwagon

Senior Member
Jun 6, 2010
747
270
Hehehehe.... It was a tough choice my friend. Hardest phone choice I had to make but then after owning both I decided this was going to be a power house!

Me slow down? Never! :angel:

Did you see my launcher mod in themes and apps?

Thought you were going back to Verizon?

Sent from my HTC One using Tapatalk 2
 

Scott

Retired Recognized Developer
Thought you were going back to Verizon?

Sent from my HTC One using Tapatalk 2

I did. The people on Verizon bought me a Note II (when it came out). But I wanted the SGS4 so I broke into my donation fund and bought (part of it anyways).

I now develop for 4 phones, SGS4, Note II (All carriers), SGS3, and HTC One X... and the Nexus 10 Tablet.
 
  • Like
Reactions: sd_N and obriane217

MrPlNK

Senior Member
Aug 11, 2012
837
242
Gaithersburg
I did. The people on Verizon bought me a Note II (when it came out). But I wanted the SGS4 so I broke into my donation fund and bought (part of it anyways).

I now develop for 4 phones, SGS4, Note II (All carriers), SGS3, and HTC One X... and the Nexus 10 Tablet.

Cant wait to be running cleanrom on this! Def one of the best devs in the game, glad you kept it :)

Sent from my SAMSUNG-SGH-I337 using Tapatalk 2
 

Phoneguy589

Senior Member
May 1, 2011
1,859
332
S.E. Florida
Can't wait for mine to come in the mail... Thanks to you guys who able to do this awesome work. Hope I can help out or at least test some stuff out for you guys. ;)

Sent from my SGS3 using xda premium
 

tokoam

Senior Member
Jun 24, 2007
931
167
Plantation
Deodexed System Installer ran from Noattach but i am still not able to get this mod to work i am updated to the lastest AMDL and deodexed verifiyed by checking build info Nottach.JDQ39.I337UCUAMDL anyone have any ideas ? as to what the problem is .
 

jthrasher47

Senior Member
Apr 6, 2012
1,217
1,547
Charleston SC
It does not work for me either
Just says waiting for s4. The other installer works fine I even tried just pushing me jar file but that did not work either

Sent from my SAMSUNG-SGH-I337 using xda premium
 
Status
Not open for further replies.

Top Liked Posts

  • There are no posts matching your filters.
  • 23
    Reboot options as show :good:

    Pre-requisites
    • De-Odex'ed devices only! Will not work on stock ROM!
    • Must have the the MDL De-Odex mod by Nottach to use this mod!



    Installation
    • I used similar install method as Nottach to apply this mod.
    • Download the attachment. Unzip it to your desktop.
    • Simply copy the "Mods" folder to your internal storage
    • Run the "Mod Me.bat" file after copying
    • It will copy the mod to the correct location, clear cache, then reboot phone.

    attachment.php



    Feel free to use this in any mod or ROM you make.

    Hit Thanks!
    2
    To make this mod your self or further modify it do the following;

    First decompile classes.dex in android.policy.jar. I wont get into that part as this mini tutorial assumes you know how to modify smali code.




    Add the following BOLD ITALIC code to \com\android\internal\policy\impl\GlobalActions$SinglePressAction.smali

    Modded Code:
    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
    
    [B][I]# static fields
    .field protected static rebootMode:I
    
    .field protected static final rebootOptions:[Ljava/lang/String;
    [/I][/B]
    
    # instance fields
    .field private final mIcon:Landroid/graphics/drawable/Drawable;
    
    .field private final mIconResId:I
    
    .field private final mMessage:Ljava/lang/CharSequence;
    
    .field private final mMessageResId:I
    
    
    # direct methods
    [B][I].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, "Reboot"
    
        aput-object v2, v0, v1
    
        const/4 v1, 0x1
    
        const-string v2, "Restart Shell"
    
        aput-object v2, v0, v1
    
        const/4 v1, 0x2
    
        const-string v2, "Download"
    
        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[/I][/B]
    
    .method protected constructor <init>(II)V[I][/I]


    FYI: You can change the string names to what you like best. For example most people word the second string as "Hot reboot" but I think that sounds lame so I call it what it is and that is a shell restart. Another example would be to change "Download" to "Download Mode"


    Then change \com\android\internal\policy\impl\GlobalActions.smali

    right below .line 566
    new-instance v0, Lcom/android/internal/policy/impl/GlobalActions$5;
    to
    new-instance v0, Lcom/android/internal/policy/impl/GlobalActions$99;

    Then create three smali files as shown below and add them to: \com\android\internal\policy\impl\



    GlobalActions$99.smali
    Code:
    .class Lcom/android/internal/policy/impl/GlobalActions$99;
    .super Lcom/android/internal/policy/impl/GlobalActions$SinglePressAction;
    .source "GlobalActions.java"
    
    
    # annotations
    .annotation system Ldalvik/annotation/EnclosingMethod;
        value = Lcom/android/internal/policy/impl/GlobalActions;->createDialog()Landroid/app/AlertDialog;
    .end annotation
    
    .annotation system Ldalvik/annotation/InnerClass;
        accessFlags = 0x0
        name = null
    .end annotation
    
    
    # instance fields
    .field final synthetic this$0:Lcom/android/internal/policy/impl/GlobalActions;
    
    
    # direct methods
    .method constructor <init>(Lcom/android/internal/policy/impl/GlobalActions;II)V
        .registers 4
    
        iput-object p1, p0, Lcom/android/internal/policy/impl/GlobalActions$99;->this$0:Lcom/android/internal/policy/impl/GlobalActions;
    
        invoke-direct {p0, p2, p3}, Lcom/android/internal/policy/impl/GlobalActions$SinglePressAction;-><init>(II)V
    
        return-void
    .end method
    
    
    # virtual methods
    .method public onPress()V
        .registers 7
    
        const/4 v5, 0x4
    
        new-instance v1, Landroid/app/AlertDialog$Builder;
    
        iget-object v2, p0, Lcom/android/internal/policy/impl/GlobalActions$99;->this$0:Lcom/android/internal/policy/impl/GlobalActions;
    
        #getter for: Lcom/android/internal/policy/impl/GlobalActions;->mContext:Landroid/content/Context;
        invoke-static {v2}, Lcom/android/internal/policy/impl/GlobalActions;->access$000(Lcom/android/internal/policy/impl/GlobalActions;)Landroid/content/Context;
    
        move-result-object v2
    
        invoke-direct {v1, v2}, Landroid/app/AlertDialog$Builder;-><init>(Landroid/content/Context;)V
    
        const-string v2, "Reboot Menu"
    
        invoke-virtual {v1, v2}, Landroid/app/AlertDialog$Builder;->setTitle(Ljava/lang/CharSequence;)Landroid/app/AlertDialog$Builder;
    
        move-result-object v1
    
        sget-object v2, Lcom/android/internal/policy/impl/GlobalActions$SinglePressAction;->rebootOptions:[Ljava/lang/String;
    
        const/4 v3, 0x0
    
        new-instance v4, Lcom/android/internal/policy/impl/GlobalActions$99$2;
    
        invoke-direct {v4, p0}, Lcom/android/internal/policy/impl/GlobalActions$99$2;-><init>(Lcom/android/internal/policy/impl/GlobalActions$99;)V
    
        invoke-virtual {v1, v2, v3, v4}, Landroid/app/AlertDialog$Builder;->setSingleChoiceItems([Ljava/lang/CharSequence;ILandroid/content/DialogInterface$OnClickListener;)Landroid/app/AlertDialog$Builder;
    
        move-result-object v1
    
        const v2, 0x104000a
    
        new-instance v3, Lcom/android/internal/policy/impl/GlobalActions$99$1;
    
        invoke-direct {v3, p0}, Lcom/android/internal/policy/impl/GlobalActions$99$1;-><init>(Lcom/android/internal/policy/impl/GlobalActions$99;)V
    
        invoke-virtual {v1, v2, v3}, Landroid/app/AlertDialog$Builder;->setPositiveButton(ILandroid/content/DialogInterface$OnClickListener;)Landroid/app/AlertDialog$Builder;
    
        move-result-object v1
    
        const/high16 v2, 0x104
    
        const/4 v3, 0x0
    
        invoke-virtual {v1, v2, v3}, Landroid/app/AlertDialog$Builder;->setNegativeButton(ILandroid/content/DialogInterface$OnClickListener;)Landroid/app/AlertDialog$Builder;
    
        move-result-object v1
    
        invoke-virtual {v1}, Landroid/app/AlertDialog$Builder;->create()Landroid/app/AlertDialog;
    
        move-result-object v0
    
        invoke-virtual {v0}, Landroid/app/AlertDialog;->getWindow()Landroid/view/Window;
    
        move-result-object v1
    
        const/16 v2, 0x7d9
    
        invoke-virtual {v1, v2}, Landroid/view/Window;->setType(I)V
    
        iget-object v1, p0, Lcom/android/internal/policy/impl/GlobalActions$99;->this$0:Lcom/android/internal/policy/impl/GlobalActions;
    
        #getter for: Lcom/android/internal/policy/impl/GlobalActions;->mContext:Landroid/content/Context;
        invoke-static {v1}, Lcom/android/internal/policy/impl/GlobalActions;->access$000(Lcom/android/internal/policy/impl/GlobalActions;)Landroid/content/Context;
    
        move-result-object v1
    
        invoke-virtual {v1}, Landroid/content/Context;->getResources()Landroid/content/res/Resources;
    
        move-result-object v1
    
        const v2, 0x111000f
    
        invoke-virtual {v1, v2}, Landroid/content/res/Resources;->getBoolean(I)Z
    
        move-result v1
    
        if-nez v1, :cond_58
    
        invoke-virtual {v0}, Landroid/app/AlertDialog;->getWindow()Landroid/view/Window;
    
        move-result-object v1
    
        invoke-virtual {v1, v5, v5}, Landroid/view/Window;->setFlags(II)V
    
        :cond_58
        invoke-virtual {v0}, Landroid/app/AlertDialog;->show()V
    
        return-void
    .end method
    
    .method public showBeforeProvisioning()Z
        .registers 2
    
        .prologue
        .line 307
        const/4 v0, 0x1
    
        return v0
    .end method
    
    .method public showConditional()Z
        .registers 2
    
        .prologue
        .line 311
        const/4 v0, 0x1
    
        return v0
    .end method
    
    .method public showDuringKeyguard()Z
        .registers 2
    
        .prologue
        .line 304
        const/4 v0, 0x1
    
        return v0
    .end method


    GlobalActions$99$1.smali
    Code:
    .class Lcom/android/internal/policy/impl/GlobalActions$99$1;
    .super Ljava/lang/Object;
    .source "GlobalActions.java"
    
    # interfaces
    .implements Landroid/content/DialogInterface$OnClickListener;
    
    
    # annotations
    .annotation system Ldalvik/annotation/EnclosingMethod;
        value = Lcom/android/internal/policy/impl/GlobalActions$99;->onPress()V
    .end annotation
    
    .annotation system Ldalvik/annotation/InnerClass;
        accessFlags = 0x0
        name = null
    .end annotation
    
    
    # instance fields
    .field final synthetic this$1:Lcom/android/internal/policy/impl/GlobalActions$99;
    
    
    # direct methods
    .method constructor <init>(Lcom/android/internal/policy/impl/GlobalActions$99;)V
        .registers 2
        .parameter
    
        .prologue
        .line 281
        iput-object p1, p0, Lcom/android/internal/policy/impl/GlobalActions$99$1;->this$1:Lcom/android/internal/policy/impl/GlobalActions$99;
    
        invoke-direct {p0}, Ljava/lang/Object;-><init>()V
    
        return-void
    .end method
    
    
    # virtual methods
    .method public onClick(Landroid/content/DialogInterface;I)V
        .registers 7
        .parameter "dialog"
        .parameter "whichButton"
    
        .prologue
        const/4 v2, 0x1
    
        const/4 v3, 0x0
    
        .line 282
        sget v0, Lcom/android/internal/policy/impl/GlobalActions$SinglePressAction;->rebootMode:I
    
        const/4 v1, -0x1
    
        if-le v0, v1, :cond_20
    
        .line 291
        sget v0, Lcom/android/internal/policy/impl/GlobalActions$SinglePressAction;->rebootMode:I
    
        const/4 v1, 0x4
    
        if-eq v0, v1, :cond_4d
    
        .line 283
        sget v0, Lcom/android/internal/policy/impl/GlobalActions$SinglePressAction;->rebootMode:I
    
        if-eq v0, v2, :cond_2c
    
        .line 284
        iget-object v0, p0, Lcom/android/internal/policy/impl/GlobalActions$99$1;->this$1:Lcom/android/internal/policy/impl/GlobalActions$99;
    
        iget-object v0, v0, Lcom/android/internal/policy/impl/GlobalActions$99;->this$0:Lcom/android/internal/policy/impl/GlobalActions;
    
        #getter for: Lcom/android/internal/policy/impl/GlobalActions;->mContext:Landroid/content/Context;
        invoke-static {v0}, Lcom/android/internal/policy/impl/GlobalActions;->access$000(Lcom/android/internal/policy/impl/GlobalActions;)Landroid/content/Context;
    
        move-result-object v0
    
        sget v1, Lcom/android/internal/policy/impl/GlobalActions$SinglePressAction;->rebootMode:I
    
        if-nez v1, :cond_21
    
        const/4 v1, 0x0
    
        :goto_1d
        invoke-static {v0, v1, v3}, Lcom/android/server/power/ShutdownThread;->reboot(Landroid/content/Context;Ljava/lang/String;Z)V
    
        .line 291
        :cond_20
        :goto_20
        return-void
    
        .line 284
        :cond_21
        sget-object v1, Lcom/android/internal/policy/impl/GlobalActions$SinglePressAction;->rebootOptions:[Ljava/lang/String;
    
        sget v2, Lcom/android/internal/policy/impl/GlobalActions$SinglePressAction;->rebootMode:I
    
        aget-object v1, v1, v2
    
        invoke-virtual {v1}, Ljava/lang/String;->toLowerCase()Ljava/lang/String;
    
        move-result-object v1
    
        goto :goto_1d
    
        .line 288
        :cond_2c
        :try_start_2c
        invoke-static {}, Ljava/lang/Runtime;->getRuntime()Ljava/lang/Runtime;
    
        move-result-object v0
    
        const/4 v1, 0x4
    
        new-array v1, v1, [Ljava/lang/String;
    
        const/4 v2, 0x0
    
        const-string v3, "pkill"
    
        aput-object v3, v1, v2
    
        const/4 v2, 0x1
    
        const-string v3, "-TERM"
    
        aput-object v3, v1, v2
    
        const/4 v2, 0x2
    
        const-string v3, "-f"
    
        aput-object v3, v1, v2
    
        const/4 v2, 0x3
    
        const-string v3, "system_server"
    
        aput-object v3, v1, v2
    
        invoke-virtual {v0, v1}, Ljava/lang/Runtime;->exec([Ljava/lang/String;)Ljava/lang/Process;
        :try_end_4a
        .catch Ljava/lang/Exception; {:try_start_2c .. :try_end_4a} :catch_4b
    
        goto :goto_20
    
        .line 290
        :catch_4b
        move-exception v0
    
        goto :goto_20
    
        :cond_4d
        iget-object v0, p0, Lcom/android/internal/policy/impl/GlobalActions$99$1;->this$1:Lcom/android/internal/policy/impl/GlobalActions$99;
    
        iget-object v0, v0, Lcom/android/internal/policy/impl/GlobalActions$99;->this$0:Lcom/android/internal/policy/impl/GlobalActions;
    
        #getter for: Lcom/android/internal/policy/impl/GlobalActions;->mContext:Landroid/content/Context;
        invoke-static {v0}, Lcom/android/internal/policy/impl/GlobalActions;->access$000(Lcom/android/internal/policy/impl/GlobalActions;)Landroid/content/Context;
    
        move-result-object v0
    
        const/4 v1, 0x0
    
        invoke-static {v0, v1}, Lcom/android/server/power/ShutdownThread;->shutdown(Landroid/content/Context;Z)V
    
        goto :goto_20
    .end method



    GlobalActions$99$2.smali
    Code:
    .class Lcom/android/internal/policy/impl/GlobalActions$99$2;
    .super Ljava/lang/Object;
    .source "GlobalActions.java"
    
    # interfaces
    .implements Landroid/content/DialogInterface$OnClickListener;
    
    
    # annotations
    .annotation system Ldalvik/annotation/EnclosingMethod;
        value = Lcom/android/internal/policy/impl/GlobalActions$99;->onPress()V
    .end annotation
    
    .annotation system Ldalvik/annotation/InnerClass;
        accessFlags = 0x0
        name = null
    .end annotation
    
    
    # instance fields
    .field final synthetic this$1:Lcom/android/internal/policy/impl/GlobalActions$99;
    
    
    # direct methods
    .method constructor <init>(Lcom/android/internal/policy/impl/GlobalActions$99;)V
        .registers 2
    
        iput-object p1, p0, Lcom/android/internal/policy/impl/GlobalActions$99$2;->this$1:Lcom/android/internal/policy/impl/GlobalActions$99;
    
        invoke-direct {p0}, Ljava/lang/Object;-><init>()V
    
        return-void
    .end method
    
    
    # virtual methods
    .method public onClick(Landroid/content/DialogInterface;I)V
        .registers 3
    
        sput p2, Lcom/android/internal/policy/impl/GlobalActions$SinglePressAction;->rebootMode:I
    
        return-void
    .end method


    Recompile and done!






    You can also change the names of the reboot method to your liking!
    2
    Thought you were going back to Verizon?

    Sent from my HTC One using Tapatalk 2

    I did. The people on Verizon bought me a Note II (when it came out). But I wanted the SGS4 so I broke into my donation fund and bought (part of it anyways).

    I now develop for 4 phones, SGS4, Note II (All carriers), SGS3, and HTC One X... and the Nexus 10 Tablet.
    1
    Slowly but surely here comes the goodies. Cant wait for flashy time for AT&T.

    ATT S4 Rooted. Beastin.
    4.2.2
    1
    "Tettering" ay, right. Slow down a little, I can't keep up. Very usefull reboot menu. Works for me.

    sent from my SGH-i317

    Hehehehe.... It was a tough choice my friend. Hardest phone choice I had to make but then after owning both I decided this was going to be a power house!

    Me slow down? Never! :angel:

    Did you see my launcher mod in themes and apps?