Guides Android 7 modding with main emphasis on S7edge this time

Search This thread

asc1977

Senior Member
Apr 15, 2012
5,330
6,989
Schwetzingen
Guides Android 7
I decided after a long thinking about to open a new thread for modding guides for Android 7 because i see that there are much differences to older Android versions. So we keep up to date to make life easier. I hope all agree with me in that and share like me guides here. If you didnt agree with me keep your mind by yourself please and dont make my life harder ;)

Thanks




Framework-res.apk and services.jar
How to add Reboot Recovery Android 7 Style with toggle

Services.jar
Howto remove confirm buttons in Reboot menue for shutoff and reboot
USB Plug/Unplug disable wake up with toggle in RomControl
How to hide (Power Menu) Emergency Button with a Toggle
How to hide (Power Menu) Power Off Button with a Toggle
How to Disable Signature Check
Remove Volume Safe Warning with checkbox

GooglePackageInstaller.apk
Granting permissions dialog - Ok button always available with window (or alert) overlays

SamsungCamera6.apk
Another way of using Camera Flash on low battery

SystemUI.apk
Guide - SysScope - Status = Official

SystemUI.apk
How to enable Lockscreen rotation with toggle in RomControl V2
How to unlock after reboot with fingerprint without pin or pattern
Network traffic indicator in status bar
GearUtils
How to open app if click on statusbar clock
Adaption for 6thGear Data Usage Preferences on the fly without observer and without CSC changes
Adaption of Gear device info in notification panel
Adaption of 6htGear Carrier label preferences - as ADDITION to 6thGear device info mod
How to Make Data Usage Center From Right in Notification Panelwithout RomControl
How to add virtual lock, recent and home button to statusbar with RomControl
Add Battery Bar to ROM
How to make a option to choose between Stock and 3Minit battery
Volume safe warning to be permanently disabled (at bottom of post)

SecSettings2.apk
Activate duration keys lighting in the setting
How to build 0.25x anmimation scale in developer options

Different mods
Nougat compatible -=V6=- 1060 FONTS
Whitepages /identify unsaved numbers

 
Last edited:

asc1977

Senior Member
Apr 15, 2012
5,330
6,989
Schwetzingen
How to add Reboot Recovery to power menu with toggle

Credits goes to @sagitt67 and @daxgirl .
Credits for toggle goes to @tdunham

Now after some fc and logcats of old guides i finished sucessfull the mod and share what i have done

We work in framework-res.apk and services.jar

Framework-res.apk

Download framework.zip
Paste files in same folders of decompiles freamework-res.apk
now open res/values/arrays.xml
find <string-array name="config_globalActionsList"> and add blue
Code:
<string-array name="config_globalActionsList">
        <item>power</item>
        <item>datamode</item>
        <item>airplane</item>
        <item>restart</item>
        <item>lockdown</item>
        <item>bugreport</item>
        <item>users</item>
        [COLOR="Blue"]<item>rebootrecovery</item>[/COLOR]
        <item>emergencymode</item>
        <item>subscreen</item>
        <item>screenrec</item>
    </string-array>

now go to res/values/strings.xml and add blue

Code:
    <string name="charging_connected_via_usb">Charging connected device via USB...</string>
    <string name="config_tspstate_threshold">10,32,768,10,60</string>
    [COLOR="Blue"]<string name="tw_ic_do_rebootrecovery">Reboot Recovery</string>[/COLOR]
</resources>

done with framework-res.apk
recompile and push to phone

Services.jar

download services.zip and paste files in same folders of decompiles services.jar
open smali/com/android/server/policy/GlobalActions.smali
add blue line in # instance fields
Code:
.field mEmergencyStringId:I

[COLOR="Blue"].field private mRebootRecovery:Lcom/android/server/policy/GlobalActions$SinglePressAction;[/COLOR]

.field private mGlobalActionsFrameLayout:Landroid/app/GlobalActionsFrameLayout

find .method private createDialog()Lcom/android/server/policy/GlobalActions$GlobalActionsDialog;
add blue
Code:
if-eqz v4, :cond_8

    const v4, 0x10809f4

    :goto_4
    const v6, 0x10406e2

    move-object/from16 v0, p0

    invoke-direct {v5, v0, v4, v6}, Lcom/android/server/policy/GlobalActions$20;-><init>(Lcom/android/server/policy/GlobalActions;II)V

    move-object/from16 v0, p0

    iput-object v5, v0, Lcom/android/server/policy/GlobalActions;->mRestart:Lcom/android/server/policy/GlobalActions$SinglePressAction;
	
    [COLOR="blue"]new-instance v4, Lcom/android/server/policy/GlobalActions$47;

    move-object/from16 v0, p0

    iget-object v0, v0, Lcom/android/server/policy/GlobalActions;->mContext:Landroid/content/Context;

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

    move-result-object v0

    const-string v1, "tw_ic_do_rebootrecovery" 

    const-string v2, "drawable" 

    const-string v3, "android"

    invoke-virtual {v0, v1, v2, v3}, Landroid/content/res/Resources;->getIdentifier(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)I

    move-result v5 

    move-object/from16 v0, p0

    iget-object v0, v0, Lcom/android/server/policy/GlobalActions;->mContext:Landroid/content/Context;

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

    move-result-object v0

    const-string v1, "tw_ic_do_rebootrecovery"

    const-string v2, "string"

    const-string v3, "android"

    invoke-virtual {v0, v1, v2, v3}, Landroid/content/res/Resources;->getIdentifier(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)I

    move-result v6

    move-object/from16 v0, p0

    invoke-direct {v4, v0, v5, v6}, Lcom/android/server/policy/GlobalActions$47;-><init>(Lcom/android/server/policy/GlobalActions;II)V

    move-object/from16 v0, p0

    iput-object v4, v0, Lcom/android/server/policy/GlobalActions;->mRebootRecovery:Lcom/android/server/policy/GlobalActions$SinglePressAction;[/COLOR] 

    invoke-static {}, Lcom/samsung/android/feature/SemCscFeature;->getInstance()Lcom/samsung/android/feature/SemCscFeature;

    move-result-object v4

    const-string/jumbo v5, "CscFeature_Common_ConfigBikeMode"

Now next part is tricky, add lines in blue and changes in green

Code:
const/16 v6, 0x80

    const/4 v7, 0x1

    move-object/from16 v0, p0

    invoke-direct {v0, v6, v4, v5, v7}, Lcom/android/server/policy/GlobalActions;->addDialogItemsIfEnabled(ILcom/android/server/policy/GlobalActions$Action;Ljava/util/ArrayList;Z)Z

    new-instance v4, Lcom/android/server/policy/GlobalActions$BugReportAction;

    move-object/from16 v0, p0

    invoke-direct {v4, v0}, Lcom/android/server/policy/GlobalActions$BugReportAction;-><init>(Lcom/android/server/policy/GlobalActions;)V

    move-object/from16 v0, p0

    iget-object v5, v0, Lcom/android/server/policy/GlobalActions;->mItems:Ljava/util/ArrayList;
	
	[COLOR="Blue"]const/16 v6, 0x100

    move-object/from16 v0, p0

    iget-object v4, v0, Lcom/android/server/policy/GlobalActions;->mRebootRecovery:Lcom/android/server/policy/GlobalActions$SinglePressAction;

    move-object/from16 v0, p0

    iget-object v5, v0, Lcom/android/server/policy/GlobalActions;->mItems:Ljava/util/ArrayList;

    const/4 v7, 0x1

    move-object/from16 v0, p0

    invoke-direct {v0, v6, v4, v5, v7}, Lcom/android/server/policy/GlobalActions;->addDialogItemsIfEnabled(ILcom/android/server/policy/GlobalActions$Action;Ljava/util/ArrayList;Z)Z [/COLOR]

    const/16 v6, 0x200 [COLOR="Magenta"]#before was 0x100[/COLOR]

    const/4 v7, 0x1

    move-object/from16 v0, p0

    invoke-direct {v0, v6, v4, v5, v7}, Lcom/android/server/policy/GlobalActions;->addDialogItemsIfEnabled(ILcom/android/server/policy/GlobalActions$Action;Ljava/util/ArrayList;Z)Z

now search for const-string/jumbo v4, "silent" and add blue line above it and delete red ones
green parts must match yellow part
Code:
const-string/jumbo v4, "emergencymode"

    invoke-virtual {v4, v11}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z

    move-result v4

    if-eqz v4, :cond_15

    move-object/from16 v0, p0

    iget-object v4, v0, Lcom/android/server/policy/GlobalActions;->mItems:Ljava/util/ArrayList;

    move-object/from16 v0, p0

    iget-object v5, v0, Lcom/android/server/policy/GlobalActions;->mEmergency:Lcom/android/server/policy/GlobalActions$ToggleAction;

    invoke-virtual {v4, v5}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z

    goto/16 :[COLOR="Yellow"]goto_7[/COLOR]   #look that green part match this

    :cond_15
    [COLOR="Blue"]const-string/jumbo v4, "rebootrecovery"

    invoke-virtual {v4, v11}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z

    move-result v4

    if-eqz v4, :cond_asc1

    move-object/from16 v0, p0

    iget-object v4, v0, Lcom/android/server/policy/GlobalActions;->mItems:Ljava/util/ArrayList;

    move-object/from16 v0, p0

    iget-object v5, v0, Lcom/android/server/policy/GlobalActions;->mRebootRecovery:Lcom/android/server/policy/GlobalActions$SinglePressAction;

    invoke-virtual {v4, v5}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z

    goto/16 :[COLOR="Green"]goto_7 [/COLOR]

    :cond_asc1[/COLOR]
    const-string/jumbo v4, "silent"

next part is missing in Android 7 services.jar so we need to readd it for mod
find .method private addCustomDialogItems(Landroid/graphics/drawable/BitmapDrawable;Ljava/lang/String;Landroid/content/Intent;ILjava/util/ArrayList;)Z

add this above method

Code:
.method static synthetic access$500(Lcom/android/server/policy/GlobalActions;)Landroid/content/Context;
    .locals 1

    iget-object v0, p0, Lcom/android/server/policy/GlobalActions;->mContext:Landroid/content/Context;

    return-object v0
.end method

thats it, recompile and push to phone

Note: For me one time i get after reboot a loop of phone restarts, only one time happens. If it happen i solved it with wipe dalvik-cache and cache

RomControl V2
Code:
<com.wubydax.romcontrol.v2.prefs.MySwitchPreference android:title="Reboot Recovery Button" android:key="reboot_recovery" android:defaultValue="false" android:summaryOn="Reboot Recovery will be shown" android:summaryOff="Currently removed" />
 

Attachments

  • framework.zip
    13.8 KB · Views: 1,424
  • services.zip
    1.7 KB · Views: 1,390
Last edited:

asc1977

Senior Member
Apr 15, 2012
5,330
6,989
Schwetzingen
Howto remove confirm buttons in Reboot menue for shutoff and reboot

decompile
open services.jar/com/android/server/policy/GlobalActions
goto method
Code:
.method public constructor <init>(Landroid/content/Context;Landroid/view/WindowManagerPolicy$WindowManagerFuncs;)V
scroll down and find and delete this lines. ID´s maybe different
Code:
    const v1, 0x1080a25

    iput v1, p0, Lcom/android/server/policy/GlobalActions;->mPowerOffIconResId:I

    const v1, 0x1080a26

    iput v1, p0, Lcom/android/server/policy/GlobalActions;->mConfirmPowerOffIconResId:I

    const v1, 0x1080a27

    iput v1, p0, Lcom/android/server/policy/GlobalActions;->mRestartIconResId:I

    const v1, 0x1080a28

    iput v1, p0, Lcom/android/server/policy/GlobalActions;->mConfirmRestartIconResId:I
 

asc1977

Senior Member
Apr 15, 2012
5,330
6,989
Schwetzingen
USB Plug/Unplug disable wake up with toggle in RomControl

Decompile Services.jar
Go to smali/com/android/server/power/PowerManagerService.smali

find and add blue and remoce red
Code:
invoke-static {}, Landroid/os/SystemClock;->uptimeMillis()J

    move-result-wide v2

    invoke-direct {p0, v13, v11, v8}, Lcom/android/server/power/PowerManagerService;->shouldWakeUpWhenPluggedOrUnpluggedLocked(ZIZ)Z

    move-result v1
	
    [COLOR="Blue"]iget-object v5, p0, Lcom/android/server/power/PowerManagerService;->mContext:Landroid/content/Context;

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

    move-result-object v5

    const v4, 0x1

    const-string/jumbo v6, "usb_plugged"

    invoke-static {v5, v6, v4}, Landroid/provider/Settings$System;->getInt(Landroid/content/ContentResolver;Ljava/lang/String;I)I

    move-result v4

    if-eqz v4, :cond_4[/COLOR]  [COLOR="Magenta"]# this cond must match :cond after that line[/COLOR]

    if-eqz v1, :cond_4

    if-eqz v12, :cond_4

    new-instance v1, Ljava/lang/StringBuilder;

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

    iget-object v4, p0, Lcom/android/server/power/PowerManagerService;->mScreenOnReason:Ljava/lang/String;

    invoke-virtual {v1, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    move-result-object v1

    const-string/jumbo v4, " powered change"

    invoke-virtual {v1, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    move-result-object v1

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

    move-result-object v1

    iput-object v1, p0, Lcom/android/server/power/PowerManagerService;->mScreenOnReason:Ljava/lang/String;

   [COLOR="red"] const/16 v1, 0xb

    iput v1, p0, Lcom/android/server/power/PowerManagerService;->mLastWakeUpReason:I[/COLOR]

    const-string/jumbo v4, "android.server.power:POWER"


RomControl

Code:
<com.wubydax.romcontrol.v2.prefs.MySwitchPreference android:title="USB plug in/out wakeup" android:icon="@drawable/usb" android:key="usb_plugged" android:defaultValue="true" android:summaryOn="On" android:summaryOff="Off" />

Thx for helping for this mod to great @thereassaad
 

asc1977

Senior Member
Apr 15, 2012
5,330
6,989
Schwetzingen
How to hide (Power Menu) Emergency Button with a Toggle

First of all thx @tdunham for original guide here

Services.jar

open smali/com/android/server/policy/GlobalActions$16.smali
Search for followed text to be sure you have right smali. If you not find search in other GlobalAction$.......... smalis for that key
Code:
"EmergencyMode"


Replace method with below
Code:
.method public showConditional()Z
    .locals 4

    const/4 v0, 0x0

    const/4 v1, 0x1

    iget-object v2, p0, Lcom/android/server/policy/GlobalActions$16;->this$0:Lcom/android/server/policy/GlobalActions; [COLOR="Magenta"]#ThisGlobalActions$16 must match your smali[/COLOR]

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

    move-result-object v2

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

    move-result-object v2

    const-string v3, "power_emergency"

    invoke-static {v2, v3, v1}, Landroid/provider/Settings$System;->getInt(Landroid/content/ContentResolver;Ljava/lang/String;I)I

    move-result v2

    if-ne v2, v0, :cond_0

    :goto_0
    return v0

    :cond_0
    move v0, v1

    goto :goto_0
.end method

Now we go to main smali
open smali/com/android/server/policy/GlobalActions.smali

search for this method. On Android 7 it never excist so we have to add it. Maybe its there from earlier mods so only check if there or not and add if not above
method: .method private addCustomDialogItems(Landroid/graphics/drawable/BitmapDrawable;Ljava/lang/String;Landroid/content/Intent;ILjava/util/ArrayList;)Z
Code:
.method static synthetic access$500(Lcom/android/server/policy/GlobalActions;)Landroid/content/Context;
    .locals 1

    iget-object v0, p0, Lcom/android/server/policy/GlobalActions;->mContext:Landroid/content/Context;

    return-object v0
.end method

RomControl
Code:
<com.wubydax.romcontrol.v2.prefs.MySwitchPreference android:title="Emergency Mode Button" android:key="power_emergency" android:defaultValue="true" android:summaryOn="Emergency mode will be shown" android:summaryOff="Currently removed" />

Thx again to get it to work on Android 6.9.1 @tdunham
 
Last edited:

asc1977

Senior Member
Apr 15, 2012
5,330
6,989
Schwetzingen
How to unlock after reboot with fingerprint without pin or pattern

decompile SystemUI.apk
Go to smali/com/android/keyguard

open Keyguardupdatemonitor.smali
add blue
Code:
.method private isFingerprintDisabled(I)Z

..................

 :goto_0
 [COLOR="Blue"]const/4 v1, 0x0 [/COLOR]

 return v1

   :cond_0
   invoke-virtual {p0}, Lcom/android/keyguard/KeyguardUpdateMonitor;->isSimPinSecure()Z

   move-result v1

   goto :goto_0
.end method

Code:
.method public isUnlockCompleted()Z

........................................

 move-result v0
[COLOR="blue"]const/4 v0, 0x1 [/COLOR]

    return v0
.end method

Code:
.method public isUnlockWithFingerprintPossible(I)Z

............................................
  :cond_3
  [COLOR="blue"]const/4 v0, 0x1[/COLOR]

    return v1
.end method

Open KeyguardUpdateMonitor$StrongAuthTracker.smali
add blue
Code:
.method public isUnlockingWithFingerprintAllowed()Z
    .locals 2

    .prologue
    const/4 v0, 0x0

    .line 936
    iget-object v1, p0, Lcom/android/keyguard/KeyguardUpdateMonitor;->mStrongAuthTracker:Lcom/android/keyguard/KeyguardUpdateMonitor$StrongAuthTracker;

    invoke-virtual {v1}, Lcom/android/keyguard/KeyguardUpdateMonitor$StrongAuthTracker;->isUnlockingWithFingerprintAllowed()Z

    move-result v1
	
	[COLOR="Blue"]const/4 v1, 0x1 [/COLOR]

    if-eqz v1, :cond_0

    .line 937
    sget v1, Lcom/android/keyguard/KeyguardUpdateMonitor;->sCurrentUser:I

    invoke-virtual {p0, v1}, Lcom/android/keyguard/KeyguardUpdateMonitor;->hasFingerprintUnlockTimedOut(I)Z

    move-result v1
	
	if-eqz v1, :cond_1

    .line 936
    :cond_0
    :goto_0
    return v0

    .line 937
    :cond_1
    const/4 v0, 0x1

    goto :goto_0
.end method

recompile

Thx @sanoc69
 
Last edited:

asc1977

Senior Member
Apr 15, 2012
5,330
6,989
Schwetzingen
How to Disable Signature Check

Decompil Services.jar

Go into smali\com\android\server\pm\PackageManagerService. smali

Search for :
Code:
.method static compareSignatures([Landroid/content/pm/Signature;[Landroid/content/pm/Signature;)I

Replace the entire .method with this one:
Code:
.method static compareSignatures([Landroid/content/pm/Signature;[Landroid/content/pm/Signature;)I
    .locals 7

    const/4 v0, 0x0

    return v0
.end method

Recompil Services.jar
Done

Now you can install any application with different signature

Thanks to @one_love_420
 

Ather

Retired Senior Moderator
May 26, 2007
4,085
1,014
33
To move the network traffic indicator to the left of the status bar, follow the guide (amazing) by @daxgirl but in the 6th step, add the

Code:
<com.android.wubydax.NetworkTraffic android:layout_width="wrap_content" android:layout_height="fill_parent" />
after:
Code:
<LinearLayout android:orientation="horizontal" android:id="@id/status_bar_contents" android:layout_width="fill_parent" android:layout_height="fill_parent" android:paddingStart="@dimen/status_bar_padding_start" android:paddingEnd="@dimen/status_bar_padding_end">

screenshot:
X7xMvKb.png


Thanks to @daxgirl for pointing it out
 

asc1977

Senior Member
Apr 15, 2012
5,330
6,989
Schwetzingen
@asc1977
How can we deodex nougat firmware? SVADeodexer doesn't work anymore for nougat
Use superr kitchen
Use smali/baksmali method
If asked ktichen to delete meta-inf folders say no
After all copy arm and arm64 folders from odex framework to deodwx framework. Thats all and it boot. I think newest assayad tool do ot byself
 
  • Like
Reactions: intxeon

intxeon

Senior Member
Aug 8, 2013
255
95
Use superr kitchen
Use smali/baksmali method
If asked ktichen to delete meta-inf folders say no
After all copy arm and arm64 folders from odex framework to deodwx framework. Thats all and it boot. I think newest assayad tool do ot byself

Thanks
I searched assayad tool on this forum but I can't find it
 

necrosauron

Senior Member
Aug 9, 2013
120
50
Rancagua
Use superr kitchen
Use smali/baksmali method
If asked ktichen to delete meta-inf folders say no
After all copy arm and arm64 folders from odex framework to deodwx framework. Thats all and it boot. I think newest assayad tool do ot byself

yes..that kitchen it´s awesome..

a thousand thank´s for sharing your mods mate.. really....
im new on this mods stuff.. and i was looking for the advance reboot menu on nougat...

best regards
 
  • Like
Reactions: gvmiguez

asc1977

Senior Member
Apr 15, 2012
5,330
6,989
Schwetzingen
Adaption for 6thGear Data Usage Preferences on the fly without observer and without CSC changes

First of all thy @daxgirl for her great mod here and press the thanks button

For Nougat we need some adaptions. To get it to work i needed a additional step which need GearUtils. Also on/off is not on the fly anymore but all other settings. So follow guide but replace followed steps:

1. navigate to here because feature.smali now SystemUIRuine.smali:
Code:
smali/com/android/systemui/SystemUIRune.smali

2. search for that boolean because is also changed:
Code:
sput-boolean v0, Lcom/android/systemui/SystemUIRune;->SUPPORT_QUICKPANEL_DATAUSAGE:Z

3. Didnt use daxgirls step 3.
Do the followed: remove red and add blue (GearUtils must be a content of your SystemUi.apk, if not you get FC)
and increase locals from 6 to 8
Code:
[COLOR="Red"]    invoke-static {}, Lcom/sec/android/app/CscFeature;->getInstance()Lcom/sec/android/app/CscFeature;

    move-result-object v0

    const-string v1, "CscFeature_SystemUI_SupportDataUsageViewOnQuickPanel"

    invoke-virtual {v0, v1, v2}, Lcom/sec/android/app/CscFeature;->getEnableStatus(Ljava/lang/String;Z)Z

    move-result v0

    sput-boolean v0, Lcom/android/systemui/SystemUIRune;->SUPPORT_QUICKPANEL_DATAUSAGE:Z[/COLOR]
[COLOR="Blue"]    const/4 v6, 0x1

    const-string v7, "asc_data_usage_visibility"

    invoke-static {v7, v6}, Lcom/android/wubydax/GearUtils;->getDbIntForKey(Ljava/lang/String;I)I

    move-result v7

    if-nez v7, :cond_asc2

    const/4 v0, 0x0

    sput-boolean v0, Lcom/android/systemui/SystemUIRune;->SUPPORT_QUICKPANEL_DATAUSAGE:Z

    goto :goto_asc1

    :cond_asc2
    const/4 v0, 0x1

    sput-boolean v0, Lcom/android/systemui/SystemUIRune;->SUPPORT_QUICKPANEL_DATAUSAGE:Z

    :goto_asc1[/COLOR]

4. Goto smali/com/android/systemui/statusbar/phone/PhoneStatusBar.smali
you see its also never on same place like guided before

find
Code:
sget-boolean v0, Lcom/android/systemui/SystemUIRune;->SUPPORT_QUICKPANEL_DATAUSAGE:Z
replace with
Code:
invoke-virtual {p0}, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->isDataUsageEnabled()Z

    move-result v0

5. add above that method the new method from step7 of daxgirls guide but replace the pathes to new one which now
Lcom/android/systemui/statusbar/phone/PhoneStatusBar and never Lcom/android/systemui/statusbar/phone/NotificationPanelView because the smali changed

6.add at bottom of smali/com/android/systemui/qs/DataUsageView.smali the new method of step8 of daxgirls guide but also you have to change the path inside method to new one which is Lcom/android/systemui/qs/DataUsageView and not Lcom/android/systemui/statusbar/phone/DataUsageView

7.Is same like step 9 of daxgirls guide

RomControl

Same like on daxgirls guide
 
Last edited:

Top Liked Posts

  • There are no posts matching your filters.
  • 46
    Guides Android 7
    I decided after a long thinking about to open a new thread for modding guides for Android 7 because i see that there are much differences to older Android versions. So we keep up to date to make life easier. I hope all agree with me in that and share like me guides here. If you didnt agree with me keep your mind by yourself please and dont make my life harder ;)

    Thanks




    Framework-res.apk and services.jar
    How to add Reboot Recovery Android 7 Style with toggle

    Services.jar
    Howto remove confirm buttons in Reboot menue for shutoff and reboot
    USB Plug/Unplug disable wake up with toggle in RomControl
    How to hide (Power Menu) Emergency Button with a Toggle
    How to hide (Power Menu) Power Off Button with a Toggle
    How to Disable Signature Check
    Remove Volume Safe Warning with checkbox

    GooglePackageInstaller.apk
    Granting permissions dialog - Ok button always available with window (or alert) overlays

    SamsungCamera6.apk
    Another way of using Camera Flash on low battery

    SystemUI.apk
    Guide - SysScope - Status = Official

    SystemUI.apk
    How to enable Lockscreen rotation with toggle in RomControl V2
    How to unlock after reboot with fingerprint without pin or pattern
    Network traffic indicator in status bar
    GearUtils
    How to open app if click on statusbar clock
    Adaption for 6thGear Data Usage Preferences on the fly without observer and without CSC changes
    Adaption of Gear device info in notification panel
    Adaption of 6htGear Carrier label preferences - as ADDITION to 6thGear device info mod
    How to Make Data Usage Center From Right in Notification Panelwithout RomControl
    How to add virtual lock, recent and home button to statusbar with RomControl
    Add Battery Bar to ROM
    How to make a option to choose between Stock and 3Minit battery
    Volume safe warning to be permanently disabled (at bottom of post)

    SecSettings2.apk
    Activate duration keys lighting in the setting
    How to build 0.25x anmimation scale in developer options

    Different mods
    Nougat compatible -=V6=- 1060 FONTS
    Whitepages /identify unsaved numbers

    25
    Guide - SysScope - Status = Official

    Decompile SysScope.apk

    1.- Edit com/sec/android/app/sysscope/engine/SystemDiagnosisManager.smali

    Look for the line that calls to the method storeresult (inside .method public b()V ) and just above we will force a const 0x1 as calling parameter value (see next code in blue)

    Code:
    ...
    
       move-result-object v4
    
        invoke-static {v1, v4}, Lcom/sec/android/app/sysscope/engine/i;->c(Ljava/lang/String;Ljava/lang/String;)I
    
       [B][COLOR="#0000FF"] const v0, 0x1[/COLOR][/B]
    
        invoke-virtual {p0, v0}, Lcom/sec/android/app/sysscope/engine/SystemDiagnosisManager;->storeResult(I)I
    
        move-result v1
    
    ....


    2.- Edit com/sec/android/app/sysscope/job/KernelStatusChecker.smali

    Replace the following method

    Code:
    .method private b(Ljava/lang/String;)Z
        .locals 2
    
        const/4 v0, 0x1
    
        return v0
    .end method


    3.- Edit com/sec/android/app/sysscope/job/RootProcessScanner.smali

    Replace

    Code:
    .method public native checkIsApprivedProcess(Ljava/lang/String;)I
    .end method


    by

    Code:
    .method public checkIsApprivedProcess(Ljava/lang/String;)I
        .locals 2
    
        const v0, 0x1
    
        return v0
    .end method


    4.- Edit com/sec/android/app/sysscope/service/SysScopeResultInfo.smali

    - Replace this method

    Code:
    .method public a()I
        .locals 2
    
        const v0, 0x1
    
        return v0
    .end method

    - Look for the following strings,

    Code:
    Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z

    and delete the lines containing them. There are two: in .method public a(Landroid/os/Parcel;)V and in .method public a(Lcom/sec/android/app/sysscope/service/g;)V

    Thats all.


    NOTE:

    I leave in the attached file the original and modified code, as well as the original and modified apks (modified apk keeps the original signature).
    If you are having problems with resulting apk, please follow these steps:

    - Decompile your deodexed SysScope.apk and implement this guide (this is for last beta, i will update just if it is necessary with oficcial releases).
    - Compile the apk
    - Configure winrar to use no compression
    - Open the original apk and the compiled one with winrar
    - move classes.dex from compiled to the original apk.
    - Flash this modified original apk containing the new classes.dex

    5e030d312e8c6b953d2142aa3d404308.jpg
    16
    Guide how add more Button Grid in SystemUI for Nougat

    Decompile SystemUI
    After go to strings.xml (res/value/strings.xml)
    delete this:
    Code:
        <string name="qs_screen_grid_3_2">3X2</string>
        <string name="qs_screen_grid_4_2">4X2</string>
        <string name="qs_screen_grid_5_2">5X2</string>

    Now add this:
    Code:
    Add this :
        <string name="qs_screen_grid_3_4">3X4</string>
        <string name="qs_screen_grid_4_4">4X4</string>
        <string name="qs_screen_grid_5_4">5X4</string>
        <string name="qs_screen_grid_3_5">3X5</string>
        <string name="qs_screen_grid_4_5">4X5</string>
        <string name="qs_screen_grid_5_5">5X5</string>

    go to ids.xml (res/value/ids.xml)
    Add this:
    Code:
        <item type="id" name="gid_save_position">false</item>

    go to public.xml (res/value/public.xml) and removed this one:
    Code:
    qs_screen_grid_3_2
    qs_screen_grid_4_2
    qs_screen_grid_5_2

    Download files and merge (if you have some files replace one)

    Now Compile and enjoy
    thx to @josete_1976 for files for grid mod
    15
    How to add Reboot Recovery to power menu with toggle

    Credits goes to @sagitt67 and @daxgirl .
    Credits for toggle goes to @tdunham

    Now after some fc and logcats of old guides i finished sucessfull the mod and share what i have done

    We work in framework-res.apk and services.jar

    Framework-res.apk

    Download framework.zip
    Paste files in same folders of decompiles freamework-res.apk
    now open res/values/arrays.xml
    find <string-array name="config_globalActionsList"> and add blue
    Code:
    <string-array name="config_globalActionsList">
            <item>power</item>
            <item>datamode</item>
            <item>airplane</item>
            <item>restart</item>
            <item>lockdown</item>
            <item>bugreport</item>
            <item>users</item>
            [COLOR="Blue"]<item>rebootrecovery</item>[/COLOR]
            <item>emergencymode</item>
            <item>subscreen</item>
            <item>screenrec</item>
        </string-array>

    now go to res/values/strings.xml and add blue

    Code:
        <string name="charging_connected_via_usb">Charging connected device via USB...</string>
        <string name="config_tspstate_threshold">10,32,768,10,60</string>
        [COLOR="Blue"]<string name="tw_ic_do_rebootrecovery">Reboot Recovery</string>[/COLOR]
    </resources>

    done with framework-res.apk
    recompile and push to phone

    Services.jar

    download services.zip and paste files in same folders of decompiles services.jar
    open smali/com/android/server/policy/GlobalActions.smali
    add blue line in # instance fields
    Code:
    .field mEmergencyStringId:I
    
    [COLOR="Blue"].field private mRebootRecovery:Lcom/android/server/policy/GlobalActions$SinglePressAction;[/COLOR]
    
    .field private mGlobalActionsFrameLayout:Landroid/app/GlobalActionsFrameLayout

    find .method private createDialog()Lcom/android/server/policy/GlobalActions$GlobalActionsDialog;
    add blue
    Code:
    if-eqz v4, :cond_8
    
        const v4, 0x10809f4
    
        :goto_4
        const v6, 0x10406e2
    
        move-object/from16 v0, p0
    
        invoke-direct {v5, v0, v4, v6}, Lcom/android/server/policy/GlobalActions$20;-><init>(Lcom/android/server/policy/GlobalActions;II)V
    
        move-object/from16 v0, p0
    
        iput-object v5, v0, Lcom/android/server/policy/GlobalActions;->mRestart:Lcom/android/server/policy/GlobalActions$SinglePressAction;
    	
        [COLOR="blue"]new-instance v4, Lcom/android/server/policy/GlobalActions$47;
    
        move-object/from16 v0, p0
    
        iget-object v0, v0, Lcom/android/server/policy/GlobalActions;->mContext:Landroid/content/Context;
    
        invoke-virtual {v0}, Landroid/content/Context;->getResources()Landroid/content/res/Resources;
    
        move-result-object v0
    
        const-string v1, "tw_ic_do_rebootrecovery" 
    
        const-string v2, "drawable" 
    
        const-string v3, "android"
    
        invoke-virtual {v0, v1, v2, v3}, Landroid/content/res/Resources;->getIdentifier(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)I
    
        move-result v5 
    
        move-object/from16 v0, p0
    
        iget-object v0, v0, Lcom/android/server/policy/GlobalActions;->mContext:Landroid/content/Context;
    
        invoke-virtual {v0}, Landroid/content/Context;->getResources()Landroid/content/res/Resources;
    
        move-result-object v0
    
        const-string v1, "tw_ic_do_rebootrecovery"
    
        const-string v2, "string"
    
        const-string v3, "android"
    
        invoke-virtual {v0, v1, v2, v3}, Landroid/content/res/Resources;->getIdentifier(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)I
    
        move-result v6
    
        move-object/from16 v0, p0
    
        invoke-direct {v4, v0, v5, v6}, Lcom/android/server/policy/GlobalActions$47;-><init>(Lcom/android/server/policy/GlobalActions;II)V
    
        move-object/from16 v0, p0
    
        iput-object v4, v0, Lcom/android/server/policy/GlobalActions;->mRebootRecovery:Lcom/android/server/policy/GlobalActions$SinglePressAction;[/COLOR] 
    
        invoke-static {}, Lcom/samsung/android/feature/SemCscFeature;->getInstance()Lcom/samsung/android/feature/SemCscFeature;
    
        move-result-object v4
    
        const-string/jumbo v5, "CscFeature_Common_ConfigBikeMode"

    Now next part is tricky, add lines in blue and changes in green

    Code:
    const/16 v6, 0x80
    
        const/4 v7, 0x1
    
        move-object/from16 v0, p0
    
        invoke-direct {v0, v6, v4, v5, v7}, Lcom/android/server/policy/GlobalActions;->addDialogItemsIfEnabled(ILcom/android/server/policy/GlobalActions$Action;Ljava/util/ArrayList;Z)Z
    
        new-instance v4, Lcom/android/server/policy/GlobalActions$BugReportAction;
    
        move-object/from16 v0, p0
    
        invoke-direct {v4, v0}, Lcom/android/server/policy/GlobalActions$BugReportAction;-><init>(Lcom/android/server/policy/GlobalActions;)V
    
        move-object/from16 v0, p0
    
        iget-object v5, v0, Lcom/android/server/policy/GlobalActions;->mItems:Ljava/util/ArrayList;
    	
    	[COLOR="Blue"]const/16 v6, 0x100
    
        move-object/from16 v0, p0
    
        iget-object v4, v0, Lcom/android/server/policy/GlobalActions;->mRebootRecovery:Lcom/android/server/policy/GlobalActions$SinglePressAction;
    
        move-object/from16 v0, p0
    
        iget-object v5, v0, Lcom/android/server/policy/GlobalActions;->mItems:Ljava/util/ArrayList;
    
        const/4 v7, 0x1
    
        move-object/from16 v0, p0
    
        invoke-direct {v0, v6, v4, v5, v7}, Lcom/android/server/policy/GlobalActions;->addDialogItemsIfEnabled(ILcom/android/server/policy/GlobalActions$Action;Ljava/util/ArrayList;Z)Z [/COLOR]
    
        const/16 v6, 0x200 [COLOR="Magenta"]#before was 0x100[/COLOR]
    
        const/4 v7, 0x1
    
        move-object/from16 v0, p0
    
        invoke-direct {v0, v6, v4, v5, v7}, Lcom/android/server/policy/GlobalActions;->addDialogItemsIfEnabled(ILcom/android/server/policy/GlobalActions$Action;Ljava/util/ArrayList;Z)Z

    now search for const-string/jumbo v4, "silent" and add blue line above it and delete red ones
    green parts must match yellow part
    Code:
    const-string/jumbo v4, "emergencymode"
    
        invoke-virtual {v4, v11}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
    
        move-result v4
    
        if-eqz v4, :cond_15
    
        move-object/from16 v0, p0
    
        iget-object v4, v0, Lcom/android/server/policy/GlobalActions;->mItems:Ljava/util/ArrayList;
    
        move-object/from16 v0, p0
    
        iget-object v5, v0, Lcom/android/server/policy/GlobalActions;->mEmergency:Lcom/android/server/policy/GlobalActions$ToggleAction;
    
        invoke-virtual {v4, v5}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z
    
        goto/16 :[COLOR="Yellow"]goto_7[/COLOR]   #look that green part match this
    
        :cond_15
        [COLOR="Blue"]const-string/jumbo v4, "rebootrecovery"
    
        invoke-virtual {v4, v11}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
    
        move-result v4
    
        if-eqz v4, :cond_asc1
    
        move-object/from16 v0, p0
    
        iget-object v4, v0, Lcom/android/server/policy/GlobalActions;->mItems:Ljava/util/ArrayList;
    
        move-object/from16 v0, p0
    
        iget-object v5, v0, Lcom/android/server/policy/GlobalActions;->mRebootRecovery:Lcom/android/server/policy/GlobalActions$SinglePressAction;
    
        invoke-virtual {v4, v5}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z
    
        goto/16 :[COLOR="Green"]goto_7 [/COLOR]
    
        :cond_asc1[/COLOR]
        const-string/jumbo v4, "silent"

    next part is missing in Android 7 services.jar so we need to readd it for mod
    find .method private addCustomDialogItems(Landroid/graphics/drawable/BitmapDrawable;Ljava/lang/String;Landroid/content/Intent;ILjava/util/ArrayList;)Z

    add this above method

    Code:
    .method static synthetic access$500(Lcom/android/server/policy/GlobalActions;)Landroid/content/Context;
        .locals 1
    
        iget-object v0, p0, Lcom/android/server/policy/GlobalActions;->mContext:Landroid/content/Context;
    
        return-object v0
    .end method

    thats it, recompile and push to phone

    Note: For me one time i get after reboot a loop of phone restarts, only one time happens. If it happen i solved it with wipe dalvik-cache and cache

    RomControl V2
    Code:
    <com.wubydax.romcontrol.v2.prefs.MySwitchPreference android:title="Reboot Recovery Button" android:key="reboot_recovery" android:defaultValue="false" android:summaryOn="Reboot Recovery will be shown" android:summaryOff="Currently removed" />
    13
    Guide - Another way of using Camera Flash on low battery.

    On S7 Edge Nougat the low battery level is defined in framework-res -> values - > integers.xml -> config_lowBatteryWarningLevel . With a battery level lower than the value defined here, the camera doesn´t allow the use of flash light.

    With this little mod, flash light will be available always.

    - Decompile SamsungCamera6.apk

    - Edit com/sec/android/app/camera/Camera.smali

    - Find .method protected onCreate(Landroid/os/Bundle;)V and look for the string "config_lowBatteryWarningLevel" ...

    - Add the line in blue.

    Code:
    ...
       const-string v21, [B]"config_lowBatteryWarningLevel"[/B]
    
        const-string v22, "integer"
    
        const-string v23, "android"
    
        invoke-virtual/range {v20 .. v23}, Landroid/content/res/Resources;->getIdentifier(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)I
    
        move-result v20
    
        invoke-virtual/range {v19 .. v20}, Landroid/content/res/Resources;->getInteger(I)I
    
        move-result v19
    
        move/from16 v0, v19
    
        move-object/from16 v1, p0
    	
    	[COLOR="blue"][B]const v0, 0x0[/B][/COLOR] # 0 = flash always available, 0x5 = Flash available while the battery level is greater than 5% ... select your desired value...or make a custom prefernce and read here its value (camara app should be restarted or .. .)
    
        iput v0, v1, Lcom/sec/android/app/camera/Camera;->[B]mLowBatteryWarningLevel:I[/B]
    
    ...

    Done.