2012年10月20日 星期六

[Galaxy S III ] 教你製作簡訊破解

[GUIDE] 
其實我自己根本沒在使用簡訊冏  不知道為何幹嘛要研究這個 冏~
後來我終於發現,其實我原本的破解方法,它本來就不應該只有10則
全是因為csc裡面的customer.xml有關sms的部份寫死了10page的關係。
S pack所使用的csc部分是之前就引用Espower大的檔案。
所以就是這樣,不解釋了。

主要是破解下面三種功能

- 簡訊解除原廠最多10人限制  [破解究竟上限幾位我沒測試] 
歡迎有測試的朋友留言告知我究竟可以一次傳給幾個人為上限
我的聯絡人只有120多位而已,測試過ok,但是人太多的話,會造成讀取lag
所以自己要留心。

- SMS打中文是第30則之後才會轉成MMS [ 不知道如何200則]
SMS打英文是第14則之後才會轉成MMS [ 不知道如何200則]
xda上目前無人教學s3的部份,我是自己用  比對  的方式去辛苦來的....這超辛苦
目前有的寫Disable SMS to MMS conversion,其實也只是在4則要跳第5則的時候
彈訊息告知你已經達文字的上限,也就是你無法再輸入文字了,這就是他的意思
這種功能S Pack也是有的, 所以如果你有刷的話, 搭配我新的簡訊破解, 打中文字的話
是可以到第30則剩下10個字就滿了, 就會告知你已經達文字的上限, 無法再輸入文字。
就不會轉MMS。這樣已經有2090個中文字可以打,相當的多,應該可以滿足了。
如果是打英文數字這種的,每則是160,只能打到第14則又18個字,160x13+18
相當2098個字。(x13是因為它只是顯示第14則,不表示你已經輸入到14則全部了)

- 訊息接受時間 改成"對方"傳送時間 [這個測試過確定可以正常]

其實不是從  /res/xml/mms_config.xml去修改的
而是改 /smali/com/android/mms下的MmsConfig.smali
以及 mms/transaction下 的SmsReceiverService.smali
這兩個檔案。

SmsReceiverService.smali 是修改接受時間改為傳送時間
MmsConfig.smali 是修改收件人的限制跟禁止轉MMS

假設你已經懂如何編譯以及反編譯了....如果不會,又想學...
請到  Mobile01  最高大樓  找高手 ,  第一樓就會有引導教學

SmsReceiverService.smali這部份我是從xda上面的S2文章得來的修改
MmsConfig.smali這個就真的是我自己研究數小時得來, 測試起來也有成功



只需要改紅色部分


>>>>> 接受時間改發送時間

.line 1389
    :cond_7
    const-string v3, "date"

    invoke-virtual {p1}, Landroid/telephony/SmsMessage;->getTimestampMillis()J
    
      
--------------
const-string v8, "CBmessages"

    invoke-static {v8}, Ljava/lang/String;->valueOf(Ljava/lang/Object;)Ljava/lang/String;

    move-result-object v8

    invoke-virtual {v6, v7, v8}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/String;)V

    .line 1640
    const-string v7, "date"

    invoke-virtual {v0}, Landroid/telephony/gsm/CbMessage;->getTimestampMillis()J
    
    
    
    

>>>>>>>>>>>>>>>>禁止4則後轉MMS


sput v1, Lcom/android/mms/MmsConfig;->mSmsToMmsTextThreshold:I

.line 1721 改 const/4 v2, 0x4

    const-string v1, "Mms/MmsConfig"
    
    
    
    
.line 153
    sput-boolean v2, Lcom/android/mms/MmsConfig;->mAllowAttachAudio:Z

.line 156
const/4 v0, 0x4    
上面這兩行 改  const/16 v0, 0xc8

    sput v0, Lcom/android/mms/MmsConfig;->mSmsToMmsTextThreshold:I

.line 166 改 const/4 v0, 0x4

    sput-boolean v2, Lcom/android/mms/MmsConfig;->mEnableMultipartSMS:Z    
    
    


>>>>>>>>>>>>>>>>>無限接受人

.method public static getRecipientLimit()I
    .locals 1

    .prologue
    .line 633
 const/16 v0, 0xc8 改 sget v0, Lcom/android/mms/MmsConfig;->mRecipientLimit:I

    return v0
.end method



.method public static getMmsMaxRecipient()I
    .locals 1

    .prologue
    .line 2349
const/16 v0, 0xc8 改 sget v0, Lcom/android/mms/MmsConfig;->mMmsRecipientLimit:I

    return v0
.end method



 sput v0, Lcom/android/mms/MmsConfig;->mMaxImageWidthRestrictedMode:I

    .line 145 改 const/16 v6, 0xc8

    下一行改  sput v6, Lcom/android/mms/MmsConfig;->mRecipientLimit:I

    .line 146
    const/16 v0, 0xc8

    sput v0, Lcom/android/mms/MmsConfig;->mDefaultSMSMessagesPerThread:I

    .line 147
    const/16 v0, 0x14



###新增

.line 1720
    const-string v1, "pref_key_threshold"

    const/4 v2, 0x4改const/16 v2, 0xc8

    invoke-interface {v0, v1, v2}, Landroid/content/SharedPreferences;->getInt(Ljava/lang/String;I)I





以下補上 4.1.2 的部份



4.1.2

>>>>> 接受時間改發送時間


.line 1390
    :cond_7
    const-string v3, "date"

    invoke-virtual {p1}, Landroid/telephony/SmsMessage;->getTimestampMillis()J



.line 1641
    const-string v7, "date"

    invoke-virtual {v0}, Landroid/telephony/gsm/CbMessage;->getTimestampMillis()J




>>>>>>>>>>>>>>>>禁止4則後轉MMS


sput v1, Lcom/android/mms/MmsConfig;->mSmsToMmsTextThreshold:I

    .line 1708改const/4 v2, 0x4
    const-string v1, "Mms/MmsConfig"



.line 154
    sput-boolean v2, Lcom/android/mms/MmsConfig;->mAllowAttachAudio:Z

    .line 157
    const/4 v0, 0x4
    上面這兩行改const/16 v0, 0xc8

    sput v0, Lcom/android/mms/MmsConfig;->mSmsToMmsTextThreshold:I


.line 167改const/4 v0, 0x4

    sput-boolean v2, Lcom/android/mms/MmsConfig;->mEnableMultipartSMS:Z



>>>>>>>>>>>>>>>>>無限接受人


.method public static getRecipientLimit()I
    .locals 1

    .prologue
    .line 634
    const/16 v0, 0xc8改sget v0, Lcom/android/mms/MmsConfig;->mRecipientLimit:I

    return v0
.end method



.method public static getMmsMaxRecipient()I
    .locals 1

    .prologue
    .line 2336
    const/16 v0, 0xc8改sget v0, Lcom/android/mms/MmsConfig;->mMmsRecipientLimit:I

    return v0
.end method



-------最後

    sput v0, Lcom/android/mms/MmsConfig;->mMaxImageWidthRestrictedMode:I

    .line 146
    const/16 v0, 0xc8

    sput v0, Lcom/android/mms/MmsConfig;->mRecipientLimit:I

    .line 147
    sput v0, Lcom/android/mms/MmsConfig;->mDefaultSMSMessagesPerThread:I

    .line 148
    const/16 v0, 0x14


全部換成

    sput v0, Lcom/android/mms/MmsConfig;->mMaxImageWidthRestrictedMode:I

    const/16 v6, 0xc8

    sput v6, Lcom/android/mms/MmsConfig;->mRecipientLimit:I

    .line 147
    const/16 v0, 0xc8

    sput v0, Lcom/android/mms/MmsConfig;->mDefaultSMSMessagesPerThread:I

    .line 148
    const/16 v0, 0x14



###新增
.line 1720
    const-string v1, "pref_key_threshold"

    const/4 v2, 0x4改const/16 v2, 0xc8

    invoke-interface {v0, v1, v2}, Landroid/content/SharedPreferences;->getInt(Ljava/lang/String;I)I





=====
以下部分可以檢查看看,如果已經是了,就不需要修改。


sput-boolean v2, Lcom/android/mms/MmsConfig;->mEnableEmoji:Z

sput-boolean v1, Lcom/android/mms/MmsConfig;->mEnableEmoji:Z


sput-boolean v2, Lcom/android/mms/MmsConfig;->mDisableConvertingEffectBetweenSMSMMS:Z

sput-boolean v1, Lcom/android/mms/MmsConfig;->mDisableConvertingEffectBetweenSMSMMS:Z



---

 sget-boolean v0, Lcom/android/mms/MmsConfig;->mMmsEnabled:Z

    if-nez v0, :cond_0

    .line 1355
    const/4 v0, 0x1

    .line 1357
    :goto_0
    return v0

    :cond_0
    const/4 v0, 0x1改下面這行
sget-boolean v0, Lcom/android/mms/MmsConfig;->mDisableConvertingEffectBetweenSMSMMS:Z



    goto :goto_0
.end method

.method public static getDisableEnterKeyInput()Z

----
----

.method public static getEnableEmoji()Z
    .locals 1

    .prologue
    .line 749
    const/4 v0, 0x1改sget-boolean v0, Lcom/android/mms/MmsConfig;->mEnableEmoji:Z

    return v0
.end method

.method public static getEnableEmptySms()Z

------
------

.local v1, cscFeature:Lcom/sec/android/app/CscFeature;
    const-string v9, "CscFeature_Message_EnableLocalSymbolTable"

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

    move-result v9

    const/4 v9, 0x1刪除

    sput-boolean v9, Lcom/android/mms/MmsConfig;->mEnableEmoji:Z

------
------
const-string v9, "CscFeature_Message_MaxRecipientLengthAs"

    invoke-virtual {v1, v9}, Lcom/sec/android/app/CscFeature;->getInteger(Ljava/lang/String;)I

    move-result v9

    const/16 v9, 0xc8刪除

    sput v9, Lcom/android/mms/MmsConfig;->mMaxRecipientLength:I
  


1 則留言:

  1. 可以請問dingdingc大大
    我自己學編譯後的問題
    我用原本沒有簡訊破解的SecMms下去改
    破解禁止四則後轉多媒體訊息這部分
    我改成功修改要反編譯之後產生SecMms資料夾多了dist 跟build
    不曉得下一步動作是什麼才能完全破解成功放到手機
    不曉得dingdingc大大有沒有空幫我解答
    但還是希望能教我這部分

    回覆刪除

任何問題請一律至粉絲專頁PO,這邊我一律看見都刪除~謝謝