[Galaxy S II Android Development] Biftor:
lets go start with "Systemui.apk"

part1:

decompile your "Systemui.apk"

download my Attachment file "systemui.apk.rar" extract that and copy all things from that to your "Systemui.apk" decompiled

go to res/values open "ids.xml" with not pad++

add this line to that"

<item type="id" name="exp_power_stat">false</item>

after that compile and after compile,decompile that again!

part 2:

Go to smali\com\android\systemui\statusbar\phone and open "PhoneStatusBar.smali" with Not pad++

try to find this line:

.field mPostCollapseCleanup:Ljava/lang/Runnable;

and add this line after that:

.field mPowerWidget:Lcom/Biftor/systemui/quickpanel/PowerWidget;

try to find this method:

.method protected makeStatusBarView()Lcom/android/systemui/statusbar/phone/PhoneStatusBarView;
[COLOR="Blue"] .locals 13[/COLOR]
.prologue
.line 521

change the blue line to this:

.locals 15

try to find this on ".method protected makeStatusBarView()Lcom/android/systemui/statusbar/phone/PhoneStatusBarView;"

sget-boolean v9, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->useTouchWizGUI:Z

if-eqz v9, :cond_9

.line 532
const v9, 0x7f03003e

const/4 v10, 0x0

invoke-static {v1, v9, v10}, Landroid/view/View;->inflate(Landroid/content/Context;ILandroid/view/ViewGroup;)Landroid/view/View;

move-result-object v9

check-cast v9, Lcom/android/systemui/statusbar/phone/StatusBarWindowView;

[COLOR="Blue"] iput-object v9, p0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mStatusBarWindow:Lcom/android/systemui/statusbar/phone/StatusBarWindowView;[/COLOR]

put this after blue line:

iget-object v12, p0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mContext:Landroid/content/Context;

invoke-virtual {v12}, Landroid/content/Context;->getContentResolver()Landroid/content/ContentResolver;

move-result-object v12

const-string v13, "23toggle_statubar"

const/4 v14, 0x0

invoke-static {v12, v13, v14}, Landroid/provider/Settings$System;->getInt(Landroid/content/ContentResolver;Ljava/lang/String;I)I

move-result v12

if-eqz v12, :cond_Biftor

const v9, 0x7f030045

const/4 v10, 0x0

invoke-static {v1, v9, v10}, Landroid/view/View;->inflate(Landroid/content/Context;ILandroid/view/ViewGroup;)Landroid/view/View;

move-result-object v9

check-cast v9, Lcom/android/systemui/statusbar/phone/StatusBarWindowView;

iput-object v9, p0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mStatusBarWindow:Lcom/android/systemui/statusbar/phone/StatusBarWindowView;

:cond_Biftor

exactly same this:

you can remove "##############" this is just for hint!

sget-boolean v9, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->useTouchWizGUI:Z

if-eqz v9, :cond_9

.line 532
const v9, 0x7f03003e

const/4 v10, 0x0

invoke-static {v1, v9, v10}, Landroid/view/View;->inflate(Landroid/content/Context;ILandroid/view/ViewGroup;)Landroid/view/View;

move-result-object v9

check-cast v9, Lcom/android/systemui/statusbar/phone/StatusBarWindowView;

iput-object v9, p0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mStatusBarWindow:Lcom/android/systemui/statusbar/phone/StatusBarWindowView;
##############################
iget-object v12, p0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mContext:Landroid/content/Context;

invoke-virtual {v12}, Landroid/content/Context;->getContentResolver()Landroid/content/ContentResolver;

move-result-object v12

const-string v13, "23toggle_statubar"

const/4 v14, 0x0

invoke-static {v12, v13, v14}, Landroid/provider/Settings$System;->getInt(Landroid/content/ContentResolver;Ljava/lang/String;I)I

move-result v12

if-eqz v12, :cond_Biftor

const v9, 0x7f030045 [COLOR="Red"]#biftor23_tw_super_status_bar[/COLOR]

const/4 v10, 0x0

invoke-static {v1, v9, v10}, Landroid/view/View;->inflate(Landroid/content/Context;ILandroid/view/ViewGroup;)Landroid/view/View;

move-result-object v9

check-cast v9, Lcom/android/systemui/statusbar/phone/StatusBarWindowView;

iput-object v9, p0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mStatusBarWindow:Lcom/android/systemui/statusbar/phone/StatusBarWindowView;

:cond_Biftor
#################

try to find this on ".method protected makeStatusBarView()Lcom/android/systemui/statusbar/phone/PhoneStatusBarView;":

iget-object v9, p0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mStatusBarWindow:Lcom/android/systemui/statusbar/phone/StatusBarWindowView;

const v10, 0x7f0d004c

invoke-virtual {v9, v10}, Lcom/android/systemui/statusbar/phone/StatusBarWindowView;->findViewById(I)Landroid/view/View;

move-result-object v9

check-cast v9, Landroid/widget/ScrollView;

iput-object v9, p0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mScrollView:Landroid/widget/ScrollView;

.line 700
iget-object v9, p0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mScrollView:Landroid/widget/ScrollView;

const/4 v10, 0x0

[COLOR="Blue"] invoke-virtual {v9, v10}, Landroid/widget/ScrollView;->setVerticalScrollBarEnabled(Z)V
[/COLOR]

put this lines after blue line:

iget-object v12, p0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mContext:Landroid/content/Context;

invoke-virtual {v12}, Landroid/content/Context;->getContentResolver()Landroid/content/ContentResolver;

move-result-object v12

const-string v13, "23toggle_statubar"

const/4 v14, 0x0

invoke-static {v12, v13, v14}, Landroid/provider/Settings$System;->getInt(Landroid/content/ContentResolver;Ljava/lang/String;I)I

move-result v12

if-eqz v12, :cond_arm

move-object/from16 v0, p0

iget-object v9, v0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mStatusBarWindow:Lcom/android/systemui/statusbar/phone/StatusBarWindowView;

const v10, 0x7f0d011b [COLOR="Red"]#exp_power_stat[/COLOR]

invoke-virtual {v9, v10}, Lcom/android/systemui/statusbar/phone/StatusBarWindowView;->findViewById(I)Landroid/view/View;

move-result-object v9

check-cast v9, Lcom/Biftor/systemui/quickpanel/PowerWidget;

move-object/from16 v0, p0

iput-object v9, v0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mPowerWidget:Lcom/Biftor/systemui/quickpanel/PowerWidget;

.line 702
:cond_arm

exactly same this:

iget-object v9, p0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mStatusBarWindow:Lcom/android/systemui/statusbar/phone/StatusBarWindowView;

const v10, 0x7f0d004c

invoke-virtual {v9, v10}, Lcom/android/systemui/statusbar/phone/StatusBarWindowView;->findViewById(I)Landroid/view/View;

move-result-object v9

check-cast v9, Landroid/widget/ScrollView;

iput-object v9, p0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mScrollView:Landroid/widget/ScrollView;

.line 700
iget-object v9, p0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mScrollView:Landroid/widget/ScrollView;

const/4 v10, 0x0

invoke-virtual {v9, v10}, Landroid/widget/ScrollView;->setVerticalScrollBarEnabled(Z)V
#################

iget-object v12, p0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mContext:Landroid/content/Context;

invoke-virtual {v12}, Landroid/content/Context;->getContentResolver()Landroid/content/ContentResolver;

move-result-object v12

const-string v13, "23toggle_statubar"

const/4 v14, 0x0

invoke-static {v12, v13, v14}, Landroid/provider/Settings$System;->getInt(Landroid/content/ContentResolver;Ljava/lang/String;I)I

move-result v12

if-eqz v12, :cond_arm

move-object/from16 v0, p0

iget-object v9, v0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mStatusBarWindow:Lcom/android/systemui/statusbar/phone/StatusBarWindowView;

const v10, 0x7f0d011b [COLOR="Red"]#exp_power_stat[/COLOR]

invoke-virtual {v9, v10}, Lcom/android/systemui/statusbar/phone/StatusBarWindowView;->findViewById(I)Landroid/view/View;

move-result-object v9

check-cast v9, Lcom/Biftor/systemui/quickpanel/PowerWidget;

move-object/from16 v0, p0

iput-object v9, v0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mPowerWidget:Lcom/Biftor/systemui/quickpanel/PowerWidget;

.line 702
:cond_arm
#################

try to find this on ".method protected makeStatusBarView()Lcom/android/systemui/statusbar/phone/PhoneStatusBarView;":

sget-boolean v9, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->useAttPlmnDisplay:Z

const/4 v10, 0x1

if-ne v9, v10, :cond_7

.line 857
const-string v9, "android.intent.action.SCREEN_ON"

invoke-virtual {v2, v9}, Landroid/content/IntentFilter;->addAction(Ljava/lang/String;)V

.line 860
:cond_7
iget-object v9, p0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mBroadcastReceiver:Landroid/content/BroadcastReceiver;

[COLOR="Blue"] invoke-virtual {v1, v9, v2}, Landroid/content/Context;->registerReceiver(Landroid/content/BroadcastReceiver;Landroid/content/IntentFilter;)Landroid/content/Intent;[/COLOR]

put this after blue line:

iget-object v12, p0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mContext:Landroid/content/Context;

invoke-virtual {v12}, Landroid/content/Context;->getContentResolver()Landroid/content/ContentResolver;

move-result-object v12

const-string v13, "23toggle_statubar"

const/4 v14, 0x0

invoke-static {v12, v13, v14}, Landroid/provider/Settings$System;->getInt(Landroid/content/ContentResolver;Ljava/lang/String;I)I

move-result v12

if-eqz v12, :cond_ar

move-object/from16 v0, p0

iget-object v9, v0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mPowerWidget:Lcom/Biftor/systemui/quickpanel/PowerWidget;

invoke-virtual {v9}, Lcom/Biftor/systemui/quickpanel/PowerWidget;->setupWidget()V

.line 863
:cond_ar

exactly same this:

sget-boolean v9, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->useAttPlmnDisplay:Z

const/4 v10, 0x1

if-ne v9, v10, :cond_7

.line 857
const-string v9, "android.intent.action.SCREEN_ON"

invoke-virtual {v2, v9}, Landroid/content/IntentFilter;->addAction(Ljava/lang/String;)V

.line 860
:cond_7
iget-object v9, p0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mBroadcastReceiver:Landroid/content/BroadcastReceiver;

invoke-virtual {v1, v9, v2}, Landroid/content/Context;->registerReceiver(Landroid/content/BroadcastReceiver;Landroid/content/IntentFilter;)Landroid/content/Intent;
#################
iget-object v12, p0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mContext:Landroid/content/Context;

invoke-virtual {v12}, Landroid/content/Context;->getContentResolver()Landroid/content/ContentResolver;

move-result-object v12

const-string v13, "23toggle_statubar"

const/4 v14, 0x0

invoke-static {v12, v13, v14}, Landroid/provider/Settings$System;->getInt(Landroid/content/ContentResolver;Ljava/lang/String;I)I

move-result v12

if-eqz v12, :cond_ar

move-object/from16 v0, p0

iget-object v9, v0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mPowerWidget:Lcom/Biftor/systemui/quickpanel/PowerWidget;

invoke-virtual {v9}, Lcom/Biftor/systemui/quickpanel/PowerWidget;->setupWidget()V

.line 863
:cond_ar
#################

Important Note 1 Red lines:

Go to res/values open "public.xml" with Not pad++

Find new id of "exp_power_stat" and "biftor23_tw_super_status_bar"

after that replace new id to red lines.

i attached my modded "PhoneStatusBar.smali" you can use that maybe you need that!

final part:

go to decompiled SystemUI.apk open "AndroidManifest.xml"

try to find this:

<uses-permission android:name="android.permission.NFC" />
<uses-permission android:name="com.sprint.permission.SPRINT4G" />
<uses-permission android:name="android.permission.WRITE_APN_SETTINGS" />
[COLOR="Blue"] <uses-permission android:name="android.permission.CHANGE_CONFIGURATION" />
[/COLOR]

put this after blue line:

<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.REBOOT" />

compile Systemui.apk and Signe that (dont forget do signe)

and put it in your device!

important Note 2:

you need do This [HOW TO][20Mar][How to Disable Signature Checker For System App[Sammy JB]

because you Changed "AndroidManifest.xml" and you singed SystemUi.apk

Dont Forget do this!

i attached my Modded Systemui.apk if you want you can use that!

Enjoy.