[MOD][How to] Extended power menu I9505G MFD - Google Edition - Galaxy S 4 i9505 Android Development

This is just a quick how to. Spend a few hours writing this yesterday (see - post and post.) The GlobalActions$SinglePressAction.smali part is from Cristiano Matos Thanks bro! The rest I put together from trail and error. Feel free to use it, a thanks and some credit would be cool. Enjoy. Also huge shout out to my team mate @Mr Impossible for fixing my error. Thanks Bro!!
Flashable zip - http://d-h.st/Hnt
For developers, if you would like to see the diff you can see them on my github:
https://github.com/Infamous-Project...mmit/aaaf80b286686828dce83a3ad5e636edcaeb6fd3 and https://github.com/Infamous-Project...mmit/dc6612b16319a704e1f858097dcc934c8c647f2f
First you need to decompile the framework-res.apk and navigate and open res/values/layouts.xml and add this to the bottom.
Code:
<item type="layout" name="keyguard_transport_control">false</item>
This will fix the compile error that you get from the stock framework-res.
Now you need to add the strings and the icon for reboot since stock there are none. Navigate to res/values/strings.xml and add
Code:
<string name="reboot">Reboot menu</string>
Now you need to add the icon to res/drawable-xhdpi/ic_lock_reboot.png (I will attach it later). Now compile the framework-res.apk then decompile it again. We do this so the apktool will add these to the public.xml and assign ID's to them that we will need later. You can put the new compiled framework aside to add to your ROM later.​
Now we will move to the android.policy.jar. You will need decompile the classout. Now go to classout/com/android/internal/policy/impl/GlobalActions.smali and find
Code:
invoke-virtual {v0, v1}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z
iget-object v0, p0, Lcom/android/internal/policy/impl/GlobalActions;->mItems:Ljava/util/ArrayList;
iget-object v1, p0, Lcom/android/internal/policy/impl/GlobalActions;->mAirplaneModeOn:Lcom/android/internal/policy/impl/GlobalActions$ToggleAction;
invoke-virtual {v0, v1}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z
Code:
invoke-virtual {v0, v1}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z
[COLOR="Blue"]+
+ new-instance v1, Lcom/android/internal/policy/impl/GlobalActions$99;
+
+ const v2, 0x1080c11 (This is the ID for the Ic_lock_reboot we added to framework-res. add yours)
+
+ const v3, 0x10408eb (this is the String ID for reboot)
+
+ 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/Object;)Z
+[/COLOR]
iget-object v0, p0, Lcom/android/internal/policy/impl/GlobalActions;->mItems:Ljava/util/ArrayList;
iget-object v1, p0, Lcom/android/internal/policy/impl/GlobalActions;->mAirplaneModeOn:Lcom/android/internal/policy/impl/GlobalActions$ToggleAction;
invoke-virtual {v0, v1}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z
Also pro tip: ID's for apps will be in this format 0x01080c11 and in the android.policy.jar is 0x1080c11. Notice that in the android.policy.jar the 0 after the x is removed. 0x01080c11. So when you are comparing remove the 0 if pulling from the public.xml or if you if you are taking from the android.policy.jar you will need to add it to match up.
​
This part is from Cristiano Matos Thanks bro!
classout/com/android/internal/policy/impl/GlobalActions$SinglePressAction.smali
Find this
Code:
.end annotation
# instance fields
.field private final mIconResId:I
.field private final mMessage:Ljava/lang/CharSequence;
.field private final mMessageResId:I
And between .end annotation and # instance fields, add this
Code:
[COLOR="Blue"]# static fields
.field protected static rebootMode:I
.field protected static final rebootOptions:[Ljava/lang/String;[/COLOR]
Find this
Code:
# direct methods
.method protected constructor <init>(II)V
.registers 4
.parameter "iconResId"
.parameter "messageResId"
And between # direct methods and .method protected constructor <init>(II)V, add this
Code:
[COLOR="Blue"].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, "Download"
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[/COLOR]
Last you need to add the files GlobalActions$99.smali, GlobalActions$99$1.smali, and GlobalActions$99$2.smali to Classout/com/android/internal/policy/impl then recomplie the Classout.​

mine

Nice
Sent from my SGH-M919 using xda premium

Thanks bro!
Sent from my dark hole called an office.

Screenshots
Sent from my dark hole called an office.

It works by the way if anyone is wondering

Could someone please make a flashabls zip for the GPe ROM of Jamal? Would be really awesome!
Me Gusta!

Here is a flashable zip
http://d-h.st/Hnt
Sent from my dark hole called an office.

Jamison904 said:
Here is a flashable zip
http://d-h.st/Hnt
Sent from my dark hole called an office.
Click to expand...
Click to collapse
Sweet thx man. ..
Sent from my SGH-M919 using Tapatalk 4 Beta

I flashed the zip and the power menu has not changed. Can anyone confirm that the zip works?

TheAvatar said:
I flashed the zip and the power menu has not changed. Can anyone confirm that the zip works?
Click to expand...
Click to collapse
Works perfectly for me. Are you using deodexed or odexed?
Sent from my GT-I9505 using xda premium

Odexed, might flash a deodexed ROM later today

works perfectly on my De-Oxdexed GE Rom !!!

Since you've already figured this one out.... do you also know where/how to change hardware key configuration to stock TW?

Thanks for the guide & the flashable zip.
Would love to see a write up for center clock, %batterymod.. would be great to have guides in a centralized location.

Thanks... It works perfect
Sent from my GT-I9505G using Tapatalk 2

Thanks
Sent from my GT-I9505 using Tapatalk 4 Beta

Thanks, i think modifying the toggles in notification should be closer now. Or is someone already started on that.

I think someone is already working on that. One of the threads in the app section has a lot of mods running already. Would be nice to have the function toggle like the TW ROMs. That gives me an idea.
Thanks
Sent from my dark hole called an office.

@Jamison904 forgot to hit thanks on OP
you know i've actually seen people using your framework and not give credit for using this mod? rofl the ways of xda baffle me

Related

[MOD][GUIDES] SecMms.apk TouchWiz Mods! [5.26.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 THE SCREEN ON/OFF TOGGLE AND ADD THE VIBRATION, SIGNATURE OPTIONS★
WHAT DOES THIS MOD DO: This mod will let you enable the Screen on/off toggle, vibration, and signature options in the messaging app.
STEP 1
★ Go into your system/app folder and take out your "SecMms.apk"
★ Then use one of the applications such as apktools or apkmanager and then use the commands to decompile the SecMms.apk
★ Once you have decompiled the SecMms.apk, go to:
res/xml/mms_config.xml
Click to expand...
Click to collapse
Now open up "mms.config.xml" with Notepad++ then go and find:
Code:
<bool name="enable_screen_onoff_option">false</bool>
<bool name="enable_signature_settings">false</bool>
<bool name="enable_vibration_option">false</bool>
<bool name="enable_signature">false</bool>
Now what your going to do is where it says "false" your going to change it to "true" to enable it. Once done it will look something like this:
Code:
<bool name="enable_screen_onoff_option">true</bool>
<bool name="enable_signature_settings">true</bool>
<bool name="enable_vibration_option">true</bool>
<bool name="enable_signature">true</bool>
Now save this file with the new edits with Notepad++ and head to the next step!
STEP 2
Once your done enabling the bools, now you have to go into:
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++ which all should be almost towards the bottom of the file, So 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:
FIND:
Code:
[COLOR="Green"]const-string v11, "pref_key_spam_settings"[/COLOR]
Here is what it should look like, Now remove what you see in RED:
Code:
.line 813
invoke-virtual {p0}, Lcom/android/mms/ui/MessagingPreferenceActivity;->getPreferenceScreen()Landroid/preference/PreferenceScreen;
move-result-object v10
[COLOR="Green"]const-string v11, "pref_key_spam_settings"[/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]
.line 824
:cond_10
:goto_5
invoke-static {}, Lcom/android/mms/MmsConfig;->getDisableConvertingEffectBetweenSMSMMS()Z
move-result v10
if-eqz v10, :cond_11
FIND:
Code:
[COLOR="Green"]const-string v10, "pref_notification_settings"[/COLOR]
Here is what it should look like, Now remove what you see in RED:
Code:
.line 825
[COLOR="Green"]const-string v10, "pref_notification_settings"[/COLOR]
invoke-virtual {p0, v10}, Lcom/android/mms/ui/MessagingPreferenceActivity;->findPreference(Ljava/lang/CharSequence;)Landroid/preference/Preference;
move-result-object v1
check-cast v1, Landroid/preference/PreferenceCategory;
.line 826
.local v1, MmsCategory:Landroid/preference/PreferenceCategory;
const-string v10, "pref_key_mms_change_over_alarm"
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, v1, v10}, Lcom/android/mms/ui/MessagingPreferenceActivity;->removePreference(Landroid/preference/PreferenceGroup;Landroid/preference/Preference;)V[/COLOR]
FIND:
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 767
[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]
Now once your done with modifying the "MessagingPreferenceActivity.smali", Recompile your SecMms.apk using apktool or smali commands and your DONE! You should now see the Screen On/Off Toggle in the Messaging app Settings! Also if you didn't have the vibration or signature options in your Messaging app settings this guide will also enable it! Enjoy!
★HOW TO ENABLE THE TOUCHWIZ GROUP MESSAGING, SAVE / RESTORE, AND SCHEDULED MESSAGING FEATURES★
WHAT DOES THIS MOD DO: This mod will let you enable some features in the messaging app such as group messaging, save / restore, and also the scheduled messaging.
STEP 1
★ Go into your system/app folder and take out your "SecMms.apk"
★ Then use one of the applications such as apktools or apkmanager 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 GROUP MESSAGING...
FIND:
Code:
[COLOR="Green"].method public static getEnableGroupMessage()Z[/COLOR]
.locals 1
.prologue
.line 766
const/4 v0, 0x0
return v0
.end method
NOW CHANGE TO:
Code:
[COLOR="Green"].method public static getEnableGroupMessage()Z[/COLOR]
.locals 1
.prologue
.line 766
[COLOR="Blue"]const/4 v0, 0x1[/COLOR]
return v0
.end method
TO ENABLE THE SAVE / RESTORE FEATURE...
FIND:
Code:
[COLOR="Green"].method public static getEnableSaveRestoreSDCardMessage()Z[/COLOR]
.locals 1
.prologue
.line 774
const/4 v0, 0x0
return v0
.end method
NOW CHANGE TO:
Code:
[COLOR="Green"].method public static getEnableSaveRestoreSDCardMessage()Z[/COLOR]
.locals 1
.prologue
.line 774
[COLOR="Blue"]const/4 v0, 0x1[/COLOR]
return v0
.end method
TO ENABLE SCHEDULED MESSAGING...
FIND:
Code:
[COLOR="Green"].method public static getEnableScheduledMessage()Z[/COLOR]
.locals 1
.prologue
.line 878
const/4 v0, 0x0
return v0
.end method
NOW CHANGE TO:
Code:
[COLOR="Green"].method public static getEnableScheduledMessage()Z[/COLOR]
.locals 1
.prologue
.line 878
[COLOR="Blue"]const/4 v0, 0x1[/COLOR]
return v0
.end method
The only thing your doing is changing 0x0 to 0x1 which "0" means disabled and "1" means enabled. Once your done now 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.
STEP 1
★ Go into your system/app folder and take out your "SecMms.apk"
★ Then use one of the applications such as apktools, apkmanager, 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]
.locals 1
.prologue
.line 630
[COLOR="Red"]sget v0, Lcom/android/mms/MmsConfig;->mRecipientLimit:I[/COLOR]
return v0
.end method
AND CHANGE TO:
Code:
[COLOR="Green"].method public static getRecipientLimit()I[/COLOR]
.locals 1
.prologue
.line 630
[COLOR="Blue"]const/16 v0, 0x3e8[/COLOR]
return v0
.end method
Now save the changes, recompile your SecMms.apk and your 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.
STEP 1
★ Go into your system/app folder and take out your "SecMms.apk"
★ Then use one of the applications such as apktools, apkmanager, 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/transactionSMSReceiverService.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:
LOOK 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:
.line 1395
:cond_7
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_1
.end method
AND THEN CHANGE IT TO THIS:
Code:
.line 1395
:cond_7
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_1
.end method
Once finished... 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.
STEP 1
★ Go into your system/app folder and take out your "SecMms.apk"
★ Then use one of the applications such as apktools, apkmanager, 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;->mMaxImageWidthRestrictedMode:I[/COLOR]
NOW REMOVE:
Code:
[COLOR="Green"]sput v0, Lcom/android/mms/MmsConfig;->mMaxImageWidthRestrictedMode:I[/COLOR]
.line 149
[COLOR="Red"]sput v7, Lcom/android/mms/MmsConfig;->mRecipientLimit:I[/COLOR]
.line 150
[COLOR="Red"]const/16 v0, 0xc8[/COLOR]
sput v0, Lcom/android/mms/MmsConfig;->mDefaultSMSMessagesPerThread:I
AND CHANGE TO:
Code:
[COLOR="Green"]sput v0, Lcom/android/mms/MmsConfig;->mMaxImageWidthRestrictedMode:I[/COLOR]
.line 149
[COLOR="Blue"]const/16 v0, 0x3e8[/COLOR]
.line 150
[COLOR="Blue"]sput v0, Lcom/android/mms/MmsConfig;->mRecipientLimit:I[/COLOR]
sput v0, Lcom/android/mms/MmsConfig;->mDefaultSMSMessagesPerThread:I
SEARCH FOR:
Code:
[COLOR="Green"]sput-boolean v2, Lcom/android/mms/MmsConfig;->mAllowAttachAudio:Z[/COLOR]
NOW REMOVE:
Code:
.line 157
[COLOR="Green"]sput-boolean v2, Lcom/android/mms/MmsConfig;->mAllowAttachAudio:Z[/COLOR]
.line 160
[COLOR="Red"]const/4 v0, 0x4[/COLOR]
sput v0, Lcom/android/mms/MmsConfig;->mSmsToMmsTextThreshold:I
AND CHANGE TO:
Code:
.line 157
[COLOR="Green"]sput-boolean v2, Lcom/android/mms/MmsConfig;->mAllowAttachAudio:Z[/COLOR]
.line 160
[COLOR="Blue"]const/16 v0, 0x3e8[/COLOR]
sput v0, Lcom/android/mms/MmsConfig;->mSmsToMmsTextThreshold:I
SEARCH FOR:
Code:
[COLOR="Green"].method public static getMaxRecipientLength()I[/COLOR]
NOW REMOVE:
Code:
[COLOR="Green"].method public static getMaxRecipientLength()I[/COLOR]
.locals 1
.prologue
.line 2146
[COLOR="Red"]sget v0, Lcom/android/mms/MmsConfig;->mMaxRecipientLength:I[/COLOR]
return v0
.end method
AND CHANGE TO:
Code:
[COLOR="Green"].method public static getMaxRecipientLength()I[/COLOR]
.locals 1
.prologue
.line 2146
[COLOR="Blue"]const/16 v0, 0x3e8[/COLOR]
return v0
.end method
SEARCH FOR:
Code:
[COLOR="Green"].method public static getMmsMaxRecipient()I[/COLOR]
NOW REMOVE:
Code:
[COLOR="Green"].method public static getMmsMaxRecipient()I[/COLOR]
.locals 1
.prologue
.line 2379
[COLOR="Red"]sget v0, Lcom/android/mms/MmsConfig;->mMmsRecipientLimit:I[/COLOR]
return v0
.end method
AND CHANGE TO:
Code:
[COLOR="Green"].method public static getMmsMaxRecipient()I[/COLOR]
.locals 1
.prologue
.line 2379
[COLOR="Blue"]const/16 v0, 0x3e8[/COLOR]
return v0
.end method
SEARCH FOR:
Code:
[COLOR="Green"].method public static getSmsToMmsTextThreshold()I[/COLOR]
NOW REMOVE:
Code:
[COLOR="Green"].method public static getSmsToMmsTextThreshold()I[/COLOR]
.locals 1
.prologue
.line 559
[COLOR="Red"]sget v0, Lcom/android/mms/MmsConfig;->mSmsToMmsTextThreshold:I[/COLOR]
return v0
.end method
AND CHANGE TO:
Code:
[COLOR="Green"].method public static getSmsToMmsTextThreshold()I[/COLOR]
.locals 1
.prologue
.line 559
[COLOR="Blue"]const/16 v0, 0x3e8[/COLOR]
return v0
.end method
SEARCH FOR:
Code:
[COLOR="Green"]sput v9, Lcom/android/mms/MmsConfig;->mMaxRecipientLength:I[/COLOR]
ABOVE THIS SAME LINE YOU HAVE TO ADD A NEW LINE WHICH IS IN BLUE:
Code:
.line 1553
const-string v9, "CscFeature_Message_MaxRecipientLengthAs"
invoke-virtual {v1, v9}, Lcom/sec/android/app/CscFeature;->getInteger(Ljava/lang/String;)I
move-result v9
[COLOR="Blue"]const/16 v9, 0x3e8[/COLOR]
[COLOR="Green"]sput v9, Lcom/android/mms/MmsConfig;->mMaxRecipientLength:I[/COLOR]
.line 1554
sget v9, Lcom/android/mms/MmsConfig;->mMinRecipientLength:I
SEARCH FOR:
Code:
[COLOR="Green"]sput v1, Lcom/android/mms/MmsConfig;->mSmsToMmsTextThreshold:I[/COLOR]
ABOVE THIS SAME LINE YOU HAVE TO ADD A NEW LINE WHICH IS IN BLUE:
Code:
move-result v1
[COLOR="Blue"]const/16 v1, 0x3e8[/COLOR]
[COLOR="Green"]sput v1, Lcom/android/mms/MmsConfig;->mSmsToMmsTextThreshold:I[/COLOR]
.line 1729
const-string v1, "Mms/MmsConfig"
SEARCH FOR:
Code:
[COLOR="Green"]sput v1, Lcom/android/mms/MmsConfig;->mRecipientLimit:I[/COLOR]
ABOVE THIS SAME LINE YOU HAVE TO ADD A NEW LINE WHICH IS IN BLUE:
Code:
.line 1733
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;->mRecipientLimit:I[/COLOR]
.line 1734
const-string v1, "Mms/MmsConfig"
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.
STEP 1
★ Go into your system/app folder and take out your "SecMms.apk"
★ Then use one of the applications such as apktools, apkmanager, 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 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:
LOOK 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]
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 you are now FINISHED!!!
★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, apkmanager, 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 733
[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 735
:cond_2
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]
.locals 1
.prologue
.line 903
invoke-static {}, Lcom/android/mms/MmsConfig;->hasLargerThan5inchScreen()Z
move-result v0
if-eqz v0, :cond_0
.line 904
const/4 v0, 0x1
.line 906
:goto_0
return v0
:cond_0
[COLOR="Red"]sget-boolean v0, Lcom/android/mms/MmsConfig;->mEnableSplitMode:Z[/COLOR]
goto :goto_0
.end method
AND CHANGE TO:
Code:
[COLOR="Green"].method public static getEnableSplitMode()Z[/COLOR]
.locals 1
.prologue
.line 903
invoke-static {}, Lcom/android/mms/MmsConfig;->hasLargerThan5inchScreen()Z
move-result v0
if-eqz v0, :cond_0
.line 904
const/4 v0, 0x1
.line 906
:goto_0
return v0
:cond_0
[COLOR="Blue"]const/4 v0, 0x1[/COLOR]
goto :goto_0
.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].
STEP 1
★ Go into your system/app folder and take out your "SecMms.apk"
★ Then use one of the applications such as apktools or apkmanager 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 137
[COLOR="Green"]sput-boolean v2, Lcom/android/mms/MmsConfig;->mMmsWidgetEnabled:Z[/COLOR]
.line 138
const v0, 0x4b000
sput v0, Lcom/android/mms/MmsConfig;->mMaxMessageSize:I
NOW CHANGE TO:
Code:
.line 137
[COLOR="Green"]sput-boolean v2, Lcom/android/mms/MmsConfig;->mMmsWidgetEnabled:Z[/COLOR]
.line 138
[COLOR="Blue"]const v0, 0x1f4000[/COLOR]
sput v0, Lcom/android/mms/MmsConfig;->mMaxMessageSize:I
INCREASE MMS IMAGE SIZE TO 4096x2048 [8.4MP]...
FIND:
Code:
.line 144
[COLOR="Green"]sput-object v4, Lcom/android/mms/MmsConfig;->mEmailGateway:Ljava/lang/String;[/COLOR]
.line 145
sget v0, Lcom/android/mms/MmsConfig;->MAX_IMAGE_HEIGHT:I
sput v0, Lcom/android/mms/MmsConfig;->mMaxImageHeight:I
.line 146
sget v0, Lcom/android/mms/MmsConfig;->MAX_IMAGE_WIDTH:I
sput v0, Lcom/android/mms/MmsConfig;->mMaxImageWidth:I
NOW CHANGE TO:
Code:
.line 144
[COLOR="Green"]sput-object v4, Lcom/android/mms/MmsConfig;->mEmailGateway:Ljava/lang/String;[/COLOR]
.line 145
[COLOR="Blue"]const/16 v0, 0x800[/COLOR]
sput v0, Lcom/android/mms/MmsConfig;->mMaxImageHeight:I
.line 146
[COLOR="Blue"]const/16 v0, 0x1000[/COLOR]
sput v0, Lcom/android/mms/MmsConfig;->mMaxImageWidth:I
Once your done. Now recompile your SecMms.apk and that's it your DONE!
another one just in case! :good:
Thanks for doing this bro, ill have to check it out!
Re: [MOD][GUIDES] SecMms.apk TouchWiz Mods!
sbreen94 said:
Thanks for doing this bro, ill have to check it out!
Click to expand...
Click to collapse
Your welcome bro hopefully i get to update it later on tonight with more mods.
Sent from my SGH-T999 using Tapatalk 2
Updated it with even more mods!
Re: [MOD][GUIDES] SecMms.apk TouchWiz Mods! [3.3.2013]
jovy23 said:
Updated it with even more mods!
Click to expand...
Click to collapse
Awww yeah
Sent from my SCH-I605 using xda premium
Excellent guide mate, :highfive: :good::good:
awesome! it send it but the replies do not come back in the same thread.the people respond in another individual thread...is there anyway to enable the responses to be all in one thread?
EDIT: also, after sending the first group message, i can't send another one. i think it is because the thread is now labeled: "Anonymous" and the app doesn't know who to send it to..
can you possibly post your SecMMS.apk? i've decompiled it and made some edits successfully, but one of the smali files i have is missing some lines from this guide...
also, group text doesnt work still i get the same bug as above. we must be missing something. anyone have the latest OTA update and are rooted? lets compare files!
Everything is OK, but when I choose to send message from contact list: Still 10 recipient limit. How to solve this?
Would this work for the Note 2? And could someone upload the APK? If you need my Note 2 version I can send it to you but I think its the same as the S3.
I successfully was able to make the sms to mms conversion change along with the recipient limit change. But whenever I make a change to the xml files it breaks the array in values where the <3 doesn't link to the heart properly it only shows the <3 in the text message. this happened after I tried to add the screen on/off change. I have read it is something to do with a compression error. Do you know a workaround for this? Hope so, or maybe someone has a fix for this
Second question is how to change the default order of the smilies when you insert from the menu?
Thanks in advance...
Is this thread still active and up?
Re: [MOD][GUIDES] SecMms.apk TouchWiz Mods! [3.3.2013]
mgbotoe said:
Is this thread still active and up?
Click to expand...
Click to collapse
It still works if that's what you're asking
Sent from my SGH-T889 using Tapatalk 2
jovy23 said:
Updated it with even more mods!
Click to expand...
Click to collapse
I would love to have these on my t-999 but I'm having trouble understanding all this development jargon. I've spent the entire day trying to create my own mod, but with no success. My eyes now hurt from staring at my pc since 7 am Do you have a mod for the t-999 stock rom I could flash?
Thanks so much for this great how to! Very clear and easy to follow!
My smali folder does not get extracted...tried so many things to get it fix. anyone else experiencing this....
mgbotoe said:
My smali folder does not get extracted...tried so many things to get it fix. anyone else experiencing this....
Click to expand...
Click to collapse
What do you mean?
Did you decompile the secmms.apk using apktool or apk manager?
Smali folder will be there if you successfully decompiled it.
Sent from my GT-I9100 using Tapatalk 2
engloa said:
What do you mean?
Did you decompile the secmms.apk using apktool or apk manager?
Smali folder will be there if you successfully decompiled it.
Sent from my GT-I9100 using Tapatalk 2
Click to expand...
Click to collapse
Yes ive even setup the apk manager again same thing

[MOD][HOW-TO][GT_19500]Enable Call Recording + no inc ring + EPM + MMS Android 4.2.2

This is how to enable Call recording on the Galaxy S4 -I9500 (tested on this) on Based Samsung Android 4.2.2 Roms
1. Decompile SecPhone.apk
2. Open smali\com\android\phone\PhoneFeature.smali, go to "makeFeatureForCommon()V" method, and make the changes:
PHP:
.line 1002
sget-object v0, Lcom/android/phone/PhoneFeature;->mFeatureList:Ljava/util/HashMap;
const-string v5, "support_merge_call"
invoke-static {v2}, Ljava/lang/Boolean;->valueOf(Z)Ljava/lang/Boolean;
move-result-object v6
invoke-virtual {v0, v5, v6}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
++ .line 1003
++ sget-object v0, Lcom/android/phone/PhoneFeature;->mFeatureList:Ljava/util/HashMap;
++ const-string v5, "voice_call_recording"
++ const/4 v2, 0x1
++ invoke-static {v2}, Ljava/lang/Boolean;->valueOf(Z)Ljava/lang/Boolean;
++ move-result-object v6
++ invoke-virtual {v0, v5, v6}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
++ .line 1004
3. This mod is tested & working on latest I9500 FW - I9500UBUAMDK
4. All the recorded calls will be stored on sdcard under sounds folder
5. Flash at your own risk
No Increasing ringtone
TARGET FILE: secphone/smali/com/android/phone/Ringer$1.smali and following changes:
PHP:
iget-object v1, v1, Lcom/android/phone/Ringer;->mAudioManager:Landroid/media/AudioManager;
- invoke-virtual {v1, v6, v4, v5}, Landroid/media/AudioManager;->setStreamVolume(III)V
-
.line 804
const/4 v1, 0x7
and
PHP:
goto/16 :goto_0
.line 756
+ nop
+
nop
:pswitch_data_0
EXTENDED POWER MENU MOD
TARGET FILE: android.policy.jar
First Copy attached GlobalActions$99$1.smali, GlobalActions$99$2.smali, GlobalActions$99.smali from the atatchments to android.policy_ori.jar.out\smali\com\android\internal\policy\impl
2. Open the GlobalActions$99.smali using any notepad editor and change the following to whatever name you want :
PHP:
const-string v2, "Rebooot Menu"
3. Open the following file : /smali/com/android/internal/policy/impl/GlobalActions$SinglePressAction.smali and make the following changes:
PHP:
.end annotation
+# static fields
+.field protected static rebootMode:I
+
+.field protected static final rebootOptions:[Ljava/lang/String;
+
+
PHP:
# direct methods
+.method static constructor <clinit>()V
+ .locals 3
+
+ const/4 v0, 0x4
+
+ new-array v0, v0, [Ljava/lang/String;
+
+ const/4 v1, 0x0
+
+ const-string v2, "Reboot"
+
+ aput-object v2, v0, v1
+
+ const/4 v1, 0x1
+
+ const-string v2, "Hot Boot"
+
+ aput-object v2, v0, v1
+
+ const/4 v1, 0x2
+
+ const-string v2, "Download"
+
+ aput-object v2, v0, v1
+
+ const/4 v1, 0x3
+
+ const-string v2, "Recovery"
+
+ aput-object v2, v0, v1
+
+ sput-object v0, Lcom/android/internal/policy/impl/GlobalActions$SinglePressAction;->rebootOptions:[Ljava/lang/String;
+
+ return-void
+.end method
+
.method protected constructor <init>(II)V
.locals 1
.parameter "iconResId"
4. Open the following file : smali/com/android/internal/policy/impl/GlobalActions.smali and male following changes:
PHP:
iput-object v0, p0, Lcom/android/internal/policy/impl/GlobalActions;->mPowerOff:Lcom/android/internal/policy/impl/GlobalActions$SinglePressAction;
.line 566
- new-instance v0, Lcom/android/internal/policy/impl/GlobalActions$5;
+ new-instance v0, Lcom/android/internal/policy/impl/GlobalActions$99;
const v1, 0x108097f
PHP:
const v2, 0x1040199
- invoke-direct {v0, p0, v1, v2}, Lcom/android/internal/policy/impl/GlobalActions$5;-><init>(Lcom/android/internal/policy/impl/GlobalActions;II)V
+ invoke-direct {v0, p0, v1, v2}, Lcom/android/internal/policy/impl/GlobalActions$99;-><init>(Lcom/android/internal/policy/impl/GlobalActions;II)V
iput-object v0, p0, Lcom/android/internal/policy/impl/GlobalActions;->mRestart:Lcom/android/internal/policy/impl/GlobalActions$SinglePressAction;
5. Compile and then flash
No MMS Conversion & Increase Recipient Limit
Target File: Secmms.apk
1. Open the following file: /res/xml/mms_config.xml and make following changes:
PHP:
<int name="mMaxTextViewSize">5000</int>
- <int name="recipientLimit">10</int>
- <int name="smsToMmsTextThreshold">4</int>
+ <int name="recipientLimit">999</int>
+ <int name="smsToMmsTextThreshold">999</int>
<bool name="disableEndterKey">false</bool>
<bool name="composeMaxLengthLimit">false</bool>
- <bool name="inputModeAuto">false</bool>
+ <bool name="inputModeAuto">true</bool>
<bool name="smsExpiryDate">false</bool>
<bool name="sendAnimationJpn">false</bool>
<bool name="wapPush">true</bool>
2. Open the following file: smali/com/android/mms/MmsConfig.smali and make following changes:
PHP:
sput v0, Lcom/android/mms/MmsConfig;->mMaxImageWidthRestrictedMode:I
.line 163
- sput v7, Lcom/android/mms/MmsConfig;->mRecipientLimit:I
+ const/16 v0, 0x3e7
- .line 164
- const/16 v0, 0xc8
+ sput v0, Lcom/android/mms/MmsConfig;->mRecipientLimit:I
+ .line 164
sput v0, Lcom/android/mms/MmsConfig;->mDefaultSMSMessagesPerThread:I
.line 165
PHP:
.prologue
.line 2510
- sget v0, Lcom/android/mms/MmsConfig;->mMaxRecipientLength:I
+ const/16 v0, 0x3e7
return v0
.end method
PHP:
.prologue
.line 2751
- sget v0, Lcom/android/mms/MmsConfig;->mMmsRecipientLimit:I
+ const/16 v0, 0x3e7
return v0
.end method
PHP:
.prologue
.line 759
- sget v0, Lcom/android/mms/MmsConfig;->mRecipientLimit:I
+ const/16 v0, 0x3e7
return v0
.end method
PHP:
.prologue
.line 688
- sget v0, Lcom/android/mms/MmsConfig;->mSmsToMmsTextThreshold:I
+ const/16 v0, 0x3e7
return v0
.end method
PHP:
move-result v11
+ const/16 v11, 0x3e7
+
sput v11, Lcom/android/mms/MmsConfig;->mMaxRecipientLength:I
.line 1768
PHP:
move-result v1
+ const/16 v1, 0x3e7
+
sput v1, Lcom/android/mms/MmsConfig;->mSmsToMmsTextThreshold:I
.line 2045
PHP:
invoke-interface {v0, v1, v4}, Landroid/content/SharedPreferences;->getInt(Ljava/lang/String;I)I
move-result v1
+
+ const/16 v1, 0x3e7
sput v1, Lcom/android/mms/MmsConfig;->mRecipientLimit:I
Increasing SMS hour limit
Navigate and open \com\android\mms\util\RateController.smali
Search for
PHP:
.field private static final RATE_LIMIT:I = 0x64
This value is in hexadecimal format, so we see that 0x64 = 100. So, to increase this to 1000 simply change 0x64 to 0x3e8
I am including the mod here. If you are on deodexed rom, then delete the secphone.odex and then flash the zip from recovery. I will release the odex one in few hours as i am in hurry now.
Download - I9500UBUAMDK- DEODEXED
I completed with almost all the mods and i will release it later i a day as i am on business trip!
Credits
-------------
Wanam
mythtrandyr
thanks for your effort. waiting for custom roms with your mod.
Once we do this how do we enable call recording? Do you have a screenshot?
Thanks
Sent from my GT-I9500 using Tapatalk 2
You are one of the best when it comes to smali codes mate.
Thanks for your contribution.
《posted from s3》
Coding king.....
When Android comes to picture :thumbup::thumbup:
Welldone bro
Thanks a lot.
Line 1003 exists in MDN i9505 (LTE) (fdn_contact_search).
Created new line .1004 and write all code there.
You are the man :good:
cybdani said:
Thanks a lot.
Line 1003 exists in MDN i9505 (LTE) (fdn_contact_search).
Created new line .1004 and write all code there.
You are the man :good:
Click to expand...
Click to collapse
Does this mean the download it's not working yet with MDN firmware?
thanks man. can you make it for stock mdc I9505 aswell??
thanks
Yes . Post the secphone.apk
Sent from my GT-I9500 using Tapatalk 2
grgsiocl said:
Yes . Post the secphone.apk
Sent from my GT-I9500 using Tapatalk 2
Click to expand...
Click to collapse
thanks i really appreciate that
https://www.dropbox.com/s/b5o7dzqxyf0jflz/SecPhone.apk
Hi all!
Here's SecPhone.apk from i9505 MDN ROM, deodexed and zipaligned https://www.box.com/s/6y7oqkz3ksadyj12wjop
Regards!
Hello, can You make ODEX for MDN i9505??
Big thanks
We have this awesome guy at every flagship phones .Welcome to S4 now then to note III .
cybdani said:
Hi all!
Here's SecPhone.apk from i9505 MDN ROM, deodexed and zipaligned https://www.box.com/s/6y7oqkz3ksadyj12wjop
Regards!
Click to expand...
Click to collapse
will this work on my stock mdc I9505 i gave you?
tvhak said:
will this work on my stock mdc I9505 i gave you?
Click to expand...
Click to collapse
It's from mdn deodexed, not tested with mdc, but you can test it:
Backup secphone.apk and secphone.odex to sd card.
Copy my secphone.apk into /system/app, give permissions to this file, delete secphone.odex and reboot.
If it doesn't works, you can restore your backup files.
cybdani said:
It's from mdn deodexed, not tested with mdc, but you can test it:
Backup secphone.apk and secphone.odex to sd card.
Copy my secphone.apk into /system/app, give permissions to this file, delete secphone.odex and reboot.
If it doesn't works, you can restore your backup files.
Click to expand...
Click to collapse
thanks going to try that now
---------- Post added at 10:05 AM ---------- Previous post was at 09:53 AM ----------
cybdani said:
It's from mdn deodexed, not tested with mdc, but you can test it:
Backup secphone.apk and secphone.odex to sd card.
Copy my secphone.apk into /system/app, give permissions to this file, delete secphone.odex and reboot.
If it doesn't works, you can restore your backup files.
Click to expand...
Click to collapse
okay have a problem...
i see the record button when i make a call. but it does nothing
also wanted to ask if there is an option to have it enabled that it records all calls.
there is no settings menu like i had in my s3.
thanks
Until the person you're calling does not pick up the phone you can not record. Button is disabled.
If it doesn't works fine, then maybe the problem is that you have mdc rom and not mdn.
Sorry.
tvhak said:
thanks going to try that now
---------- Post added at 10:05 AM ---------- Previous post was at 09:53 AM ----------
okay have a problem...
i see the record button when i make a call. but it does nothing
also wanted to ask if there is an option to have it enabled that it records all calls.
there is no settings menu like i had in my s3.
thanks
Click to expand...
Click to collapse
Yes i know. But when i am calling the button lights up. But thats all it does
Can you make one for my phone with the apk i gave you ???
Sent from my GT-I9505 using xda premium
tvhak said:
Yes i know. But when i am calling the button lights up. But thats all it does
Can you make one for my phone with the apk i gave you ???
Sent from my GT-I9505 using xda premium
Click to expand...
Click to collapse
And doesn't shows "recording"?
Check sd-->sound folder. Any file there?
I can't make changes in your file because you upload only apk file and you have stock odex rom. Odex file is needed to baksmali.

[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
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:
.line 1760
:cond_137
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:
.line 1760
:cond_137
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
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]
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!!!
i'll be taking this spot also...
another spot just in case...
Dude!!! Awesome tutorial. :good::good:
Oh mehn nice find....
Sent from my SM-N900T using Tapatalk 4
great stuff!
Is there one for stopping the lockscreen from lighting up with each message received ?
Sent from my SM-N900T using xda app-developers app
Dude you're on fire, you own the note 3 forums!
brock1909 said:
great stuff!
Is there one for stopping the lockscreen from lighting up with each message received ?
Sent from my SM-N900T using xda app-developers app
Click to expand...
Click to collapse
Send yourself a text message the screen shouldnt light up i think its off now by default for the note 3.
Sent from my SM-N900T using Tapatalk 4
marcoxx626 said:
Dude you're on fire, you own the note 3 forums!
Click to expand...
Click to collapse
Heck yeah man and there is more!
Sent from my SM-N900T using Tapatalk 4
jovy23 said:
Send yourself a text message the screen shouldnt light up i think its off now by default for the note 3.
Sent from my SM-N900T using Tapatalk 4
Click to expand...
Click to collapse
Every text I get my screen lights up
Sent from my SM-N900T using xda app-developers app
brock1909 said:
Every text I get my screen lights up
Sent from my SM-N900T using xda app-developers app
Click to expand...
Click to collapse
I will check tonight and see.
Sent from my SM-N900T using Tapatalk 4
jovy23 said:
I will check tonight and see.
Sent from my SM-N900T using Tapatalk 4
Click to expand...
Click to collapse
appreciate it. May flash clean tonight again, getting the same text from people multiple times, extremely annoying
Thanks again for all your hard work
Sent from my SM-N900T using xda app-developers app
My god, I will need 2 or 3 extra lifetimes in order to perform this mods...
Sent from my SM-N900T using XDA Premium 4 mobile app
OP updated! New mod "HOW TO ENABLE THE SCREEN ON/OFF TOGGLE".
Sorry if this is a stupid question, but can someone just post the modded apk?
sbell7105 said:
Sorry if this is a stupid question, but can someone just post the modded apk?
Click to expand...
Click to collapse
I think the reason he didnt post it, is because there are so many variations of things people could want and couldnt want it would be a very high number of APKs
You think you could compile a secmms.apk for me that has
1.Group Messaging
2. Removed sms,mms,email from call logs
3. Screen On/Off Toggle
4.1000 Recipients
I wouldnt mind shooting you over a little donation
I couldnt, for the life of me, figure out the apk decompilers.
Can you write up a tutorial on how to invert the app? Mainly the first page with the list of people who texted you?
Sent from my SM-N900V using xda app-developers app
Brandon_schulze said:
You think you could compile a secmms.apk for me that has
1.Group Messaging
2. Removed sms,mms,email from call logs
3. Screen On/Off Toggle
4.1000 Recipients
I wouldnt mind shooting you over a little donation
I couldnt, for the life of me, figure out the apk decompilers.
Click to expand...
Click to collapse
ditto.

[MOD][GUIDE]Enable Heads Up Notifications

This guide was written based on the Sprint Samsung Galaxy S3 ND8 KitKat stock ROM but with the proper modifications may work for other KitKat ROMs. Please don't ask me to modify this to work with ROM xyz or to compile this for you into a ROM. I won't do it.
Background Info
As you know, Android 4.4 has a heads-up notification feature built in but disabled with no way to enable it from settings. While there are various Xposed modules that will enable this for you as well as give some additional functionality (such as whitelisting), I personally don't use Xposed because it causes conflicts on my ROM so I decided to figure out how to enable it myself. Simply enabling Heads Up notifications caused all sorts of force closes any time an ongoing notification presented itself so that had to be worked out as well.
Requirements
apktool 2.0 beta 9 and the knowledge of how to use it. There are various guides on how to use apktool on XDA. Find one and read it. Make sure to read the information on the apktool site as well since some of the options in 2.0 may be different from the guides you find.
A text editor that supports Unix-style text files. I recommend Notepad++.
Files
You'll be working with the following apks:
SystemUI.apk
SecSettings.apk
SystemUI.apk
Decompile SystemUI.apk using apktool.
Open smali\com\android\systemui\statusbar\BaseStatusBar.smali in your preferred text editor.
Find .method protected shouldInterrupt(Landroid/service/notification/StatusBarNotificationZ.
This method is of no use to us in it's current form and is what causes the force closes/ongoing notification issues so we are going to completely remove it and replace it with the following:
Code:
.method protected shouldInterrupt(Landroid/service/notification/StatusBarNotification;)Z
.locals 12
.param p1, "sbn" # Landroid/service/notification/StatusBarNotification;
.prologue
const/4 v8, 0x0
const/4 v9, 0x1
.line 1292
invoke-virtual {p1}, Landroid/service/notification/StatusBarNotification;->isOngoing()Z
move-result v4
if-nez v4, :cond_0
iget-object v10, p0, Lcom/android/systemui/statusbar/BaseStatusBar;->mPowerManager:Landroid/os/PowerManager;
invoke-virtual {v10}, Landroid/os/PowerManager;->isScreenOn()Z
move-result v1
:goto_0
return v1
:cond_0
move v1, v8
goto :goto_0
.end method
Save the file and recompile SystemUI using apktool. Don't forget to re-sign the APK (either use an APK signer if you have a ROM that has 3rd-party system app signatures enabled or copy the AndroidManifest.xml file and META-INF folder from the original to the new APK).
That's it for SystemUI.apk.
SecSettings.apk
Decompile SecSettings.apk with apktool.
First, we need to add the title and summary for the setting to enable Heads Up notifications. Open res\values\Strings.xml in your preferred text editor.
Add the following lines to the bottom of the file:
Code:
<string name="heads_up">Heads up notifications</string>
<string name="heads_up_desc">Enable heads up notifications</string>
Save the file and close it.
Next we need to add the setting entry. Open res\xml\display_settings.xml in your preferred text editor.
Add the following line underneath your preferred setting category (I chose to place it under "General" in my ROM):
Code:
<CheckBoxPreference android:title="@string/heads_up" android:key="heads_up_setting" android:widgetLayout="@touchwiz:layout/preference_widget_twcheckbox" />
Save the file and close it.
Finally, we will add the code to enable/disable Heads Up notifications. Open smali\com\android\settings\DisplaySettings.smali in your preferred text editor.
Find # instance fields and add the following line (on a new line) somewhere before # direct methods:
Code:
.field private mHeadsUp:Landroid/preference/CheckBoxPreference;
Find .method private updateState()V, then locate the section of code that looks similar to this:
Code:
:cond_0
invoke-direct {p0}, Lcom/android/settings/DisplaySettings;->updateInformativeScreenSummary()V
.line 1374
iget-object v3, p0, Lcom/android/settings/DisplaySettings;->mDisplayBatteryLevel:Landroid/preference/CheckBoxPreference;
invoke-virtual {p0}, Lcom/android/settings/DisplaySettings;->getContentResolver()Landroid/content/ContentResolver;
move-result-object v0
const-string v4, "display_battery_percentage"
invoke-static {v0, v4, v2}, Landroid/provider/Settings$System;->getInt(Landroid/content/ContentResolver;Ljava/lang/String;I)I
move-result v0
if-eqz v0, :cond_2
move v0, v1
:goto_0
invoke-virtual {v3, v0}, Landroid/preference/CheckBoxPreference;->setChecked(Z)V
Your variables (v#'s), conditionals (cond_#'s), gotos (goto_#'s), and .line #'s may differ. Under the line invoke-virtual {v3, v0}, Landroid/preference/CheckBoxPreference;->setChecked(Z)V, add:
Code:
iget-object v3, p0, Lcom/android/settings/DisplaySettings;->mHeadsUp:Landroid/preference/CheckBoxPreference;
invoke-virtual {p0}, Lcom/android/settings/DisplaySettings;->getContentResolver()Landroid/content/ContentResolver;
move-result-object v0
const-string v4, "heads_up_enabled"
invoke-static {v0, v4, v2}, Landroid/provider/Settings$Global;->getInt(Landroid/content/ContentResolver;Ljava/lang/String;I)I
move-result v0
if-eqz v0, :cond_8
move v0, v1
:goto_6
invoke-virtual {v3, v0}, Landroid/preference/CheckBoxPreference;->setChecked(Z)V
You'll want to change the variables to match the ones in the prior code section if they are different for you. Also make sure to change the conditional and goto labels to one hexadecimal numeral higher than the highest one already present in the method (for example, in stock ND8, the highest conditional is cond_7 so we choose cond_8 for the conditional here and the highest goto is goto_5 so we chose goto_6).
Scroll down to the end of the method and add the following above .end method:
Code:
:cond_8
move v0, v2
goto/16 :goto_6
Make sure to change v2 to whatever variable is defined at the beginning of the method as 0x0 (ie. const/4 v2, 0x0 in this case).
Find .method public onCreate(Landroid/os/BundleV, then locate the section of code that looks similar to the following:
Code:
const-string v0, "display_battery_level"
invoke-virtual {p0, v0}, Lcom/android/settings/DisplaySettings;->findPreference(Ljava/lang/CharSequence;)Landroid/preference/Preference;
move-result-object v0
check-cast v0, Landroid/preference/CheckBoxPreference;
iput-object v0, p0, Lcom/android/settings/DisplaySettings;->mDisplayBatteryLevel:Landroid/preference/CheckBoxPreference;
Again, your variables (v#'s) may differ. Beneath the line iput-object v0, p0, Lcom/android/settings/DisplaySettings;->mDisplayBatteryLevel:Landroid/preference/CheckBoxPreference;, add the following:
Code:
const-string v0, "heads_up_setting"
invoke-virtual {p0, v0}, Lcom/android/settings/DisplaySettings;->findPreference(Ljava/lang/CharSequence;)Landroid/preference/Preference;
move-result-object v0
check-cast v0, Landroid/preference/CheckBoxPreference;
iput-object v0, p0, Lcom/android/settings/DisplaySettings;->mHeadsUp:Landroid/preference/CheckBoxPreference;
Make sure to change the variable #'s to match the ones in the prior code section.
Find .method public onPreferenceTreeClick(Landroid/preference/PreferenceScreen;Landroid/preference/PreferenceZ and locate the section of code that looks similar to:
Code:
:cond_a
iget-object v0, p0, Lcom/android/settings/DisplaySettings;->mDisplayBatteryLevel:Landroid/preference/CheckBoxPreference;
invoke-virtual {p2, v0}, Ljava/lang/Object;->equals(Ljava/lang/Object;)Z
move-result v0
if-eqz v0, :cond_c
.line 1530
iget-object v0, p0, Lcom/android/settings/DisplaySettings;->mDisplayBatteryLevel:Landroid/preference/CheckBoxPreference;
invoke-virtual {v0}, Landroid/preference/CheckBoxPreference;->isChecked()Z
move-result v0
.line 1531
invoke-virtual {p0}, Lcom/android/settings/DisplaySettings;->getContentResolver()Landroid/content/ContentResolver;
move-result-object v1
const-string v4, "display_battery_percentage"
if-eqz v0, :cond_b
move v3, v2
:cond_b
invoke-static {v1, v4, v3}, Landroid/provider/Settings$System;->putInt(Landroid/content/ContentResolver;Ljava/lang/String;I)Z
goto :goto_3
.line 1533
:cond_c
As usual, your variables (v#'s), conditionals (cond_#'s), gotos (goto_#'s), and .line #'s may differ. Under :cond_c, add the following:
Code:
iget-object v0, p0, Lcom/android/settings/DisplaySettings;->mHeadsUp:Landroid/preference/CheckBoxPreference;
invoke-virtual {p2, v0}, Ljava/lang/Object;->equals(Ljava/lang/Object;)Z
move-result v0
if-eqz v0, :cond_2b
.line 1530
iget-object v0, p0, Lcom/android/settings/DisplaySettings;->mHeadsUp:Landroid/preference/CheckBoxPreference;
invoke-virtual {v0}, Landroid/preference/CheckBoxPreference;->isChecked()Z
move-result v0
.line 1531
invoke-virtual {p0}, Lcom/android/settings/DisplaySettings;->getContentResolver()Landroid/content/ContentResolver;
move-result-object v1
const-string v4, "heads_up_enabled"
if-eqz v0, :cond_2c
move v3, v2
:cond_2c
invoke-static {v1, v4, v3}, Landroid/provider/Settings$Global;->putInt(Landroid/content/ContentResolver;Ljava/lang/String;I)Z
goto/16 :goto_3
:cond_2b
Again, you'll want to change the variables to match the ones in the prior code section if they are different for you and make sure to change the conditional labels to one hexadecimal numeral higher than the highest one already present in the method. Change the goto/16 :goto_3 to match the one in the previous code section.
Save the file and close it.
That's it for SecSettings.apk. Recompile and re-sign it.
Install both files to your phone using your preferred method. You should already know this but I'll say it anyway, THESE FILES CANNOT BE INSTALLED LIKE NORMAL SIDE-LOADED APKs. I prefer to reboot to recovery and use ADB to push the files to the system, but you can use whatever method is easiest for you (ie. Aroma file manager, flashable zip, etc.).
So I guess those of us that aren't very good at this will have to wait then? Lol
Sent from my SPH-L710 using Tapatalk
Great tutorial man! Thank you looking forward to add this to all my releases soon. Great job!
Great, it compiles without mistakes with Dn3 4.4.2 for N7105, but I was playing with my 4 years old daughter and I'm sure something will be wrong, lol!
I just had to use cond 8 instead of 7, but I will report very likely my failure... It will take longer for me to let it work.
Anyway, it is a very useful tutorial and it's the only one here.
Mismatch?
I think there is a typo in the code for statusbar, it says mismatched input "p1" expecting END_METHOD_DIRECTIVE
I took this one from your original code (the one inside your rom) and it compiles fine
.method protected shouldInterrupt(Landroid/service/notification/StatusBarNotificationZ
.locals 12
.parameter "sbn"
.prologue
const/4 v8, 0x0
const/4 v9, 0x1
.line 1292
invoke-virtual {p1}, Landroid/service/notification/StatusBarNotification;->isOngoing()Z
move-result v4
if-nez v4, :cond_0
iget-object v10, p0, Lcom/android/systemui/statusbar/BaseStatusBar;->mPowerManager:Landroid/os/PowerManager;
invoke-virtual {v10}, Landroid/os/PowerManager;->isScreenOn()Z
move-result v1
:goto_0
return v1
:cond_0
move v1, v8
goto :goto_0
.end method
I will re-check the next steps, because last night I was unable to get everything working (I am not a dev).
Thanks again.
lucaoldb said:
I think there is a typo in the code for statusbar, it says mismatched input "p1" expecting END_METHOD_DIRECTIVE
I took this one from your original code (the one inside your rom) and it compiles fine
.method protected shouldInterrupt(Landroid/service/notification/StatusBarNotificationZ
.locals 12
.parameter "sbn"
.prologue
const/4 v8, 0x0
const/4 v9, 0x1
.line 1292
invoke-virtual {p1}, Landroid/service/notification/StatusBarNotification;->isOngoing()Z
move-result v4
if-nez v4, :cond_0
iget-object v10, p0, Lcom/android/systemui/statusbar/BaseStatusBar;->mPowerManager:Landroid/os/PowerManager;
invoke-virtual {v10}, Landroid/os/PowerManager;->isScreenOn()Z
move-result v1
:goto_0
return v1
:cond_0
move v1, v8
goto :goto_0
.end method
I will re-check the next steps, because last night I was unable to get everything working (I am not a dev).
Thanks again.
Click to expand...
Click to collapse
The code in the guide is taken straight from my ROM. All this method does is check to see if the notification is ongoing or not, then check to make sure the screen is on. also, I highly recommend using the latest version of apktool.
First of all, thank you.
I still have to edit the files by myself, but I have tested both your system ui and your secsettings on to the rom I am using (Dn3 4.4.2 for N7105) and they work fine, including heads up notifications... So I will keep these settings for some days, until I have the time to learn more about this matter.
Btw, I will try some of yor themed apps I found inside your rom, which are very good looking.
So what does the hud look like and how does it work? Not familiar with it.
Sent from my SPH-L710 using Tapatalk
Works great. Thank you moonknightus
Deleted
marcran75 said:
Deleted
Click to expand...
Click to collapse
???
Sent from my SPH-L710 using Tapatalk
Just an fyi, I just tried this on the S5 stock touchwiz (which is 4.4.2). I get an error when trying to compile SecSettings.apk.
Code:
I: Smaling smali folder into classes.dex...
..\_WorkArea1\_working\SecSettings.apk\smali\com\android\settings\DisplaySettings.smali[2936,4] There is already a label with that name.
Exception in thread "main" brut.androlib.AndrolibException: Could not smali file: com/android/settings/DisplaySettings.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:358)
at brut.androlib.Androlib.buildSources(Androlib.java:298)
at brut.androlib.Androlib.build(Androlib.java:284)
at brut.androlib.Androlib.build(Androlib.java:258)
at brut.apktool.Main.cmdBuild(Main.java:240)
at brut.apktool.Main.main(Main.java:89)
It seems like the method or something is already being duplicated. SystemUI recompiled perfectly.
tp2215 said:
Just an fyi, I just tried this on the S5 stock touchwiz (which is 4.4.2). I get an error when trying to compile SecSettings.apk.
Code:
I: Smaling smali folder into classes.dex...
..\_WorkArea1\_working\SecSettings.apk\smali\com\android\settings\DisplaySettings.smali[2936,4] There is already a label with that name.
Exception in thread "main" brut.androlib.AndrolibException: Could not smali file: com/android/settings/DisplaySettings.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:358)
at brut.androlib.Androlib.buildSources(Androlib.java:298)
at brut.androlib.Androlib.build(Androlib.java:284)
at brut.androlib.Androlib.build(Androlib.java:258)
at brut.apktool.Main.cmdBuild(Main.java:240)
at brut.apktool.Main.main(Main.java:89)
It seems like the method or something is already being duplicated. SystemUI recompiled perfectly.
Click to expand...
Click to collapse
Either a goto or a conditional label is being duplicated. Reread the instructions paying attention to the part that says to adjust the labels accordingly. The S3 and S5 use very similar code but by no means is it identical.
Thanks moonknightus for this guide. I manage to apply this mod to my tablet.:good: .Now my only problem is your other mod.
@moonknightus please check your PM sir
Do I actually need to sign the apks our can I just use them once they are modified
Sent from my SPH-L710 using Tapatalk
bigwillyg said:
Do I actually need to sign the apks our can I just use them once they are modified
Sent from my SPH-L710 using Tapatalk
Click to expand...
Click to collapse
Either use an APK signer if you have a ROM that has 3rd-party system app signatures enabled or copy the AndroidManifest.xml file and META-INF folder from the original to the new APK.As stated by moonknightus in his other thread.
filchi756 said:
Either use an APK signer if you have a ROM that has 3rd-party system app signatures enabled or copy the AndroidManifest.xml file and META-INF folder from the original to the new APK.As stated by moonknightus in his other thread.
Click to expand...
Click to collapse
Ah gotcha. Thanks
Sent from my SPH-L710 using Tapatalk
Shouldn't this be :cond_8?
Code:
[COLOR="Red"]:cond_7
[/COLOR] move v0, v2
goto/16 :goto_6
tdunham said:
Shouldn't this be :cond_8?
Code:
[COLOR="Red"]:cond_7
[/COLOR] move v0, v2
goto/16 :goto_6
Click to expand...
Click to collapse
Yup

[GUIDE][PORT] [cm11] Dinamic statusbar

what is Dinamic statusbar??
can you see here
or here my original facebook post​
i comparing from another rom include this feature to pure CM11 base
big thanks to
Allah swt
my family
CyanogenMod
@ocoot
@bamzzz
@qoejohn
prabu siliwangi
anggi muhammad
syaeful anwar
deddy kitul
you
REQUIREMENT:
- BRAIN
- Patient
- experience
- Know how to decompile/recompiling Apk and JAR file
- notepad++
- Tool for decompiling, : apkmanager/apktool/Virtous/apkmultitools/ or else ( i use apktool 1.5.2 )
download file recources below
Settings.apk
Decompile Settings.apk
add string
Code:
<string name="dynamic_system_bars_title">Dynamic system bars</string>
<string name="dynamic_status_bar_title">Dynamic status bar</string>
<string name="dynamic_status_bar_summary">Automatically update the background of the status bar</string>
<string name="dynamic_navigation_bar_title">Dynamic navigation bar</string>
<string name="dynamic_navigation_bar_summary">Automatically update the background of the navigation bar</string>
<string name="dynamic_system_bars_gradient_title">System bar gradient</string>
<string name="dynamic_system_bars_gradient_summary">Overlay a gradient on the system bars</string>
<string name="dynamic_status_bar_filter_title">Darker status bar</string>
<string name="dynamic_status_bar_filter_summary">Overlay a darkening filter on the status bar</string>
open
res/xml/display_settings.xml
add wherever you want
Code:
<PreferenceScreen android:title="Dinamic Status Bar" android:fragment="com.android.settings.oplosandev.DSBSettings" />
place DSBSettings.smali into folder "smali" ,after recompile and decompile automatic place directories name smali
Recompile
Decompile
open
DSBSettings.smali
matched
const v0, 0x7f050071 #type="xml" name="dsb_settings"
Recompile
sign
push
SystemUI.apk
decompile SystemUI
open
Lcom/android/systemui/statusbar/phone/PhoneStatusBarTransitions.smali
find
Code:
# instance fields
add above
Code:
# annotations
.annotation system Ldalvik/annotation/MemberClasses;
value = {
Lcom/android/systemui/statusbar/phone/PhoneStatusBarTransitions$1;,
Lcom/android/systemui/statusbar/phone/PhoneStatusBarTransitions$GradientObserver;,
Lcom/android/systemui/statusbar/phone/PhoneStatusBarTransitions$PhoneStatusBarBackgroundDrawable;
}
.end annotation
findmethod
Code:
.method public constructor <init>(Lcom/android/systemui/statusbar/phone/PhoneStatusBarView;)V
replace with
Code:
.method public constructor <init>(Lcom/android/systemui/statusbar/phone/PhoneStatusBarView;)V
.locals 4
.parameter "view"
.prologue
const/4 v3, 0x1
.line 47
new-instance v1, Lcom/android/systemui/statusbar/phone/PhoneStatusBarTransitions$PhoneStatusBarBackgroundDrawable;
invoke-virtual {p1}, Lcom/android/systemui/statusbar/phone/PhoneStatusBarView;->getContext()Landroid/content/Context;
move-result-object v2
invoke-direct {v1, v2}, Lcom/android/systemui/statusbar/phone/PhoneStatusBarTransitions$PhoneStatusBarBackgroundDrawable;-><init>(Landroid/content/Context;)V
invoke-direct {p0, p1, v1}, Lcom/android/systemui/statusbar/phone/BarTransitions;-><init>(Landroid/view/View;Lcom/android/systemui/statusbar/phone/BarTransitions$BarBackgroundDrawable;)V
.line 48
iput-object p1, p0, Lcom/android/systemui/statusbar/phone/PhoneStatusBarTransitions;->mView:Lcom/android/systemui/statusbar/phone/PhoneStatusBarView;
.line 49
iget-object v1, p0, Lcom/android/systemui/statusbar/phone/PhoneStatusBarTransitions;->mView:Lcom/android/systemui/statusbar/phone/PhoneStatusBarView;
invoke-virtual {v1}, Lcom/android/systemui/statusbar/phone/PhoneStatusBarView;->getContext()Landroid/content/Context;
move-result-object v1
invoke-virtual {v1}, Landroid/content/Context;->getResources()Landroid/content/res/Resources;
move-result-object v0
.line 50
.local v0, res:Landroid/content/res/Resources;
const v1, 0x7f0b002b [COLOR="Red"]#type="dimen" name="status_bar_icon_drawing_alpha"[/COLOR]
invoke-virtual {v0, v1, v3, v3}, Landroid/content/res/Resources;->getFraction(III)F
move-result v1
iput v1, p0, Lcom/android/systemui/statusbar/phone/PhoneStatusBarTransitions;->mIconAlphaWhenOpaque:F
.line 51
return-void
.end method
skip this step if in your have it
add this
dimens.xml
Code:
<item type="dimen" name="status_bar_icon_drawing_alpha">75.0%</item>
colors.xml
Code:
<color name="status_bar_background_opaque">#ff000000</color>
<color name="status_bar_background_semi_transparent">#66000000</color>
intergers.xml
Code:
<integer name="dsb_transition_duration">500</integer>
push smali
recoompile
decompile
open public.xml
and matched all id
Lcom/android/systemui/statusbar/phone/PhoneStatusBarTransitions$PhoneStatusBarBackgroundDrawable.smali
Code:
const v1, 0x7f07000a #type="color" name="status_bar_background_opaque"
const v3, 0x7f07000b #type="color" name="status_bar_background_semi_transparent"
const v4, 0x7f0201dd #type="drawable" name="status_background"
Lcom/android/systemui/statusbar/phone/BarTransitions$BarBackgroundDrawable.smali
Code:
const v1, 0x7f090015 #type="integer" name="dsb_transition_duration"
Navbar
open
Lcom/android/systemui/statusbar/phone/NavigationBarTransitions;
find code
Code:
# instance fields
.field private final mBarService:Lcom/android/internal/statusbar/IStatusBarService;
add above
Code:
# annotations
.annotation system Ldalvik/annotation/MemberClasses;
value = {
Lcom/android/systemui/statusbar/phone/NavigationBarTransitions$GradientObserver;,
Lcom/android/systemui/statusbar/phone/NavigationBarTransitions$NavigationBarBackgroundDrawable;
}
.end annotation
find
Code:
.method public constructor
change like it
Code:
# direct methods
.method public constructor <init>(Lcom/android/systemui/statusbar/phone/NavigationBarView;)V
.locals 3
.parameter "view"
.prologue
.line 50
new-instance v0, Lcom/android/systemui/statusbar/phone/NavigationBarTransitions$NavigationBarBackgroundDrawable;
invoke-virtual {p1}, Lcom/android/systemui/statusbar/phone/NavigationBarView;->getContext()Landroid/content/Context;
move-result-object v1
invoke-direct {v0, v1}, Lcom/android/systemui/statusbar/phone/NavigationBarTransitions$NavigationBarBackgroundDrawable;-><init>(Landroid/content/Context;)V
invoke-direct {p0, p1, v0}, Lcom/android/systemui/statusbar/phone/BarTransitions;-><init>(Landroid/view/View;Lcom/android/systemui/statusbar/phone/BarTransitions$BarBackgroundDrawable;)V
.line 242
new-instance v0, Lcom/android/systemui/statusbar/phone/NavigationBarTransitions$2;
invoke-direct {v0, p0}, Lcom/android/systemui/statusbar/phone/NavigationBarTransitions$2;-><init>(Lcom/android/systemui/statusbar/phone/NavigationBarTransitions;)V
iput-object v0, p0, Lcom/android/systemui/statusbar/phone/NavigationBarTransitions;->mLightsOutListener:Landroid/view/View$OnTouchListener;
.line 52
iput-object p1, p0, Lcom/android/systemui/statusbar/phone/NavigationBarTransitions;->mView:Lcom/android/systemui/statusbar/phone/NavigationBarView;
.line 53
const-string v0, "statusbar"
invoke-static {v0}, Landroid/os/ServiceManager;->getService(Ljava/lang/String;)Landroid/os/IBinder;
move-result-object v0
invoke-static {v0}, Lcom/android/internal/statusbar/IStatusBarService$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/statusbar/IStatusBarService;
move-result-object v0
iput-object v0, p0, Lcom/android/systemui/statusbar/phone/NavigationBarTransitions;->mBarService:Lcom/android/internal/statusbar/IStatusBarService;
.line 55
return-void
.end method
save
open
Lcom/android/systemui/statusbar/phone/NavigationBarView$StatusBarBlockerTransitions;
find
Code:
.method public constructor
change to
Code:
# direct methods
.method public constructor <init>(Landroid/view/View;)V
.locals 5
.parameter "statusBarBlocker"
.prologue
.line 1268
new-instance v0, Lcom/android/systemui/statusbar/phone/BarTransitions$BarBackgroundDrawable;
invoke-virtual {p1}, Landroid/view/View;->getContext()Landroid/content/Context;
move-result-object v1
const v2, 0x7f07000a #type="color" name="status_bar_background_opaque"
const v3, 0x7f07000b #type="color" name="status_bar_background_semi_transparent"
const v4, 0x7f0201dd #type="drawable" name="status_background"
invoke-direct {v0, v1, v2, v3, v4}, Lcom/android/systemui/statusbar/phone/BarTransitions$BarBackgroundDrawable;-><init>(Landroid/content/Context;III)V
invoke-direct {p0, p1, v0}, Lcom/android/systemui/statusbar/phone/BarTransitions;-><init>(Landroid/view/View;Lcom/android/systemui/statusbar/phone/BarTransitions$BarBackgroundDrawable;)V
.line 1273
return-void
.end method
and matched all id
Code:
const v2, 0x7f07000a #type="color" name="status_bar_background_opaque"
const v3, 0x7f07000b #type="color" name="status_bar_background_semi_transparent"
const v4, 0x7f0201dd #type="drawable" name="status_background"
do enabling navigation bar via build.prop
add this code at ADDITIONAL_BUILD_PROPERTIES
Code:
qemu.hw.mainkeys=0
push
Settings.apk /system/priv-app/here
SystemUI.apk /system/priv-app/here
systemui.so /system/lib/here
or other way, u can try methode flasahble.zip,adb,or other
Hi will it work in gingerbread phones? coz my systemui does not have phone folder under com/android/systemui/statusbar/
RESERVED !!!
nice share omm...
Jedz77 said:
Hi will it work in gingerbread phones? coz my systemui does not have phone folder under com/android/systemui/statusbar/
Click to expand...
Click to collapse
cm11 only.....
stock kk adjust
dugeriss said:
cm11 only.....
stock kk adjust
Click to expand...
Click to collapse
oh my bad. sorry. i really like it though. anyways thanks maan nice mod btw
dugeriss said:
what is Dinamic statusbar??
can you see here
or here my original facebook post​
i comparing from another rom include this feature to pure CM11 base
big thanks to
Allah swt
my family
CyanogenMod
@ocoot
@bamzzz
@qoejohn
prabu siliwangi
anggi muhammad
syaeful anwar
deddy kitul
you
REQUIREMENT:
- BRAIN
- Patient
- experience
- Know how to decompile/recompiling Apk and JAR file
- notepad++
- Tool for decompiling, : apkmanager/apktool/Virtous/apkmultitools/ or else ( i use apktool 1.5.2 )
download file recources below
Click to expand...
Click to collapse
Hey Great Guide!!Thank you for the willingness!Please could you make a guide on how to port Hover to cm11 ?Please it's so important for me and I've searched so many times on web but I haven't found nothing and I don't know how to do it,Please
ah..... great work sir :good: :fingers-crossed:
kitul..!!
Nice :good:
Ahmm .. Sir... I tried This one on cm11 ... but it doesnt force closes .. rather it gets black screen? i tried your guide twice .. but the same thing happens.. Please Help... BTw this guide is good
Thanks...
my Stock Kitkat 4.4.2 :good:
Can someone help me to upload cm 11 r26 statusbar without sim number indicator ??, my pc Hard disk got broken , lost all data, thanks
Thank you sir ,,
Micky99 said:
Hey Great Guide!!Thank you for the willingness!Please could you make a guide on how to port Hover to cm11 ?Please it's so important for me and I've searched so many times on web but I haven't found nothing and I don't know how to do it,Please
Click to expand...
Click to collapse
Hover is not easy because it gas so many commits with many additions and a lot of files changed
srisurya95 said:
Hover is not easy because it gas so many commits with many additions and a lot of files changed
Click to expand...
Click to collapse
Should I see your answer as a "no I won't help you",or do you mean you want to help me but it won't be easy?What's the problem?Do you think the hover related commits are too much for only two persons?
Micky99 said:
Should I see your answer as a "no I won't help you",or do you mean you want to help me but it won't be easy?What's the problem?Do you think the hover related commits are too much for only two persons?
Click to expand...
Click to collapse
I say its not possible/not so easy
srisurya95 said:
I say its not possible/not so easy
Click to expand...
Click to collapse
Dont you absolutely know some of the hover related commits?

Categories

Resources