Related
[GUIDE][DEVS][SMALI]Enable "Device Status Official" - Remove SysScope[GUIDE][DEVS]
How to permenantly remove SysScope from your Samsung Touchwiz ROM
Tired of the constant custom padlock on startup? Want permenant device status "Official"?
Team Blackout and KoolKit ROMs are not responsible if you blow up your house, your dog eats your homework,
the zombie apacolypse, your wife/husband divorcing you or if your device turns into an unrecognizable
smoldering pile of plastic. by reading this you agree to take all responsibility for any damage you do to the
universe, your device, your marriage or your failing grades in school or college.
Click to expand...
Click to collapse
This guide and mod originated in the Galaxy S4 threads and was created by @Aou who has since left the AT&T world so development
stopped at that point, I have taken the code and modded it slightly to work for our S5 devices (All variants even the Active)
Click to expand...
Click to collapse
All devs are free to use this MOD with proper recognition in your OP make sure you provide a mention to "Aou" for the
original code found here Removing SysScope - Permanent "Official" Device Status
and myself for the re-write of the instructions and changes to make this work for our devices.
Click to expand...
Click to collapse
NOTICE:
This MOD is not for the squeamish or novice modder it requires patience and a good amount of time to complete.
Click to expand...
Click to collapse
Prerequisites:
You need java installed and working at the command prompt.
You need smali and baksmali in your working directory. I used v1.4.2 of each. Here's some links: baksmali and smali.
Basic ADB skills
A good text editor, such as Notepad++. Even better, and good text comparison tool would be great to check your work (get a trial of Beyond Compare 3 maybe?).
Originally, I used a comparison tool, but in the end found myself just making the edits in Notepad++.
7zip or some other compressing/deompressing tool that can add a file into an .apk file.
Zip-Align (available in the SDK tools and other places around XDA) - technically optional, but probably a good idea
Get all these things into a working folder, open your command prompt in that folder, test ADB, and then begin.
Main Instructions:
1. Make sure you have an unmodded copy of your framework files (twframework-res.apk and framework-res.apk)
you need have these available locally for your chosen method to decompile (I'm not going to describe how
to decompile in this thread, If you don't know how then this MOD is not for you)
2. Pull a copy of the SecSettings.apk
adb pull /system/priv-app/SecSettings.apk
3. Decompile SecSettings.apk (using your favorite tools I recomend Virtuous Ten Studio)
4. Edit classes_out\com\android\settings\deviceinfo\Status .smali manually (using Notepad++).
"Remove:" means to delete a line or remove a section entirely.
"Change:" means to look at the original code, and make it look like the "to" part.
NOTE depending on your ethod of decompiling you may not see the line numbers
however, if you do delete from the appropriate code section as well.
REMOVE:
Code:
.field private isSysScopeStatus:I
REMOVE:
Code:
.field private mSysScopeReceiver:Landroid/content/BroadcastReceiver;
REMOVE:
Code:
.line 264
new-instance v0, Lcom/android/settings/deviceinfo/Status$2;
invoke-direct {v0, p0}, Lcom/android/settings/deviceinfo/Status$2;-><init>(Lcom/android/settings/deviceinfo/Status;)V
iput-object v0, p0, Lcom/android/settings/deviceinfo/Status;->mSysScopeReceiver:Landroid/content/BroadcastReceiver;
REMOVE:
Code:
.line 216
const/4 v0, -0x1
iput v0, p0, Lcom/android/settings/deviceinfo/Status;->isSysScopeStatus:I
REMOVE:
Code:
.method static synthetic access$402(Lcom/android/settings/deviceinfo/Status;I)I
.registers 2
.parameter "x0"
.parameter "x1"
.prologue
.line 102
iput p1, p0, Lcom/android/settings/deviceinfo/Status;->isSysScopeStatus:I
return p1
.end method
.method static synthetic access$500(Lcom/android/settings/deviceinfo/Status;)V
.registers 1
.parameter "x0"
.prologue
.line 102
invoke-direct {p0}, Lcom/android/settings/deviceinfo/Status;->changeSysScopeStatus()V
return-void
.end method
REMOVE:
Code:
.line 687
iget-object v0, p0, Lcom/android/settings/deviceinfo/Status;->mSysScopeReceiver:Landroid/content/BroadcastReceiver;
invoke-virtual {p0, v0}, Lcom/android/settings/deviceinfo/Status;->unregisterReceiver(Landroid/content/BroadcastReceiver;)V
REMOVE:
Code:
.line 657
iget-object v1, p0, Lcom/android/settings/deviceinfo/Status;->mSysScopeReceiver:Landroid/content/BroadcastReceiver;
new-instance v2, Landroid/content/IntentFilter;
const-string v3, "com.sec.intent.action.SYSSCOPESTATUS"
invoke-direct {v2, v3}, Landroid/content/IntentFilter;-><init>(Ljava/lang/String;)V
invoke-virtual {p0, v1, v2}, Lcom/android/settings/deviceinfo/Status;->registerReceiver(Landroid/content/BroadcastReceiver;Landroid/content/IntentFilter;)Landroid/content/Intent;
CHANGE: Take note at this part you will need to locate some specific values from within /res/values/public.xml
Open /res/values/public.xml and search for "<public type="string" name="sysscope_tampered" id="0x7f0901a7" />"
and also for "<public type="string" name="sysscope_normal" id="0x7f0901a6" />" and also for
"<public type="string" name="sysscope_status" id="0x7f0901a5" />"
note the IDs you will need these values in the next section. (This is official NCE release your release
may have a different value.) Make sure you change the bolded values to match your own.
Code:
.line 952
const v1, 0x7f0901a7
TO:
Code:
.line 952
const v1, [B]0x7f0901a5[/B]
CHANGE:
Code:
.method private changeSysScopeStatus()V
.registers 8
.prologue
const-wide/16 v3, 0x3e8
const v6, 0x7f0901a7
const/4 v5, -0x1
.line 956
const-string v0, "sysscope_status"
invoke-virtual {p0, v0}, Lcom/android/settings/deviceinfo/Status;->findPreference(Ljava/lang/CharSequence;)Landroid/preference/Preference;
move-result-object v2
.line 958
invoke-static {}, Landroid/os/SystemClock;->uptimeMillis()J
move-result-wide v0
div-long/2addr v0, v3
.line 959
invoke-static {}, Landroid/os/SystemClock;->elapsedRealtime()J
move-result-wide v0
div-long/2addr v0, v3
.line 961
const-wide/16 v3, 0x0
cmp-long v3, v0, v3
if-nez v3, :cond_1e
.line 962
const-wide/16 v0, 0x1
.line 965
:cond_1e
iget v3, p0, Lcom/android/settings/deviceinfo/Status;->isSysScopeStatus:I
if-ne v3, v5, :cond_30
const-wide/16 v3, 0x78
cmp-long v0, v0, v3
if-lez v0, :cond_30
.line 966
invoke-virtual {p0, v6}, Lcom/android/settings/deviceinfo/Status;->getString(I)Ljava/lang/String;
move-result-object v0
.line 977
:goto_2c
invoke-virtual {v2, v0}, Landroid/preference/Preference;->setSummary(Ljava/lang/CharSequence;)V
.line 978
return-void
.line 968
:cond_30
iget v0, p0, Lcom/android/settings/deviceinfo/Status;->isSysScopeStatus:I
const/4 v1, 0x2
if-ne v0, v1, :cond_3a
.line 969
invoke-virtual {p0, v6}, Lcom/android/settings/deviceinfo/Status;->getString(I)Ljava/lang/String;
move-result-object v0
goto :goto_2c
.line 970
:cond_3a
iget v0, p0, Lcom/android/settings/deviceinfo/Status;->isSysScopeStatus:I
if-ne v0, v5, :cond_46
.line 971
const v0, 0x7f09013f
invoke-virtual {p0, v0}, Lcom/android/settings/deviceinfo/Status;->getString(I)Ljava/lang/String;
move-result-object v0
goto :goto_2c
.line 973
:cond_46
const v0, 0x7f09013d
invoke-virtual {p0, v0}, Lcom/android/settings/deviceinfo/Status;->getString(I)Ljava/lang/String;
move-result-object v0
goto :goto_2c
.end method
TO:
Code:
.method private changeSysScopeStatus()V
.registers 4
.prologue
[B]const v1, 0x7f0901a6[/B]
.line 956
const-string v0, "sysscope_status"
invoke-virtual {p0, v0}, Lcom/android/settings/deviceinfo/Status;->findPreference(Ljava/lang/CharSequence;)Landroid/preference/Preference;
move-result-object v2
.line 966
invoke-virtual {p0, v1}, Lcom/android/settings/deviceinfo/Status;->getString(I)Ljava/lang/String;
move-result-object v0
.line 977
invoke-virtual {v2, v0}, Landroid/preference/Preference;->setSummary(Ljava/lang/CharSequence;)V
.line 978
return-void
.end method
Delete: /smali/com/android/settings/deviceinfo/status$2.smali
re-compile SecSettings.apk
INSTALL:
Install! Use "adb shell" to begin, and use the following commands, one at a time:
rm /system/app/SysScope.apk
rm -r /data/dalvik-cache/*
push SecSettings.apk /system/priv-app/SecSettings.apk
chmod 0644 /system/priv-app/SecSettings.apk
reboot
Click to expand...
Click to collapse
reserved
reserved
Nice. People with o.c.d. are gonna love this. Nice work.
The Gods Approve This Post, From The Ghost Of Sparta's S5 active.
GDofWR420 said:
Nice. People with o.c.d. are gonna love this. Nice work.
The Gods Approve This Post, From The Ghost Of Sparta's S5 active.
Click to expand...
Click to collapse
LOL. Yea it was my OCD that drove me to make Aou's mod work for us, of course now I'm half blind and hyped up on starbucks doubleshots but what the heck right?
cstayton said:
LOL. Yea it was my OCD that drove me to make Aou's mod work for us, of course now I'm half blind and hyped up on starbucks doubleshots but what the heck right?
Click to expand...
Click to collapse
Lol. Yea no coffee this morning but I found an ice cold Sunkist that will do in a pinch. Country living make you to lazy to go to the store. OCD here to.
Would it be possible to get a tutorial on changing over scroll glowing or maybe you have a link you know of.:sly:
The Gods Approve This Post, From The Ghost Of Sparta's S5 active.
Here is not working
The last step are only to change the
Code:
const v6, 0x7f0901a7
for
Code:
const v1, 0x7f0901a6
?
or change this
Code:
.method private changeSysScopeStatus()V
.registers 8
.prologue
const-wide/16 v3, 0x3e8
const v6, 0x7f0901a7
const/4 v5, -0x1
.line 956
const-string v0, "sysscope_status"
invoke-virtual {p0, v0}, Lcom/android/settings/deviceinfo/Status;->findPreference(Ljava/lang/CharSequence;)Landroid/preference/Preference;
move-result-object v2
.line 958
invoke-static {}, Landroid/os/SystemClock;->uptimeMillis()J
move-result-wide v0
div-long/2addr v0, v3
.line 959
invoke-static {}, Landroid/os/SystemClock;->elapsedRealtime()J
move-result-wide v0
div-long/2addr v0, v3
.line 961
const-wide/16 v3, 0x0
cmp-long v3, v0, v3
if-nez v3, :cond_1e
.line 962
const-wide/16 v0, 0x1
.line 965
:cond_1e
iget v3, p0, Lcom/android/settings/deviceinfo/Status;->isSysScopeStatus:I
if-ne v3, v5, :cond_30
const-wide/16 v3, 0x78
cmp-long v0, v0, v3
if-lez v0, :cond_30
.line 966
invoke-virtual {p0, v6}, Lcom/android/settings/deviceinfo/Status;->getString(I)Ljava/lang/String;
move-result-object v0
.line 977
:goto_2c
invoke-virtual {v2, v0}, Landroid/preference/Preference;->setSummary(Ljava/lang/CharSequence;)V
.line 978
return-void
.line 968
:cond_30
iget v0, p0, Lcom/android/settings/deviceinfo/Status;->isSysScopeStatus:I
const/4 v1, 0x2
if-ne v0, v1, :cond_3a
.line 969
invoke-virtual {p0, v6}, Lcom/android/settings/deviceinfo/Status;->getString(I)Ljava/lang/String;
move-result-object v0
goto :goto_2c
.line 970
:cond_3a
iget v0, p0, Lcom/android/settings/deviceinfo/Status;->isSysScopeStatus:I
if-ne v0, v5, :cond_46
.line 971
const v0, 0x7f09013f
invoke-virtual {p0, v0}, Lcom/android/settings/deviceinfo/Status;->getString(I)Ljava/lang/String;
move-result-object v0
goto :goto_2c
.line 973
:cond_46
const v0, 0x7f09013d
invoke-virtual {p0, v0}, Lcom/android/settings/deviceinfo/Status;->getString(I)Ljava/lang/String;
move-result-object v0
goto :goto_2c
.end method
for this
Code:
.method private changeSysScopeStatus()V
.registers 4
.prologue
const v1, 0x7f0901a6
.line 956
const-string v0, "sysscope_status"
invoke-virtual {p0, v0}, Lcom/android/settings/deviceinfo/Status;->findPreference(Ljava/lang/CharSequence;)Landroid/preference/Preference;
move-result-object v2
.line 966
invoke-virtual {p0, v1}, Lcom/android/settings/deviceinfo/Status;->getString(I)Ljava/lang/String;
move-result-object v0
.line 977
invoke-virtual {v2, v0}, Landroid/preference/Preference;->setSummary(Ljava/lang/CharSequence;)V
.line 978
return-void
.end method
?
eric-filth said:
Here is not working
The last step are only to change the
Code:
const v6, 0x7f0901a7
for
Code:
const v1, 0x7f0901a6
?
or change this
Code:
.method private changeSysScopeStatus()V
.registers 8
.prologue
const-wide/16 v3, 0x3e8
const v6, 0x7f0901a7
const/4 v5, -0x1
.line 956
const-string v0, "sysscope_status"
invoke-virtual {p0, v0}, Lcom/android/settings/deviceinfo/Status;->findPreference(Ljava/lang/CharSequence;)Landroid/preference/Preference;
move-result-object v2
.line 958
invoke-static {}, Landroid/os/SystemClock;->uptimeMillis()J
move-result-wide v0
div-long/2addr v0, v3
.line 959
invoke-static {}, Landroid/os/SystemClock;->elapsedRealtime()J
move-result-wide v0
div-long/2addr v0, v3
.line 961
const-wide/16 v3, 0x0
cmp-long v3, v0, v3
if-nez v3, :cond_1e
.line 962
const-wide/16 v0, 0x1
.line 965
:cond_1e
iget v3, p0, Lcom/android/settings/deviceinfo/Status;->isSysScopeStatus:I
if-ne v3, v5, :cond_30
const-wide/16 v3, 0x78
cmp-long v0, v0, v3
if-lez v0, :cond_30
.line 966
invoke-virtual {p0, v6}, Lcom/android/settings/deviceinfo/Status;->getString(I)Ljava/lang/String;
move-result-object v0
.line 977
:goto_2c
invoke-virtual {v2, v0}, Landroid/preference/Preference;->setSummary(Ljava/lang/CharSequence;)V
.line 978
return-void
.line 968
:cond_30
iget v0, p0, Lcom/android/settings/deviceinfo/Status;->isSysScopeStatus:I
const/4 v1, 0x2
if-ne v0, v1, :cond_3a
.line 969
invoke-virtual {p0, v6}, Lcom/android/settings/deviceinfo/Status;->getString(I)Ljava/lang/String;
move-result-object v0
goto :goto_2c
.line 970
:cond_3a
iget v0, p0, Lcom/android/settings/deviceinfo/Status;->isSysScopeStatus:I
if-ne v0, v5, :cond_46
.line 971
const v0, 0x7f09013f
invoke-virtual {p0, v0}, Lcom/android/settings/deviceinfo/Status;->getString(I)Ljava/lang/String;
move-result-object v0
goto :goto_2c
.line 973
:cond_46
const v0, 0x7f09013d
invoke-virtual {p0, v0}, Lcom/android/settings/deviceinfo/Status;->getString(I)Ljava/lang/String;
move-result-object v0
goto :goto_2c
.end method
for this
Code:
.method private changeSysScopeStatus()V
.registers 4
.prologue
const v1, 0x7f0901a6
.line 956
const-string v0, "sysscope_status"
invoke-virtual {p0, v0}, Lcom/android/settings/deviceinfo/Status;->findPreference(Ljava/lang/CharSequence;)Landroid/preference/Preference;
move-result-object v2
.line 966
invoke-virtual {p0, v1}, Lcom/android/settings/deviceinfo/Status;->getString(I)Ljava/lang/String;
move-result-object v0
.line 977
invoke-virtual {v2, v0}, Landroid/preference/Preference;->setSummary(Ljava/lang/CharSequence;)V
.line 978
return-void
.end method
?
Click to expand...
Click to collapse
you need to change the whole method out the lines with the ID are what you need to look up in your build to match to the appropriate status response.
GDofWR420 said:
Lol. Yea no coffee this morning but I found an ice cold Sunkist that will do in a pinch. Country living make you to lazy to go to the store. OCD here to.
Would it be possible to get a tutorial on changing over scroll glowing or maybe you have a link you know of.:sly:
The Gods Approve This Post, From The Ghost Of Sparta's S5 active.
Click to expand...
Click to collapse
I'll see if i can find one for overscroll, its a pretty common mod i used to use it in the days of CM7
cstayton said:
I'll see if i can find one for overscroll, its a pretty common mod i used to use it in the days of CM7
Click to expand...
Click to collapse
Actually I found a module for xposed called xuimodule it allows for over scroll color change. Works OK on stock but with the koolkit.xml it's a little funky as I believe it was causing some lag so I removed it and lag is gone.
Sent from my SAMSUNG-SM-G870A using XDA Premium 4 mobile app
GDofWR420 said:
Actually I found a module for xposed called xuimodule it allows for over scroll color change. Works OK on stock but with the koolkit.xml it's a little funky as I believe it was causing some lag so I removed it and lag is gone.
Sent from my SAMSUNG-SM-G870A using XDA Premium 4 mobile app
Click to expand...
Click to collapse
hmmmm, i wonder if it has an entry in csc that it couldnt handle because its locked down? I might have to re-think the whole "xPosed-Proof" feature mod.
Hey, followed your CIQ removal guide and everything went perfectly. I've checked for any CIQ threads or network traffic and there is none. Job very well done.
However, with this guide, I am finding I have /system/app/SysScope.apk but no SecSettings.apk. I have a bunch of other APKs that begin with the Sec prefix but no SecSettings.apk. Any ideas?
EDIT: Found it under /system/priv-app/SecSettings.apk. You should update the pull command in the guide.
EDIT2: Can't find /res/values/public.xml file that contains any mention of sysscope, checked framework-res.apk and twframework-res.apk as well as SecSettings.apk. No luck. Is the definition somewhere else perhaps?
EDIT3: Perhaps this is tied to the fact that I can only open SecSettings.apk for editing if I chose "basic editing" in the import. If I try for advanced editing, I get a slew of decompilation errors, regardless of which FrameworkTag I pick.
Decompilation errors that occur if I try to decomp with aapt are the same as the ones I see if I try to do "advanced editing". I've tried both framework tags when importing and I always get these errors during unpack. I have a feeling that "basic editing" doesn't fully unpack the res directory as needed and advanced is having trouble with the XML parse.
{
"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"
}
deduction said:
Hey, followed your CIQ removal guide and everything went perfectly. I've checked for any CIQ threads or network traffic and there is none. Job very well done.
However, with this guide, I am finding I have /system/app/SysScope.apk but no SecSettings.apk. I have a bunch of other APKs that begin with the Sec prefix but no SecSettings.apk. Any ideas?
EDIT: Found it under /system/priv-app/SecSettings.apk. You should update the pull command in the guide.
EDIT2: Can't find /res/values/public.xml file that contains any mention of sysscope, checked framework-res.apk and twframework-res.apk as well as SecSettings.apk. No luck. Is the definition somewhere else perhaps?
EDIT3: Perhaps this is tied to the fact that I can only open SecSettings.apk for editing if I chose "basic editing" in the import. If I try for advanced editing, I get a slew of decompilation errors, regardless of which FrameworkTag I pick.
Decompilation errors that occur if I try to decomp with aapt are the same as the ones I see if I try to do "advanced editing". I've tried both framework tags when importing and I always get these errors during unpack. I have a feeling that "basic editing" doesn't fully unpack the res directory as needed and advanced is having trouble with the XML parse.
Click to expand...
Click to collapse
try tickle my android on here.. its mainly for theming but i had success with de/recompiling apks and you can edit the files needed for any mod before recompiling
Sent from my SM-G900V using XDA Free mobile app
---------- Post added at 10:08 AM ---------- Previous post was at 10:04 AM ----------
cstayton said:
How to permenantly remove SysScope from your Samsung Touchwiz ROM
Tired of the constant custom padlock on startup? Want permenant device status "Official"?
NOTICE:
Prerequisites:
You need java installed and working at the command prompt.
You need smali and baksmali in your working directory. I used v1.4.2 of each. Here's some links: baksmali and smali.
Basic ADB skills
A good text editor, such as Notepad++. Even better, and good text comparison tool would be great to check your work (get a trial of Beyond Compare 3 maybe?).
Originally, I used a comparison tool, but in the end found myself just making the edits in Notepad++.
7zip or some other compressing/deompressing tool that can add a file into an .apk file.
Zip-Align (available in the SDK tools and other places around XDA) - technically optional, but probably a good idea
Get all these things into a working folder, open your command prompt in that folder, test ADB, and then begin.
Main Instructions:
1. Make sure you have an unmodded copy of your framework files (twframework-res.apk and framework-res.apk)
you need have these available locally for your chosen method to decompile (I'm not going to describe how
to decompile in this thread, If you don't know how then this MOD is not for you)
2. Pull a copy of the SecSettings.apk
adb pull /system/app/SecSettings.apk
3. Decompile SecSettings.apk (using your favorite tools I recomend Virtuous Ten Studio)
4. Edit classes_out\com\android\settings\deviceinfo\Status .smali manually (using Notepad++).
"Remove:" means to delete a line or remove a section entirely.
"Change:" means to look at the original code, and make it look like the "to" part.
NOTE depending on your ethod of decompiling you may not see the line numbers
however, if you do delete from the appropriate code section as well.
REMOVE:
Code:
.field private isSysScopeStatus:I
REMOVE:
Code:
.field private mSysScopeReceiver:Landroid/content/BroadcastReceiver;
REMOVE:
Code:
.line 264
new-instance v0, Lcom/android/settings/deviceinfo/Status$2;
invoke-direct {v0, p0}, Lcom/android/settings/deviceinfo/Status$2;-><init>(Lcom/android/settings/deviceinfo/Status;)V
iput-object v0, p0, Lcom/android/settings/deviceinfo/Status;->mSysScopeReceiver:Landroid/content/BroadcastReceiver;
REMOVE:
Code:
.line 216
const/4 v0, -0x1
iput v0, p0, Lcom/android/settings/deviceinfo/Status;->isSysScopeStatus:I
REMOVE:
Code:
.method static synthetic access$402(Lcom/android/settings/deviceinfo/Status;I)I
.registers 2
.parameter "x0"
.parameter "x1"
.prologue
.line 102
iput p1, p0, Lcom/android/settings/deviceinfo/Status;->isSysScopeStatus:I
return p1
.end method
.method static synthetic access$500(Lcom/android/settings/deviceinfo/Status;)V
.registers 1
.parameter "x0"
.prologue
.line 102
invoke-direct {p0}, Lcom/android/settings/deviceinfo/Status;->changeSysScopeStatus()V
return-void
.end method
REMOVE:
Code:
.line 687
iget-object v0, p0, Lcom/android/settings/deviceinfo/Status;->mSysScopeReceiver:Landroid/content/BroadcastReceiver;
invoke-virtual {p0, v0}, Lcom/android/settings/deviceinfo/Status;->unregisterReceiver(Landroid/content/BroadcastReceiver;)V
REMOVE:
Code:
.line 657
iget-object v1, p0, Lcom/android/settings/deviceinfo/Status;->mSysScopeReceiver:Landroid/content/BroadcastReceiver;
new-instance v2, Landroid/content/IntentFilter;
const-string v3, "com.sec.intent.action.SYSSCOPESTATUS"
invoke-direct {v2, v3}, Landroid/content/IntentFilter;-><init>(Ljava/lang/String;)V
invoke-virtual {p0, v1, v2}, Lcom/android/settings/deviceinfo/Status;->registerReceiver(Landroid/content/BroadcastReceiver;Landroid/content/IntentFilter;)Landroid/content/Intent;
CHANGE: Take note at this part you will need to locate some specific values from within /res/values/public.xml
Open /res/values/public.xml and search for "<public type="string" name="sysscope_tampered" id="0x7f0901a7" />"
and also for "<public type="string" name="sysscope_normal" id="0x7f0901a6" />" and also for
"<public type="string" name="sysscope_status" id="0x7f0901a5" />"
note the IDs you will need these values in the next section. (This is official NCE release your release
may have a different value.) Make sure you change the bolded values to match your own.
Code:
.line 952
const v1, 0x7f0901a7
TO:
Code:
.line 952
const v1, [B]0x7f0901a5[/B]
CHANGE:
Code:
.method private changeSysScopeStatus()V
.registers 8
.prologue
const-wide/16 v3, 0x3e8
const v6, 0x7f0901a7
const/4 v5, -0x1
.line 956
const-string v0, "sysscope_status"
invoke-virtual {p0, v0}, Lcom/android/settings/deviceinfo/Status;->findPreference(Ljava/lang/CharSequence;)Landroid/preference/Preference;
move-result-object v2
.line 958
invoke-static {}, Landroid/os/SystemClock;->uptimeMillis()J
move-result-wide v0
div-long/2addr v0, v3
.line 959
invoke-static {}, Landroid/os/SystemClock;->elapsedRealtime()J
move-result-wide v0
div-long/2addr v0, v3
.line 961
const-wide/16 v3, 0x0
cmp-long v3, v0, v3
if-nez v3, :cond_1e
.line 962
const-wide/16 v0, 0x1
.line 965
:cond_1e
iget v3, p0, Lcom/android/settings/deviceinfo/Status;->isSysScopeStatus:I
if-ne v3, v5, :cond_30
const-wide/16 v3, 0x78
cmp-long v0, v0, v3
if-lez v0, :cond_30
.line 966
invoke-virtual {p0, v6}, Lcom/android/settings/deviceinfo/Status;->getString(I)Ljava/lang/String;
move-result-object v0
.line 977
:goto_2c
invoke-virtual {v2, v0}, Landroid/preference/Preference;->setSummary(Ljava/lang/CharSequence;)V
.line 978
return-void
.line 968
:cond_30
iget v0, p0, Lcom/android/settings/deviceinfo/Status;->isSysScopeStatus:I
const/4 v1, 0x2
if-ne v0, v1, :cond_3a
.line 969
invoke-virtual {p0, v6}, Lcom/android/settings/deviceinfo/Status;->getString(I)Ljava/lang/String;
move-result-object v0
goto :goto_2c
.line 970
:cond_3a
iget v0, p0, Lcom/android/settings/deviceinfo/Status;->isSysScopeStatus:I
if-ne v0, v5, :cond_46
.line 971
const v0, 0x7f09013f
invoke-virtual {p0, v0}, Lcom/android/settings/deviceinfo/Status;->getString(I)Ljava/lang/String;
move-result-object v0
goto :goto_2c
.line 973
:cond_46
const v0, 0x7f09013d
invoke-virtual {p0, v0}, Lcom/android/settings/deviceinfo/Status;->getString(I)Ljava/lang/String;
move-result-object v0
goto :goto_2c
.end method
TO:
Code:
.method private changeSysScopeStatus()V
.registers 4
.prologue
[B]const v1, 0x7f0901a6[/B]
.line 956
const-string v0, "sysscope_status"
invoke-virtual {p0, v0}, Lcom/android/settings/deviceinfo/Status;->findPreference(Ljava/lang/CharSequence;)Landroid/preference/Preference;
move-result-object v2
.line 966
invoke-virtual {p0, v1}, Lcom/android/settings/deviceinfo/Status;->getString(I)Ljava/lang/String;
move-result-object v0
.line 977
invoke-virtual {v2, v0}, Landroid/preference/Preference;->setSummary(Ljava/lang/CharSequence;)V
.line 978
return-void
.end method
INSTALL:
Click to expand...
Click to collapse
hey.. had question bout install method.. i assume it to be ok to just remove syscope.apk from rom and then add modded secsettings.apk to priv-app folder in rom base and flashing rom will work?
Sent from my SM-G900V using XDA Free mobile app
elliwigy said:
try tickle my android on here.. its mainly for theming but i had success with de/recompiling apks and you can edit the files needed for any mod before recompiling
Sent from my SM-G900V using XDA Free mobile app
---------- Post added at 10:08 AM ---------- Previous post was at 10:04 AM ----------
hey.. had question bout install method.. i assume it to be ok to just remove syscope.apk from rom and then add modded secsettings.apk to priv-app folder in rom base and flashing rom will work?
Sent from my SM-G900V using XDA Free mobile app
Click to expand...
Click to collapse
from the error looks as if you are trying to decompile with the wrong frameworks youll need to make sure the framework-res.apk and twframework-res.apk are the ones unmodded stock ones from your rom base
elliwigy said:
try tickle my android on here.. its mainly for theming but i had success with de/recompiling apks and you can edit the files needed for any mod before recompiling
Sent from my SM-G900V using XDA Free mobile app
---------- Post added at 10:08 AM ---------- Previous post was at 10:04 AM ----------
hey.. had question bout install method.. i assume it to be ok to just remove syscope.apk from rom and then add modded secsettings.apk to priv-app folder in rom base and flashing rom will work?
Sent from my SM-G900V using XDA Free mobile app
Click to expand...
Click to collapse
once you have the mod completed yes, remove sysscope.apk and place modded secsettings in rom base and flash
ok...can you take a look at these? I get about half way through your guide and then it gets lost. I don't know if the info just isnt there or what?
Thanks!
deduction said:
Hey, followed your CIQ removal guide and everything went perfectly. I've checked for any CIQ threads or network traffic and there is none. Job very well done.
However, with this guide, I am finding I have /system/app/SysScope.apk but no SecSettings.apk. I have a bunch of other APKs that begin with the Sec prefix but no SecSettings.apk. Any ideas?
EDIT: Found it under /system/priv-app/SecSettings.apk. You should update the pull command in the guide.
EDIT2: Can't find /res/values/public.xml file that contains any mention of sysscope, checked framework-res.apk and twframework-res.apk as well as SecSettings.apk. No luck. Is the definition somewhere else perhaps?
EDIT3: Perhaps this is tied to the fact that I can only open SecSettings.apk for editing if I chose "basic editing" in the import. If I try for advanced editing, I get a slew of decompilation errors, regardless of which FrameworkTag I pick.
Decompilation errors that occur if I try to decomp with aapt are the same as the ones I see if I try to do "advanced editing". I've tried both framework tags when importing and I always get these errors during unpack. I have a feeling that "basic editing" doesn't fully unpack the res directory as needed and advanced is having trouble with the XML parse.
Click to expand...
Click to collapse
your not looking sysscope your actually looking for " <public type="string" name="sysscope_normal" you have to be specific in the search
am having trouble getting dropbox or anywhere to work. Here is the untouched status.smali.
Thanks very much...I keep getting stumped because the edits I need to make just don't seem to be there when I decompile the apk. Not sure why.
small change in OP
small change in OP
Delete: /smali/com/android/settings/deviceinfo/status$2.smali
re-compile SecSettings.apk
Hello.thanks man. Working great on my 5.1.1 Samsung note edge ROM..
regards
@cstayton
"<public type="string" name="sysscope_tampered" id="0x7f0a01be" />"
and also for "<public type="string" name="sysscope_normal" id="0x7f0a01bd" />" and also for
"<public type="string" name="sysscope_status" id="0x7f0a01bc" />"
Those are my public values.
Im having trouble with the last Change. I have changed and removed everything else, could you help me with the last step? Im not sure what needs to be changed. My smali.status should be attached. any help is appreciated. thank you
[Guide How-to] KitKat 4.4.2/Android L Music Control - Volume Music Skip
UPDATED FOR ANDROID L
This guide requires knowledge of decompiling and compiling apk and smali files.
It is only a guide.
I do not take requests. If you want this mod for your rom, get with a dev with the knowledge to get it done.
I have attached android.policy files for diffing in case you get stuck on a section.
SecSettings.apk
In SecSettings.apk we setup the Music Control menu items & toggles.
(This edit does not work on Android L)
*** Add the two new files from the SecSettings_new_files.zip attached at the bottom of this post.
res/values/strings.xml edit:
Add new lines
Code:
<string name="volbtn_toggle_title">Music Control</string>
<string name="volbtn_timeout_title">Button Delay</string>
<string name="volbtn_timeout_summary">%s</string>
<string name="volbtn_vol_up_title">Volume Up Action</string>
<string name="volbtn_vol_up_summary">%s</string>
<string name="volbtn_vol_down_title">Volume Down Action</string>
<string name="volbtn_vol_down_summary">%s</string>
res/values/arrays.xml edit:
Add new lines
Code:
<string-array name="volbtn_action_entries">
<item>Next</item>
<item>Pause</item>
<item>Play</item>
<item>Play/Pause</item>
<item>Previous</item>
<item>Stop</item>
</string-array>
<string-array name="volbtn_action_values">
<item>87</item>
<item>127</item>
<item>126</item>
<item>85</item>
<item>88</item>
<item>86</item>
</string-array>
<string-array name="volbtn_timeout_entries">
<item>100ms</item>
<item>150ms</item>
<item>200ms</item>
<item>250ms</item>
<item>300ms</item>
<item>350ms</item>
<item>400ms</item>
<item>450ms</item>
<item>500ms</item>
</string-array>
<string-array name="volbtn_timeout_values">
<item>100</item>
<item>150</item>
<item>200</item>
<item>250</item>
<item>300</item>
<item>350</item>
<item>400</item>
<item>450</item>
<item>500</item>
</string-array>
res/xml/sound_settings.xml edit:
Add new line where you want the menu item to appear in the Sound settings menu.
Code:
<SwitchPreferenceScreen android:title="@string/volbtn_toggle_title" android:key="volbtn_music_controls" android:fragment="com.android.settings.VolBtnSettings" />
Smali Edit:
smali/com/android/settings/SoundSettings.smali
Add new line in BLUE
Code:
.field private mVibrateWhenRinging:Landroid/preference/CheckBoxPreference;
[COLOR="Blue"].field private mVolBtnMusicCtrl:Landroid/preference/SwitchPreferenceScreen;
[/COLOR]
.field private mVolume:Lcom/android/settings/RingerVolumePreference;
Increase locals value by 1 indicated in GREEN
Note:
When the change to .locals is increased by one, both of the V7 values in the new lines should be one LESS than the .locals value.
(New .locals value in our example is 8. 8-1=7, so we use V7)
Add new lines indicated in BLUE
Code:
.method private updateState(Z)V
[COLOR="Green"].locals 8
[/COLOR]
const/4 v2, 0x1
const/4 v4, 0x0
invoke-virtual {p0}, Landroid/app/Fragment;->getActivity()Landroid/app/Activity;
move-result-object v0
if-nez v0, :cond_1
:cond_0
:goto_0
return-void
:cond_1
iget-object v0, p0, Lcom/android/settings/SoundSettings;->mAudioManager:Landroid/media/AudioManager;
invoke-virtual {v0}, Landroid/media/AudioManager;->getRingerMode()I
move-result v6
[COLOR="Blue"] iget-object v1, p0, Lcom/android/settings/SoundSettings;->mVolBtnMusicCtrl:Landroid/preference/SwitchPreferenceScreen;
if-eqz v1, :cond_td
iget-object v3, p0, Lcom/android/settings/SoundSettings;->mVolBtnMusicCtrl:Landroid/preference/SwitchPreferenceScreen;
invoke-virtual {p0}, Lcom/android/settings/SoundSettings;->getContentResolver()Landroid/content/ContentResolver;
move-result-object v1
const-string v7, "volbtn_music_controls"
invoke-static {v1, v7, v4}, Landroid/provider/Settings$System;->getInt(Landroid/content/ContentResolver;Ljava/lang/String;I)I
move-result v1
if-eqz v1, :cond_vol
move v1, v2
:goto_vol
invoke-virtual {v3, v1}, Landroid/preference/SwitchPreferenceScreen;->setChecked(Z)V
:cond_td
[/COLOR] const-string v0, "CTC"
New lines at the end of the same method.
Add lines indicated in BLUE
Code:
.method private updateState(Z)V
.
.
.
goto/16 :goto_1
[COLOR="Blue"] :cond_vol
move v1, v4
goto/16 :goto_vol
[/COLOR].end method
Search for the string "phone_vibration" in SoundSettings.smali and add the new lines indicated in BLUE right above it.
Code:
[COLOR="Blue"]const-string v32, "volbtn_music_controls"
move-object/from16 v0, p0
move-object/from16 v1, v32
invoke-virtual {v0, v1}, Lcom/android/settings/SoundSettings;->findPreference(Ljava/lang/CharSequence;)Landroid/preference/Preference;
move-result-object v32
check-cast v32, Landroid/preference/SwitchPreferenceScreen;
move-object/from16 v0, v32
move-object/from16 v1, p0
iput-object v0, v1, Lcom/android/settings/SoundSettings;->mVolBtnMusicCtrl:Landroid/preference/SwitchPreferenceScreen;
move-object/from16 v0, p0
iget-object v0, v0, Lcom/android/settings/SoundSettings;->mVolBtnMusicCtrl:Landroid/preference/SwitchPreferenceScreen;
move-object/from16 v32, v0
move-object/from16 v0, v32
move-object/from16 v1, p0
invoke-virtual {v0, v1}, Landroid/preference/Preference;->setOnPreferenceChangeListener(Landroid/preference/Preference$OnPreferenceChangeListener;)V
[/COLOR]
const-string v32, "phone_vibration"
Add new lines indicated in BLUE
Make sure values v2, v3 & v4 values match surrounding code.
Code:
.method public onPreferenceChange(Landroid/preference/Preference;Ljava/lang/Object;)Z
.locals 6
const/4 v0, 0x0
const/4 v1, 0x1
invoke-virtual {p1}, Landroid/preference/Preference;->getKey()Ljava/lang/String;
move-result-object v2
const-string v3, "SoundSettings"
new-instance v4, Ljava/lang/StringBuilder;
invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V
const-string v5, "onPreferenceChange : "
invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v4
invoke-virtual {v4, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v4
invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v4
invoke-static {v3, v4}, Landroid/util/secutil/Log;->secV(Ljava/lang/String;Ljava/lang/String;)I
[COLOR="Blue"]const-string v3, "volbtn_music_controls"
invoke-virtual {v3, v2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v3
if-eqz v3, :cond_td3
check-cast p2, Ljava/lang/Boolean;
invoke-virtual {p2}, Ljava/lang/Boolean;->booleanValue()Z
move-result v3
if-eqz v3, :cond_td4
const/4 v0, 0x1
:goto_td5
invoke-virtual {p0}, Lcom/android/settings/SoundSettings;->getContentResolver()Landroid/content/ContentResolver;
move-result-object v4
const-string v3, "volbtn_music_controls"
invoke-static {v4, v3, v0}, Landroid/provider/Settings$System;->putInt(Landroid/content/ContentResolver;Ljava/lang/String;I)Z
goto :goto_0
:cond_td4
const/4 v0, 0x0
goto :goto_td5
:cond_td3[/COLOR]
const-string v3, "emergency_tone"
We need to change three public value so compile the changed SecSettings.apk, then decompile it. Open res/values/public.xml and search for the string these strings and write down the public values:
"action_bar_switch_padding"
"volbtn_toggle_title"
"volbtn_settings"
Now in the original SecSettings, open the smali file we added
smali/com/android/settings/VolBtnSettings.smali, search for each of the strings and change your public value to match as indicated in BLUE.
Code:
const v4, 0x[COLOR="Blue"]7f0f0045[/COLOR] # type="dimen" name="action_bar_switch_padding"
const v4, 0x[COLOR="Blue"]7f091a29[/COLOR] # type="string" name="volbtn_toggle_title"
const v0, 0x[COLOR="Blue"]7f0700fe[/COLOR] # type="xml" name="volbtn_settings"
That should be it for SecSettings.apk. Compile after making these last value changes and make sure the Music Control menu functions before continuing with android.policy.jar.
android.policy.jar
(also see additional changes for Android L linked at the bottom of this post)
*** Add the two new files from the android.policy.new_files.zip attached at the bottom of this post.
Smali Edits
smali/com/android/internal/policy/impl/PhoneWindowManager.smali
Add new line in BLUE
Code:
.field private mKeyEventInjectionThread:Ljava/lang/Thread;
[COLOR="Blue"].field mIsVolLongPressed:Z
[/COLOR]
.field mKeyboardTapVibePattern:[J
Add new lines in BLUE
Code:
.field mVirtualKeyVibePattern:[J
[COLOR="Blue"].field mVolBtnMusicControls:I
.field mVolBtnTimeout:I
.field mVolBtnVolDown:I
.field mVolBtnVolUp:I
[/COLOR].field private mVolumeDownKeyConsumedByScreenshotChord:Z
.field private mVolumeDownKeyTime:J
.field private mVolumeDownKeyTriggered:Z
[COLOR="Blue"].field final mVolumeDownLongPress:Ljava/lang/Runnable;
[/COLOR]
.field private mVolumeUpKeyConsumedByScreenshotChord:Z
.field private mVolumeUpKeyTime:J
.field private mVolumeUpKeyTriggered:Z
[COLOR="Blue"].field final mVolumeUpLongPress:Ljava/lang/Runnable;
[/COLOR]
.field mWifiDisplayConnected:Z
Add new lines in BLUE near end of method BEFORE the return-void.
Code:
.method public constructor <init>()V
.
.
.
[COLOR="Blue"] new-instance v0, Lcom/android/internal/policy/impl/PhoneWindowManager$MusicNext;
invoke-direct {v0, p0}, Lcom/android/internal/policy/impl/PhoneWindowManager$MusicNext;-><init>(Lcom/android/internal/policy/impl/PhoneWindowManager;)V
iput-object v0, p0, Lcom/android/internal/policy/impl/PhoneWindowManager;->mVolumeUpLongPress:Ljava/lang/Runnable;
new-instance v0, Lcom/android/internal/policy/impl/PhoneWindowManager$MusicPrev;
invoke-direct {v0, p0}, Lcom/android/internal/policy/impl/PhoneWindowManager$MusicPrev;-><init>(Lcom/android/internal/policy/impl/PhoneWindowManager;)V
iput-object v0, p0, Lcom/android/internal/policy/impl/PhoneWindowManager;->mVolumeDownLongPress:Ljava/lang/Runnable;
[/COLOR]
return-void
.end method
.method static synthetic access$000(Lcom/android/internal/policy/impl/PhoneWindowManager;)V
Add new methods ABOVE
.method public hasNavigationBar()Z
Code:
.method handleVolumeLongPress(I)V
.locals 4
const/16 v1, 0x18
if-ne p1, v1, :cond_0
iget-object v0, p0, Lcom/android/internal/policy/impl/PhoneWindowManager;->mVolumeUpLongPress:Ljava/lang/Runnable;
:goto_0
iget-object v1, p0, Lcom/android/internal/policy/impl/PhoneWindowManager;->mHandler:Landroid/os/Handler;
iget v2, p0, Lcom/android/internal/policy/impl/PhoneWindowManager;->mVolBtnTimeout:I
int-to-long v2, v2
invoke-virtual {v1, v0, v2, v3}, Landroid/os/Handler;->postDelayed(Ljava/lang/Runnable;J)Z
return-void
:cond_0
iget-object v0, p0, Lcom/android/internal/policy/impl/PhoneWindowManager;->mVolumeDownLongPress:Ljava/lang/Runnable;
goto :goto_0
.end method
.method handleVolumeLongPressAbort()V
.locals 2
iget-object v0, p0, Lcom/android/internal/policy/impl/PhoneWindowManager;->mHandler:Landroid/os/Handler;
iget-object v1, p0, Lcom/android/internal/policy/impl/PhoneWindowManager;->mVolumeUpLongPress:Ljava/lang/Runnable;
invoke-virtual {v0, v1}, Landroid/os/Handler;->removeCallbacks(Ljava/lang/Runnable;)V
iget-object v0, p0, Lcom/android/internal/policy/impl/PhoneWindowManager;->mHandler:Landroid/os/Handler;
iget-object v1, p0, Lcom/android/internal/policy/impl/PhoneWindowManager;->mVolumeDownLongPress:Ljava/lang/Runnable;
invoke-virtual {v0, v1}, Landroid/os/Handler;->removeCallbacks(Ljava/lang/Runnable;)V
return-void
.end method
The next section may be a little difficult to find.
Search for the string: "interceptKeyBeforeQueueing: VOLUME key-down while ringing: Silence ringer!", scroll up a few lines and place the new lines indicated in BLUE, right below the :sswitch_1 statement.
Important Note:
(AFTER adding the new section below, come back here)
The v12 value may need to be changed to match surrounding code. The next occurrence in our code is this statement:
Code:
invoke-virtual {v0, v12, v6, v5}, Lcom/android/internal/policy/impl/sec/SamsungPhoneWindowManager;->handleSamsungVolumeControl(IZZ)V
Search for the next occurrence of handleSamsungVolumeControl(IZZ)V and if your second values of v12 & v6 match, then you are good to go. If it is NOT, then the v12 & v6 in the new code below needs to be changed to match that value.
Code:
:sswitch_1
[COLOR="Blue"] move-object/from16 v0, p0
iget v0, v0, Lcom/android/internal/policy/impl/PhoneWindowManager;->mVolBtnMusicControls:I
if-eqz v0, :cond_td
invoke-virtual/range {p0 .. p0}, Lcom/android/internal/policy/impl/PhoneWindowManager;->isMusicActive()Z
move-result v0
if-eqz v0, :cond_td
move-object/from16 v0, p0
iget-boolean v0, v0, Lcom/android/internal/policy/impl/PhoneWindowManager;->mScreenOnEarly:Z
if-nez v0, :cond_td
if-eqz v6, :cond_td2
move-object/from16 v0, p0
move/from16 v1, v12
invoke-virtual {v0, v1}, Lcom/android/internal/policy/impl/PhoneWindowManager;->handleVolumeLongPress(I)V
const/4 v15, 0x0
goto/16 :goto_0
:cond_td2
move-object/from16 v0, p0
invoke-virtual {v0}, Lcom/android/internal/policy/impl/PhoneWindowManager;->handleVolumeLongPressAbort()V
iget-boolean v1, v0, Lcom/android/internal/policy/impl/PhoneWindowManager;->mIsVolLongPressed:Z
if-nez v1, :cond_td3
move/from16 v1, v12
const/4 v3, 0x3
invoke-virtual {v0, v3, v1}, Lcom/android/internal/policy/impl/PhoneWindowManager;->handleVolumeKey(II)V
:cond_td3
const/4 v1, 0x0
iput-boolean v1, v0, Lcom/android/internal/policy/impl/PhoneWindowManager;->mIsVolLongPressed:Z
:cond_td
[/COLOR]
if-eqz v6, :cond_19
invoke-static {}, Lcom/android/internal/policy/impl/PhoneWindowManager;->getTelephonyService()Lcom/android/internal/telephony/ITelephony;
move-result-object v17
if-eqz v17, :cond_19
:try_start_0
invoke-interface/range {v17 .. v17}, Lcom/android/internal/telephony/ITelephony;->isRinging()Z
move-result v21
if-eqz v21, :cond_19
const-string v21, "WindowManager"
const-string v22, "interceptKeyBeforeQueueing: VOLUME key-down while ringing: Silence ringer!"
invoke-static/range {v21 .. v22}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
invoke-interface/range {v17 .. v17}, Lcom/android/internal/telephony/ITelephony;->silenceRinger()V
:try_end_0
.catch Landroid/os/RemoteException; {:try_start_0 .. :try_end_0} :catch_0
and-int/lit8 v15, v15, -0x2
Android L version of previous section:
New code is BLUE, make sure the code in GREEN match original
Code:
:sswitch_0
[COLOR="Blue"] move-object/from16 v0, p0
iget v0, v0, Lcom/android/internal/policy/impl/PhoneWindowManager;->mVolBtnMusicControls:I
if-eqz v0, :cond_td
invoke-virtual/range {p0 .. p0}, Lcom/android/internal/policy/impl/PhoneWindowManager;->isMusicActive()Z
move-result v0
if-eqz v0, :cond_td
move-object/from16 v0, p0
iget-boolean v0, v0, Lcom/android/internal/policy/impl/PhoneWindowManager;->mScreenOnEarly:Z
if-nez v0, :cond_td
if-eqz v5, :cond_td2
move-object/from16 v0, p0
move/from16 v1, v11
invoke-virtual {v0, v1}, Lcom/android/internal/policy/impl/PhoneWindowManager;->handleVolumeLongPress(I)V
const/16 v16, 0x0
goto/16[/COLOR] [COLOR="Green"]:goto_8[/COLOR]
[COLOR="Blue"]:cond_td2
move-object/from16 v0, p0
invoke-virtual {v0}, Lcom/android/internal/policy/impl/PhoneWindowManager;->handleVolumeLongPressAbort()V
iget-boolean v1, v0, Lcom/android/internal/policy/impl/PhoneWindowManager;->mIsVolLongPressed:Z
if-nez v1, :cond_td3
move/from16 v1, v11
const/4 v3, 0x3
invoke-virtual {v0, v3, v1}, Lcom/android/internal/policy/impl/PhoneWindowManager;->handleVolumeKey(II)V
:cond_td3
const/4 v1, 0x0
iput-boolean v1, v0, Lcom/android/internal/policy/impl/PhoneWindowManager;->mIsVolLongPressed:Z
:cond_td[/COLOR]
invoke-virtual/range {p0 .. p0}, Lcom/android/internal/policy/impl/PhoneWindowManager;->getTelecommService()Landroid/telecom/TelecomManager;
move-result-object v17
if-eqz v17, :cond_19
if-eqz v5, :cond_18
invoke-virtual/range {v17 .. v17}, Landroid/telecom/TelecomManager;->isRinging()Z
move-result v21
if-eqz v21, :cond_18
const-string v21, "WindowManager"
const-string v22, "interceptKeyBeforeQueueing: VOLUME key-down while ringing: Silence ringer!"
invoke-static/range {v21 .. v22}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
invoke-virtual/range {v17 .. v17}, Landroid/telecom/TelecomManager;->silenceRinger()V
and-int/lit8 v16, v16, -0x2
goto/16 [COLOR="Green"]:goto_8[/COLOR]
Add new method indicated in BLUE:
Code:
.method public isMetaKeyEventRequested(Landroid/content/ComponentName;)Z
.locals 1
iget-object v0, p0, Lcom/android/internal/policy/impl/PhoneWindowManager;->mSystemKeyManager:Lcom/android/internal/policy/impl/sec/SystemKeyManager;
invoke-virtual {v0, p1}, Lcom/android/internal/policy/impl/sec/SystemKeyManager;->isMetaKeyEventRequested(Landroid/content/ComponentName;)Z
move-result v0
return v0
.end method
[COLOR="Blue"].method isMusicActive()Z
.locals 3
iget-object v1, p0, Lcom/android/internal/policy/impl/PhoneWindowManager;->mContext:Landroid/content/Context;
const-string v2, "audio"
invoke-virtual {v1, v2}, Landroid/content/Context;->getSystemService(Ljava/lang/String;)Ljava/lang/Object;
move-result-object v0
check-cast v0, Landroid/media/AudioManager;
if-nez v0, :cond_0
const-string v1, "WindowManager"
const-string v2, "isMusicActive: couldn\'t get AudioManager reference"
invoke-static {v1, v2}, Landroid/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)I
const/4 v1, 0x0
:goto_0
return v1
:cond_0
invoke-virtual {v0}, Landroid/media/AudioManager;->isLocalOrRemoteMusicActive()Z
move-result v1
goto :goto_0
.end method[/COLOR]
Add new method indicated in BLUE:
Code:
.method sendCloseSystemWindows(Ljava/lang/String;)V
.locals 1
iget-object v0, p0, Lcom/android/internal/policy/impl/PhoneWindowManager;->mContext:Landroid/content/Context;
invoke-static {v0, p1}, Lcom/android/internal/policy/impl/PhoneWindowManager;->sendCloseSystemWindows(Landroid/content/Context;Ljava/lang/String;)V
return-void
.end method
[COLOR="Blue"].method protected sendMediaButtonEvent(I)V
.locals 13
invoke-static {}, Landroid/os/SystemClock;->uptimeMillis()J
move-result-wide v1
new-instance v11, Landroid/content/Intent;
const-string v4, "android.intent.action.MEDIA_BUTTON"
const/4 v5, 0x0
invoke-direct {v11, v4, v5}, Landroid/content/Intent;-><init>(Ljava/lang/String;Landroid/net/Uri;)V
new-instance v0, Landroid/view/KeyEvent;
const/4 v5, 0x0
const/4 v7, 0x0
move-wide v3, v1
move v6, p1
invoke-direct/range {v0 .. v7}, Landroid/view/KeyEvent;-><init>(JJIII)V
invoke-virtual {p0, v0}, Lcom/android/internal/policy/impl/PhoneWindowManager;->dispatchMediaKeyWithWakeLockToAudioService(Landroid/view/KeyEvent;)V
const/16 v2, 0x1
invoke-static {v0, v2}, Landroid/view/KeyEvent;->changeAction(Landroid/view/KeyEvent;I)Landroid/view/KeyEvent;
move-result-object v0
invoke-virtual {p0, v0}, Lcom/android/internal/policy/impl/PhoneWindowManager;->dispatchMediaKeyWithWakeLockToAudioService(Landroid/view/KeyEvent;)V
return-void
const-string v4, "android.intent.extra.KEY_EVENT"
invoke-virtual {v11, v4, v0}, Landroid/content/Intent;->putExtra(Ljava/lang/String;Landroid/os/Parcelable;)Landroid/content/Intent;
iget-object v4, p0, Lcom/android/internal/policy/impl/PhoneWindowManager;->mContext:Landroid/content/Context;
const/4 v5, 0x0
invoke-virtual {v4, v11, v5}, Landroid/content/Context;->sendOrderedBroadcast(Landroid/content/Intent;Ljava/lang/String;)V
new-instance v12, Landroid/content/Intent;
const-string v4, "android.intent.action.MEDIA_BUTTON"
const/4 v5, 0x0
invoke-direct {v12, v4, v5}, Landroid/content/Intent;-><init>(Ljava/lang/String;Landroid/net/Uri;)V
new-instance v3, Landroid/view/KeyEvent;
const/4 v8, 0x1
const/4 v10, 0x0
move-wide v4, v1
move-wide v6, v1
move v9, p1
invoke-direct/range {v3 .. v10}, Landroid/view/KeyEvent;-><init>(JJIII)V
const-string v4, "android.intent.extra.KEY_EVENT"
invoke-virtual {v12, v4, v3}, Landroid/content/Intent;->putExtra(Ljava/lang/String;Landroid/os/Parcelable;)Landroid/content/Intent;
iget-object v4, p0, Lcom/android/internal/policy/impl/PhoneWindowManager;->mContext:Landroid/content/Context;
const/4 v5, 0x0
invoke-virtual {v4, v12, v5}, Landroid/content/Context;->sendOrderedBroadcast(Landroid/content/Intent;Ljava/lang/String;)V
return-void
.end method[/COLOR]
Add new lines indicated in BLUE
NOTE:
Make note of the value of the line in GREEN.
If your value is different, the 4 occurrences of v13 in our new code must also be changed to match.
Example:
If your line before the new code is:
move-result-object v8
You would change the 4 values of v13 to v8.
Code:
.method public updateSettings()V
.locals 23
move-object/from16 v0, p0
iget-object v0, v0, Lcom/android/internal/policy/impl/PhoneWindowManager;->mContext:Landroid/content/Context;
move-object/from16 v18, v0
invoke-virtual/range {v18 .. v18}, Landroid/content/Context;->getContentResolver()Landroid/content/ContentResolver;
[COLOR="Green"]move-result-object v13
[/COLOR]
[COLOR="Blue"]const-string v7, "volbtn_music_controls"
const/4 v9, 0x0
invoke-static {v13, v7, v9}, Landroid/provider/Settings$System;->getInt(Landroid/content/ContentResolver;Ljava/lang/String;I)I
move-result v3
move-object/from16 v0, p0
iput v3, v0, Lcom/android/internal/policy/impl/PhoneWindowManager;->mVolBtnMusicControls:I
const-string v7, "volbtn_timeout"
const/16 v9, 0x190
invoke-static {v13, v7, v9}, Landroid/provider/Settings$System;->getInt(Landroid/content/ContentResolver;Ljava/lang/String;I)I
move-result v3
move-object/from16 v0, p0
iput v3, v0, Lcom/android/internal/policy/impl/PhoneWindowManager;->mVolBtnTimeout:I
const-string v7, "volbtn_vol_up"
const/16 v9, 0x57
invoke-static {v13, v7, v9}, Landroid/provider/Settings$System;->getInt(Landroid/content/ContentResolver;Ljava/lang/String;I)I
move-result v3
move-object/from16 v0, p0
iput v3, v0, Lcom/android/internal/policy/impl/PhoneWindowManager;->mVolBtnVolUp:I
const-string v7, "volbtn_vol_down"
const/16 v9, 0x58
invoke-static {v13, v7, v9}, Landroid/provider/Settings$System;->getInt(Landroid/content/ContentResolver;Ljava/lang/String;I)I
move-result v3
move-object/from16 v0, p0
iput v3, v0, Lcom/android/internal/policy/impl/PhoneWindowManager;->mVolBtnVolDown:I[/COLOR]
Android L Version of previous section:
New code is in BLUE
Code:
.method public updateSettings()V
.locals 19
move-object/from16 v0, p0
iget-object v15, v0, Lcom/android/internal/policy/impl/PhoneWindowManager;->mContext:Landroid/content/Context;
invoke-virtual {v15}, Landroid/content/Context;->getContentResolver()Landroid/content/ContentResolver;
move-result-object v9
[COLOR="Blue"]const-string v7, "volbtn_music_controls"
const/4 v10, 0x0
invoke-static {v9, v7, v10}, Landroid/provider/Settings$System;->getInt(Landroid/content/ContentResolver;Ljava/lang/String;I)I
move-result v3
move-object/from16 v0, p0
iput v3, v0, Lcom/android/internal/policy/impl/PhoneWindowManager;->mVolBtnMusicControls:I
const-string v7, "volbtn_timeout"
const/16 v10, 0x190
invoke-static {v9, v7, v10}, Landroid/provider/Settings$System;->getInt(Landroid/content/ContentResolver;Ljava/lang/String;I)I
move-result v3
move-object/from16 v0, p0
iput v3, v0, Lcom/android/internal/policy/impl/PhoneWindowManager;->mVolBtnTimeout:I
const-string v7, "volbtn_vol_up"
const/16 v10, 0x57
invoke-static {v9, v7, v10}, Landroid/provider/Settings$System;->getInt(Landroid/content/ContentResolver;Ljava/lang/String;I)I
move-result v3
move-object/from16 v0, p0
iput v3, v0, Lcom/android/internal/policy/impl/PhoneWindowManager;->mVolBtnVolUp:I
const-string v7, "volbtn_vol_down"
const/16 v10, 0x58
invoke-static {v9, v7, v10}, Landroid/provider/Settings$System;->getInt(Landroid/content/ContentResolver;Ljava/lang/String;I)I
move-result v3
move-object/from16 v0, p0
iput v3, v0, Lcom/android/internal/policy/impl/PhoneWindowManager;->mVolBtnVolDown:I[/COLOR]
Smali edit
\com\android\internal\policy\impl\PhoneWindowManager$SettingsObserver.smali
Search for string "immersive_mode_confirmations" and add new section in BLUE right above that line.
Make sure the values above in GREEN match the new code.
Code:
const-string v1, "default_input_method"
invoke-static {v1}, Landroid/provider/Settings$Secure;->getUriFor(Ljava/lang/String;)Landroid/net/Uri;
move-result-object v1
invoke-virtual {[COLOR="Green"]v0, v1, v4, p0, v5[/COLOR]}, Landroid/content/ContentResolver;->registerContentObserver(Landroid/net/Uri;ZLandroid/database/ContentObserver;I)V
[COLOR="Blue"] const-string v1, "volbtn_music_controls"
invoke-static {v1}, Landroid/provider/Settings$System;->getUriFor(Ljava/lang/String;)Landroid/net/Uri;
move-result-object v1
invoke-virtual {v0, v1, v4, p0, v5}, Landroid/content/ContentResolver;->registerContentObserver(Landroid/net/Uri;ZLandroid/database/ContentObserver;I)V
const-string v1, "volbtn_timeout"
invoke-static {v1}, Landroid/provider/Settings$System;->getUriFor(Ljava/lang/String;)Landroid/net/Uri;
move-result-object v1
invoke-virtual {v0, v1, v4, p0, v5}, Landroid/content/ContentResolver;->registerContentObserver(Landroid/net/Uri;ZLandroid/database/ContentObserver;I)V
const-string v1, "volbtn_vol_up"
invoke-static {v1}, Landroid/provider/Settings$System;->getUriFor(Ljava/lang/String;)Landroid/net/Uri;
move-result-object v1
invoke-virtual {v0, v1, v4, p0, v5}, Landroid/content/ContentResolver;->registerContentObserver(Landroid/net/Uri;ZLandroid/database/ContentObserver;I)V
const-string v1, "volbtn_vol_down"
invoke-static {v1}, Landroid/provider/Settings$System;->getUriFor(Ljava/lang/String;)Landroid/net/Uri;
move-result-object v1
invoke-virtual {v0, v1, v4, p0, v5}, Landroid/content/ContentResolver;->registerContentObserver(Landroid/net/Uri;ZLandroid/database/ContentObserver;I)V
[/COLOR]
const-string v1, "immersive_mode_confirmations"
Android L UPDATE:
Additional Android L Changes
Additional changes for Android L are here --->> Android L amended guide
Credits: @loserskater for the orginal mod HERE ; @jeboo for his GitHub HERE @sac23 for the tremendous help getting framework.jar changes
tdunham said:
[Guide How-to] KitKat 4.4.2 Music Control - Volume Music Skip and More
This guide requires knowledge of decompiling and compiling apk and smali files.
It is only a guide.
I do not take requests. If you want this mod for your rom, get with a dev with the knowledge to get it done.
I have attached android.policy files for diffing in case you get stuck on a section.
Click to expand...
Click to collapse
Thank you, thank. You are a god...
Sent from my SM-T320 using Xparent BlueTapatalk 2
Gotta agree with the above post... You are awesome dude...
Are you about to ask a question? Hold up. Before you do that, did you check HERE? or HERE? :good:
FOR ANY ND8 RELATED QUESTIONS PLEASE VISIT THIS THREAD ----> TouchWiz 4.4 KitKat ND8 myth busters
My KITKAT 4.4.2 Touchwiz, Blue PCB Theme
TOUCHWIZ KITKAT ANIMATED PULLDOWN BAR AND ANIMATED PULLDOWN BACKGROUND MOD
Another awesome guide TD! Thank you for sharing your knowledge with the community!
Sent from my SM-G900P using Tapatalk
@tdunham, you point to the VolBtnSettings in the settings.apk, but you didn't attach the files. Just giving you a heads up. Glad to see my work lives on! Thanks for updating this :good:
loserskater said:
@tdunham, you point to the VolBtnSettings in the settings.apk, but you didn't attach the files. Just giving you a heads up. Glad to see my work lives on! Thanks for updating this :good:
Click to expand...
Click to collapse
Thanks. I'm glad someone's looking out for me.
Thanks a ton for sharing your knowledge. You're a real class act man!
Appreciate you sharing the knowledge, thank you sir.
Delete
tdunham said:
Thanks. I'm glad someone's looking out for me.
Click to expand...
Click to collapse
Hey @tdunham...this is the first time for me using <SwitchPreferenceScreen in any mod...there shouldn't be a problem with me adding an icon to line should there?
<SwitchPreferenceScreen android:icon="@drawable/xxxxxxxx" android:title="@string/volbtn_toggle_title" android:key="volbtn_music_controls" android:fragment="com.android.settings.VolBtnSettings" />
Edit: I'll post pics when I'm done
deuce_biggins said:
Hey @tdunham...this is the first time for me using <SwitchPreferenceScreen in any mod...there shouldn't be a problem with me adding an icon to line should there?
<SwitchPreferenceScreen android:icon="@drawable/xxxxxxxx android:title="@string/volbtn_toggle_title" android:key="volbtn_music_controls" android:fragment="com.android.settings.VolBtnSettings" />
Click to expand...
Click to collapse
I don't see why not.
The good thing about SecSettings is that modifying it won't cause a bootloop, just a force close when you try to access the part of it that isn't coded properly.
However, why set an icon? This is a submenu of sounds and not a single item has an icon, stock Touchwiz of course. I just checked on my Galaxy SIII KitKat and the same goes there.
My SS is attached (without this menu item, we use CustomSettings.apk for toggles, colorizers & scripts).
Anyone get the android.policy edits right on the Sprint Note 3?
If someone with the know-how could take a look at my PhoneWindowsManager I'd sure be greatful. I'll leave it here......PhoneWindowsManager.smali
This is an error I'm getting when I...1 2 3 4 screenshot!
{
"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"
}
Thank you
Once again my Sammy tablet is a bit diff...
Code:
.method public updateSettings()V
.locals 17
.prologue
.line 1714
move-object/from16 v0, p0
iget-object v12, v0, Lcom/android/internal/policy/impl/PhoneWindowManager;->mContext:Landroid/content/Context;
invoke-virtual {v12}, Landroid/content/Context;->getContentResolver()Landroid/content/ContentResolver;
move-result-object v8
.line 1715
.local v8, resolver:Landroid/content/ContentResolver;
const/4 v9, 0x0
.line 1722
.local v9, updateRotation:Z
const-string v12, "multi_window_enabled"
const/4 v13, 0x0
const/4 v14, -0x2
invoke-static {v8, v12, v13, v14}, Landroid/provider/Settings$System;->getIntForUser(Landroid/content/ContentResolver;Ljava/lang/String;II)I
move-result v1
.line 1726
.local v1, enableMultiWindowUISetting:I
move-object/from16 v0, p0
iget-object v13, v0, Lcom/android/internal/policy/impl/PhoneWindowManager;->mLock:Ljava/lang/Object;
monitor-enter v13
.line 1728
:try_start_0
move-object/from16 v0, p0
iget-boolean v12, v0, Lcom/android/internal/policy/impl/PhoneWindowManager;->mIsMultiWindowEnabled:Z
if-eqz v12, :cond_1
.line 1729
move-object/from16 v0, p0
iget-boolean v12, v0, Lcom/android/internal/policy/impl/PhoneWindowManager;->mSystemReady:Z
if-eqz v12, :cond_1
.line 1730
move-object/from16 v0, p0
iget v12, v0, Lcom/android/internal/policy/impl/PhoneWindowManager;->mEnableMultiWindowUISetting:I
const/4 v14, -0x1
if-ne v12, v14, :cond_c
.line 1731
move-object/from16 v0, p0
iget-object v12, v0, Lcom/android/internal/policy/impl/PhoneWindowManager;->mContext:Landroid/content/Context;
invoke-virtual {v12}, Landroid/content/Context;->getContentResolver()Landroid/content/ContentResolver;
move-result-object v12
const-string v14, "multi_window_flashbar_shown"
const/4 v15, -0x1
const/16 v16, -0x2
move/from16 v0, v16
invoke-static {v12, v14, v15, v0}, Landroid/provider/Settings$System;->getIntForUser(Landroid/content/ContentResolver;Ljava/lang/String;II)I
move-result v6
.line 1734
.local v6, lastFlashBarVisibility:I
if-nez v6, :cond_b
Where and how to put this last piece of code. in. I have tried several times, but all I get is Sammy Logo. No boot...
Code:
#Music Mod
const-string v7, "volbtn_music_controls"
const/4 v9, 0x0
invoke-static {v12, v7, v9}, Landroid/provider/Settings$System;->getInt(Landroid/content/ContentResolver;Ljava/lang/String;I)I
move-result v3
move-object/from16 v0, p0
iput v3, v0, Lcom/android/internal/policy/impl/PhoneWindowManager;->mVolBtnMusicControls:I
const-string v7, "volbtn_timeout"
const/16 v9, 0x190
invoke-static {v12, v7, v9}, Landroid/provider/Settings$System;->getInt(Landroid/content/ContentResolver;Ljava/lang/String;I)I
move-result v3
move-object/from16 v0, p0
iput v3, v0, Lcom/android/internal/policy/impl/PhoneWindowManager;->mVolBtnTimeout:I
const-string v7, "volbtn_vol_up"
const/16 v9, 0x57
invoke-static {v12, v7, v9}, Landroid/provider/Settings$System;->getInt(Landroid/content/ContentResolver;Ljava/lang/String;I)I
move-result v3
move-object/from16 v0, p0
iput v3, v0, Lcom/android/internal/policy/impl/PhoneWindowManager;->mVolBtnVolUp:I
const-string v7, "volbtn_vol_down"
const/16 v9, 0x58
invoke-static {v12, v7, v9}, Landroid/provider/Settings$System;->getInt(Landroid/content/ContentResolver;Ljava/lang/String;I)I
move-result v3
move-object/from16 v0, p0
iput v3, v0, Lcom/android/internal/policy/impl/PhoneWindowManager;->mVolBtnVolDown:I
#End of Add - Music Mod
1brainsurgeon said:
If someone with the know-how could take a look at my PhoneWindowsManager I'd sure be greatful. I'll leave it here......PhoneWindowsManager.smali
This is an error I'm getting when I...1 2 3 4 screenshot!
Thank you
Click to expand...
Click to collapse
The error is somewhere on or around line 16553 is what the baksmali is reporting there.
Gunthermic said:
Once again my Sammy tablet is a bit diff...
Click to expand...
Click to collapse
Line right before adding the new section:
Code:
move-result-object v8
You didn't use v8 in the 4 places like I recommended in the guide to replace v13 in the new code.
tdunham said:
Line right before adding the new section:
Code:
move-result-object v8
You didn't use v8 in the 4 places like I recommended in the guide to replace v13 in the new code.
Click to expand...
Click to collapse
Will try again. I actually tried be and v12.. but maybe the placement is the screwy part... will try and see.
Thank you for helping tdun
Sent from my SM-T320 using Xparent BlueTapatalk 2
Gunthermic said:
Will try again. I actually tried be and v12.. but maybe the placement is the screwy part... will try and see.
Click to expand...
Click to collapse
It HAS to be v8 in those 4 places but maybe we need to change some other values too. Let me know how you make out.
tdunham said:
It HAS to be v8 in those 4 places but maybe we need to change some other values too. Let me know how you make out.
Click to expand...
Click to collapse
I will try v8... I think that is the area that can cause a big issue... I will report back....
Sent from my SM-T320 using Xparent BlueTapatalk 2
Question. I haven't had time to try the android policy edits yet but finished settings.... I tried to click the menu in settings to see if it works.... But get an fc in tap, menu won't even open..... Is this due to not doing the policy edits yet.... Or should it at least open anyways? Curious if I should go back thru settings or not.
Thanks.
Hello guys this time i wana share you how to port blur effect to your expanded&recent, it has option to switch on or off the blur just like xposed module do but this time we do it via smali huge thanks to @serajr for source&tips fix also to @psidco as builder&thinker
If you not familiar with smali or dcrc your system app i suggest you dig about that before doing this guide/mod
ALWAYS BACKUP BEFORE YOU MODIFY YOUR ROM
I don.t take any responsibility for any damage that may occur while you doing this, you are free no force to do this
GUIDE Expanded Blur With Realtime Change Effect
This Blur Was Already Tested On
Samsung S3 Cm13 Pure By Me Via Smali
Samsung Note2 Cm13 Pure Build From Source
And Many Os&Device On Maaadr Group Fb
Salute&Credit For
Dedy Prayetno/psidco Creator&Builder Of The Mod
Serajr For The Source&Fix Tips Of Headsup Blur And Blank Lockscreen
Maaadr (Mediatek Android Art&Dev Reborn )
You
RESPECT OUR JOB&HARDWORK GIVE PROPER CREDIT IF YOU WANT TO USE ON YOUR ROM OR MOD
WE DIDN.T ASK FOR NOTHING ONLY PROPER CREDIT FOR OUR COUNTLESS TIME DURING BUILD THIS MOD
YOU HAD NO IDEA HOW MUCH TIME&HEADACHE WE FEEL FOR THIS MOD
OKE SKIP BLA BLA BLA LETS START
OPEN notifpanelview smali
PASTE THIS LINE
Code:
# static fields
[COLOR="Blue"]
.field public static kontek:Landroid/content/Context;
.field private static mBlurRadius:I
.field private static mBlurScale:I
.field private static mBlurredStatusBarExpandedEnabled:Z
.field private static mBlurredView:Landroid/widget/FrameLayout;
.field private static mColorFilter:Landroid/graphics/ColorFilter;
.field public static mDimen:[I
.field private static final mDummyDirtyRect:Landroid/graphics/Rect;
.field private static mKeyguardShowing:Z
.field public static tmp:Landroid/graphics/Bitmap;[/COLOR]
Delete Field Keyguardshowing That Already Exist On Your Smali That.S Not Needeed Anymore
Paste This Line At The End Of Your Method Static Synthetic Accsess
Code:
[COLOR="Blue"]
.method static synthetic access$L1000028()I
.locals 1
sget v0, Lcom/android/systemui/statusbar/phone/NotificationPanelView;->mBlurScale:I
return v0
.end method
.method static synthetic access$L1000029()I
.locals 1
sget v0, Lcom/android/systemui/statusbar/phone/NotificationPanelView;->mBlurRadius:I
return v0
.end method
.method static synthetic access$L1000030()Z
.locals 1
sget-boolean v0, Lcom/android/systemui/statusbar/phone/NotificationPanelView;->mBlurredStatusBarExpandedEnabled:Z
return v0
.end method
.method static synthetic access$S1000028(I)V
.locals 0
sput p0, Lcom/android/systemui/statusbar/phone/NotificationPanelView;->mBlurScale:I
return-void
.end method
.method static synthetic access$S1000029(I)V
.locals 0
sput p0, Lcom/android/systemui/statusbar/phone/NotificationPanelView;->mBlurRadius:I
return-void
.end method
.method static synthetic access$S1000030(Z)V
.locals 0
sput-boolean p0, Lcom/android/systemui/statusbar/phone/NotificationPanelView;->mBlurredStatusBarExpandedEnabled:Z
return-void
.end method[/COLOR]
Above Method .method private calculatePanelHeightQsExpanded()I
Code:
[COLOR="Blue"]
.method public static apdet()V
.locals 6
.annotation system Ldalvik/annotation/Signature;
value = {
"()V"
}
.end annotation
.prologue
const/4 v1, 0x4
const/4 v5, 0x0
.line 564
invoke-static {}, Lcom/android/systemui/statusbar/phone/NotificationPanelView;->apdetBlur()V
.line 566
invoke-static {}, Lcom/android/systemui/statusbar/phone/NotificationPanelView;->isKeyguard()Z
move-result v0
if-eqz v0, :cond_0
.line 567
sget-object v0, Lcom/android/systemui/statusbar/phone/NotificationPanelView;->mBlurredView:Landroid/widget/FrameLayout;
invoke-virtual {v0, v1}, Landroid/widget/FrameLayout;->setVisibility(I)V
.line 588
:goto_0
return-void
.line 571
:cond_0
invoke-static {}, Lcom/android/systemui/statusbar/phone/NotificationPanelView;->ena()Z
move-result v0
if-eqz v0, :cond_1
.line 572
invoke-static {}, Lcom/android/systemui/statusbar/phone/NotificationPanelView;->getTemp()Landroid/graphics/Bitmap;
move-result-object v0
.line 573
invoke-static {}, Lcom/android/systemui/statusbar/phone/NotificationPanelView;->getDimens()[I
move-result-object v1
.line 574
invoke-static {}, Lcom/android/systemui/statusbar/phone/NotificationPanelView;->getScala()I
move-result v2
.line 575
aget v3, v1, v5
div-int/2addr v3, v2
.line 576
const/4 v4, 0x1
aget v4, v1, v4
div-int v2, v4, v2
.line 578
invoke-static {v0, v3, v2, v5}, Landroid/graphics/Bitmap;->createScaledBitmap(Landroid/graphics/Bitmap;IIZ)Landroid/graphics/Bitmap;
move-result-object v0
.line 579
invoke-static {}, Lcom/android/systemui/statusbar/phone/NotificationPanelView;->getRadius()I
move-result v2
invoke-static {v0, v2}, Lcom/android/systemui/statusbar/phone/NotificationPanelView;->blurBitmap(Landroid/graphics/Bitmap;I)Landroid/graphics/Bitmap;
move-result-object v0
.line 580
sget-object v2, Lcom/android/systemui/statusbar/phone/NotificationPanelView;->mBlurredView:Landroid/widget/FrameLayout;
invoke-virtual {v2}, Landroid/widget/FrameLayout;->getLayoutParams()Landroid/view/ViewGroup$LayoutParams;
move-result-object v2
aget v1, v1, v5
iput v1, v2, Landroid/view/ViewGroup$LayoutParams;->width:I
.line 581
sget-object v1, Lcom/android/systemui/statusbar/phone/NotificationPanelView;->mBlurredView:Landroid/widget/FrameLayout;
invoke-virtual {v1}, Landroid/widget/FrameLayout;->requestLayout()V
.line 582
new-instance v1, Landroid/graphics/drawable/BitmapDrawable;
invoke-direct {v1, v0}, Landroid/graphics/drawable/BitmapDrawable;-><init>(Landroid/graphics/Bitmap;)V
.line 583
new-instance v0, Landroid/graphics/PorterDuffColorFilter;
const v2, -0xbbbbbc
sget-object v3, Landroid/graphics/PorterDuff$Mode;->MULTIPLY:Landroid/graphics/PorterDuff$Mode;
invoke-direct {v0, v2, v3}, Landroid/graphics/PorterDuffColorFilter;-><init>(ILandroid/graphics/PorterDuff$Mode;)V
invoke-virtual {v1, v0}, Landroid/graphics/drawable/BitmapDrawable;->setColorFilter(Landroid/graphics/ColorFilter;)V
.line 584
sget-object v0, Lcom/android/systemui/statusbar/phone/NotificationPanelView;->mBlurredView:Landroid/widget/FrameLayout;
invoke-virtual {v0, v1}, Landroid/widget/FrameLayout;->setBackground(Landroid/graphics/drawable/Drawable;)V
.line 585
sget-object v0, Lcom/android/systemui/statusbar/phone/NotificationPanelView;->mBlurredView:Landroid/widget/FrameLayout;
invoke-virtual {v0, v5}, Landroid/widget/FrameLayout;->setVisibility(I)V
goto :goto_0
.line 588
:cond_1
sget-object v0, Lcom/android/systemui/statusbar/phone/NotificationPanelView;->mBlurredView:Landroid/widget/FrameLayout;
invoke-virtual {v0, v1}, Landroid/widget/FrameLayout;->setVisibility(I)V
goto :goto_0
.end method
.method public static apdetBlur()V
.locals 4
.annotation system Ldalvik/annotation/Signature;
value = {
"()V"
}
.end annotation
.prologue
const/4 v3, 0x3
const/4 v0, 0x1
.line 553
sget-object v1, Lcom/android/systemui/statusbar/phone/NotificationPanelView;->kontek:Landroid/content/Context;
invoke-virtual {v1}, Landroid/content/Context;->getContentResolver()Landroid/content/ContentResolver;
move-result-object v1
.line 555
const-string v2, "BLUR_SCALA"
invoke-static {v1, v2, v3}, Landroid/provider/Settings$System;->getInt(Landroid/content/ContentResolver;Ljava/lang/String;I)I
move-result v2
sput v2, Lcom/android/systemui/statusbar/phone/NotificationPanelView;->mBlurScale:I
.line 557
const-string v2, "BLUR_RADIUS"
invoke-static {v1, v2, v3}, Landroid/provider/Settings$System;->getInt(Landroid/content/ContentResolver;Ljava/lang/String;I)I
move-result v2
sput v2, Lcom/android/systemui/statusbar/phone/NotificationPanelView;->mBlurRadius:I
.line 559
const-string v2, "BLUR"
invoke-static {v1, v2, v0}, Landroid/provider/Settings$System;->getInt(Landroid/content/ContentResolver;Ljava/lang/String;I)I
move-result v1
if-eq v1, v0, :cond_0
const/4 v0, 0x0
:cond_0
sput-boolean v0, Lcom/android/systemui/statusbar/phone/NotificationPanelView;->mBlurredStatusBarExpandedEnabled:Z
return-void
.end method
.method public static blurBitmap(Landroid/graphics/Bitmap;I)Landroid/graphics/Bitmap;
.locals 4
.prologue
.line 585
sget-object v0, Lcom/android/systemui/statusbar/phone/NotificationPanelView;->kontek:Landroid/content/Context;
invoke-static {v0}, Landroid/renderscript/RenderScript;->create(Landroid/content/Context;)Landroid/renderscript/RenderScript;
move-result-object v0
.line 586
invoke-static {v0}, Landroid/renderscript/Element;->U8_4(Landroid/renderscript/RenderScript;)Landroid/renderscript/Element;
move-result-object v1
invoke-static {v0, v1}, Landroid/renderscript/ScriptIntrinsicBlur;->create(Landroid/renderscript/RenderScript;Landroid/renderscript/Element;)Landroid/renderscript/ScriptIntrinsicBlur;
move-result-object v1
.line 587
invoke-static {v0, p0}, Landroid/renderscript/Allocation;->createFromBitmap(Landroid/renderscript/RenderScript;Landroid/graphics/Bitmap;)Landroid/renderscript/Allocation;
move-result-object v2
.line 588
invoke-virtual {v2}, Landroid/renderscript/Allocation;->getType()Landroid/rcript/Type;
ove-result-objectSS v3
invoke-static {v0, v3}, Landroid/renderscript/Allocation;->createTyped(Landroid/renderscript/RenderScript;Landroid/renderscript/Type;)Landroid/renderscript/Allocation;
move-result-object v0
.line 589
int-to-float v3, p1
invoke-virtual {v1, v3}, Landroid/renderscript/ScriptIntrinsicBlur;->setRadius(F)V
.line 590
invoke-virtual {v1, v2}, Landroid/renderscript/ScriptIntrinsicBlur;->setInput(Landroid/renderscript/Allocation;)V
.line 591
invoke-virtual {v1, v0}, Landroid/renderscript/ScriptIntrinsicBlur;->forEach(Landroid/renderscript/Allocation;)V
.line 592
invoke-virtual {v0, p0}, Landroid/renderscript/Allocation;->copyTo(Landroid/graphics/Bitmap;)V
.line 593
return-object p0
.end method[/COLOR]
Above Method .method private flingExpandsQs(F)Z
Code:
[COLOR="Blue"]
.method public static ena()Z
.locals 1
.prologue
.line 539
sget-boolean v0, Lcom/android/systemui/statusbar/phone/NotificationPanelView;->mBlurredStatusBarExpandedEnabled:Z
return v0
.end method[/COLOR]
Above Method .method private getFadeoutAlpha()F
Code:
[COLOR="Blue"]
.method public static getDimens()[I
.locals 1
.prologue
.line 549
sget-object v0, Lcom/android/systemui/statusbar/phone/NotificationPanelView;->mDimen:[I
return-object v0
.end method[/COLOR]
Above Method .method private getScrollViewScrollY()I
Code:
[COLOR="Blue"].method public static getRadius()I
.locals 1
.prologue
.line 545
sget v0, Lcom/android/systemui/statusbar/phone/NotificationPanelView;->mBlurRadius:I
return v0
.end method
.method public static getScala()I
.locals 1
.prologue
.line 542
sget v0, Lcom/android/systemui/statusbar/phone/NotificationPanelView;->mBlurScale:I
return v0
.end method[/COLOR]
Above Method .method private getTempQsMaxExpansion()I
Code:
[COLOR="Blue"]
.method public static getTemp()Landroid/graphics/Bitmap;
.locals 1
.prologue
.line 533
sget-object v0, Lcom/android/systemui/statusbar/phone/NotificationPanelView;->tmp:Landroid/graphics/Bitmap;
return-object v0
.end method[/COLOR]
Below Method .method private isInSettings()Z
Code:
[COLOR="Blue"]
.method public static isKeyguard()Z
.locals 1
.prologue
.line 537
sget-boolean v0, Lcom/android/systemui/statusbar/phone/NotificationPanelView;->mKeyguardShowing:Z
return v0
.end method[/COLOR]
Above Method .method private requestScrollerTopPaddingUpdate(Z)V
Code:
[COLOR="Blue"]
.method public static recycle()V
.locals 2
.annotation system Ldalvik/annotation/Signature;
value = {
"()V"
}
.end annotation
.prologue
const/4 v1, 0x0
.line 613
sget-object v0, Lcom/android/systemui/statusbar/phone/NotificationPanelView;->mBlurredView:Landroid/widget/FrameLayout;
if-eqz v0, :cond_1
sget-object v0, Lcom/android/systemui/statusbar/phone/NotificationPanelView;->mBlurredView:Landroid/widget/FrameLayout;
invoke-virtual {v0}, Landroid/widget/FrameLayout;->getBackground()Landroid/graphics/drawable/Drawable;
move-result-object v0
if-eqz v0, :cond_1
.line 615
sget-object v0, Lcom/android/systemui/statusbar/phone/NotificationPanelView;->mBlurredView:Landroid/widget/FrameLayout;
invoke-virtual {v0}, Landroid/widget/FrameLayout;->getBackground()Landroid/graphics/drawable/Drawable;
move-result-object v0
instance-of v0, v0, Landroid/graphics/drawable/BitmapDrawable;
if-eqz v0, :cond_0
.line 616
sget-object v0, Lcom/android/systemui/statusbar/phone/NotificationPanelView;->mBlurredView:Landroid/widget/FrameLayout;
invoke-virtual {v0}, Landroid/widget/FrameLayout;->getBackground()Landroid/graphics/drawable/Drawable;
move-result-object v0
check-cast v0, Landroid/graphics/drawable/BitmapDrawable;
invoke-virtual {v0}, Landroid/graphics/drawable/BitmapDrawable;->getBitmap()Landroid/graphics/Bitmap;
move-result-object v0
.line 617
if-eqz v0, :cond_0
.line 618
invoke-virtual {v0}, Landroid/graphics/Bitmap;->recycle()V
move-object v0, v1
.line 619
check-cast v0, Landroid/graphics/Bitmap;
.line 623
:cond_0
sget-object v0, Lcom/android/systemui/statusbar/phone/NotificationPanelView;->mBlurredView:Landroid/widget/FrameLayout;
check-cast v1, Landroid/graphics/drawable/Drawable;
invoke-virtual {v0, v1}, Landroid/widget/FrameLayout;->setBackground(Landroid/graphics/drawable/Drawable;)V
.line 625
:cond_1
sget-object v0, Lcom/android/systemui/statusbar/phone/NotificationPanelView;->mBlurredView:Landroid/widget/FrameLayout;
const/4 v1, 0x4
invoke-virtual {v0, v1}, Landroid/widget/FrameLayout;->setVisibility(I)V
return-void
.end method[/COLOR]
Below Method .method private shouldQuickSettingsIntercept(FFF)Z
Code:
[COLOR="Blue"]
.method public static startBlurTask()V
.locals 2
.annotation system Ldalvik/annotation/Signature;
value = {
"()V"
}
.end annotation
.prologue
.line 610
sget-object v0, Lcom/android/systemui/statusbar/phone/NotificationPanelView;->kontek:Landroid/content/Context;
invoke-static {v0}, Lcom/android/systemui/statusbar/phone/BlurAnu;->ss(Landroid/content/Context;)Landroid/graphics/Bitmap;
move-result-object v0
.line 611
sput-object v0, Lcom/android/systemui/statusbar/phone/NotificationPanelView;->tmp:Landroid/graphics/Bitmap;
.line 612
sget-object v0, Lcom/android/systemui/statusbar/phone/NotificationPanelView;->kontek:Landroid/content/Context;
invoke-static {v0}, Lcom/android/systemui/statusbar/phone/BlurAnu;->ukuranLayar(Landroid/content/Context;)[I
move-result-object v0
sput-object v0, Lcom/android/systemui/statusbar/phone/NotificationPanelView;->mDimen:[I
.line 614
invoke-static {}, Lcom/android/systemui/statusbar/phone/NotificationPanelView;->isKeyguard()Z
move-result v0
if-eqz v0, :cond_0
.line 615
sget-object v0, Lcom/android/systemui/statusbar/phone/NotificationPanelView;->mBlurredView:Landroid/widget/FrameLayout;
const/4 v1, 0x4
invoke-virtual {v0, v1}, Landroid/widget/FrameLayout;->setVisibility(I)V
.line 620
:goto_0
return-void
.line 619
:cond_0
invoke-static {}, Lcom/android/systemui/statusbar/phone/NotificationPanelView;->apdetBlur()V
.line 620
invoke-static {}, Lcom/android/systemui/statusbar/phone/NotificationPanelView;->apdet()V
goto :goto_0
.end method[/COLOR]
Below Method .method protected isTrackingBlocked()Z
Code:
[COLOR="Blue"]
.method public jancuk()V
.locals 4
.annotation system Ldalvik/annotation/Signature;
value = {
"()V"
}
.end annotation
.prologue
const/4 v3, 0x0
const/4 v2, -0x1
.line 519
invoke-virtual {p0}, Lcom/android/systemui/statusbar/phone/NotificationPanelView;->getContext()Landroid/content/Context;
move-result-object v0
sput-object v0, Lcom/android/systemui/statusbar/phone/NotificationPanelView;->kontek:Landroid/content/Context;
.line 525
new-instance v0, Landroid/widget/FrameLayout;
iget-object v1, p0, Landroid/view/View;->mContext:Landroid/content/Context;
invoke-direct {v0, v1}, Landroid/widget/FrameLayout;-><init>(Landroid/content/Context;)V
sput-object v0, Lcom/android/systemui/statusbar/phone/NotificationPanelView;->mBlurredView:Landroid/widget/FrameLayout;
.line 526
sget-object v0, Lcom/android/systemui/statusbar/phone/NotificationPanelView;->mBlurredView:Landroid/widget/FrameLayout;
new-instance v1, Landroid/widget/FrameLayout$LayoutParams;
invoke-direct {v1, v2, v2}, Landroid/widget/FrameLayout$LayoutParams;-><init>(II)V
invoke-virtual {p0, v0, v3, v1}, Lcom/android/systemui/statusbar/phone/NotificationPanelView;->addView(Landroid/view/View;ILandroid/view/ViewGroup$LayoutParams;)V
.line 528
invoke-virtual {p0}, Lcom/android/systemui/statusbar/phone/NotificationPanelView;->requestLayout()V
.line 530
sget-object v0, Lcom/android/systemui/statusbar/phone/NotificationPanelView;->mBlurredView:Landroid/widget/FrameLayout;
invoke-virtual {v0, v3}, Landroid/widget/FrameLayout;->setVisibility(I)V
return-void
.end method[/COLOR]
On Method Protected Onfinish Inflate Add
Code:
[COLOR="Blue"]
.line 437
invoke-virtual {p0}, Lcom/android/systemui/statusbar/phone/NotificationPanelView;->jancuk()V[/COLOR]
Looks Like This Below
Code:
[COLOR="Blue"]
check-cast v0, Lcom/android/systemui/qs/QSDragPanel;
iput-object v0, p0, Lcom/android/systemui/statusbar/phone/NotificationPanelView;->mQsPanel:Lcom/android/systemui/qs/QSDragPanel;
.line 437
invoke-virtual {p0}, Lcom/android/systemui/statusbar/phone/NotificationPanelView;->jancuk()V
[/COLOR]
NEXT
PhoneStatusBar.smali
On Method .method private updateKeyguardState(ZZ)V
Code:
[COLOR="Blue"]
.line 4570
:goto_1
invoke-static {}, Lcom/android/systemui/statusbar/phone/NotificationPanelView;->recycle()V[/COLOR]
Looks Like Below
Code:
[COLOR="Blue"].line 4565
iget-object v1, p0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mIconPolicy:Lcom/android/systemui/statusbar/phone/PhoneStatusBarPolicy;
invoke-virtual {v1, v0}, Lcom/android/systemui/statusbar/phone/PhoneStatusBarPolicy;->setKeyguardShowing(Z)V
.line 4570
:goto_1
invoke-static {}, Lcom/android/systemui/statusbar/phone/NotificationPanelView;->recycle()V
iget-object v0, p0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mNotificationPanel:Lcom/android/systemui/statusbar/phone/NotificationPanelView;
iget v1, p0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mState:I[/COLOR]
On Method .method makeExpandedInvisible()V
Add
Code:
[COLOR="Blue"].line 2786
:cond_1
invoke-static {}, Lcom/android/systemui/statusbar/phone/NotificationPanelView;->recycle()V[/COLOR]
Looks like below
Code:
[COLOR="Blue"].line 2781
iget-boolean v0, p0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mExpandedVisible:Z
if-eqz v0, :cond_0
iget-object v0, p0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mStatusBarWindow:Lcom/android/systemui/statusbar/phone/StatusBarWindowView;
if-nez v0, :cond_1
.line 2782
:cond_0
return-void
.line 2786
:cond_1
invoke-static {}, Lcom/android/systemui/statusbar/phone/NotificationPanelView;->recycle()V[/COLOR]
On Method .method makeExpandedVisible(Z)V
Add
Code:
[COLOR="Blue"]
.line 2673
invoke-static {}, Lcom/android/systemui/statusbar/phone/NotificationPanelView;->startBlurTask()V/[/COLOR]
Looks Like Below
Code:
[COLOR="Blue"].line 2672
invoke-virtual {p0, v1, v1}, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->setInteracting(IZ)V
.line 2673
invoke-static {}, Lcom/android/systemui/statusbar/phone/NotificationPanelView;->startBlurTask()V
.line 2655
return-void
.line 2658
:cond_2
return-void
:cond_3
move v0, v1
.line 2671
goto :goto_0
.end method[/COLOR]
NEXT
NOTE!!!!!!!!!!!!
You Must Change Default Instance Inside Your Smali
Example
BEFORE
Code:
[COLOR="Blue"]iget-boolean v3, p0,Lcom/android/systemui/statusbar/phone/NotificationPanelView;->mKeyguardShowing:Z[/COLOR]
AFTER
Code:
[COLOR="Blue"]sget-boolean v3, Lcom/android/systemui/statusbar/phone/NotificationPanelView;->mKeyguardShowing:Z[/COLOR]
Do That On Every Line Inside Your Notifpanel Smali That Have End Line Like This "mkeyguardshowing;Z"
On My Smali I Had To Change About 15 Until 20 Line So Check Carefully Yours
If You Forgot 1 Line It Will Fc
The Point Is To Change From Instance To Be Static Field
Continue to part2
PART 2 BLUR RECENT
OPEN Recentactivity.smali
Paste Line Below
Code:
# static fields
[COLOR="Blue"]
.field public static kontek:Landroid/content/Context;
.field private static mBlurRadius:I
.field private static mBlurScale:I
.field private static mBlurredRecentAppsEnabled:Z
.field private static mColorFilter:Landroid/graphics/ColorFilter;
.field private static mRecentsActivityRootView:Landroid/widget/FrameLayout;
.field static mRecentsView:Lcom/android/systemui/recents/views/RecentsView;[/COLOR]
Delete Field Default That Already Exist On Your Smali
Code:
[COLOR="Red"].field mRecentsView:Lcom/android/systemui/recents/views/RecentsView[/COLOR]
NEXT
Above
.method private getResizeTaskDebugDialog()Lcom/android/systemui/recents/RecentsResizeTaskDialog;
Paste Line Below
Code:
[COLOR="Blue"].method public static apdetBlur()V
.locals 4
.annotation system Ldalvik/annotation/Signature;
value = {
"()V"
}
.end annotation
.prologue
const/4 v3, 0x3
const/4 v0, 0x1
.line 489
sget-object v1, Lcom/android/systemui/recents/RecentsActivity;->kontek:Landroid/content/Context;
invoke-virtual {v1}, Landroid/content/Context;->getContentResolver()Landroid/content/ContentResolver;
move-result-object v1
.line 491
const-string v2, "BLUR_SCALA"
invoke-static {v1, v2, v3}, Landroid/provider/Settings$System;->getInt(Landroid/content/ContentResolver;Ljava/lang/String;I)I
move-result v2
sput v2, Lcom/android/systemui/recents/RecentsActivity;->mBlurScale:I
.line 493
const-string v2, "BLUR_RADIUS"
invoke-static {v1, v2, v3}, Landroid/provider/Settings$System;->getInt(Landroid/content/ContentResolver;Ljava/lang/String;I)I
move-result v2
sput v2, Lcom/android/systemui/recents/RecentsActivity;->mBlurRadius:I
.line 495
const-string v2, "BLUR_RECENT"
invoke-static {v1, v2, v0}, Landroid/provider/Settings$System;->getInt(Landroid/content/ContentResolver;Ljava/lang/String;I)I
move-result v1
if-eq v1, v0, :cond_0
const/4 v0, 0x0
:cond_0
sput-boolean v0, Lcom/android/systemui/recents/RecentsActivity;->mBlurredRecentAppsEnabled:Z
return-void
.end method
.method public static blur()Landroid/graphics/Bitmap;
.locals 6
.prologue
const/4 v5, 0x0
.line 411
sget-object v0, Lcom/android/systemui/recents/RecentsActivity;->kontek:Landroid/content/Context;
invoke-static {v0}, Lcom/android/systemui/statusbar/phone/BlurAnu;->ss(Landroid/content/Context;)Landroid/graphics/Bitmap;
move-result-object v0
.line 412
invoke-static {}, Lcom/android/systemui/recents/RecentsActivity;->getDimens()[I
move-result-object v1
.line 413
invoke-static {}, Lcom/android/systemui/recents/RecentsActivity;->getScala()I
move-result v2
.line 414
aget v3, v1, v5
div-int/2addr v3, v2
.line 415
const/4 v4, 0x1
aget v1, v1, v4
div-int/2addr v1, v2
.line 417
invoke-static {v0, v3, v1, v5}, Landroid/graphics/Bitmap;->createScaledBitmap(Landroid/graphics/Bitmap;IIZ)Landroid/graphics/Bitmap;
move-result-object v0
.line 418
invoke-static {}, Lcom/android/systemui/recents/RecentsActivity;->getRadius()I
move-result v1
invoke-static {v0, v1}, Lcom/android/systemui/recents/RecentsActivity;->blurBitmap(Landroid/graphics/Bitmap;I)Landroid/graphics/Bitmap;
move-result-object v0
.line 419
return-object v0
.end method
.method public static blurBitmap(Landroid/graphics/Bitmap;I)Landroid/graphics/Bitmap;
.locals 4
.prologue
.line 500
sget-object v0, Lcom/android/systemui/recents/RecentsActivity;->kontek:Landroid/content/Context;
invoke-static {v0}, Landroid/renderscript/RenderScript;->create(Landroid/content/Context;)Landroid/renderscript/RenderScript;
move-result-object v0
.line 501
invoke-static {v0}, Landroid/renderscript/Element;->U8_4(Landroid/renderscript/RenderScript;)Landroid/renderscript/Element;
move-result-object v1
invoke-static {v0, v1}, Landroid/renderscript/ScriptIntrinsicBlur;->create(Landroid/renderscript/RenderScript;Landroid/renderscript/Element;)Landroid/renderscript/ScriptIntrinsicBlur;
move-result-object v1
.line 502
invoke-static {v0, p0}, Landroid/renderscript/Allocation;->createFromBitmap(Landroid/renderscript/RenderScript;Landroid/graphics/Bitmap;)Landroid/renderscript/Allocation;
move-result-object v2
.line 503
invoke-virtual {v2}, Landroid/renderscript/Allocation;->getType()Landroid/renderscript/Type;
move-result-object v3
invoke-static {v0, v3}, Landroid/renderscript/Allocation;->createTyped(Landroid/renderscript/RenderScript;Landroid/renderscript/Type;)Landroid/renderscript/Allocation;
move-result-object v0
.line 504
int-to-float v3, p1
invoke-virtual {v1, v3}, Landroid/renderscript/ScriptIntrinsicBlur;->setRadius(F)V
.line 505
invoke-virtual {v1, v2}, Landroid/renderscript/ScriptIntrinsicBlur;->setInput(Landroid/renderscript/Allocation;)V
.line 506
invoke-virtual {v1, v0}, Landroid/renderscript/ScriptIntrinsicBlur;->forEach(Landroid/renderscript/Allocation;)V
.line 507
invoke-virtual {v0, p0}, Landroid/renderscript/Allocation;->copyTo(Landroid/graphics/Bitmap;)V
.line 508
return-object p0
.end method
.method public static ena()Z
.locals 1
.prologue
.line 475
sget-boolean v0, Lcom/android/systemui/recents/RecentsActivity;->mBlurredRecentAppsEnabled:Z
return v0
.end method
.method public static getDimens()[I
.locals 1
.prologue
.line 484
sget-object v0, Lcom/android/systemui/recents/RecentsActivity;->kontek:Landroid/content/Context;
invoke-static {v0}, Lcom/android/systemui/statusbar/phone/BlurAnu;->ukuranLayar(Landroid/content/Context;)[I
move-result-object v0
.line 485
return-object v0
.end method
.method public static getRadius()I
.locals 1
.prologue
.line 481
sget v0, Lcom/android/systemui/recents/RecentsActivity;->mBlurRadius:I
return v0
.end method[/COLOR]
Above This Method Paste
# virtual methods
.method dismissRecentsToFocusedTaskOrHome(Z)Z
Code:
[COLOR="Blue"].method public static getScala()I
.locals 1
.prologue
.line 478
sget v0, Lcom/android/systemui/recents/RecentsActivity;->mBlurScale:I
return v0
.end method
.method public static jancuk()V
.locals 1
.annotation system Ldalvik/annotation/Signature;
value = {
"()V"
}
.end annotation
.prologue
.line 422
sget-object v0, Lcom/android/systemui/recents/RecentsActivity;->mRecentsView:Lcom/android/systemui/recents/views/RecentsView;
invoke-virtual {v0}, Lcom/android/systemui/recents/views/RecentsView;->getContext()Landroid/content/Context;
move-result-object v0
sput-object v0, Lcom/android/systemui/recents/RecentsActivity;->kontek:Landroid/content/Context;
.line 423
invoke-static {}, Lcom/android/systemui/recents/RecentsActivity;->apdetBlur()V
.line 424
sget-object v0, Lcom/android/systemui/recents/RecentsActivity;->mRecentsView:Lcom/android/systemui/recents/views/RecentsView;
invoke-virtual {v0}, Lcom/android/systemui/recents/views/RecentsView;->getParent()Landroid/view/ViewParent;
move-result-object v0
check-cast v0, Landroid/widget/FrameLayout;
sput-object v0, Lcom/android/systemui/recents/RecentsActivity;->mRecentsActivityRootView:Landroid/widget/FrameLayout;
.line 425
invoke-static {}, Lcom/android/systemui/recents/RecentsActivity;->jret()V
return-void
.end method
.method public static jret()V
.locals 2
.annotation system Ldalvik/annotation/Signature;
value = {
"()V"
}
.end annotation
.prologue
.line 435
sget-object v0, Lcom/android/systemui/recents/RecentsActivity;->mRecentsActivityRootView:Landroid/widget/FrameLayout;
if-eqz v0, :cond_0
.line 436
sget-object v1, Lcom/android/systemui/recents/RecentsActivity;->mRecentsActivityRootView:Landroid/widget/FrameLayout;
const/4 v0, 0x0
check-cast v0, Landroid/graphics/drawable/Drawable;
invoke-virtual {v1, v0}, Landroid/widget/FrameLayout;->setBackground(Landroid/graphics/drawable/Drawable;)V
.line 439
:cond_0
sget-boolean v0, Lcom/android/systemui/recents/RecentsActivity;->mBlurredRecentAppsEnabled:Z
if-nez v0, :cond_2
.line 450
:cond_1
:goto_0
return-void
.line 442
:cond_2
invoke-static {}, Lcom/android/systemui/recents/RecentsActivity;->blur()Landroid/graphics/Bitmap;
move-result-object v0
.line 443
invoke-static {}, Lcom/android/systemui/recents/RecentsActivity;->ena()Z
move-result v1
if-eqz v1, :cond_1
if-eqz v0, :cond_1
.line 446
new-instance v1, Landroid/graphics/drawable/BitmapDrawable;
invoke-direct {v1, v0}, Landroid/graphics/drawable/BitmapDrawable;-><init>(Landroid/graphics/Bitmap;)V
.line 447
sget-object v0, Lcom/android/systemui/recents/RecentsActivity;->mColorFilter:Landroid/graphics/ColorFilter;
invoke-virtual {v1, v0}, Landroid/graphics/drawable/BitmapDrawable;->setColorFilter(Landroid/graphics/ColorFilter;)V
.line 450
sget-object v0, Lcom/android/systemui/recents/RecentsActivity;->mRecentsActivityRootView:Landroid/widget/FrameLayout;
invoke-virtual {v0, v1}, Landroid/widget/FrameLayout;->setBackground(Landroid/graphics/drawable/Drawable;)V
goto :goto_0
.end method
.method public static onConfigurationChanged()V
.locals 0
.annotation system Ldalvik/annotation/Signature;
value = {
"()V"
}
.end annotation
.prologue
.line 431
invoke-static {}, Lcom/android/systemui/recents/RecentsActivity;->recycle()V
return-void
.end method
.method private static recycle()V
.locals 2
.annotation system Ldalvik/annotation/Signature;
value = {
"()V"
}
.end annotation
.prologue
const/4 v1, 0x0
.line 455
sget-object v0, Lcom/android/systemui/recents/RecentsActivity;->mRecentsActivityRootView:Landroid/widget/FrameLayout;
if-nez v0, :cond_1
.line 469
:cond_0
:goto_0
return-void
.line 459
:cond_1
sget-object v0, Lcom/android/systemui/recents/RecentsActivity;->mRecentsActivityRootView:Landroid/widget/FrameLayout;
invoke-virtual {v0}, Landroid/widget/FrameLayout;->getBackground()Landroid/graphics/drawable/Drawable;
move-result-object v0
if-eqz v0, :cond_0
.line 462
sget-object v0, Lcom/android/systemui/recents/RecentsActivity;->mRecentsActivityRootView:Landroid/widget/FrameLayout;
invoke-virtual {v0}, Landroid/widget/FrameLayout;->getBackground()Landroid/graphics/drawable/Drawable;
move-result-object v0
check-cast v0, Landroid/graphics/drawable/BitmapDrawable;
invoke-virtual {v0}, Landroid/graphics/drawable/BitmapDrawable;->getBitmap()Landroid/graphics/Bitmap;
move-result-object v0
.line 463
if-eqz v0, :cond_2
.line 465
invoke-virtual {v0}, Landroid/graphics/Bitmap;->recycle()V
move-object v0, v1
.line 466
check-cast v0, Landroid/graphics/Bitmap;
.line 469
:cond_2
sget-object v0, Lcom/android/systemui/recents/RecentsActivity;->mRecentsActivityRootView:Landroid/widget/FrameLayout;
check-cast v1, Landroid/graphics/drawable/Drawable;
invoke-virtual {v0, v1}, Landroid/widget/FrameLayout;->setBackground(Landroid/graphics/drawable/Drawable;)V
goto :goto_0
.end method[/COLOR]
NEXT
On method public onCreate(Landroid/os/BundleV
Code:
[COLOR="Blue"].line 400
invoke-static {}, Lcom/android/systemui/recents/RecentsActivity;->jancuk()V
penampakan /looks like below
.line 372
invoke-virtual {p0}, Lcom/android/systemui/recents/RecentsActivity;->inflateDebugOverlay()V
.line 400
invoke-static {}, Lcom/android/systemui/recents/RecentsActivity;->jancuk()V[/COLOR]
NEXT
BaseStatusbar.smalI
On .method protected toggleRecents()V
Code:
[COLOR="Blue"].line 1165
invoke-static {}, Lcom/android/systemui/recents/RecentsActivity;->jret()V[/COLOR]
penampakan /looks like below
Code:
.method protected toggleRecents()V
.locals 4
.annotation system Ldalvik/annotation/Signature;
value = {
"()V"
}
.end annotation
.prologue
.line 1163
iget-object v0, p0, Lcom/android/systemui/statusbar/BaseStatusBar;->mRecents:Lcom/android/systemui/RecentsComponent;
if-eqz v0, :cond_0
[COLOR="Blue"].line 1165
invoke-static {}, Lcom/android/systemui/recents/RecentsActivity;->jret()V[/COLOR]
.line 1166
iget-object v0, p0, Lcom/android/systemui/SystemUI;->mContext:Landroid/content/Context;
NOTE!!!!!!!!!!!!
again you should change default field from iget to be sget
like we did before on notifpanel smali
BEFORE
Code:
iget-object v1, p0,Lcom/android/systemui/recents/RecentsActivity;->mRecentsView:Lcom/android/systemui/recents/views/RecentsView;[/HIDE]
AFTER
Code:
sget-object v1, Lcom/android/systemui/recents/RecentsActivity;->mRecentsView:Lcom/android/systemui/recents/views/RecentsView;[/HIDE]
Do It On Every Line That Have End Line Like Thi
Code:
Lcom/android/systemui/recents/RecentsActivity;->mRecentsView:Lcom/android/systemui/recents/views/RecentsView;[/HIDE]
About 15 Or 20 Change Just Follow My Guide It Should Fine
PART 3 Settings
For Non Qs Edit Tile Option Use This For Include In To Setting
Code:
"realtime_effect_blur_expanded_recent_para****"
you must complete the blur guide before apply this mod
#For non QSsetting like Pure CM13,
tested: DU 10.1 Sprout Device
DC your Settings.apk
Remove The Stuff In To The Place
Add This To display_settings.xml or wherever you like
Code:
<PreferenceScreen android:title="Expanded Blurr" android:key="blur" android:fragment="in.para****.BlurFragment" />
Add To Your Androidmanifest.xml Above </application>
Code:
<activity android:label="Blur Setting" android:name="in.para****.BlurFragment">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
</intent-filter>
</activity>
RC and DC again..
Change Public id 0x7f080093 > xml="blur" with your own public values
oke? DONE!
Credit::
Dedy Prayetno/psidco
Serajr
Abdullah Ba'agil/ kingdj
MAAaDr (mediatek android art&dev) on fb
sidik ahmad (for non apk guide)
Screenshoot
Thank to @@DSttr for help to create this guide
Screenrecord
https://m.youtube.com/watch?v=t0QnosnXjJk&feature=youtu.be
NO BUG SO FAR EXCEPT THAT HEADSUP BLUR WILL TRY TO UPDATE THE GUIDE FOR REMOVE IT
:v :v good work sir
Amazing job
Envoyé de mon D6503 en utilisant Tapatalk
niaboc79 said:
Amazing job
Envoyé de mon D6503 en utilisant Tapatalk
Click to expand...
Click to collapse
Waiting for feedback
Waiting @serajr release the new live blur code ?
Sent from my GT-N7100 using XDA-Developers mobile app
psidco said:
Waiting @serajr release the new live blur code
Sent from my GT-N7100 using XDA-Developers mobile app
Click to expand...
Click to collapse
Can.t wait to taste the new source
Masterpiece!
I really like to see part of my work being ported everywhere, but this time with so such mastery... omg!!
Hats off!!
there is something wrong,? wkwkwk [emoji12]
Sent from my MI 3W using XDA-Developers mobile app
..
serajr said:
I really like to see part of my work being ported everywhere, but this time with so such mastery... omg!!
Hats off!!
Click to expand...
Click to collapse
Its happen because of you mate
Your blur make me crazy to always use it on any device and new api level hats off to you
Can.t wait to to see your new code of realtime blur. That.s must be awesome:good::good::good:
@DSttr said:
there is something wrong,? wkwkwk [emoji12]
Sent from my MI 3W using XDA-Developers mobile app
Click to expand...
Click to collapse
Yes kang, you *headshoot*
sorry I am not good at typing and speaking english ??? ?????
Sent from my MI 3W using XDA-Developers mobile app
serajr said:
I really like to see part of my work being ported everywhere, but this time with so such mastery... omg!!
Hats off!!
Click to expand...
Click to collapse
No sir,its your work im just make it for non exposed user,big thanks to you ,btw i need help on recent blur,whenever i change the background its always null,like that the recentrootview is not initialized
Edit: and yes its renderscript,gaussian seems broke on api 23,its give me a broken television bitmap bg lol
Sent from my GT-N7100 using XDA-Developers mobile app
kingdj said:
Its happen because of you mate
Your blur make me crazy to always use it on any device and new api level hats off to you
Can.t wait to to see your new code of realtime blur. That.s must be awesome:good::good::good:
Click to expand...
Click to collapse
psidco said:
No sir,its your work im just make it for non exposed user,big thanks to you ,btw i need help on recent blur,whenever i change the background its always null,like that the recentrootview is not initialized
Edit: and yes its renderscript,gaussian seems broke on api 23,its give me a broken television bitmap bg lol
Sent from my GT-N7100 using XDA-Developers mobile app
Click to expand...
Click to collapse
Great job guys... :good:
Btw... It is not broken, it's is working as expected. My xposed module for MM (api 23) makes use of it and is working like a charm.
You need to double check your code.
serajr said:
Great job guys... :good:
Btw... It is not broken, it's is working as expected. My xposed module for MM (api 23) makes use of it and is working like a charm.
You need to double check your code.
Click to expand...
Click to collapse
I will update it when u release it then , btw i remove the async task thing,cause its hard when use it for realtime efect,i think its make some problem occurs
Sent from my GT-N7100 using XDA-Developers mobile app
serajr said:
Great job guys... :good:
Btw... It is not broken, it's is working as expected. My xposed module for MM (api 23) makes use of it and is working like a charm.
You need to double check your code.
Click to expand...
Click to collapse
Really bro?
kingdj said:
Waiting for feedback
Click to expand...
Click to collapse
I will try asap
How to add the settings inside the quick settings edit first pane? The 2 sliders and switches.
Envoyé de mon D6503 en utilisant Tapatalk
niaboc79 said:
I will try asap
How to add the settings inside the quick settings edit first pane? The 2 sliders and switches.
Envoyé de mon D6503 en utilisant Tapatalk
Click to expand...
Click to collapse
Simply. Adding line to qs.setting xml
And modify qs.setting smali also adding helper smali.will give it soon
Already added on 1st post bro
I found out the root check file, but i don't know how to exactly bypass it.
Code:
.class public Lcom/square_enix/Android_dqmsuperlight/RootCheck;
.super Ljava/lang/Object;
# static fields
.field private static final NONCE_SALT:Ljava/lang/String; = "wSrSeYbnhe"
.field private static final mRandom:Ljava/util/Random;
.field private static rootCheckStatus:I
.field private static sContext:Landroid/content/Context;
# direct methods
.method static constructor <clinit>()V
.locals 1
invoke-static {}, Lcom/square_enix/Android_dqmsuperlight/Monsters;->getContext()Landroid/content/Context;
move-result-object v0
sput-object v0, Lcom/square_enix/Android_dqmsuperlight/RootCheck;->sContext:Landroid/content/Context;
const/4 v0, -0x1
sput v0, Lcom/square_enix/Android_dqmsuperlight/RootCheck;->rootCheckStatus:I
new-instance v0, Ljava/security/SecureRandom;
invoke-direct {v0}, Ljava/security/SecureRandom;-><init>()V
sput-object v0, Lcom/square_enix/Android_dqmsuperlight/RootCheck;->mRandom:Ljava/util/Random;
return-void
.end method
.method public constructor <init>()V
.locals 0
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
.method public static checkRooted(Landroid/content/Context;)V
.locals 0
invoke-static {}, Lcom/square_enix/Android_dqmsuperlight/RootCheck;->isRoot()Z
move-result p0
if-eqz p0, :cond_0
const/4 p0, 0x1
:goto_0
sput p0, Lcom/square_enix/Android_dqmsuperlight/RootCheck;->rootCheckStatus:I
return-void
:cond_0
const/4 p0, 0x0
goto :goto_0
.end method
.method private static getRequestNonce(Ljava/lang/String;)[B
.locals 3
new-instance v0, Ljava/io/ByteArrayOutputStream;
invoke-direct {v0}, Ljava/io/ByteArrayOutputStream;-><init>()V
sget v1, Landroid/support/v4/media/session/MediaControllerCompat$MediaControllerImplApi21$ExtraBinderRequestResultReceiver0;->F:I
new-array v1, v1, [B
sget-object v2, Lcom/square_enix/Android_dqmsuperlight/RootCheck;->mRandom:Ljava/util/Random;
invoke-virtual {v2, v1}, Ljava/util/Random;->nextBytes([B)V
:try_start_0
invoke-virtual {v0, v1}, Ljava/io/ByteArrayOutputStream;->write([B)V
invoke-virtual {p0}, Ljava/lang/String;->getBytes()[B
move-result-object p0
invoke-virtual {v0, p0}, Ljava/io/ByteArrayOutputStream;->write([B)V
:try_end_0
.catch Ljava/io/IOException; {:try_start_0 .. :try_end_0} :catch_0
invoke-virtual {v0}, Ljava/io/ByteArrayOutputStream;->toByteArray()[B
move-result-object p0
return-object p0
:catch_0
const/4 p0, 0x0
return-object p0
.end method
.method public static getRootCheckStatus()I
.locals 1
sget v0, Lcom/square_enix/Android_dqmsuperlight/RootCheck;->rootCheckStatus:I
return v0
.end method
.method public static getSensorCount()I
.locals 2
sget-object v0, Lcom/square_enix/Android_dqmsuperlight/RootCheck;->sContext:Landroid/content/Context;
const-string v1, "sensor"
invoke-virtual {v0, v1}, Landroid/content/Context;->getSystemService(Ljava/lang/String;)Ljava/lang/Object;
move-result-object v0
check-cast v0, Landroid/hardware/SensorManager;
const/4 v1, 0x1
invoke-virtual {v0, v1}, Landroid/hardware/SensorManager;->getSensorList(I)Ljava/util/List;
move-result-object v0
invoke-interface {v0}, Ljava/util/List;->size()I
move-result v0
return v0
.end method
.method public static getSensorInfo()Z
.locals 5
sget-object v0, Lcom/square_enix/Android_dqmsuperlight/RootCheck;->sContext:Landroid/content/Context;
const-string v1, "sensor"
invoke-virtual {v0, v1}, Landroid/content/Context;->getSystemService(Ljava/lang/String;)Ljava/lang/Object;
move-result-object v0
check-cast v0, Landroid/hardware/SensorManager;
const/4 v1, 0x1
invoke-virtual {v0, v1}, Landroid/hardware/SensorManager;->getSensorList(I)Ljava/util/List;
move-result-object v0
const-string v2, "ERR"
invoke-interface {v0}, Ljava/util/List;->size()I
move-result v3
const/4 v4, 0x0
if-lez v3, :cond_0
invoke-interface {v0, v4}, Ljava/util/List;->get(I)Ljava/lang/Object;
move-result-object v0
check-cast v0, Landroid/hardware/Sensor;
invoke-virtual {v0}, Landroid/hardware/Sensor;->getName()Ljava/lang/String;
move-result-object v2
:cond_0
const-string v0, "ERR"
invoke-virtual {v2, v0}, Ljava/lang/String;->compareTo(Ljava/lang/String;)I
move-result v0
if-eqz v0, :cond_1
return v1
:cond_1
return v4
.end method
.method public static final isAndroidEmulator()Z
.locals 3
sget-object v0, Landroid/os/Build;->PRODUCT:Ljava/lang/String;
const/4 v1, 0x0
if-eqz v0, :cond_1
const-string v2, "sdk"
invoke-virtual {v0, v2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v2
if-nez v2, :cond_0
const-string v2, "_sdk"
invoke-virtual {v0, v2}, Ljava/lang/String;->contains(Ljava/lang/CharSequence;)Z
move-result v2
if-nez v2, :cond_0
const-string v2, "sdk_"
invoke-virtual {v0, v2}, Ljava/lang/String;->contains(Ljava/lang/CharSequence;)Z
move-result v0
if-eqz v0, :cond_1
:cond_0
const/4 v0, 0x1
const/4 v1, 0x1
:cond_1
return v1
.end method
.method public static isRoot()Z
.locals 4
const/4 v0, 0x1
:try_start_0
invoke-static {}, Ljava/lang/Runtime;->getRuntime()Ljava/lang/Runtime;
move-result-object v1
const-string v2, "su"
invoke-virtual {v1, v2}, Ljava/lang/Runtime;->exec(Ljava/lang/String;)Ljava/lang/Process;
move-result-object v1
invoke-virtual {v1}, Ljava/lang/Process;->destroy()V
:try_end_0
.catch Ljava/io/IOException; {:try_start_0 .. :try_end_0} :catch_0
.catch Ljava/lang/Exception; {:try_start_0 .. :try_end_0} :catch_0
return v0
:catch_0
const/4 v1, 0x0
:try_start_1
sget-object v2, Lcom/square_enix/Android_dqmsuperlight/RootCheck;->sContext:Landroid/content/Context;
invoke-virtual {v2}, Landroid/content/Context;->getPackageManager()Landroid/content/pm/PackageManager;
move-result-object v2
const-string v3, "com.noshufou.android.su"
invoke-virtual {v2, v3, v1}, Landroid/content/pm/PackageManager;->getApplicationInfo(Ljava/lang/String;I)Landroid/content/pm/ApplicationInfo;
:try_end_1
.catch Landroid/content/pm/PackageManager$NameNotFoundException; {:try_start_1 .. :try_end_1} :catch_1
.catch Ljava/lang/Exception; {:try_start_1 .. :try_end_1} :catch_1
return v0
:catch_1
return v1
.end method
What do you mean "bypass"? If you're root, what's the issue?
Sent from my SM-A605FN using Tapatalk
pr1jker said:
What do you mean "bypass"? If you're root, what's the issue?
Sent from my SM-A605FN using Tapatalk
Click to expand...
Click to collapse
This app detected my magisk then istantly closed. It working normally after i uninstalled magisk.
All you need to hide Magisk can be found here:
https://didgeridoohan.com/magisk/MagiskHide#hn_Hiding_root_from_apps
The current Canary release (20004/252) is extremely difficult to detect. Should soon find it's way to a stable release.
Didgeridoohan said:
All you need to hide Magisk can be found here:
The current Canary release (20004/252) is extremely difficult to detect. Should soon find it's way to a stable release.
Click to expand...
Click to collapse
I tried but still not working. I am waiting for someone can give me advice after read those codes.
cless2004 said:
I tried but still not working. I am waiting for someone can give me advice after read those codes.
Click to expand...
Click to collapse
From a quick look it doesn't look like there's much in there to analyze... It seems to be looking for su and an ancient superuser app. Doesn't seem like something that should be able to bypass MagiskHide. But, there might of course be more to it then what we can see here.
What app is it you're trying to hide from anyway, and when does it detect root? And what exactly is it that you have tried (that doesn't work)?
Didgeridoohan said:
From a quick look it doesn't look like there's much in there to analyze... It seems to be looking for su and an ancient superuser app. Doesn't seem like something that should be able to bypass MagiskHide. But, there might of course be more to it then what we can see here.
What app is it you're trying to hide from anyway, and when does it detect root? And what exactly is it that you have tried (that doesn't work)?
Click to expand...
Click to collapse
"Dragon Quest Monsters: Super Light" version 6.0.4
It detect root from startup, closed istantly.
I tried "Magisk Hide list", "Hide Magisk Manger", "MagiskHide Props Config".
It work when i uninstall magisk but keep renamed magisk manager.
But when i keep magisk and uninstall magisk manager it still not work.
Code:
const-string v2, "su"
invoke-virtual {v1, v2}, Ljava/lang/Runtime;->exec(Ljava/lang/String;)Ljava/lang/Process;
Is this code assert root by execute "su" command? How can i hide root from it?
cless2004 said:
Code:
const-string v2, "su"
invoke-virtual {v1, v2}, Ljava/lang/Runtime;->exec(Ljava/lang/String;)Ljava/lang/Process;
Is this code assert root by execute "su" command? How can i hide root from it?
Click to expand...
Click to collapse
If you've added the app to the Hide list it can't execute su, unless MagiskHide isn't actually working on your device.
Didgeridoohan said:
If you've added the app to the Hide list it can't execute su, unless MagiskHide isn't actually working on your device.
Click to expand...
Click to collapse
App already added to the list, MagiskHide is working normally with other apps, only this doesn't.
If you're not on the Canary build, try that. Other than that, there's not much more I can add (can't test myself since it's not available).
App can be download from here DQMSL.
Waiting for help :crying:.
No issues. Magisk can hide itself from that app just fine (tested on Android Pie, Magisk Canary 20004 with hidden Manager 252).
I suggest you go back to the guide I linked you and try again.
Didgeridoohan said:
No issues. Magisk can hide itself from that app just fine (tested on Android Pie, Magisk Canary 20004 with hidden Manager 252).
I suggest you go back to the guide I linked you and try again.
Click to expand...
Click to collapse
Thanks for testing, let me try again.
Finally i solved the problem by flash another ROM. It is weird that MagiskHide works fine with other apps except this one.
Thank you for your answer @Didgeridoohan.
cless2004 said:
Finally i solve the problem by flashing another ROM. It is weird that MagiskHide works fine with other apps except this one.
Thank you for your answer @Didgeridoohan.
Click to expand...
Click to collapse
Magiskhide works fine, but if you had to change the ROM to get the app to work that could mean that it was something specific about your ROM that was triggering the app (example). Nothing MagiskHide can do about that...
I just found out this app will also detect data encryption. I try to flash ROM after format data partition, then the app can only run a few seconds and auto closed.
You mean that it won't run in a device without encryption?
When I tested it was on a device without encryption, so that doesn't seem to be any worries either...
Didgeridoohan said:
You mean that it won't run in a device without encryption?
When I tested it was on a device without encryption, so that doesn't seem to be any worries either...
Click to expand...
Click to collapse
Yes, here is what i did.
1: fastboot flash stock ROM -> flash OrangeFox -> format data partition by OrangeFox -> flash custom ROM -> app can only run a few seconds
2: fastboot flash stock ROM -> flash OrangeFox -> flash custom ROM -> app run normally
Hi, in this post, I will tell those who are curious about where to change the stock files. I think it will work on all classic LG phones and Oreo / Pie roms.
I shared it in detail. Don't ask questions, please.
Some minor details (like line numbers) on all phones and roms may be different.
It is yours to find similar codes and bring comments .
Will Be Required:
- LG Phones with Stock Rom (Oreo or Pie)
- You should know how to make Compile / Decompile apk
- Your device must be rooted
- TWRP must be installed to flash modded files
Enable Auto Call Recording with Menu :
Required Files : LGInCallUI.apk , LGTeleService.apk
1 - Decompile LGInCallUI.apk and open with text editor this file " LGInCallUI\smali\com\android\incallui\util\InCallFeature.smali "
2 - - Find " .method public static supportVoiceRecord()Z " value and change color line to
Code:
.method public static supportVoiceRecord()Z
.locals 1
.prologue
.line 245
sget-object v0, Lcom/lge/phone/common/Device$Country;->KR:Lcom/lge/phone/common/Device$Country;
invoke-static {v0}, Lcom/lge/phone/common/Device;->of(Lcom/lge/phone/common/Device$Country;)Z
move-result v0
if-nez v0, :cond_0
sget-object v0, Lcom/lge/phone/common/Device$Operator;->KDDI:Lcom/lge/phone/common/Device$Operator;
invoke-static {v0}, Lcom/lge/phone/common/Device;->of(Lcom/lge/phone/common/Device$Operator;)Z
move-result v0
if-nez v0, :cond_0
sget-object v0, Lcom/lge/phone/common/Device$Country;->CN:Lcom/lge/phone/common/Device$Country;
invoke-static {v0}, Lcom/lge/phone/common/Device;->of(Lcom/lge/phone/common/Device$Country;)Z
move-result v0
if-nez v0, :cond_0
sget-object v0, Lcom/lge/phone/common/Device$Country;->CIS:Lcom/lge/phone/common/Device$Country;
.line 246
invoke-static {v0}, Lcom/lge/phone/common/Device;->of(Lcom/lge/phone/common/Device$Country;)Z
move-result v0
if-eqz v0, :cond_1
.line 247
invoke-static {}, Lcom/android/incallui/util/ConfigUtils;->isMTK()Z
move-result v0
if-nez v0, :cond_1
.line 248
:cond_0
[COLOR="Red"]const/4 v0, 0x1[/COLOR] [COLOR="Blue"]-----> Change this line to --> const/4 v0, 0x0[/COLOR]
.line 250
:goto_0
return v0
:cond_1
[COLOR="Red"]const/4 v0, 0x0[/COLOR] [COLOR="Blue"]-----> Change this line to --> const/4 v0, 0x1[/COLOR]
goto :goto_0
.end method
You can recompile our job.
3 - Decompile LGTeleService.apk and open with text editor this file " LGTeleService\smali\com\lge\common\ConfigUtils.smali "
4 - Find " .method public static supportVoiceRecord()Z " value and change color line to
Code:
.method public static supportVoiceRecord()Z
.locals 1
.prologue
.line 729
sget-object v0, Lcom/lge/phone/common/Device$Country;->KR:Lcom/lge/phone/common/Device$Country;
invoke-static {v0}, Lcom/lge/phone/common/Device;->of(Lcom/lge/phone/common/Device$Country;)Z
move-result v0
if-eqz v0, :cond_0
sget-object v0, Lcom/lge/phone/common/Device$Operator;->OPEN:Lcom/lge/phone/common/Device$Operator;
invoke-static {v0}, Lcom/lge/phone/common/Device;->of(Lcom/lge/phone/common/Device$Operator;)Z
move-result v0
if-eqz v0, :cond_1
:cond_0
sget-object v0, Lcom/lge/phone/common/Device$Operator;->KDDI:Lcom/lge/phone/common/Device$Operator;
invoke-static {v0}, Lcom/lge/phone/common/Device;->of(Lcom/lge/phone/common/Device$Operator;)Z
move-result v0
if-nez v0, :cond_1
sget-object v0, Lcom/lge/phone/common/Device$Country;->CN:Lcom/lge/phone/common/Device$Country;
invoke-static {v0}, Lcom/lge/phone/common/Device;->of(Lcom/lge/phone/common/Device$Country;)Z
move-result v0
if-nez v0, :cond_1
sget-object v0, Lcom/lge/phone/common/Device$Country;->CIS:Lcom/lge/phone/common/Device$Country;
.line 730
invoke-static {v0}, Lcom/lge/phone/common/Device;->of(Lcom/lge/phone/common/Device$Country;)Z
move-result v0
if-eqz v0, :cond_2
.line 731
invoke-static {}, Lcom/lge/common/ConfigUtils;->isMTK()Z
move-result v0
if-nez v0, :cond_2
.line 732
:cond_1
[COLOR="Red"]const/4 v0, 0x1[/COLOR] [COLOR="Blue"]-----> Change this line to --> const/4 v0, 0x0[/COLOR]
.line 734
:goto_0
return v0
:cond_2
[COLOR="Red"]const/4 v0, 0x0[/COLOR] [COLOR="Blue"]-----> Change this line to --> const/4 v0, 0x1[/COLOR]
goto :goto_0
.end method
Two Files are ready. Recompile and flash with TWRP.
Good Luck !
Other modes are available in the second post but are briefly described.
Other Mods..
Replace red lines with blue values.
Add magenta lines
1- Answer Call with the Volume key
Decompile services.jar and open with text editor this file "Decompiled_apk\services\smali\com\android\server\policy\PhoneWindowManager.smali"
Code:
29498 .line 6996
29499 const-string/jumbo v24, "WindowManager"
29500
29501 const-string/jumbo v25, "interceptKeyBeforeQueueing: VOLUME key-down while ringing: Silence ringer!"
29502
29503 invoke-static/range {v24 .. v25}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
29504
29505 .line 7001
[COLOR="Red"]29506 invoke-virtual/range {v22 .. v22}, Landroid/telecom/TelecomManager;->silenceRinger()V[/COLOR]
[COLOR="Blue"]29506 invoke-virtual/range {v22 .. v22}, Landroid/telecom/TelecomManager;->acceptRingingCall()V
[/COLOR]
2- Power Key End Call - Even if the screen is off (While in the ear during the call)
Decompile services.jar and open with text editor this file "Decompiled_apk\services\smali\com\android\server\policy\LGPhoneWindowManager.smali"
Code:
2102 invoke-static {v10}, Lcom/android/server/policy/SmartCoverStatus;->isCoverClosed(I)Z
2103
2104 move-result v10
2105
2106 .line 1644
[COLOR="Red"]2107 if-eqz v10, :cond_8[/COLOR]
[COLOR="blue"]2107 if-nez v10, :cond_8[/COLOR]
2231 invoke-static {v0}, Lcom/android/server/policy/SmartCoverStatus;->isCoverClosed(I)Z
2232
2233 move-result v0
2234
2235 .line 1545
[COLOR="Red"]2236 if-eqz v0, :cond_1[/COLOR]
[COLOR="blue"]2236 if-nez v0, :cond_1[/COLOR]
3- Screen Off Qmemo Shortcut (Volume Key) open Flashlight
This mode required wipe cache/dalvik after every restart.
Decompile services.jar and open with text editor this file "Decompiled_apk\services\smali\com\android\server\policy\FlashLightExecutor.smali"
Code:
726 # virtual methods
.
.
738 .method public executeDoublePress()V
739 .locals 0
740
741 .prologue
742 .line 65
[COLOR="Magenta"]743 invoke-direct {p0}, Lcom/android/server/policy/FlashLightExecutor;->executeFlashLightToggle()V [COLOR="Magenta"]------> Add this line[/COLOR]
744
745 .line 66[/COLOR] [COLOR="Magenta"]------> Add this line[/COLOR]
746 return-void
747 .end method
748
open with text editor this file "Decompiled_apk\services\smali\com\android\server\policy\LGPhoneWindowManager.smali"
Code:
[COLOR="Red"]32 field private static final EXECUTE_QMEMO_BY_SHORT_CUT:I = 0x2[/COLOR]
[COLOR="Blue"]32 field private static final EXECUTE_FLASH_LIGHT_BY_SHORT_CUT:I = 0x2[/COLOR]
[COLOR="red"]752 iput-object v5, p0, Lcom/android/server/policy/LGPhoneWindowManager;->mQMemoExecutor:Lcom/android/server/policy/QMemoExecutor;[/COLOR]
[COLOR="blue"]752 iput-object v5, p0, Lcom/android/server/policy/LGPhoneWindowManager;->mFlashLightExecutor:Lcom/android/server/policy/FlashLightExecutor;[/COLOR]
[COLOR="red"]764 iput-object v5, p0, Lcom/android/server/policy/LGPhoneWindowManager;->mFlashLightExecutor:Lcom/android/server/policy/FlashLightExecutor;[/COLOR]
[COLOR="blue"]764 iput-object v5, p0, Lcom/android/server/policy/LGPhoneWindowManager;->mQMemoExecutor:Lcom/android/server/policy/QMemoExecutor;
[/COLOR]
[COLOR="red"]5832 iget-object v1, p0, Lcom/android/server/policy/LGPhoneWindowManager;->mQMemoExecutor:Lcom/android/server/policy/QMemoExecutor;[/COLOR]
[COLOR="blue"]5832 iget-object v1, p0, Lcom/android/server/policy/LGPhoneWindowManager;->mFlashLightExecutor:Lcom/android/server/policy/FlashLightExecutor;
[/COLOR]
[COLOR="Red"]5837 iget-object v0, p0, Lcom/android/server/policy/LGPhoneWindowManager;->mQMemoExecutor:Lcom/android/server/policy/QMemoExecutor;[/COLOR]
[COLOR="blue"]5837 iget-object v0, p0, Lcom/android/server/policy/LGPhoneWindowManager;->mFlashLightExecutor:Lcom/android/server/policy/FlashLightExecutor;[/COLOR]
Good Luck..
Can this technique work for LG V60 Android11 ?