Project Closed - Miscellaneous Android Development

Project Closed.............................

Download Attachment from HERE

Reserved for jb 4.2.2 MTK

Reserved for jb 4.2.2 MTK.

Reserved For JB 4.2.2 MTK

Screenshot

Sorry for my bad english
EboyBasit said:
Notes:
- This is another way of creating L panel. it has better swipe animation than lollifox.
- You need to be "very patient" andhave a lot of time as this is a time consuming tutorial.
- I won't explain how to do things like pushing the apps, setting the permission, or how to get a value in public.xml and use that to change something in a certain smali. Why? Because its been tackled a lot of times on the previous guides is posted. - common sense is a must.
- I won't also explain how to push the signature, or what is a signature, what is signing or how to sign an app. Those are different topics, just check pinned post for their guides.
- Read everything.
You'll need the following:
- Brain.apk
- Common Sense.apk
- apktool (version 1.5.2)
- rootexplorer
- text editor
- AnotherLPanelGuide.zip
- SystemUI.apk
Let's begin.
Part A:
Note: Import (framework-res.apk, and mediatek-res.apk first)
1. Decompile SystemUI.apk
2. Extract SystemUIFiles folder and merge the files of the Attachment to your SystemUI
==========================================================================
3. Open ids.xml in /res/values
Add this code before </resources>
Code:
<item type="id" name="owner">false</item>
<item type="id" name="photo_picker_cover">false</item>
<item type="id" name="owner_cover">false</item>
<item type="id" name="name_field_cover">false</item>
<item type="id" name="name_edit_cover">false</item>
<item type="id" name="image_cover">false</item>
<item type="id" name="photo_picker">false</item>
<item type="id" name="name_field">false</item>
<item type="id" name="name_edit">false</item>
<item type="id" name="colored_bar">false</item>
<item type="id" name="thumbnail_border">false</item>
<item type="id" name="handle_background">false</item>
4. Open dimens.xml in /res/values
find this
Code:
<dimen name="quick_settings_cell_height">
replace the value with 90.0dip
also find this
Code:
<dimen name="quick_settings_cell_gap">
replace the value with 0.0dip then save
5. Open Styles.xml in /res/values
=Find this=
Code:
<style name="TextAppearance.StatusBar.Expanded.Clock" parent="@style/TextAppearance.StatusBar.Expanded">
change it to become like this
Code:
<style name="TextAppearance.StatusBar.Expanded.Clock" parent="@style/TextAppearance.StatusBar.Expanded">
<item name="android:textSize">14.0sp</item>
<item name="android:textStyle">normal</item>
<item name="android:textColor">#ffffffff</item>
<item name="android:fontFamily">sans-serif-medium</item>
</style>
=Find this=
Code:
<style name="TextAppearance.StatusBar.Expanded.Date" parent="@style/TextAppearance.StatusBar.Expanded">
change it to become like this
Code:
<style name="TextAppearance.StatusBar.Expanded.Date" parent="@style/TextAppearance.StatusBar.Expanded">
<item name="android:textSize">14.0sp</item>
<item name="android:textStyle">normal</item>
<item name="android:textColor">#b2ffffff</item>
</style>
[/CODE
=Add this at the bottom before </resources>
[CODE]
<style name="TextAppearance.QuickSettings.Toggle" parent="@style/TextAppearance.QuickSettings">
<item name="android:textSize">12.0sp</item>
<item name="android:textStyle">normal</item>
<item name="android:textColor">#b3ffffff</item>
<item name="android:fontFamily">sans-serif-regular-systemui</item>
</style>
<style name="Theme.Lalalee" parent="@*android:style/Theme.Holo.Light.Dialog">
<item name="android:windowBackground">@*android:color/transparent</item>
<item name="android:windowNoTitle">true</item>
</style>
6.Open colors.xml in /res/values/
add this at the bottom before </resources>
Code:
<color name="qset_text_color_off">#b3ffffff</color>
<color name="qset_text_color_on">#b3ffffff</color>
<color name="qs_tile_normal">#ff263238</color>
7. Open AndroidManifest.xml
add this at the bottom before </application>
Code:
<activity android:theme="@style/Theme.Lalalee" android:name="com.android.settings.Profile">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
</intent-filter>
</activity>
Open Drawables.xml and add this above </resources>
Code:
<item type="drawable" name="handle_bar_background_color">#ff222222</item>
8. Open SystemUIService.smali in /smali/com/android/systemui
find:
# virtual methods
Add this at the bottom "remember to add 1 gap after the .end method
Code:
.method public PussyBatt(Landroid/view/View;)V
.locals 3
.param p1, "v" # Landroid/view/View;
.prologue
.line 2431
new-instance v0, Landroid/content/Intent;
invoke-direct {v0}, Landroid/content/Intent;-><init>()V
.line 2432
const-string v1, "com.android.settings"
const-string v2, "com.android.settings.fuelgauge.PowerUsageSummary"
invoke-virtual {v0, v1, v2}, Landroid/content/Intent;->setClassName(Ljava/lang/String;Ljava/lang/String;)Landroid/content/Intent;
const/high16 v2, 0x10000000
invoke-virtual {v0, v2}, Landroid/content/Intent;->setFlags(I)Landroid/content/Intent;
move-result-object v0
.line 2433
invoke-virtual {p0, v0}, Landroid/content/Context;->startActivity(Landroid/content/Intent;)V
const-string v1, "statusbar"
invoke-virtual {p0, v1}, Landroid/content/Context;->getSystemService(Ljava/lang/String;)Ljava/lang/Object;
move-result-object v0
check-cast v0, Landroid/app/StatusBarManager;
invoke-virtual {v0}, Landroid/app/StatusBarManager;->collapsePanels()V
.line 1720
return-void
.end method
.method public PussyProf(Landroid/view/View;)V
.locals 3
.param p1, "v" # Landroid/view/View;
.prologue
.line 2431
new-instance v0, Landroid/content/Intent;
invoke-direct {v0}, Landroid/content/Intent;-><init>()V
.line 2432
const-string v1, "com.android.settings"
const-string v2, "com.android.settings.Profile"
invoke-virtual {v0, v1, v2}, Landroid/content/Intent;->setClassName(Ljava/lang/String;Ljava/lang/String;)Landroid/content/Intent;
const/high16 v2, 0x10000000
invoke-virtual {v0, v2}, Landroid/content/Intent;->setFlags(I)Landroid/content/Intent;
move-result-object v0
.line 2433
invoke-virtual {p0, v0}, Landroid/content/Context;->startActivity(Landroid/content/Intent;)V
const-string v1, "statusbar"
invoke-virtual {p0, v1}, Landroid/content/Context;->getSystemService(Ljava/lang/String;)Ljava/lang/Object;
move-result-object v0
check-cast v0, Landroid/app/StatusBarManager;
invoke-virtual {v0}, Landroid/app/StatusBarManager;->collapsePanels()V
.line 1720
return-void
.end method
.method public PussySett(Landroid/view/View;)V
.locals 3
.param p1, "v" # Landroid/view/View;
.prologue
.line 2431
new-instance v0, Landroid/content/Intent;
invoke-direct {v0}, Landroid/content/Intent;-><init>()V
.line 2432
const-string v1, "com.android.settings"
const-string v2, "com.android.settings.Settings"
invoke-virtual {v0, v1, v2}, Landroid/content/Intent;->setClassName(Ljava/lang/String;Ljava/lang/String;)Landroid/content/Intent;
const/high16 v2, 0x10000000
invoke-virtual {v0, v2}, Landroid/content/Intent;->setFlags(I)Landroid/content/Intent;
move-result-object v0
.line 2433
invoke-virtual {p0, v0}, Landroid/content/Context;->startActivity(Landroid/content/Intent;)V
const-string v1, "statusbar"
invoke-virtual {p0, v1}, Landroid/content/Context;->getSystemService(Ljava/lang/String;)Ljava/lang/Object;
move-result-object v0
check-cast v0, Landroid/app/StatusBarManager;
invoke-virtual {v0}, Landroid/app/StatusBarManager;->collapsePanels()V
.line 1720
return-void
.end method
9. Recompile your systemui
Click to expand...
Click to collapse
I got this error code while recompiling at Tutorial 9th Part A.
C:\Users\Husin\Documents\Apktool JB 4.2.2>apktool b -f -d SystemUI
I: Using Apktool 2.0.1
I: Smaling smali folder into classes.dex...
SystemUI\smali\android\widget\CircleDrawable.smali[227,4] Error for input '.parameter': Invalid directive
SystemUI\smali\android\widget\CircleDrawable.smali[227,15] mismatched input '"bitmap"' expecting END_METHOD_DIRECTIVE
SystemUI\smali\android\widget\CircleDrawable.smali[415,4] Error for input '.parameter': Invalid directive
SystemUI\smali\android\widget\CircleDrawable.smali[415,15] mismatched input '"drawable"' expecting END_METHOD_DIRECTIVE
SystemUI\smali\android\widget\CircleDrawable.smali[521,4] Error for input '.parameter': Invalid directive
SystemUI\smali\android\widget\CircleDrawable.smali[521,15] mismatched input '"bitmap"' expecting END_METHOD_DIRECTIVE
SystemUI\smali\android\widget\CircleDrawable.smali[544,4] Error for input '.parameter': Invalid directive
SystemUI\smali\android\widget\CircleDrawable.smali[544,15] mismatched input '"drawable"' expecting END_METHOD_DIRECTIVE
SystemUI\smali\android\widget\CircleDrawable.smali[849,15] no viable alternative at input 'dx'
SystemUI\smali\android\widget\CircleDrawable.smali[853,15] no viable alternative at input 'dy'
SystemUI\smali\android\widget\CircleDrawable.smali[896,15] no viable alternative at input 'scale'
SystemUI\smali\android\widget\CircleDrawable.smali[1325,4] Error for input '.parameter': Invalid directive
SystemUI\smali\android\widget\CircleDrawable.smali[1325,15] mismatched input '"canvas"' expecting END_METHOD_DIRECTIVE
SystemUI\smali\android\widget\CircleDrawable.smali[1537,4] Error for input '.parameter': Invalid directive
SystemUI\smali\android\widget\CircleDrawable.smali[1537,15] mismatched input '"bounds"' expecting END_METHOD_DIRECTIVE
SystemUI\smali\android\widget\CircleDrawable.smali[1557,4] Error for input '.parameter': Invalid directive
SystemUI\smali\android\widget\CircleDrawable.smali[1557,15] mismatched input '"state"' expecting END_METHOD_DIRECTIVE
SystemUI\smali\android\widget\CircleDrawable.smali[1601,4] Error for input '.parameter': Invalid directive
SystemUI\smali\android\widget\CircleDrawable.smali[1601,15] mismatched input '"alpha"' expecting END_METHOD_DIRECTIVE
SystemUI\smali\android\widget\CircleDrawable.smali[1618,4] Error for input '.parameter': Invalid directive
SystemUI\smali\android\widget\CircleDrawable.smali[1618,15] mismatched input '"color"' expecting END_METHOD_DIRECTIVE
SystemUI\smali\android\widget\CircleDrawable.smali[1635,4] Error for input '.parameter': Invalid directive
SystemUI\smali\android\widget\CircleDrawable.smali[1635,15] mismatched input '"colors"' expecting END_METHOD_DIRECTIVE
SystemUI\smali\android\widget\CircleDrawable.smali[1679,4] Error for input '.parameter': Invalid directive
SystemUI\smali\android\widget\CircleDrawable.smali[1679,15] mismatched input '"width"' expecting END_METHOD_DIRECTIVE
SystemUI\smali\android\widget\CircleDrawable.smali[1700,4] Error for input '.parameter': Invalid directive
SystemUI\smali\android\widget\CircleDrawable.smali[1700,15] mismatched input '"cf"' expecting END_METHOD_DIRECTIVE
SystemUI\smali\android\widget\CircleDrawable.smali[1717,4] Error for input '.parameter': Invalid directive
SystemUI\smali\android\widget\CircleDrawable.smali[1717,15] mismatched input '"radius"' expecting END_METHOD_DIRECTIVE
SystemUI\smali\android\widget\CircleDrawable.smali[1729,4] Error for input '.parameter': Invalid directive
SystemUI\smali\android\widget\CircleDrawable.smali[1729,15] mismatched input '"dither"' expecting END_METHOD_DIRECTIVE
SystemUI\smali\android\widget\CircleDrawable.smali[1746,4] Error for input '.parameter': Invalid directive
SystemUI\smali\android\widget\CircleDrawable.smali[1746,15] mismatched input '"filter"' expecting END_METHOD_DIRECTIVE
SystemUI\smali\android\widget\CircleDrawable.smali[1763,4] Error for input '.parameter': Invalid directive
SystemUI\smali\android\widget\CircleDrawable.smali[1763,15] mismatched input '"oval"' expecting END_METHOD_DIRECTIVE
SystemUI\smali\android\widget\CircleDrawable.smali[1775,4] Error for input '.parameter': Invalid directive
SystemUI\smali\android\widget\CircleDrawable.smali[1775,15] mismatched input '"scaleType"' expecting END_METHOD_DIRECTIVE
Exception in thread "main" brut.androlib.AndrolibException: Could not smali file: android/widget/CircleDrawable.smali
at brut.androlib.src.SmaliBuilder.buildFile(SmaliBuilder.java:71)
at brut.androlib.src.SmaliBuilder.build(SmaliBuilder.java:55)
at brut.androlib.src.SmaliBuilder.build(SmaliBuilder.java:41)
at brut.androlib.Androlib.buildSourcesSmali(Androlib.java:372)
at brut.androlib.Androlib.buildSources(Androlib.java:299)
at brut.androlib.Androlib.build(Androlib.java:282)
at brut.androlib.Androlib.build(Androlib.java:256)
at brut.apktool.Main.cmdBuild(Main.java:225)
at brut.apktool.Main.main(Main.java:84)
Click to expand...
Click to collapse
JB 4.2.2 and I'm using original (stock) SystemUI.apk deodexed
can you help me ?

-_- use apktool 1.5.2 while following my tutorials -_- huh

EboyBasit said:
-_- use apktool 1.5.2 while following my tutorials -_- huh
Click to expand...
Click to collapse
i'm using apktool 1.5.2
got error message
Code:
C:\Users\GDay\Downloads\Advanced+ApkTool+v4.1.0+By+BDFreak\AdvancedApkTool\apkto
ol1.5.2>apktool b systemui
I: Checking whether sources has changed...
I: Smaling...
[418,4] Error for input '.param': Invalid directive
[458,4] Error for input '.param': Invalid directive
[498,4] Error for input '.param': Invalid directive
[418,11] mismatched input 'p1' expecting END_METHOD_DIRECTIVE
[458,11] mismatched input 'p1' expecting END_METHOD_DIRECTIVE
[498,11] mismatched input 'p1' expecting END_METHOD_DIRECTIVE
Exception in thread "main" brut.androlib.AndrolibException: Could not smali file
: C:\Users\GDay\Downloads\Advanced+ApkTool+v4.1.0+By+BDFreak\AdvancedApkTool\apk
tool1.5.2\systemui\smali\com\android\systemui\SystemUIService.smali
at brut.androlib.src.DexFileBuilder.addSmaliFile(DexFileBuilder.java:45)
at brut.androlib.src.DexFileBuilder.addSmaliFile(DexFileBuilder.java:33)
at brut.androlib.src.SmaliBuilder.buildFile(SmaliBuilder.java:66)
at brut.androlib.src.SmaliBuilder.build(SmaliBuilder.java:50)
at brut.androlib.src.SmaliBuilder.build(SmaliBuilder.java:37)
at brut.androlib.Androlib.buildSourcesSmali(Androlib.java:257)
at brut.androlib.Androlib.buildSources(Androlib.java:214)
at brut.androlib.Androlib.build(Androlib.java:205)
at brut.androlib.Androlib.build(Androlib.java:176)
at brut.apktool.Main.cmdBuild(Main.java:228)
at brut.apktool.Main.main(Main.java:79)
C:\Users\GDay\Downloads\Advanced+ApkTool+v4.1.0+By+BDFreak\AdvancedApkTool\apkto
ol1.5.2>
how to fix it ?

GDay21 said:
i'm using apktool 1.5.2
got error message
Code:
C:\Users\GDay\Downloads\Advanced+ApkTool+v4.1.0+By+BDFreak\AdvancedApkTool\apkto
ol1.5.2>apktool b systemui
I: Checking whether sources has changed...
I: Smaling...
[418,4] Error for input '.param': Invalid directive
[458,4] Error for input '.param': Invalid directive
[498,4] Error for input '.param': Invalid directive
[418,11] mismatched input 'p1' expecting END_METHOD_DIRECTIVE
[458,11] mismatched input 'p1' expecting END_METHOD_DIRECTIVE
[498,11] mismatched input 'p1' expecting END_METHOD_DIRECTIVE
Exception in thread "main" brut.androlib.AndrolibException: Could not smali file
: C:\Users\GDay\Downloads\Advanced+ApkTool+v4.1.0+By+BDFreak\AdvancedApkTool\apk
tool1.5.2\systemui\smali\com\android\systemui\SystemUIService.smali
at brut.androlib.src.DexFileBuilder.addSmaliFile(DexFileBuilder.java:45)
at brut.androlib.src.DexFileBuilder.addSmaliFile(DexFileBuilder.java:33)
at brut.androlib.src.SmaliBuilder.buildFile(SmaliBuilder.java:66)
at brut.androlib.src.SmaliBuilder.build(SmaliBuilder.java:50)
at brut.androlib.src.SmaliBuilder.build(SmaliBuilder.java:37)
at brut.androlib.Androlib.buildSourcesSmali(Androlib.java:257)
at brut.androlib.Androlib.buildSources(Androlib.java:214)
at brut.androlib.Androlib.build(Androlib.java:205)
at brut.androlib.Androlib.build(Androlib.java:176)
at brut.apktool.Main.cmdBuild(Main.java:228)
at brut.apktool.Main.main(Main.java:79)
C:\Users\GDay\Downloads\Advanced+ApkTool+v4.1.0+By+BDFreak\AdvancedApkTool\apkto
ol1.5.2>
how to fix it ?
Click to expand...
Click to collapse
-_- restart the process right from decompiling using apktool 1.5.2 :v dont compile waste of apktool 2 with apktool 1.5.2 :v

Very hard...

to fix smali
( change = param p1 , "v" ) to parameter "v" and than
( change 0x10000000 ) to 0x1000
do to all in a guide resouece smali
it's working to me base kitkat

@Eboy Basit stop fooling people...

myrxda said:
@Eboy Basit stop fooling people...
Click to expand...
Click to collapse
Those who successfully made believe on it....

Related

[HOWTO]Implement Swipe to Remove Notification

Hi there, I want to share this tutorial for implementing Swipe-to-Remove Notification feature found in CyanogenMod to stock ROM (Gingerbread or earlier ROM). Sure it will be available on ICS but for those who like to add one to their custom ROM here's how Currently i don't know to whom should i give credit to, if anybody knows please post below and i'll add the link for the original modder. Thanks to:
1. like-p for help showing me what files to be edited
2. LeoMar75 for some info on how to control Stub switch case
This mod is based on Sony Ericsson Xperia Ray, so take care when adding to another device, some code might be different though so no direct copy paste, please learn some of the line first.
PS: For Froyo mod, please follow Jason-EX here
Requirement:
1. decompiled Framework.jar with Baksmali manager
2. decompiled SystemUI.apk with APK Multi Tool
3. Some Basic understanding about editing xml file and smali code.
4. WinMerge or other comparison tool (to better editing and comparing with my sample file)
5. Backup the framework.jar and SystemUI.apk first!
Files to be edited:
in SystemUI.apk
res/anim/
res/layout/status_bar_latest_event.xml
res/values/public.xml
smali/com/android/systemui/statusbar/LatestItemContainer$1.smali
smali/com/android/systemui/statusbar/LatestItemContainer.smali
smali/com/android/systemui/statusbar/StatusBarService$7.smali (or depends on your numbering, could be $8 or larger)
smali/com/android/systemui/statusbar/StatusBarService.smali
in framework.jar:
smali/com/android/internal/statusbar/IStatusBarService$Stub$Proxy.smali
smali/com/android/internal/statusbar/IStatusBarService$Stub.smali
smali/com/android/internal/statusbar/IStatusBarService.smali
UPDATE: This is the additional guide for other device when editing StatusBarService.smali. See here:
1. HTC based
2. Samsung based
Alright, let's mod one by one
1. Editing SystemUI.apk
1.1 Editing res/anim
We are registering anim object here, so swipe animation can be done.
Create folder anim (if not exists yet) inside /res folder
Create 2 file named slide_out_left_basic.xml and slide_out_right_basic.xml inside res/anim folder
for slide_out_left_basic.xml, edit the file and fill with this
Code:
<?xml version="1.0" encoding="utf-8"?>
<translate android:duration="@android:integer/config_mediumAnimTime" android:fromXDelta="0.0" android:toXDelta="-100.0%p"
xmlns:android="http://schemas.android.com/apk/res/android" />
for slide_out_right_basic.xml, edit the file and fill with this
Code:
<?xml version="1.0" encoding="utf-8"?>
<translate android:duration="@android:integer/config_mediumAnimTime" android:fromXDelta="0.0" android:toXDelta="100.0%p"
xmlns:android="http://schemas.android.com/apk/res/android" />
Save both
Update: Mirko ddd (&shoman94 have pointed that out before but i have no idea where to change, sorry mate) have given me the tip to improve the gesture. read his post here Thanks mate, both of you!
1.2 Editing res/layout/status_bar_latest_event.xml
We are replacing LinearLayout object used in StatusBar with LatestItemContainer here, so notification can be removed. We handle the Styling first by editing this .xml first. Here are the steps:
Change the code from Original code to this (change the bold one)
Code:
<?xml version="1.0" encoding="utf-8"?>
<[B]com.android.systemui.statusbar.LatestItemContainer [/B]android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="65.0sp"
xmlns:android="http://schemas.android.com/apk/res/android">
<com.android.systemui.statusbar.LatestItemView android:id="@id/content" android:background="@android:drawable/status_bar_item_background" android:paddingRight="6.0sp" android:focusable="true" android:clickable="true" android:layout_width="fill_parent" android:layout_height="64.0sp" android:shadowColor="#ff000000" android:shadowDx="0.0" android:shadowDy="1.0" android:shadowRadius="2.0" />
<View android:background="@drawable/divider_horizontal_light_opaque" android:layout_width="fill_parent" android:layout_height="wrap_content" />
<[B]/com.android.systemui.statusbar.LatestItemContainer[/B]>
Save
1.3 Editing res/values/public.xml
This one is for registering anim file that we made on step 1.1 to be available publicly and to be recognized in .smali program. Here are the steps:
Recompile your apk after putting anim file into /res folder
Decompile again the resulting apk
Inside /res/values/public.xml, you'll found something like this:
Code:
<resources>
.
.
.
[B]
<public type="anim" name="slide_out_left_basic" id="0x7f0c0000" />
<public type="anim" name="slide_out_right_basic" id="0x7f0c0001" />
[/B]
</resources>
[*]Remember the ID for both anim lines. This will be applied again on the step 1.4
1.4 Adding smali/com/android/systemui/statusbar/LatestItemContainer$1.smali and smali/com/android/systemui/statusbar/LatestItemContainer.smali
This is the class of LatestItemContainer that will be used to handle the notification list instead of LatestItemView. Here are the steps:
Please download from the attachment
insert the files inside to mentioned folder above
Inside LatestItemContainer$1.smali, there's an id that references the anim from step1.2. please edit it if you have different id for anim left or anim from previous step.
Code:
.line 53
:cond_0
const/high16 v1, [B]0x7f0c[/B]
and
Code:
.line 51
const v1, [B]0x7f0c0001[/B]
1.5 Add smali/com/android/systemui/statusbar/StatusBarService$7.smali (or depends on your existing framework numbering, could be $8 or larger)
This is additional function for StatusBarService to handle onClearNotification function. Here are the steps:
Extract the StatusBarService$7.smali from attachment
If StatusBarService$7.smali does not exist before, just place it inside, if not, skip this step.
If StatusBarService$7.smali exists, Please rename the file to StatusBarService$8.smali (or whatever higher number that is unused) and rename all the line inside the file from
Code:
StatusBarService$7
to
Code:
StatusBarService$8
1.6 Edit smali/com/android/systemui/statusbar/StatusBarService.smali
UPDATE: This is the additional guide for other device when editing StatusBarService.smali. See here:
1. Generic java readout
2. HTC based
3. Samsung based
This is the file that generate NotificationView. Please take care of the changes here more carefully because there might be some differences between vendors in this file. Here are the steps:
Open StatusBarService.smali and find this function
Code:
.method makeNotificationView(Lcom/android/internal/statusbar/StatusBarNotification;Landroid/view/ViewGroup;)[Landroid/view/View;
Find this code in the makeNotificationView function body:
Code:
invoke-virtual {v0, v1, v2, v3}, Landroid/view/LayoutInflater;->inflate(ILandroid/view/ViewGroup;Z)Landroid/view/View;
move-result-object v18
const v4, 0x7f0b0014
move-object/from16 v0, v18
move v1, v4
invoke-virtual {v0, v1}, Landroid/view/View;->findViewById(I)Landroid/view/View;
move-result-object v10
Insert the bold code below between the existing code:
Code:
invoke-virtual {v0, v1, v2, v3}, Landroid/view/LayoutInflater;->inflate(ILandroid/view/ViewGroup;Z)Landroid/view/View;
move-result-object v18
[B] check-cast v18, Lcom/android/systemui/statusbar/LatestItemContainer;
.line 516
.local v18, row:Lcom/android/systemui/statusbar/LatestItemContainer;
move-object/from16 v0, v16
iget v0, v0, Landroid/app/Notification;->flags:I
move v4, v0
and-int/lit8 v4, v4, 0x2
if-nez v4, :cond_swno
move-object/from16 v0, v16
iget v0, v0, Landroid/app/Notification;->flags:I
move v4, v0
and-int/lit8 v4, v4, 0x20
if-nez v4, :cond_swno
new-instance v4, Lcom/android/systemui/statusbar/StatusBarService$7;
move-object v0, v4
move-object/from16 v1, p0
move-object/from16 v2, p1
invoke-direct {v0, v1, v2}, Lcom/android/systemui/statusbar/StatusBarService$7;-><init>(Lcom/android/systemui/statusbar/StatusBarService;Lcom/android/internal/statusbar/StatusBarNotification;)V
move-object/from16 v0, v18
move-object v1, v4
invoke-virtual {v0, v1}, Lcom/android/systemui/statusbar/LatestItemContainer;->setOnSwipeCallback(Ljava/lang/Runnable;)V
.line 735
:cond_swno[/B]
const v4, 0x7f0b0014
move-object/from16 v0, v18
move v1, v4
[B] invoke-virtual {v0, v1}, Lcom/android/systemui/statusbar/LatestItemContainer;->findViewById(I)Landroid/view/View;[/B]
move-result-object v10
Once again, change
Code:
StatusBarService$7
to
Code:
StatusBarService$8
line if you happened to have StatusBarService$8.smali as the result of renaming on the previous step.
IMPORTANT LOGIC TO BE UNDERSTOOD: This step tells the function to:
1. cast the already made View Object to LatestItemContainer instead of using LatestView class.
2. Filter if the Notification is removable or not
3. the LatestItemContainer object (v18) is assigned with onSwipeCallback(new StatusBarService$7)
Change the following (still on the same function body):
Code:
move v1, v4
invoke-virtual {v0, v1}, Landroid/view/View;->setDrawingCacheEnabled(Z)V
.line 542
const/4 v4, 0x3
to
Code:
move v1, v4
[B] invoke-virtual {v0, v1}, Lcom/android/systemui/statusbar/LatestItemContainer;->setDrawingCacheEnabled(Z)V
[/B]
.line 542
const/4 v4, 0x3
Please note:
StatusBarService.smali might be different between vendor, so please adapt with your .smali to implement the above coding.
2. Editing framework.jar
2.1 editing smali/com/android/internal/statusbar/IStatusBarService$Stub.smali
Here are the steps:
Add this code on variable declaration part inside the file
Code:
.field static final TRANSACTION_onClearAllNotifications:I = 0xb
[B].field static final TRANSACTION_onNotificationClear:I = 0xc[/B]
.field static final TRANSACTION_onNotificationClick:I = 0x9
.field static final TRANSACTION_onNotificationError:I = 0xa
If the 0xc is already used on another static value, you must change it so it remains unique.
Find this code:
Code:
.method public onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
.registers 14
.parameter "code"
.parameter "data"
.parameter "reply"
.parameter "flags"
.annotation system Ldalvik/annotation/Throws;
value = {
Landroid/os/RemoteException;
}
.end annotation
.prologue
.line 39
sparse-switch p1, :sswitch_data_124
change to
Code:
.method public onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
.registers 14
.parameter "code"
.parameter "data"
.parameter "reply"
.parameter "flags"
.annotation system Ldalvik/annotation/Throws;
value = {
Landroid/os/RemoteException;
}
.end annotation
.prologue
.line 39
[B]sparse-switch p1, :sswitch_data_13e[/B]
Insert/replace this code (it is at the end of the file):
Code:
.line 176
const/4 v0, 0x1
goto/16 :goto_7
.line 39
:sswitch_data_124
.sparse-switch
0x1 -> :sswitch_f
0x2 -> :sswitch_1c
0x3 -> :sswitch_29
0x4 -> :sswitch_42
0x5 -> :sswitch_5f
0x6 -> :sswitch_7b
0x7 -> :sswitch_8d
0x8 -> :sswitch_c7
0x9 -> :sswitch_d5
0xa -> :sswitch_ef
0xb -> :sswitch_116
0x5f4e5446 -> :sswitch_8
.end sparse-switch
to
Code:
[B]
.line 176
const/4 v0, 0x1
goto/16 :goto_7
.end local v1 #_arg0:Ljava/lang/String;
.end local v2 #_arg1:Ljava/lang/String;
.end local v3 #_arg2:I
:sswitch_124
const-string v0, "com.android.internal.statusbar.IStatusBarService"
invoke-virtual {p2, v0}, Landroid/os/Parcel;->enforceInterface(Ljava/lang/String;)V
.line 177
invoke-virtual {p2}, Landroid/os/Parcel;->readString()Ljava/lang/String;
move-result-object v1
.line 178
.restart local v1 #_arg0:Ljava/lang/String;
invoke-virtual {p2}, Landroid/os/Parcel;->readString()Ljava/lang/String;
move-result-object v2
.line 179
.restart local v2 #_arg1:Ljava/lang/String;
invoke-virtual {p2}, Landroid/os/Parcel;->readInt()I
move-result v3
.line 180
.restart local v3 #_arg2:I
invoke-virtual {p0, v1, v2, v3}, Lcom/android/internal/statusbar/IStatusBarService$Stub;->onNotificationClear(Ljava/lang/String;Ljava/lang/String;I)V
.line 181
invoke-virtual {p3}, Landroid/os/Parcel;->writeNoException()V
.line 182
const/4 v0, 0x1
goto/16 :goto_7[/B]
.line 39
:sswitch_data_13e
.sparse-switch
0x1 -> :sswitch_f
0x2 -> :sswitch_1c
0x3 -> :sswitch_29
0x4 -> :sswitch_42
0x5 -> :sswitch_5f
0x6 -> :sswitch_7b
0x7 -> :sswitch_8d
0x8 -> :sswitch_c7
0x9 -> :sswitch_d5
0xa -> :sswitch_ef
0xb -> :sswitch_116
[B]0xc -> :sswitch_124[/B]
0x5f4e5446 -> :sswitch_8
.end sparse-switch
it's important to note this
Code:
[B]0xc -> :sswitch_124[/B]
If you rename the static at the previous steps, please change the 0xc accordingly.
2.2 Editing smali/com/android/internal/statusbar/IStatusBarService$Stub$Proxy.smali
Here are the steps:
Insert these function code to the file:
Code:
.method public onNotificationClear(Ljava/lang/String;Ljava/lang/String;I)V
.registers 9
.parameter "pkg"
.parameter "tag"
.parameter "id"
.annotation system Ldalvik/annotation/Throws;
value = {
Landroid/os/RemoteException;
}
.end annotation
.prologue
.line 359
invoke-static {}, Landroid/os/Parcel;->obtain()Landroid/os/Parcel;
move-result-object v0
.line 360
.local v0, _data:Landroid/os/Parcel;
invoke-static {}, Landroid/os/Parcel;->obtain()Landroid/os/Parcel;
move-result-object v1
.line 362
.local v1, _reply:Landroid/os/Parcel;
:try_start_8
const-string v2, "com.android.internal.statusbar.IStatusBarService"
invoke-virtual {v0, v2}, Landroid/os/Parcel;->writeInterfaceToken(Ljava/lang/String;)V
.line 363
invoke-virtual {v0, p1}, Landroid/os/Parcel;->writeString(Ljava/lang/String;)V
.line 364
invoke-virtual {v0, p2}, Landroid/os/Parcel;->writeString(Ljava/lang/String;)V
.line 365
invoke-virtual {v0, p3}, Landroid/os/Parcel;->writeInt(I)V
.line 366
iget-object v2, p0, Lcom/android/internal/statusbar/IStatusBarService$Stub$Proxy;->mRemote:Landroid/os/IBinder;
const/16 v3, 0xa
const/4 v4, 0x0
invoke-interface {v2, v3, v0, v1, v4}, Landroid/os/IBinder;->transact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
.line 367
invoke-virtual {v1}, Landroid/os/Parcel;->readException()V
:try_end_21
.catchall {:try_start_8 .. :try_end_21} :catchall_28
.line 370
invoke-virtual {v1}, Landroid/os/Parcel;->recycle()V
.line 371
invoke-virtual {v0}, Landroid/os/Parcel;->recycle()V
.line 373
return-void
.line 370
:catchall_28
move-exception v2
invoke-virtual {v1}, Landroid/os/Parcel;->recycle()V
.line 371
invoke-virtual {v0}, Landroid/os/Parcel;->recycle()V
throw v2
.end method
Please inspect the code for this part:
Code:
[B]const/16 v3, 0xa[/B]
const/4 v4, 0x0
invoke-interface {v2, v3, v0, v1, v4}, Landroid/os/IBinder;->transact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
The bold one must match on one of the switch case value at the end of IStatusBarService$Stub.smali,
in my phone actually the valid one is the TRANSACTION_onNotificationError (0xa) so if your NotificationError is not 0xa but 0xb for example, please change the bold one to 0xb
Save
2.3 editing smali/com/android/internal/statusbar/IStatusBarService.smali
Insert this function code to the file. Here are the steps:
Insert these function code to the file:
Code:
.method public abstract onNotificationClear(Ljava/lang/String;Ljava/lang/String;I)V
.annotation system Ldalvik/annotation/Throws;
value = {
Landroid/os/RemoteException;
}
.end annotation
.end method
Save
There you have it AFAIK, the files that you need to take care more than others are:
1. smali/com/android/systemui/statusbar/StatusBarService.smali
2. res/values/public.xml
The rest can be applied from the attachment below directly. Ok that's all, after you are done, compile both SystemUI.apk and Framework.jar.
How to Compile the right way?
1. SystemUI.apk ->
Compile with APK Multi Tool, press y and y twice with all the requested input,
delete modified file from keep folder, and after that continue compiling.
Copy from original APK the META-INF and AndroidManifest.xml to the unsignedSystemUI.apk
rename unsignedSystemUI.apk to signedSystemUI.apk
select Zipalign from APK Multi Tool to optimize apk.
Rename to SystemUI.apk (move the original one just in case)
2. framework.jar ->
Smali inside Baksmali Manager
Replace classes.dex inside framework.jar with the generated one.
and apply on your phone.
Hope this helps you (programmer ofc, not end user ) to implement on your device.
G'day!
Mate, thank you so much for this - I have been trying to figure it out for our ROM for weeks LOL I'm going to give it a try this evening and I'll let you know if I get it! Thanks again
Dunc001 said:
Mate, thank you so much for this - I have been trying to figure it out for our ROM for weeks LOL I'm going to give it a try this evening and I'll let you know if I get it! Thanks again
Click to expand...
Click to collapse
Ok let me know mate
ill try it on my SGY
Looks fun! great post
tommytomatoe said:
Looks fun! great post
Click to expand...
Click to collapse
Updated step, to give you some warning about StatusBarService$7 naming convention
definitely gonna give this a try!!
great akaka.try it soon.
did u know how to port ICS layout to stock rom? can u write a tut?
this will be great!!
nvt992 said:
great akaka.try it soon.
did u know how to port have ICS layout to stock rom? can u write a tut?
this will be great!!
Click to expand...
Click to collapse
What layout? Do you mean ICS launcher layout or..?
no.see my attach
nvt992 said:
no.see my attach
Click to expand...
Click to collapse
Well do you have the original link? First, i know nothing about that, so i should learn first. and secondly, it's more about theme editing, so i think it's more about editing XML inside SystemUI.apk rather than coding a .smali like above. Thirdly, the shortcut for setting in ICS IMHO is not as efficient as Power Widget Status Bar.
hansip87 said:
Well do you have the original link? First, i know nothing about that, so i should learn first. and secondly, it's more about theme editing, so i think it's more about editing XML inside SystemUI.apk rather than coding a .smali like above. Thirdly, the shortcut for setting in ICS IMHO is not as efficient as Power Widget Status Bar.
Click to expand...
Click to collapse
this is for cm7
patch http://forum.xda-developers.com/showthread.php?t=1324924
or original theme
http://forum.xda-developers.com/showthread.php?t=1334922
hope u can do it
nvt992 said:
this is for cm7
patch http://forum.xda-developers.com/showthread.php?t=1324924
or original theme
http://forum.xda-developers.com/showthread.php?t=1334922
hope u can do it
Click to expand...
Click to collapse
Well ok thanks but don't count on me ok because i am currently researching for 2G/3G toggle button for PowerWidget, this one is not that high on my list, but you never know..
ok thank you
where can i get Baksmali manager?
lasmaty07 said:
where can i get Baksmali manager?
Click to expand...
Click to collapse
Check back later mate, just uploading right now because of on the original link, it's dead. I'll upload it for us all to share
EDIT: Uploaded. Click Baksmali Manager link on the first page to download. APK Multi Tool can be found on the same parent thread (Hacking General)
Done, but get this error when recompiling .apk
Code:
Microsoft Windows [Version 6.1.7600]
Copyright (c) 2009 Microsoft Corporation. All rights reserved.
C:\Users\me\Desktop\folder>apktool.bat b -f -d out
I: Smaling...
Exception in thread "main" brut.androlib.AndrolibException: Could not smali file
: [email protected]
at brut.androlib.src.DexFileBuilder.addSmaliFile(Unknown Source)
at brut.androlib.src.DexFileBuilder.addSmaliFile(Unknown Source)
at brut.androlib.src.SmaliBuilder.buildFile(Unknown Source)
at brut.androlib.src.SmaliBuilder.build(Unknown Source)
at brut.androlib.src.SmaliBuilder.build(Unknown Source)
at brut.androlib.Androlib.buildSourcesSmali(Unknown Source)
at brut.androlib.Androlib.buildSources(Unknown Source)
at brut.androlib.Androlib.build(Unknown Source)
at brut.androlib.Androlib.build(Unknown Source)
at brut.apktool.Main.cmdBuild(Unknown Source)
at brut.apktool.Main.main(Unknown Source)
Tried to do it manually like this and using apk multitool, but same error in log.
even tried to compile just after decompiling but that's no help.. same error
Any help?
jaggyjags said:
Done, but get this error when recompiling .apk
Code:
Microsoft Windows [Version 6.1.7600]
Copyright (c) 2009 Microsoft Corporation. All rights reserved.
C:\Users\me\Desktop\folder>apktool.bat b -f -d out
I: Smaling...
Exception in thread "main" brut.androlib.AndrolibException: Could not smali file
: [email protected]
at brut.androlib.src.DexFileBuilder.addSmaliFile(Unknown Source)
at brut.androlib.src.DexFileBuilder.addSmaliFile(Unknown Source)
at brut.androlib.src.SmaliBuilder.buildFile(Unknown Source)
at brut.androlib.src.SmaliBuilder.build(Unknown Source)
at brut.androlib.src.SmaliBuilder.build(Unknown Source)
at brut.androlib.Androlib.buildSourcesSmali(Unknown Source)
at brut.androlib.Androlib.buildSources(Unknown Source)
at brut.androlib.Androlib.build(Unknown Source)
at brut.androlib.Androlib.build(Unknown Source)
at brut.apktool.Main.cmdBuild(Unknown Source)
at brut.apktool.Main.main(Unknown Source)
Tried to do it manually like this and using apk multitool, but same error in log.
even tried to compile just after decompiling but that's no help.. same error
Any help?
Click to expand...
Click to collapse
APKTools is a bit outdated and i'm afraid some incompatibilites with Google SDK might be the source of the problem. search APK Multi Tools and use that one instead with SDK release 16 and up.
Hello, and thanks for the how-to!
Sadly I couldn't get it to work on my phone (Motorola Atrix 2). Some of the smali files were pretty different... I tried my best but there were definitely moments when I wasn't sure if I was doing the correct thing... SystemUI won't compile.
Hi, all. Seems the statusbarservice.smali is very different from each other. So to help you all, this is the java code that should give you a better understanding. Please read here https://github.com/nadlabak/android...m/android/server/status/StatusBarService.java
Sent from my ST18i using XDA App

[MOD][GUIDE] SecMms.apk TouchWiz Mods | For Galaxy Note 3 | December 19, 2013

Hello to all Developers and XDA members! I have come here to give you a couple of guides on how to enable a bunch of the Stock Messaging App "SecMms" Mods and other good stuff so here is how you can do it!
What Is Required...
★ First you need to have experience and know how to decompile/recompile apks with Apktools, apkmanager, smali, and baksmali
★ Have 7-zip installed onto your computer/laptop
★ Make sure you have Notepad++ also installed!
★HOW TO ENABLE GROUP MESSAGING★
WHAT DOES THIS MOD DO: This mod will let you enable group messaging in the stock messaging app.
★ Go into your system/app folder and take out your "SecMms.apk"
★ Then use one of the applications such as apktools or baksmali and then use the commands to decompile the SecMms.apk
★ Once you have decompiled the SecMms.apk, go to:
smali/com/android/mms/MmsConfig.smali
Click to expand...
Click to collapse
Now open up "MmsConfig.smali" with your notepad++ for editing.
Now for this part of this guide what I have highlighted in "GREEN" text is what you have to find using Notepad++, What you see in "RED" is the line you have to remove/delete completely, And also what you see in "BLUE" is the line you have to make changes to:
TO ENABLE GROUP MESSAGING...
SEARCH FOR:
Code:
[COLOR="Green"].method public static getEnableGroupMessage()Z[/COLOR]
NOW REMOVE:
Code:
[COLOR="Green"].method public static getEnableGroupMessage()Z[/COLOR]
.registers 3
.prologue
[COLOR="Red"]const/4 v0, 0x0[/COLOR]
.line 3378
invoke-static {}, Lcom/android/mms/MmsConfig;->getCMASProvider()I
move-result v1
const/4 v2, 0x3
if-ne v1, v2, :cond_9
.line 3382
:cond_8
:goto_8
return v0
.line 3380
:cond_9
invoke-static {}, Lcom/android/mms/MmsConfig;->getEnableMmsTransactionCustomize4Korea()Z
move-result v1
if-nez v1, :cond_8
.line 3382
[COLOR="Red"]sget-boolean v0, Lcom/android/mms/MmsConfig;->sEnableGroupMms:Z[/COLOR]
goto :goto_8
.end method
AND CHANGE TO:
Code:
[COLOR="Green"].method public static getEnableGroupMessage()Z[/COLOR]
.registers 3
.prologue
[COLOR="Blue"]const/4 v0, 0x1[/COLOR]
.line 3378
invoke-static {}, Lcom/android/mms/MmsConfig;->getCMASProvider()I
move-result v1
const/4 v2, 0x3
if-ne v1, v2, :cond_9
.line 3382
:cond_8
:goto_8
return v0
.line 3380
:cond_9
invoke-static {}, Lcom/android/mms/MmsConfig;->getEnableMmsTransactionCustomize4Korea()Z
move-result v1
if-nez v1, :cond_8
.line 3382
[COLOR="Blue"]const/4 v0, 0x1[/COLOR]
goto :goto_8
.end method
NOW SEARCH FOR:
Code:
[COLOR="Green"].method public static getEnableNGMGroupMessage()Z[/COLOR]
NOW REMOVE:
Code:
[COLOR="Green"].method public static getEnableNGMGroupMessage()Z[/COLOR]
.registers 1
.prologue
.line 1115
[COLOR="Red"]const/4 v0, 0x0[/COLOR]
return v0
.end method
AND CHANGE TO:
Code:
[COLOR="Green"].method public static getEnableNGMGroupMessage()Z[/COLOR]
.registers 1
.prologue
.line 1115
[COLOR="Blue"]const/4 v0, 0x1[/COLOR]
return v0
.end method
Once done save your changes, now go to:
smali/com/android/mms/ui/MessagingPreferenceActivity.smali
Click to expand...
Click to collapse
Now open up "MessagingPreferenceActivity.smali" with your notepad++ for editing.
For this part of the guide what i have highlighted in "GREEN" text is what you have to find using Notepad++, What you see in "RED" is the line you have to remove/delete completely which is the "invoke-direct" line which has "removePreference" in it:
SEARCH FOR:
Code:
[COLOR="Green"]const-string v1, "pref_key_mms_group_mms"[/COLOR]
Here is what it should look like, Now remove what you see in RED:
Code:
.line 709
:cond_8b
[COLOR="Green"]const-string v1, "pref_key_mms_group_mms"[/COLOR]
invoke-virtual {p0, v1}, Lcom/android/mms/ui/MessagingPreferenceActivity;->findPreference(Ljava/lang/CharSequence;)Landroid/preference/Preference;
move-result-object v1
[COLOR="Red"]invoke-direct {p0, v0, v1}, Lcom/android/mms/ui/MessagingPreferenceActivity;->removePreference(Landroid/preference/PreferenceGroup;Landroid/preference/Preference;)V[/COLOR]
Once done now save changes, Recompile your SecMms.apk and that's it your DONE!!!
★HOW TO ENABLE SAVE / RESTORE★
WHAT DOES THIS MOD DO: This mod will let you enable the save/restore feature so you can backup/restore any of your text/mms messages using the stock messaging app.
★ Go into your system/app folder and take out your "SecMms.apk"
★ Then use one of the applications such as apktools or baksmali and then use the commands to decompile the SecMms.apk
★ Once you have decompiled the SecMms.apk, go to:
smali/com/android/mms/MmsConfig.smali
Click to expand...
Click to collapse
Now open up "MmsConfig.smali" with your notepad++ for editing.
Now for this part of this guide what I have highlighted in "GREEN" text is what you have to find using Notepad++, And what you see in "BLUE" is the line you have to make changes to:
TO ENABLE THE SAVE / RESTORE FEATURE...
FIND:
Code:
[COLOR="Green"].method public static getEnableSaveRestoreSDCardMessage()Z[/COLOR]
.registers 1
.prologue
.line 923
const/4 v0, 0x0
return v0
.end method
NOW CHANGE TO:
Code:
[COLOR="Green"].method public static getEnableSaveRestoreSDCardMessage()Z[/COLOR]
.registers 1
.prologue
.line 923
[COLOR="Blue"]const/4 v0, 0x1[/COLOR]
return v0
.end method
Once done save your changes, now go to:
smali/com/android/mms/ui/MessagingPreferenceActivity.smali
Click to expand...
Click to collapse
Now open up "MessagingPreferenceActivity.smali" with your notepad++ for editing.
For this part of the guide what i have highlighted in "GREEN" text is what you have to find using Notepad++, What you see in "RED" is the line you have to remove/delete completely which is the "invoke-direct" line which has "removePreference" in it:
SEARCH FOR:
Code:
[COLOR="Green"]const-string v11, "pref_key_sms_restore"[/COLOR]
Here is what it should look like, Now remove what you see in RED:
Code:
[COLOR="Green"]const-string v11, "pref_key_sms_restore"[/COLOR]
invoke-virtual {p0, v11}, Lcom/android/mms/ui/MessagingPreferenceActivity;->findPreference(Ljava/lang/CharSequence;)Landroid/preference/Preference;
move-result-object v11
[COLOR="Red"]invoke-direct {p0, v10, v11}, Lcom/android/mms/ui/MessagingPreferenceActivity;->removePreference(Landroid/preference/PreferenceGroup;Landroid/preference/Preference;)V[/COLOR]
Once done now save changes, Recompile your SecMms.apk and that's it your DONE!!!
★HOW TO ENABLE SCHEDULED MESSAGING★
WHAT DOES THIS MOD DO: This mod will let you enable the scheduled messaging feature so you can schedule a time for text messages so the message can be send at the time that you set it to using the stock messaging app.
★ Go into your system/app folder and take out your "SecMms.apk"
★ Then use one of the applications such as apktools or baksmali and then use the commands to decompile the SecMms.apk
★ Once you have decompiled the SecMms.apk, go to:
smali/com/android/mms/MmsConfig.smali
Click to expand...
Click to collapse
Now open up "MmsConfig.smali" with your notepad++ for editing.
Now for this part of this guide what I have highlighted in "GREEN" text is what you have to find using Notepad++, And what you see in "BLUE" is the line you have to make changes to:
TO ENABLE SCHEDULED MESSAGING...
FIND:
Code:
[COLOR="Green"].method public static getEnableScheduledMessage()Z[/COLOR]
.registers 1
.prologue
.line 1047
const/4 v0, 0x0
return v0
.end method
NOW CHANGE TO:
Code:
[COLOR="Green"].method public static getEnableScheduledMessage()Z[/COLOR]
.registers 1
.prologue
.line 1047
[COLOR="Blue"]const/4 v0, 0x1[/COLOR]
return v0
.end method
Once done now save changes, Recompile your SecMms.apk and that's it your DONE!!!
★SMS 1000/UNLIMITED RECIPIENT LIMIT★
WHAT DOES THIS MOD DO: This mod will let you send your message to more than 1000 people at the same time.
★ Go into your system/app folder and take out your "SecMms.apk"
★ Then use one of the applications such as apktools or baksmali and then use the commands to decompile the SecMms.apk
★ Once you have decompiled the SecMms.apk, go to:
smali/com/android/mms/MmsConfig.smali
Click to expand...
Click to collapse
Now open up "MmsConfig.smali" with your notepad++ for editing.
Now for this part of this guide what I have highlighted in "GREEN" text is what you have to find using Notepad++, What you see in "RED" is the line you have to remove/delete completely, And also what you see in "BLUE" is the line you have to make changes to:
SEARCH FOR:
Code:
[COLOR="Green"].method public static getRecipientLimit()I[/COLOR]
NOW REMOVE:
Code:
[COLOR="Green"].method public static getRecipientLimit()I[/COLOR]
.registers 1
.prologue
.line 762
[COLOR="Red"]sget v0, Lcom/android/mms/MmsConfig;->sRecipientLimit:I[/COLOR]
return v0
.end method
AND CHANGE TO:
Code:
[COLOR="Green"].method public static getRecipientLimit()I[/COLOR]
.registers 1
.prologue
.line 762
[COLOR="Blue"]const/16 v0, 0x3e8[/COLOR]
return v0
.end method
NOW SEARCH FOR:
Code:
[COLOR="Green"]sput v0, Lcom/android/mms/MmsConfig;->sRecipientLimit:I[/COLOR]
NOW REMOVE:
Code:
.line 167
const/16 v0, 0x280
sput v0, Lcom/android/mms/MmsConfig;->sMaxImageWidthRestrictedMode:I
.line 168
[COLOR="Red"]const/16 v0, 0x14[/COLOR]
[COLOR="Green"]sput v0, Lcom/android/mms/MmsConfig;->sRecipientLimit:I[/COLOR]
.line 169
const/16 v0, 0xc8
sput v0, Lcom/android/mms/MmsConfig;->sDefaultSMSMessagesPerThread:I
AND CHANGE TO:
Code:
.line 167
const/16 v0, 0x280
sput v0, Lcom/android/mms/MmsConfig;->sMaxImageWidthRestrictedMode:I
.line 168
[COLOR="Blue"]const/16 v0, 0x3e8[/COLOR]
[COLOR="Green"]sput v0, Lcom/android/mms/MmsConfig;->sRecipientLimit:I[/COLOR]
.line 169
const/16 v0, 0xc8
sput v0, Lcom/android/mms/MmsConfig;->sDefaultSMSMessagesPerThread:I
NOW SEARCH FOR:
.
Code:
[COLOR="Green"]method public static getMaxRecipientLength()I[/COLOR]
NOW REMOVE:
Code:
[COLOR="Green"].method public static getMaxRecipientLength()I[/COLOR]
.registers 1
.prologue
.line 2592
[COLOR="Red"]sget v0, Lcom/android/mms/MmsConfig;->sMaxRecipientLength:I[/COLOR]
return v0
.end method
AND CHANGE TO:
Code:
[COLOR="Green"].method public static getMaxRecipientLength()I[/COLOR]
.registers 1
.prologue
.line 2592
[COLOR="Blue"]const/16 v0, 0x3e8[/COLOR]
return v0
.end method
NOW SEARCH FOR:
Code:
[COLOR="Green"].method public static getMmsMaxRecipient()I[/COLOR]
NOW REMOVE:
Code:
[COLOR="Green"].method public static getMmsMaxRecipient()I[/COLOR]
.registers 1
.prologue
.line 2847
[COLOR="Red"]sget v0, Lcom/android/mms/MmsConfig;->sMmsRecipientLimit:I[/COLOR]
return v0
.end method
AND CHANGE TO:
Code:
[COLOR="Green"].method public static getMmsMaxRecipient()I[/COLOR]
.registers 1
.prologue
.line 2847
[COLOR="Blue"]const/16 v0, 0x3e8[/COLOR]
return v0
.end method
NOW SEARCH FOR:
Code:
[COLOR="Green"]sput v12, Lcom/android/mms/MmsConfig;->sMaxRecipientLength:I[/COLOR]
ABOVE THIS SAME LINE YOU HAVE TO ADD A NEW LINE WHICH IS IN BLUE:
Code:
.line 1811
const-string v12, "CscFeature_Message_MaxRecipientLengthAs"
invoke-virtual {v1, v12}, Lcom/sec/android/app/CscFeature;->getInteger(Ljava/lang/String;)I
move-result v12
[COLOR="Blue"]const/16 v12, 0x3e8[/COLOR]
[COLOR="Green"]sput v12, Lcom/android/mms/MmsConfig;->sMaxRecipientLength:I[/COLOR]
.line 1812
sget v12, Lcom/android/mms/MmsConfig;->sMinRecipientLength:I
NOW SEARCH FOR:
Code:
[COLOR="Green"]sput v1, Lcom/android/mms/MmsConfig;->sRecipientLimit:I[/COLOR]
ABOVE THIS SAME LINE YOU HAVE TO ADD A NEW LINE WHICH IS IN BLUE:
Code:
.line 2121
const-string v1, "pref_key_max_recipient"
invoke-interface {v0, v1, v4}, Landroid/content/SharedPreferences;->getInt(Ljava/lang/String;I)I
move-result v1
[COLOR="Blue"]const/16 v1, 0x3e8[/COLOR]
[COLOR="Green"]sput v1, Lcom/android/mms/MmsConfig;->sRecipientLimit:I[/COLOR]
.line 2122
const-string v1, "Mms/MmsConfig"
Once done now save changes, Recompile your SecMms.apk and that's it your DONE!!!
★HOW TO DISABLE THE SMS TO MMS AUTO-CONVERSION★
WHAT DOES THIS MOD DO: This mod will let you type very long text messages and it won't automatically convert it into MMS.
★ Go into your system/app folder and take out your "SecMms.apk"
★ Then use one of the applications such as apktools or baksmali and then use the commands to decompile the SecMms.apk
★ Once you have decompiled the SecMms.apk, go to:
smali/com/android/mms/MmsConfig.smali
Click to expand...
Click to collapse
Now open up "MmsConfig.smali" with your notepad++ for editing.
Now for this part of this guide what I have highlighted in "GREEN" text is what you have to find using Notepad++, What you see in "RED" is the line you have to remove/delete completely, And also what you see in "BLUE" is the line you have to make changes to:
SEARCH FOR:
Code:
[COLOR="Green"]sput v0, Lcom/android/mms/MmsConfig;->sSmsToMmsTextThreshold:I[/COLOR]
NOW REMOVE:
Code:
.line 176
sput-boolean v3, Lcom/android/mms/MmsConfig;->sAllowAttachAudio:Z
.line 179
[COLOR="Red"]const/4 v0, 0x4[/COLOR]
[COLOR="Green"]sput v0, Lcom/android/mms/MmsConfig;->sSmsToMmsTextThreshold:I[/COLOR]
AND CHANGE TO:
Code:
.line 176
sput-boolean v3, Lcom/android/mms/MmsConfig;->sAllowAttachAudio:Z
.line 179
[COLOR="Blue"]const/16 v0, 0x3e8[/COLOR]
[COLOR="Green"]sput v0, Lcom/android/mms/MmsConfig;->sSmsToMmsTextThreshold:I[/COLOR]
NOW SEARCH FOR:
Code:
[COLOR="Green"].method public static getSmsToMmsTextThreshold()I[/COLOR]
AND REMOVE:
Code:
[COLOR="Green"].method public static getSmsToMmsTextThreshold()I[/COLOR]
.registers 1
.prologue
.line 691
[COLOR="Red"]sget v0, Lcom/android/mms/MmsConfig;->sSmsToMmsTextThreshold:I[/COLOR]
return v0
.end method
AND CHANGE TO:
Code:
[COLOR="Green"].method public static getSmsToMmsTextThreshold()I[/COLOR]
.registers 1
.prologue
.line 691
[COLOR="Blue"]const/16 v0, 0x3e8[/COLOR]
return v0
.end method
NOW SEARCH FOR:
Code:
[COLOR="Green"]sput v1, Lcom/android/mms/MmsConfig;->sSmsToMmsTextThreshold:I[/COLOR]
ABOVE THIS SAME LINE YOU HAVE TO ADD A NEW LINE WHICH IS IN BLUE:
Code:
.line 2116
const-string v1, "pref_key_threshold"
const/4 v2, 0x4
invoke-interface {v0, v1, v2}, Landroid/content/SharedPreferences;->getInt(Ljava/lang/String;I)I
move-result v1
[COLOR="Blue"]const/16 v1, 0x3e8[/COLOR]
[COLOR="Green"]sput v1, Lcom/android/mms/MmsConfig;->sSmsToMmsTextThreshold:I[/COLOR]
.line 2117
const-string v1, "Mms/MmsConfig"
Once done now save changes, Recompile your SecMms.apk and that's it you are now DONE!!!
★HOW TO CHANGE THE MESSAGING TIME STAMPS TO ITS ORIGINAL TIME★
WHAT DOES THIS MOD DO: This mod will show the exact sent time of received messages, not the moment when you actually received it on your phone.
★ Go into your system/app folder and take out your "SecMms.apk"
★ Then use one of the applications such as apktools or baksmali and then use the commands to decompile the SecMms.apk
★ Once you have decompiled the SecMms.apk, go to:
smali/com/android/mms/transaction/SmsReceiverService.smali
Click to expand...
Click to collapse
Now open up "SmsReceiverService.smali" with your notepad++ for editing.
Now for this part of this guide what I have highlighted in "GREEN" text is what you have to find using Notepad++, What you see in "RED" is the line you have to remove/delete completely, And also what you see in "BLUE" is the line you have to make changes to:
SEARCH FOR:
Code:
[COLOR="Green"]invoke-static {}, Ljava/lang/System;->currentTimeMillis()J[/COLOR]
THIS SAME LINE THAT YOU HAVE JUST LOOKED FOR, IS ALSO THE LINE YOUR GOING TO HAVE TO REMOVE WHICH SHOULD LOOK LIKE THIS:
Code:
const-string v3, "address"
invoke-virtual {p1}, Landroid/telephony/SmsMessage;->getDisplayOriginatingAddress()Ljava/lang/String;
move-result-object v4
invoke-virtual {v1, v3, v4}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/String;)V
goto/16 :goto_43
.line 2640
:cond_14f
const-string v3, "date"
[COLOR="Red"]invoke-static {}, Ljava/lang/System;->currentTimeMillis()J[/COLOR]
move-result-wide v4
invoke-static {v4, v5}, Ljava/lang/Long;->valueOf(J)Ljava/lang/Long;
move-result-object v4
invoke-virtual {v1, v3, v4}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Long;)V
goto/16 :goto_56
.end method
AND THEN CHANGE IT TO THIS:
Code:
const-string v3, "address"
invoke-virtual {p1}, Landroid/telephony/SmsMessage;->getDisplayOriginatingAddress()Ljava/lang/String;
move-result-object v4
invoke-virtual {v1, v3, v4}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/String;)V
goto/16 :goto_43
.line 2640
:cond_14f
const-string v3, "date"
[COLOR="Blue"]invoke-virtual {p1}, Landroid/telephony/SmsMessage;->getTimestampMillis()J[/COLOR]
move-result-wide v4
invoke-static {v4, v5}, Ljava/lang/Long;->valueOf(J)Ljava/lang/Long;
move-result-object v4
invoke-virtual {v1, v3, v4}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Long;)V
goto/16 :goto_56
.end method
NOW SEARCH FOR THE SAME LINE AGAIN:
Code:
[COLOR="Green"]invoke-static {}, Ljava/lang/System;->currentTimeMillis()J[/COLOR]
THIS SAME LINE THAT YOU HAVE JUST LOOKED FOR, IS ALSO THE LINE YOUR GOING TO HAVE TO REMOVE WHICH SHOULD LOOK LIKE THIS:
Code:
const-string v8, "address"
const-string v9, "CBmessages"
invoke-static {v9}, Ljava/lang/String;->valueOf(Ljava/lang/Object;)Ljava/lang/String;
move-result-object v9
invoke-virtual {v7, v8, v9}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/String;)V
.line 2948
const-string v8, "date"
[COLOR="Red"]invoke-static {}, Ljava/lang/System;->currentTimeMillis()J[/COLOR]
move-result-wide v10
invoke-static {v10, v11}, Ljava/lang/Long;->valueOf(J)Ljava/lang/Long;
move-result-object v9
invoke-virtual {v7, v8, v9}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Long;)V
.line 2949
const-string v8, "protocol"
THEN CHANGE IT TO THIS:
Code:
const-string v8, "address"
const-string v9, "CBmessages"
invoke-static {v9}, Ljava/lang/String;->valueOf(Ljava/lang/Object;)Ljava/lang/String;
move-result-object v9
invoke-virtual {v7, v8, v9}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/String;)V
.line 2948
const-string v8, "date"
[COLOR="Blue"]invoke-virtual {v0}, Landroid/telephony/gsm/CbMessage;->getTimestampMillis()J[/COLOR]
move-result-wide v10
invoke-static {v10, v11}, Ljava/lang/Long;->valueOf(J)Ljava/lang/Long;
move-result-object v9
invoke-virtual {v7, v8, v9}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Long;)V
.line 2949
const-string v8, "protocol"
NOTE: There should be more than two invoke-static {}, Ljava/lang/System;->currentTimeMillis()J, the ones you will be looking for will be under the "date" const-strings. First change will have the "address" const-string in it's code. The second change will have the "address" and also the "CBmessages" in it's code.
Once done now save changes, Recompile your SecMms.apk and that's it you are now DONE!!!
★INCREASE THE SMS LIMIT PER HOUR★
WHAT DOES THIS MOD DO: This mod will increase the SMS hour limit to 1000.
★ Go into your system/app folder and take out your "SecMms.apk"
★ Then use one of the applications such as apktools or baksmali and then use the commands to decompile the SecMms.apk
★ Once you have decompiled the SecMms.apk, go to:
smali/com/android/mms/util/RateController.smali
Click to expand...
Click to collapse
Now open up "RateController.smali" with your notepad++ for editing.
Now for this part of this guide what I have highlighted in "GREEN" text is what you have to find using Notepad++, What you see in "RED" is the line you have to remove/delete completely, And also what you see in "BLUE" is the line you have to make changes to:
SEARCH FOR:
Code:
[COLOR="Green"].field private static final RATE_LIMIT:I = 0x64[/COLOR]
IN THIS SAME EXACT LINE REMOVE:
Code:
[COLOR="Green"].field private static final RATE_LIMIT:I =[/COLOR] [COLOR="Red"]0x64[/COLOR]
AND CHANGE IT TO:
Code:
[COLOR="Green"].field private static final RATE_LIMIT:I =[/COLOR] [COLOR="Blue"]0x3e8[/COLOR]
NOW SEARCH FOR:
Code:
[COLOR="Green"]const/16 v1, 0x64[/COLOR]
AND CHANGE IT TO:
Code:
[COLOR="Green"]const/16 v1,[/COLOR][COLOR="Blue"]0x3e8[/COLOR]
The value that you see is in hexadecimal format, so 0x64 = "100". So we changed it to 0x3e8 which in hexadecimal format means "1000". Now save your changes, recompile the SecMms.apk and DONE!!!
★HOW TO ENABLE SPLIT-VIEW MODE ON/OFF TOGGLE★
WHAT DOES THIS MOD DO: This mod will let you enable split view on landscape screen so you can see the contacts lists of the people who messaged you while looking at your text at the same time.
STEP 1
★ Go into your system/app folder and take out your "SecMms.apk"
★ Then use one of the applications such as apktools or baksmali and then use the commands to decompile the SecMms.apk
★ Once you have decompiled the SecMms.apk, go to:
smali/com/android/mms/ui/MessagingPreferenceActivity.smali
Click to expand...
Click to collapse
Now open up "MessagingPreferenceActivity.smali" with your notepad++ for editing.
For this part of the guide what I have highlighted in "GREEN" text is what you have to find using Notepad++, What you see in "RED" is the line you have to remove/delete completely which is the "invoke-direct" line which has "removePreference" in it:
SEARCH FOR:
Code:
[COLOR="Green"]const-string v10, "pref_key_split_view"[/COLOR]
Here is what it should look like, Now remove what you see in RED:
Code:
.line 805
[COLOR="Green"]const-string v10, "pref_key_split_view"[/COLOR]
invoke-virtual {p0, v10}, Lcom/android/mms/ui/MessagingPreferenceActivity;->findPreference(Ljava/lang/CharSequence;)Landroid/preference/Preference;
move-result-object v10
[COLOR="Red"]invoke-direct {p0, v5, v10}, Lcom/android/mms/ui/MessagingPreferenceActivity;->removePreference(Landroid/preference/PreferenceGroup;Landroid/preference/Preference;)V[/COLOR]
.line 807
:cond_76
invoke-static {}, Lcom/android/mms/MmsConfig;->getEnableWapPush()Z
Once done save your changes, now go to:
smali/com/android/mms/MmsConfig.smali
Click to expand...
Click to collapse
Now open up "MmsConfig.smali" with your notepad++ for editing.
Now for this part of this guide what I have highlighted in "GREEN" text is what you have to find using Notepad++, What you see in "RED" is the line you have to remove/delete completely, And also what you see in "BLUE" is the line you have to make changes to:
SEARCH FOR:
Code:
[COLOR="Green"].method public static getEnableSplitMode()Z[/COLOR]
NOW REMOVE:
Code:
[COLOR="Green"].method public static getEnableSplitMode()Z[/COLOR]
.registers 1
.prologue
.line 1072
invoke-static {}, Lcom/android/mms/MmsConfig;->hasLargerThan5inchScreen()Z
move-result v0
if-eqz v0, :cond_8
.line 1073
const/4 v0, 0x1
.line 1075
:goto_7
return v0
:cond_8
[COLOR="Red"]sget-boolean v0, Lcom/android/mms/MmsConfig;->sEnableSplitMode:Z[/COLOR]
goto :goto_7
.end method
AND CHANGE TO:
Code:
[COLOR="Green"].method public static getEnableSplitMode()Z[/COLOR]
.registers 1
.prologue
.line 1072
invoke-static {}, Lcom/android/mms/MmsConfig;->hasLargerThan5inchScreen()Z
move-result v0
if-eqz v0, :cond_8
.line 1073
const/4 v0, 0x1
.line 1075
:goto_7
return v0
:cond_8
[COLOR="Blue"]const/4 v0, 0x1[/COLOR]
goto :goto_7
.end method
Now save changes, Recompile your SecMms.apk and that's it you are now DONE! Now you should see the "Split View" Toggle In Your Messaging App Settings!
★HOW TO INCREASE MMS MAX SIZE + INCREASE MMS IMAGE SIZE★
WHAT DOES THIS MOD DO: This mod will increase the MMS Max size to 2048000 bytes and also increase the MMS Image size to 4096x2048 [8.4MP].
★ Go into your system/app folder and take out your "SecMms.apk"
★ Then use one of the applications such as apktools or baksmali and then use the commands to decompile the SecMms.apk
★ Once you have decompiled the SecMms.apk, go to:
smali/com/android/mms/MmsConfig.smali
Click to expand...
Click to collapse
Now open up "MmsConfig.smali" with your notepad++ for editing.
Now for this part of this guide what I have highlighted in "GREEN" text is what you have to find using Notepad++, And what you see in "BLUE" is the line you have to make changes to:
INCREASE MMS MAX SIZE TO 2048000 BYTES...
FIND:
Code:
.line 156
[COLOR="Green"]sput-boolean v3, Lcom/android/mms/MmsConfig;->sMmsWidgetEnabled:Z[/COLOR]
.line 157
const v0, 0x4b000
sput v0, Lcom/android/mms/MmsConfig;->sMaxMessageSize:I
NOW CHANGE TO:
Code:
.line 156
[COLOR="Green"]sput-boolean v3, Lcom/android/mms/MmsConfig;->sMmsWidgetEnabled:Z[/COLOR]
.line 157
[COLOR="Blue"]const v0, 0x1f4000[/COLOR]
sput v0, Lcom/android/mms/MmsConfig;->sMaxMessageSize:I
INCREASE MMS IMAGE SIZE TO 4096x2048 [8.4MP]...
FIND:
Code:
.line 163
[COLOR="Green"]sput-object v4, Lcom/android/mms/MmsConfig;->sEmailGateway:Ljava/lang/String;[/COLOR]
.line 164
sget v0, Lcom/android/mms/MmsConfig;->MAX_IMAGE_HEIGHT:I
sput v0, Lcom/android/mms/MmsConfig;->sMaxImageHeight:I
.line 165
sget v0, Lcom/android/mms/MmsConfig;->MAX_IMAGE_WIDTH:I
sput v0, Lcom/android/mms/MmsConfig;->sMaxImageWidth:I
NOW CHANGE TO:
Code:
.line 163
[COLOR="Green"]sput-object v4, Lcom/android/mms/MmsConfig;->sEmailGateway:Ljava/lang/String;[/COLOR]
.line 164
[COLOR="Blue"]const/16 v0, 0x800[/COLOR]
sput v0, Lcom/android/mms/MmsConfig;->sMaxImageHeight:I
.line 165
[COLOR="Blue"]const/16 v0, 0x1000[/COLOR]
sput v0, Lcom/android/mms/MmsConfig;->sMaxImageWidth:I
Once done now save your changes, Recompile your SecMms.apk and that's it you are now DONE!
★HOW TO DISABLE SMS, MMS, AND EMAIL LOG HISTORY IN CALL LOGS★
WHAT DOES THIS MOD DO: This mod will permanently disable sms, mms, and email log history from your call logs.
★ Go into your system/app folder and take out your "SecMms.apk"
★ Then use one of the applications such as apktools or baksmali and then use the commands to decompile the SecMms.apk
★ Once you have decompiled the SecMms.apk, go to:
smali/com/android/mms/transaction/MessagingNotification.smali
Click to expand...
Click to collapse
Now open up "MessagingNotification.smali" with your notepad++ for editing.
Now for this part of this guide what your going to need to do is search for and remove all of the "invoke-virtual" lines that have "Landroid/content/ContentResolver;->insert(Landroid/net/Uri;Landroid/content/ContentValuesLandroid/net/Uri;" in them, there should be like 4 or 5 of these lines you have to remove/delete. What you see in "RED" is the line you have to search for and also remove/delete completely:
SEARCH FOR:
Code:
[COLOR="Red"]Landroid/content/ContentResolver;->insert(Landroid/net/Uri;Landroid/content/ContentValues;)Landroid/net/Uri;[/COLOR]
Then remove all of the lines from that search command in "RED" it will begin with "invoke-virtual" and end with "Landroid/net/Uri;". Here is an example below and remember what you see in "RED" is the line you have to search for and also remove/delete completely:
EXAMPLE:
Code:
.line 3316
:try_start_14b
sget-object v24, Lcom/android/mms/transaction/MessagingNotification;->LOG_SMS_URI:Landroid/net/Uri;
move-object/from16 v0, p3
move-object/from16 v1, v24
move-object/from16 v2, v23
[COLOR="Red"]invoke-virtual {v0, v1, v2}, Landroid/content/ContentResolver;->insert(Landroid/net/Uri;Landroid/content/ContentValues;)Landroid/net/Uri;[/COLOR]
:try_end_156
.catch Landroid/database/sqlite/SQLiteException; {:try_start_14b .. :try_end_156} :catch_1c2
Once you remove like 4 or 5 of those lines with "Landroid/content/ContentResolver;->insert(Landroid/net/Uri;Landroid/content/ContentValuesLandroid/net/Uri;" in them and there is none left, save your changes, Recompile your SecMms.apk you are now DONE!
★HOW TO ENABLE THE SCREEN ON/OFF TOGGLE ★
WHAT DOES THIS MOD DO: This mod will let you enable the Screen on/off toggle so you will have a toggle to enable/disable the notification backlight when receiving text/mms messages using the stock messaging app.
★ Go into your system/app folder and take out your "SecMms.apk"
★ Then use one of the applications such as apktools or baksmali and then use the commands to decompile the SecMms.apk
★ Once you have decompiled the SecMms.apk, go to:
smali/com/android/mms/MmsConfig.smali
Click to expand...
Click to collapse
Now open up "MmsConfig.smali" with your notepad++ for editing.
Now for this part of this guide what I have highlighted in "GREEN" text is what you have to find using Notepad++, And what you see in "BLUE" is the line you have to make changes to:
TO ENABLE THE SCREEN ON/OFF TOGGLE FEATURE...
FIND:
Code:
[COLOR="Green"].method public static getEnableNotificationBacklight()Z[/COLOR]
.registers 1
.prologue
.line 1245
sget-boolean v0, Lcom/android/mms/MmsConfig;->sEnableNotificationBacklight:Z
return v0
.end method
NOW CHANGE TO:
Code:
[COLOR="Green"].method public static getEnableNotificationBacklight()Z[/COLOR]
.registers 1
.prologue
.line 1245
[COLOR="Blue"]const/4 v0, 0x1[/COLOR]
return v0
.end method
Once done save your changes, now go to:
smali/com/android/mms/ui/MessagingPreferenceActivity.smali
Click to expand...
Click to collapse
Now open up "MessagingPreferenceActivity.smali" with your notepad++ for editing.
For this part of the guide what i have highlighted in "GREEN" text is what you have to find using Notepad++, What you see in "RED" is the line you have to remove/delete completely which is the "invoke-direct" line which has "removePreference" in it:
SEARCH FOR:
Code:
[COLOR="Green"]const-string v10, "pref_key_backlight"[/COLOR]
Here is what it should look like, Now remove what you see in RED:
Code:
.line 839
[COLOR="Green"]const-string v10, "pref_key_backlight"[/COLOR]
invoke-virtual {p0, v10}, Lcom/android/mms/ui/MessagingPreferenceActivity;->findPreference(Ljava/lang/CharSequence;)Landroid/preference/Preference;
move-result-object v10
[COLOR="Red"]invoke-direct {p0, v2, v10}, Lcom/android/mms/ui/MessagingPreferenceActivity;->removePreference(Landroid/preference/PreferenceGroup;Landroid/preference/Preference;)V[/COLOR]
Once done now save changes, Recompile your SecMms.apk and that's it your DONE!!!
★HOW TO DISABLE THE SMS TO MMS AUTO-CONVERSION FOR EMOJI★
WHAT DOES THIS MOD DO: This mod will let you type emoji and it won't automatically convert it into MMS.
★ Go into your system/app folder and take out your "SecMms.apk"
★ Then use one of the applications such as apktools or baksmali and then use the commands to decompile the SecMms.apk
★ Once you have decompiled the SecMms.apk, go to:
smali/com/android/mms/ui/ComposeMessageFragment.smali
Click to expand...
Click to collapse
Now open up "ComposeMessageFragment.smali" with your notepad++ for editing.
Now for this part of this guide what I have highlighted in "GREEN" text is what you have to find using Notepad++, What you see in "RED" is the line you have to remove/delete completely, And also what you see in "BLUE" is the line you have to make changes to:
SEARCH FOR:
Code:
invoke-virtual/range {v19 .. v20}, Lcom/android/mms/data/WorkingMessage;->setEmojiRequiresMms(Z)V
SEARCH FOR THIS TWICE SINCE THERE ARE TWO OF THESE SAME GREEN LINES AND MAKE THE SAME CHANGES THAT YOU SEE IN BLUE!
NOW REMOVE:
Code:
.line 1403
move-object/from16 v0, p0
iget-object v0, v0, Lcom/android/mms/ui/ComposeMessageFragment;->mWorkingMessage:Lcom/android/mms/data/WorkingMessage;
move-object/from16 v19, v0
const/16 v20, 0x1
[COLOR="Red"]invoke-virtual/range {v19 .. v20}, Lcom/android/mms/data/WorkingMessage;->setEmojiRequiresMms(Z)V[/COLOR]
AND CHANGE TO:
Code:
.line 1403
move-object/from16 v0, p0
iget-object v0, v0, Lcom/android/mms/ui/ComposeMessageFragment;->mWorkingMessage:Lcom/android/mms/data/WorkingMessage;
move-object/from16 v19, v0
const/16 v20, 0x1
[COLOR="Blue"]invoke-static {}, Lcom/android/mms/MmsConfig;->getEnableEmoji()Z[/COLOR]
Once done now save changes, Recompile your SecMms.apk and that's it you are now DONE!!!
★HOW TO ENABLE FOLDER VIEW MODE★
WHAT DOES THIS MOD DO: This mod will let you enable the folder view mode feature which will let you see messages in a different way with a inbox, sentbox, outbox, draftbox, and push message folder category.
★ Go into your system/app folder and take out your "SecMms.apk"
★ Then use one of the applications such as apktools or baksmali and then use the commands to decompile the SecMms.apk
★ Once you have decompiled the SecMms.apk, go to:
smali/com/android/mms/MmsConfig.smali
Click to expand...
Click to collapse
Now open up "MmsConfig.smali" with your notepad++ for editing.
Now for this part of this guide what I have highlighted in "GREEN" text is what you have to find using Notepad++, And what you see in "BLUE" is the line you have to make changes to:
TO ENABLE FOLDER VIEW MODE...
FIND:
Code:
[COLOR="Green"].method public static getEnableFolderView()Z[/COLOR]
.registers 1
.prologue
.line 2605
sget-boolean v0, Lcom/android/mms/MmsConfig;->sEnableFolderView:Z
return v0
.end method
NOW CHANGE TO:
Code:
[COLOR="Green"].method public static getEnableFolderView()Z[/COLOR]
.registers 1
.prologue
.line 2605
[COLOR="Blue"]const/4 v0, 0x1[/COLOR]
return v0
.end method
Once done now save changes, Recompile your SecMms.apk and that's it your DONE!!!
reserved again...
another one just in case...
This was originally posted in the N900T T-Mobile Galaxy Note 3 Thread By Me Over Here --> Click Here. It will also work for all Samsung Galaxy Note 3 variants so ENJOY!
Can't wait to see these mods on the sprint version. Thanks for the hard work.
My Beast Note 3
The most important mod bro is to remove the stupid "message received confirmation" ringtone which replicates the same "incoming message" ringtone!
This is plain stupid and annoying!
OP updated! New mod "HOW TO ENABLE THE SCREEN ON/OFF TOGGLE".
Is it possible to add a mod for a quick reply popup + a preview of the message, that would be brilliant.
Hi and thanks for this work you are ?
Envoyé de mon SM-N9005 en utilisant Tapatalk
tarekkkkk said:
Is it possible to add a mod for a quick reply popup + a preview of the message, that would be brilliant.
Click to expand...
Click to collapse
This this this this this!!!!
Wondering how you found all of these patches?
tarekkkkk said:
Is it possible to add a mod for a quick reply popup + a preview of the message, that would be brilliant.
Click to expand...
Click to collapse
Yes
Sent from my SM-N900T
Is there a way to increase the MMS size past 2MB?
wow wow wow great work!!!
Jovy23 thanks for this great guide.
I used the T-Mobile guide for the Verizon s4. Fantastic guide.
As this one, but my search didn't show this one till now.
I was also able to get message blocking to work as well.
I could share the info I found if anyone is interested..
Thanks again
Sent from my SCH-I545 using Tapatalk
SecMms.apk
Hi jovy23
Is it possible to change the font and font color of my mms (on Galaxy s2) without changing the menu or system fonts?
Thank you
★HOW TO DISABLE THE SMS TO MMS AUTO-CONVERSION WITH EMOJI★
WHAT DOES THIS MOD DO: This mod will let you type emoji and it won't automatically convert it into MMS.
★ Go into your system/app folder and take out your "SecMms.apk"
★ Then use one of the applications such as apktools or baksmali and then use the commands to decompile the SecMms.apk
★ Once you have decompiled the SecMms.apk, go to:
smali/com/android/mms/ui/ComposeMessageFragment.smali
Click to expand...
Click to collapse
Now open up "ComposeMessageFragment.smali" with your notepad++ for editing.
Now for this part of this guide what I have highlighted in "GREEN" text is what you have to find using Notepad++, What you see in "RED" is the line you have to remove/delete completely, And also what you see in "BLUE" is the line you have to make changes to:
SEARCH FOR:
Code:
[COLOR="Green"]invoke-virtual/range {v19 .. v20}, Lcom/android/mms/data/WorkingMessage;->setEmojiRequiresMms(Z)V[/COLOR]
THIS FOR 2 TIMES!
NOW REMOVE:
Code:
.line 1403
move-object/from16 v0, p0
iget-object v0, v0, Lcom/android/mms/ui/ComposeMessageFragment;->mWorkingMessage:Lcom/android/mms/data/WorkingMessage;
move-object/from16 v19, v0
const/16 v20, 0x1
[COLOR="Red"]invoke-virtual/range {v19 .. v20}, Lcom/android/mms/data/WorkingMessage;->setEmojiRequiresMms(Z)V[/COLOR]
AND CHANGE TO:
Code:
.line 1403
move-object/from16 v0, p0
iget-object v0, v0, Lcom/android/mms/ui/ComposeMessageFragment;->mWorkingMessage:Lcom/android/mms/data/WorkingMessage;
move-object/from16 v19, v0
const/16 v20, 0x1
[COLOR="Blue"]invoke-static {}, Lcom/android/mms/MmsConfig;->getEnableEmoji()Z[/COLOR]
Once done now save changes, Recompile your SecMms.apk and that's it you are now DONE!!!
Press THANKS if I help you!
OP updated with two new mods "HOW TO DISABLE THE SMS TO MMS AUTO-CONVERSION FOR EMOJI" and "HOW TO ENABLE FOLDER VIEW MODE".
@jovy23 question brudda,xnote7 has been ported to ATT. the secmms does dot have the group texting enabled. i made the changes but here is my problem!!! with a reboot, the group messaging option does not show up no does it work. now heres when it get tricky, if i do a quick reboot and the devices powers back on the group messaging option shows up under settings and it works!!! now u do another full reboot and it disappears, and again the only way to get it to show up is doing a quick reboot. any ideas brudda???
Does Sprint Note 3's have Smali Folders?
I'm not a noob. I'm pretty knowledgeable about Decompiling and etc., but after I do so, I don't have a smli folder... Only assets and res folders, THEN AndroidManifest.XML and apktool.yml
is it possible that my apk for SecMms doesn't have a Smali folder for me to INCREASE THE IMAGE SIZE? PLEASE HELP AND MERRY CHRISTMAS, THANKS IN ADVANCE.

[MOD] [GUIDE] [ 4.4.2 ] [ Stock-Flex-Pro2-G3 ] Advanced Power Menu [22.06.2014]

3 Way Reboot Option Guide
All information, follow these instructions !
{
"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"
}
Why do you need ?
* Reboot : Normal Reboot
* Hot Boot : Closes every service and app and does a quick reboot = you don't see the LG reboot logo = it jumps straight to the bootanimation = this is very fast reboot.
* Recovery : Reboot into recovery mode.
Required tools
* Java
* SDK
* Notepad ++ ( Or another application )
* Deodexed Framework
* Winrar or 7Zip or Winzip
* Baksmali/Smali Manager
* Download the "Required files"
* Extract the "android.policy.jar" from your rom /system/framework/
PART 1
* Put the "\classout\com\android\internal\policy\impl\" into the extracted "Required files" folder.
* Open GlobalActions.smali with notepad++ and change the following lines after that close and save the changes.
- Required line
Code:
1125 .line 339
1126 iget-object v0, p0, Lcom/android/internal/policy/impl/GlobalActions;->mItems:Ljava/util/ArrayList;
1127
1128 new-instance v1, Lcom/android/internal/policy/impl/GlobalActions$3;
1129
1130 const v2, 0x202042c
1131
1132 const v3, 0x20b0013
1133
1134 invoke-direct {v1, p0, v2, v3}, Lcom/android/internal/policy/impl/GlobalActions$3;-><init>(Lcom/android/internal/policy/impl/GlobalActions;II)V
1135
1136 invoke-virtual {v0, v1}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z
- New Line
Code:
1125 .line 339
1126 iget-object v0, p0, Lcom/android/internal/policy/impl/GlobalActions;->mItems:Ljava/util/ArrayList;
1127
1128 new-instance v1, Lcom/android/internal/policy/impl/GlobalActions$99;
1129
1130 const v2, 0x202042c
1131
1132 const v3, 0x20b0013
1133
1134 invoke-direct {v1, p0, v2, v3}, Lcom/android/internal/policy/impl/GlobalActions$99;-><init>(Lcom/android/internal/policy/impl/GlobalActions;II)V
1135
1136 invoke-virtual {v0, v1}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z
PART 2
* Navigate to ....\classout\com\android\internal\policy\impl\GlobalActions$SinglePressAction.smali
* Open GlobalActions$SinglePressAction.smaliwith notepad++ and add the following lines after that close and save the changes.
- Lines to add before line "# instance fields"
Code:
# static fields
.field protected static rebootMode:I
.field protected static final rebootOptions:[Ljava/lang/String;
-Lines to add after line "# direct methods"
Code:
.method static constructor <clinit>()V
.registers 3
const/4 v0, 0x3
new-array v0, v0, [Ljava/lang/String;
const/4 v1, 0x0
const-string v2, "Reboot"
aput-object v2, v0, v1
const/4 v1, 0x1
const-string v2, "Hot Boot"
aput-object v2, v0, v1
const/4 v1, 0x2
const-string v2, "Recovery"
aput-object v2, v0, v1
sput-object v0, Lcom/android/internal/policy/impl/GlobalActions$SinglePressAction;->rebootOptions:[Ljava/lang/String;
return-void
.end method
PART 3
Trick
xdabbeb said:
Here's a slightly modified version that I've been using for a while. It just removes Download (shutdownthread doesn't support it), uses "setprop ctl.restart zygote" as the shell restart command (better method imo and doesn't require busybox), and renames the options to what I preferred.
Click to expand...
Click to collapse
* Open GlobalActions$99.smali with notepad++ and add the following lines after that close and save the changes.
Org line
Code:
const-string v2, "Restart Method"
Modified line
Code:
const-string v2, "Own Rom Name"
* Compile clasess.dex file ( Baksmali/Smali Tool )
* Open your "android.policy.jar" with winrar and drag the new "classes.dex" file into the "android.policy.jar"and replace the original "classes.dex".
* You can do this with a File explorer ( With root permissions or before you build your rom. )
Thanks @kahvitahra and @civato and @_JKay_ and @xdabbeb original guide and Required files
Main Thread update big thanks @xdabbeb
* Update Required files and Baksmali Smali Tool
Delete
Update KK :good:
pendroz said:
Update KK :good:
Click to expand...
Click to collapse
do you have a guide also for stock KK (on odexed rom)?
Teşekkürler bunun saf G2 kitkat için olanı varmı acaba odex uzantılılar için?
@pendroz
Is this the same for all carriers' firmwares?
Does only framework.jar need to be deodexed or the whole framework folder?
Do we compile all 3 files in required folder into classes.dex?
Sorry for all of the questions. Cheers & teşekkürler!
AyDee said:
@pendroz
Is this the same for all carriers' firmwares?
Does only framework.jar need to be deodexed or the whole framework folder?
Do we compile all 3 files in required folder into classes.dex?
Sorry for all of the questions. Cheers & teşekkürler!
Click to expand...
Click to collapse
The same for all variants :good:
Do we compile all 3 files in required folder into classes.dex?
- Yes ( only android.policy jar ) To edit the specified line
Thanks!
(Yes I meant to say android.policy.jar, not framework.jar )
Edit: On CloudyStock 1.2 I found that the lines you need to change in part 1 are a little different-
from:
Code:
.line 330
iget-object v0, p0, Lcom/android/internal/policy/impl/GlobalActions;->mItems:Ljava/util/ArrayList;
new-instance v1, Lcom/android/internal/policy/impl/GlobalActions$3;
const v2, 0x202029b
const v3, 0x20d0011
invoke-direct {v1, p0, v2, v3}, Lcom/android/internal/policy/impl/GlobalActions$3;-><init>(Lcom/android/internal/policy/impl/GlobalActions;II)V
invoke-virtual {v0, v1}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z
to:
Code:
.line 330
iget-object v0, p0, Lcom/android/internal/policy/impl/GlobalActions;->mItems:Ljava/util/ArrayList;
new-instance v1, Lcom/android/internal/policy/impl/GlobalActions$[COLOR="Red"]99[/COLOR];
const v2, 0x202029b
const v3, 0x20d0011
invoke-direct {v1, p0, v2, v3}, Lcom/android/internal/policy/impl/GlobalActions$[COLOR="Red"]99[/COLOR];-><init>(Lcom/android/internal/policy/impl/GlobalActions;II)V
invoke-virtual {v0, v1}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z
Sorry to double post but when I go to compile classes.dex I get this:
Code:
C:\...\G2\jar file decompile and compiler>java -Xmx512M -jar smal
i.jar classout -o classes.dex
classout\com\android\internal\policy\impl\GlobalActions$99$1.smali[41,4] Error f
or input '.param': Invalid directive
classout\com\android\internal\policy\impl\GlobalActions$99$1.smali[42,4] Error f
or input '.param': Invalid directive
classout\com\android\internal\policy\impl\GlobalActions$99$1.smali[41,11] mismat
ched input 'p1' expecting END_METHOD_DIRECTIVE
classout\com\android\internal\policy\impl\GlobalActions$99.smali[0,0] 17039360 c
annot fit into a short
classout\com\android\internal\policy\impl\GlobalActions$99.smali[80,4] mismatche
d tree node: I_STATEMENT_FORMAT11n expecting I_CATCHES
classout\com\android\internal\policy\impl\GlobalActions$99.smali[84,4] mismatche
d tree node: I_STATEMENT_FORMAT11x expecting I_FIELDS
(as I mentioned, I am trying this with the deodexed android.policy.jar from CloudyStock)
Am I doing something wrong?
AyDee said:
Sorry to double post but when I go to compile the jar I get this:
Code:
C:\...\G2\jar file decompile and compiler>java -Xmx512M -jar smal
i.jar classout -o classes.dex
classout\com\android\internal\policy\impl\GlobalActions$99$1.smali[41,4] Error f
or input '.param': Invalid directive
classout\com\android\internal\policy\impl\GlobalActions$99$1.smali[42,4] Error f
or input '.param': Invalid directive
classout\com\android\internal\policy\impl\GlobalActions$99$1.smali[41,11] mismat
ched input 'p1' expecting END_METHOD_DIRECTIVE
classout\com\android\internal\policy\impl\GlobalActions$99.smali[0,0] 17039360 c
annot fit into a short
classout\com\android\internal\policy\impl\GlobalActions$99.smali[80,4] mismatche
d tree node: I_STATEMENT_FORMAT11n expecting I_CATCHES
classout\com\android\internal\policy\impl\GlobalActions$99.smali[84,4] mismatche
d tree node: I_STATEMENT_FORMAT11x expecting I_FIELDS
Am I doing something wrong?
Click to expand...
Click to collapse
Which version use baksmali/smali tool ?
pendroz said:
Which version use baksmali/smali tool ?
Click to expand...
Click to collapse
I was using a different tool, started over using yours and all went well. Thanks again.:good::good:
Nice mod, thank you
Can use it on g pro2 ported roms?
Sent from my LG-D802 using Tapatalk
this cannot be used on odexed stock KK?
ahmed534 said:
this cannot be used on odexed stock KK?
Click to expand...
Click to collapse
Just a little guidance
http://forum.xda-developers.com/galaxy-s2/themes-apps/how-to-manually-deodex-odex-t1208320
for 4.2.2 they are same steps?
these are the lines I found :
.line 330
iget-object v0, p0, Lcom/android/internal/policy/impl/GlobalActions;->mItems:Ljava/util/ArrayList;
new-instance v1, Lcom/android/internal/policy/impl/GlobalActions$3;
const v2, 0x202029b
const v3, 0x20d0011
invoke-direct {v1, p0, v2, v3}, Lcom/android/internal/policy/impl/GlobalActions$3;-><init>(Lcom/android/internal/policy/impl/GlobalActions;II)V
invoke-virtual {v0, v1}, Ljava/util/ArrayList;->add(Ljava/lang/ObjectZ
Click to expand...
Click to collapse
SHould I change them to :
.line 330
iget-object v0, p0, Lcom/android/internal/policy/impl/GlobalActions;->mItems:Ljava/util/ArrayList;
new-instance v1, Lcom/android/internal/policy/impl/GlobalActions$99;
const v2, 0x202029b
const v3, 0x20d0011
invoke-direct {v1, p0, v2, v3}, Lcom/android/internal/policy/impl/GlobalActions$99;-><init>(Lcom/android/internal/policy/impl/GlobalActions;II)V
invoke-virtual {v0, v1}, Ljava/util/ArrayList;->add(Ljava/lang/ObjectZ
Click to expand...
Click to collapse
2) there is no GlobalActions$99.smali !!!
am using kitkat
ahmed534 said:
these are the lines I found :
SHould I change them to :
2) there is no GlobalActions$99.smali !!!
am using kitkat
Click to expand...
Click to collapse
Read the steps carefully
* Put the "\classout\com\android\internal\policy\impl\" into the extracted "Required files" folder.
pendroz said:
Read the steps carefully
* Put the "\classout\com\android\internal\policy\impl\" into the extracted "Required files" folder.
Click to expand...
Click to collapse
ohh thks mate ! and sry I was misken and was looking into another folder (from another tutorial) :s
I need a break I think XD
@pendroz
can you made a flashable zip file pls
this guide is very very good but hard for me

Thread closed

Thread closed
Download attachment.zip from HERE
Screenshot inside the attachment.zip
Trying this!
---------- Post added at 01:58 PM ---------- Previous post was at 01:05 PM ----------
Its Giving error while cmpiling about parameter something.. If i remove the parameter like the tinted statusbar it gives me parameter errors of the next .smali file.. Any solution? Shall i remove all parameters??
Papdya said:
Trying this!
---------- Post added at 01:58 PM ---------- Previous post was at 01:05 PM ----------
Its Giving error while cmpiling about parameter something.. If i remove the parameter like the tinted statusbar it gives me parameter errors of the next .smali file.. Any solution? Shall i remove all parameters??
Click to expand...
Click to collapse
Android version?
Papdya said:
Trying this!
---------- Post added at 01:58 PM ---------- Previous post was at 01:05 PM ----------
Its Giving error while cmpiling about parameter something.. If i remove the parameter like the tinted statusbar it gives me parameter errors of the next .smali file.. Any solution? Shall i remove all parameters??
Click to expand...
Click to collapse
Apktool version used?
eboybasit said:
Guide "Android L Quick Setting {Toggle} Panel"
Items Required:
-Apktool v 1.5.2 {must}
-notepad ++
-attachment.zip
-brain.jar
-patience.apk
Procedure:-
-Decompile SystemUI.apk
-Open res/layout
-Open gemini_status_bar_expanded.xml (mtk) / tw_status_bar_expanded.xml (touchwiz) {depends on your chipset}
Copy this and paste it in your expanded.
Code:
<include layout="@layout/eboy_toggle_mda" />
Save it.
- Open res/values/colors.xml
● Copy the below given codes and paste it above </resources>
Code:
<color name="quickpanel_text_color_ing">#ff75899b</color>
<color name="quickpanel_text_color_off">#ff999fa4</color>
<color name="quickpanel_text_color_on">#ffffffff</color>
Save it.
Now Open ids.xml
● Copy the below given codes and paste it above </resources>
Code:
<item type="id" name="quickpanel_wifi_btn_icon">false</item>
<item type="id" name="quickpanel_bluetooth_btn_icon">false</item>
<item type="id" name="quickpanel_gps_btn_icon">false</item>
<item type="id" name="quickpanel_data_btn_icon">false</item>
<item type="id" name="quickpanel_sync_btn_icon">false</item>
<item type="id" name="quickpanel_rotate_btn_icon">false</item>
<item type="id" name="quickpanel_sound_btn_icon">false</item>
<item type="id" name="quickpanel_vibrate_btn_icon">false</item>
<item type="id" name="quickpanel_quick_settings">false</item>
Save it.
After that Open string.xml
● Copy the below given codes and paste it above </resources>
Code:
<string name="quickpanel_wifi_text">Wi-Fi</string>
<string name="quickpanel_bluetooth_text">Bluetooth</string>
<string name="quickpanel_gps_text">GPS</string>
<string name="quickpanel_data_text">Data</string>
<string name="quickpanel_sync_text">Auto\nSync</string>
<string name="quickpanel_rotate_text">Auto\nRotation</string>
<string name="quickpanel_sound_text">Sound</string>
<string name="quickpanel_vibrate_text">Vibration</string>
Merge files attachment.zip in their respective folders.
Save,,,,,Recompile and decompile again...
Now its time for id replacement.Open public.xml and search the corresponding id and replace it in corresponding smali file as said below.
FOR EXAMPLE YOU HAVE TO SEARCH ID OF TOGGLE IN PUBLIC.XML AND YOU HAVE TO REPLACE THIS 0X7F0D0152 BY THE ID YOU GOT FROM PUBLIC.XML
OPEN SystemUI\smali\com\mda\Ltoggle\AutoRotationSettingButton.smali (6 hits)
Code:
Line 98: const v3, 0x7f090168<public type="id" name="quickpanel_rotate_btn_icon"
Line 130: const v1, 0x7f02026b<public type="drawable" name="quickpanel_icon_rotate_on"
Line 133: const v4, 0x7f0a0010<public type="color" name="quickpanel_text_color_on"
Line 139: const v1, 0x7f02026a<public type="drawable" name="quickpanel_icon_rotate_off"
Line 142: const v4, 0x7f0a000f<public type="color" name="quickpanel_text_color_off"
Line 312: const v0, 0x7f0c01bb<public type="string" name="quickpanel_rotate_text"
OPEN SystemUI\smali\com\mda\Ltoggle\BluetoothSettingButton.smali (8 hits)
Code:
Line 146: const v3, 0x7f090164<public type="id" name="quickpanel_bluetooth_btn_icon"
Line 178: const v1, 0x7f020263<public type="drawable" name="quickpanel_icon_bluetooth_on"
Line 181: const v4, 0x7f0a0010<public type="color" name="quickpanel_text_color_on"
Line 187: const v1, 0x7f020262<public type="drawable" name="quickpanel_icon_bluetooth_off"
Line 190: const v4, 0x7f0a000f<public type="color" name="quickpanel_text_color_off"
Line 196: const v1, 0x7f020261<public type="drawable" name="quickpanel_icon_bluetooth_ing"
Line 199: const v4, 0x7f0a000e<public type="color" name="quickpanel_text_color_ing"
Line 477: const v0, 0x7f0c011e<public type="string" name="quickpanel_bluetooth_text"
OPEN SystemUI\smali\com\mda\Ltoggle\GpsSettingButton.smali (6 hits)
Code:
Line 98: const v3, 0x7f090165<public type="id" name="quickpanel_gps_btn_icon"
Line 130: const v1, 0x7f020267<public type="drawable" name="quickpanel_icon_gps_on"
Line 133: const v4, 0x7f0a0010<public type="color" name="quickpanel_text_color_on"
Line 139: const v1, 0x7f020266<public type="drawable" name="quickpanel_icon_gps_off"
Line 142: const v4, 0x7f0a000f<public type="color" name="quickpanel_text_color_off"
Line 312: const v0, 0x7f0c011f<public type="string" name="quickpanel_gps_text"
Open SystemUI\smali\com\mda\Ltoggle\MobileDataSettingButton.smali (6 hits)
Code:
Line 142: const v3, 0x7f090166<public type="id" name="quickpanel_data_btn_icon"
Line 174: const v1, 0x7f020265<public type="drawable" name="quickpanel_icon_data_on"
Line 177: const v4, 0x7f0a0010<public type="color" name="quickpanel_text_color_on"
Line 183: const v1, 0x7f020264<public type="drawable" name="quickpanel_icon_data_off"
Line 186: const v4, 0x7f0a000f<public type="color" name="quickpanel_text_color_off"
Line 433: const v0, 0x7f0c01ba<public type="string" name="quickpanel_data_text"
OPEN SystemUI\smali\com\mda\Ltoggle\SoundSettingButton.smali (6 hits)
Code:
Line 127: const v3, 0x7f090169<public type="id" name="quickpanel_sound_btn_icon"
Line 159: const v1, 0x7f02026d<public type="drawable" name="quickpanel_icon_sound_on"
Line 162: const v4, 0x7f0a0010<public type="color" name="quickpanel_text_color_on"
Line 168: const v1, 0x7f02026c<public type="drawable" name="quickpanel_icon_sound_off"
Line 171: const v4, 0x7f0a000f<public type="color" name="quickpanel_text_color_off"
Line 478: const v0, 0x7f0c01bc<public type="string" name="quickpanel_sound_text"
OPEN SystemUI\smali\com\mda\Ltoggle\SyncSettingButton.smali (6 hits)
Code:
Line 103: const v3, 0x7f090167<public type="id" name="quickpanel_sync_btn_icon"
Line 135: const v1, 0x7f02026f<public type="drawable" name="quickpanel_icon_sync_on"
Line 138: const v4, 0x7f0a0010<public type="color" name="quickpanel_text_color_on"
Line 144: const v1, 0x7f02026e<public type="drawable" name="quickpanel_icon_sync_off"
Line 147: const v4, 0x7f0a000f<public type="color" name="quickpanel_text_color_off"
Line 315: const v0, 0x7f0c0129<public type="string" name="quickpanel_sync_text"
OPEN SystemUI\smali\com\mda\Ltoggle\VibrateSettingButton.smali (6 hits)
Code:
Line 157: const v3, 0x7f09016a<public type="id" name="quickpanel_vibrate_btn_icon"
Line 189: const v1, 0x7f020271<public type="drawable" name="quickpanel_icon_vibrate_on"
Line 192: const v4, 0x7f0a0010<public type="color" name="quickpanel_text_color_on"
Line 198: const v1, 0x7f020270<public type="drawable" name="quickpanel_icon_vibrate_off"
Line 201: const v4, 0x7f0a000f<public type="color" name="quickpanel_text_color_off"
Line 330: const v0, 0x7f0c01bd<public type="string" name="quickpanel_vibrate_text"
OPEN SystemUI\smali\com\mda\Ltoggle\WifiSettingButton.smali (8 hits)
Code:
Line 90: const v3, 0x7f090163<public type="id" name="quickpanel_wifi_btn_icon"
Line 122: const v1, 0x7f020274<public type="drawable" name="quickpanel_icon_wifi_on"
Line 125: const v4, 0x7f0a0010<public type="color" name="quickpanel_text_color_on"
Line 131: const v1, 0x7f020273<public type="drawable" name="quickpanel_icon_wifi_off"
Line 134: const v4, 0x7f0a000f<public type="color" name="quickpanel_text_color_off"
Line 140: const v1, 0x7f020272<public type="drawable" name="quickpanel_icon_wifi_ing"
Line 143: const v4, 0x7f0a000e<public type="color" name="quickpanel_text_color_ing"
Line 415: const v0, 0x7f0c011d<public type="string" name="quickpanel_wifi_text"
Save, recompile, sign it and push.
Note:- If anyone got force close while long pressing the toggle ,,,he is requested to all the smalis of mda folder one by one and should replace the word collapsepanels by collapse
Tested in JB 4.1.2 (TOUCHWIZ) AND JB 4.2.2 (MTK) BY ME
Credit And Thanks To:
-Allah SWT
-Muhammad (sallal lahu alayhi wassallam)
-MDA
-Rio Hutaburat
-MAAADR
Click to expand...
Click to collapse
i dont think its working on kitkat :\
vibhu0009 said:
i dont think its working on kitkat :\
Click to expand...
Click to collapse
Thats your thinking,,,,,lets see what other make
Not working on KK[emoji17]
eboybasit said:
Thats your thinking,,,,,lets see what other make
Click to expand...
Click to collapse
vibhu0009 said:
i dont think its working on kitkat :\
Click to expand...
Click to collapse
Snapdragon815 said:
Not working on KK[emoji17]
Click to expand...
Click to collapse
I already said tested in jb hehe not in kk
haha..ur posting all maad tuts in.xda..Im also
going to do this..let me ask..admins..
ShadeSK said:
haha..ur posting all maad tuts in.xda..Im also
going to do this..let me ask..admins..
Click to expand...
Click to collapse
go n ask i took permissions to share not like grabbing credits like you :v,,,,why are u getting jealous of me :'v
ShadeSK said:
haha..ur posting all maad tuts in.xda..Im also
going to do this..let me ask..admins..
Click to expand...
Click to collapse
For your kind info this is the first tut of maaad i have shared here :'v go n check your dictionary
I don't understand step 1 tell me where past this line in status_bar_expanded.XML
Code:
<include layout="@layout/eboy_toggle_mda" />
If I Help You Then Say Thanks
relax guys he already ask permission on MaaaDr
ShadeSK said:
haha..ur posting all maad tuts in.xda..Im also
going to do this..let me ask..admins..
Click to expand...
Click to collapse
Vicky7999 said:
I don't understand step 1 tell me where past this line in status_bar_expanded.XML
Code:
<include layout="@layout/eboy_toggle_mda" />
If I Help You Then Say Thanks
Click to expand...
Click to collapse
In your gemini status bar expanded.xml
TheCardinal said:
relax guys he already ask permission on MaaaDr
Click to expand...
Click to collapse
thanks for proving my truthfullness sir @TheCardinal..... Mr @ShadeSK you got a call here
eboybasit said:
thanks for proving my truthfullness sir @TheCardinal..... Mr @ShadeSK you got a call here
Click to expand...
Click to collapse
i am a member there also @Eboy Basit on there facebook group. my name is zterh gadnu mcforest
member also of #underground and #material rom
Snapdragon815 said:
Not working on KK[emoji17]
Click to expand...
Click to collapse
lol on kitkat you wil get force close
vibhu0009 said:
lol on kitkat you wil get force close
Click to expand...
Click to collapse
Ok but not on every kk rom
eboybasit said:
Ok but not on every kk rom
Click to expand...
Click to collapse
i will give a try once again n see if its working or not

[Guide] How To Add Show Hide Screen Edge Effect

[Guide] How To Add Show Hide Screen Edge Effect (Tested Stock & Cm12.1 Lolipop)
PHP:
[N.B] I'm not responsible for any damages will be held! Do at your own risk!
Requirments:
1. Apktool 2.0/2.1.1
2. Basic Knowledge Of Decompile & Recompile.
3. Notepad++ Or Other Xml Editor.
4. Brain
Now, Go to work........
<<Decompile Settings.apk (Using ApkTOOl)>>​* Merge Files From Settings Folder (Download Link Is Given Below).
* Open res/xml/display_settings.xml.
* Add This Line Or Whenever You Want.
PHP:
<com.android.settings.mod.YusrilSwitchOnPreference android:title="Edge Effect Animations" android:key="alee_edge_effect" android:defaultValue="false" />
* Recompile, Sign & Push Your System...
<<Decomple SystemUI.apk (Using ApkTOOl)>>​
* Merge Files From SystemUI Folder (Download Link Is Given Below)
* Open res/layout/status_bar.xml
* Find This Line:
PHP:
schemas.android.com/apk/res/com.android.systemui">
*Add this Line Below:
PHP:
<include android:layout_width="fill_parent" android:layout_height="fill_parent" layout="@layout/alee_edge_effect" />
* Open res/layout/navigation_bar.xml
* Find Those Lines:
PHP:
<com.android.systemui.statusbar.phone.NavigationBarView android:background="@drawable/system_bar_background" android:layout_width="fill_parent" android:layout_height="fill_parent"
<FrameLayout android:layout_width="fill_parent" android:layout_height="fill_parent">
* Now, Add this Line Below:
PHP:
<include android:layout_width="fill_parent" android:layout_height="fill_parent" layout="@layout/alee_edge_effect" />
[N:B] If You Use Dynamic System Bar Then You Have To Paste This Line Below Dynamic Systen Bar Codes
<<Start Process On Smali>>​
* Open smali/com/android/systemui/statusbar/BaseStatusBar.smali
* Search This Method:
Code:
# instance fields
* Add This Line Method:
Code:
.field protected mAleeEdgeEffection:Landroid/widget/FrameLayout;
* Search This Line:
Code:
# virtual methods
* Add This Line below:
Code:
.method protected addAleeEdgeEffection()V
.locals 3
.prologue
.line 1809
iget-object v0, p0, Lcom/android/systemui/statusbar/BaseStatusBar;->mContext:Landroid/content/Context;
const v1, 0x7f047839
const/4 v2, 0x0
invoke-static {v0, v1, v2}, Landroid/view/View;->inflate(Landroid/content/Context;ILandroid/view/ViewGroup;)Landroid/view/View;
move-result-object v0
check-cast v0, Landroid/widget/FrameLayout;
iput-object v0, p0, Lcom/android/systemui/statusbar/BaseStatusBar;->mAleeEdgeEffection:Landroid/widget/FrameLayout;
.line 1811
iget-object v0, p0, Lcom/android/systemui/statusbar/BaseStatusBar;->mWindowManager:Landroid/view/WindowManager;
iget-object v1, p0, Lcom/android/systemui/statusbar/BaseStatusBar;->mAleeEdgeEffection:Landroid/widget/FrameLayout;
const/4 v2, 0x3
invoke-virtual {p0, v2}, Lcom/android/systemui/statusbar/BaseStatusBar;->getAleeEdgeEffectionLayoutParams(I)Landroid/view/WindowManager$LayoutParams;
move-result-object v2
invoke-interface {v0, v1, v2}, Landroid/view/WindowManager;->addView(Landroid/view/View;Landroid/view/ViewGroup$LayoutParams;)V
.line 1813
return-void
.end method
* Search This Method:
Code:
.method protected getNotificationLongClicker
* You See Some lines Like This:
Code:
.method protected getNotificationLongClicker()Lcom/android/systemui/SwipeHelper$LongPressListener;
.locals 1
.prologue
.line 911
new-instance v0, Lcom/android/systemui/statusbar/BaseStatusBar$10;
invoke-direct {v0, p0}, Lcom/android/systemui/statusbar/BaseStatusBar$10;-><init>(Lcom/android/systemui/statusbar/BaseStatusBar;)V
return-object v0
.end method
* Now, Add Those Line Below .end method:
Code:
.method protected getAleeEdgeEffectionLayoutParams(I)Landroid/view/WindowManager$LayoutParams;
.locals 6
.prologue
.line 1823
new-instance v0, Landroid/view/WindowManager$LayoutParams;
const/4 v1, -0x1
const/4 v2, -0x1
const/16 v3, 0x7d6
const v4, 0x840068
const/4 v5, -0x3
invoke-direct/range {v0 .. v5}, Landroid/view/WindowManager$LayoutParams;-><init>(IIIII)V
.line 1834
iget v1, v0, Landroid/view/WindowManager$LayoutParams;->privateFlags:I
or-int/lit8 v1, v1, 0x40
iput v1, v0, Landroid/view/WindowManager$LayoutParams;->privateFlags:I
.line 1836
const-string v1, "AleeEdgeEffection"
invoke-virtual {v0, v1}, Landroid/view/WindowManager$LayoutParams;->setTitle(Ljava/lang/CharSequence;)V
.line 1838
return-object v0
.end method
* Search This Line:
Code:
.method public start()V
Scroll down & You see a line like this
Code:
iput-object v0, p0, Lcom/android/systemui/statusbar/BaseStatusBar;->mBarService:Lcom/android/internal/statusbar/IStatusBarService;
* Now Add This Line Below:
Code:
invoke-virtual/range {p0 .. p0}, Lcom/android/systemui/statusbar/BaseStatusBar;->addAleeEdgeEffection()V
* Recompile & Decompile Again:
* Open res/values/public.xml
* And Also Open BaseStatusBar.smali [In SystemUI]
* In Public.xml Search This Id:
PHP:
<public type="layout" name="alee_edge_effect" id="0x7f......" />
* Replace this id with your BaseStatusBar.smali id
************************************
Replace This Id 0x7f047839 To Your Public Id...
const v1, 0x7f.....
Like This.
************************************
DONE...
* Recompile, Sign & Push You System...
*****************************************************************************************************************
***---Fix Installation Problem---***​
* Decompile PackageInstaller.apk [From Your Rom]
* Open res/layout/install_confirm.xml
* Search This android:id="@id/ok_button" In This Line Remove This Code = android:filterTouchesWhenObscured="true"
*****************************************************************************************************************
Download Link: Set&SysUI Files

			
				
can you explain what this mod does in detail and does it work for kitkat devices?

Categories

Resources