[Galaxy S II Themes and Apps] kahvitahra:
Thanks to snq- for original 4-way reboot.

Got the idea from THIS thread.

This is just simple mod that adds 4 booting options behind power menus "power off" -button ( 1. reboot 2. hot boot 3. recovery 4. download ).

So, compared to advanced power menu, this has only one new button. But I made this because now there is no need for framework.jar/framework-res changes. This is much more friendly to update.

I only make this tutorial and attach needed files. Everyone can use it way they want to, but give credit to original maker.

Check THIS post for Samsung ICS roms

Check THIS post for Samsung JB roms

Problem? Check THESE for help.

What you need to do is:

-Decompile android.policy.jar of your rom

-Copy attached folder to yours

-Open GlobalActions.smali

-Search line "Lcom/android/internal/policy/impl/GlobalActions$4;" ( some roms might have different number on shutdown button. You find right one by for example tracing shutdown icon id )

-Change number 4 to 99 ( two of them )

Before

new-instance v2, Lcom/android/internal/policy/impl/GlobalActions$4;

const v3, 0x1080030

const v4, 0x1040150

invoke-direct {v2, p0, v3, v4}, Lcom/android/internal/policy/impl/GlobalActions$4;->(Lcom/android/internal/policy/impl/GlobalActions;II)V

After

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

const v3, 0x1080030

const v4, 0x1040150

invoke-direct {v2, p0, v3, v4}, Lcom/android/internal/policy/impl/GlobalActions$99;->(Lcom/android/internal/policy/impl/GlobalActions;II)V

-Open GlobalActions$SinglePressAction.smali

-Before line "# instance fields"

paste following code

# static fields
.field protected static rebootMode:I

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

-Then after line "# direct methods"

paste following code

.method static constructor ()V
.registers 3

const/4 v0, 0x5

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, "Hot Boot"

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

const/4 v1, 0x4

const-string v2, "Shutdown"

aput-object v2, v0, v1

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

return-void
.end method

-So your file should look something like this after those changes

.class abstract Lcom/android/internal/policy/impl/GlobalActions$SinglePressAction;
.super Ljava/lang/Object;
.source "GlobalActions.java"

# interfaces
.implements Lcom/android/internal/policy/impl/GlobalActions$Action;

# 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

# static fields
.field protected static rebootMode:I

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

# instance fields
.field private final mIconResId:I

.field private final mMessageResId:I

# direct methods
.method static constructor ()V
.registers 3

const/4 v0, 0x5

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, "Hot Boot"

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

const/4 v1, 0x4

const-string v2, "Shutdown"

aput-object v2, v0, v1

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

return-void
.end method

.method protected constructor (II)V
.registers 3
.parameter "iconResId"
.........
.........

-Compile .jar and your done.