Mms.apkの変更

またまた、Nexus S ネタです。
年末のフォント変更に続いて、某社のMMSを送受信できるようにしたいと思い、参考になる情報を求めてネットを探してみたところ、先人の方々の情報が結構でてきましたので、即行動を起こしました。
情報によると次のような感じでした。

  1. Mms.apk を本体から次のようなコマンドでPCにもってくる。
    adb pull /system/app/Mms.apk
  2. apktool を使って、Mms.apk を分解
    apktool d Mms.apk
  3. 分解した Mmsresxmlmms_config.xml のUser Agentを適切な名前に変更する。
    ちなみに、もともとの mms_config.xml は次のとおりでした。

    <?xml version="1.0" encoding="utf-8"?>
    <mms_config version="3">
    <int name="maxMessageSize">307200</int>
    <int name="maxImageHeight">1000</int>
    <int name="maxImageWidth">1296</int>
    <string name="userAgent">nexuss</string>
    <string name="uaProfUrl">http://wap.samsungmobile.com/uaprof/nexuss.xml</string>
    </mms_config>
  4. apktoolを使って、Mmsを再構築する。
    apktool b Mms
  5. Mms.apkを7-zipなどで開いて、元の resxmlmms_config.xml を Mmsbuildapkresxmlmms_config.xml に置き換える。
  6. 置き換えたMms.apk に署名を行う。
    java -jar SignApk.jar certificate.pem key.pk8 Mms.apk Mms_signed.apk
    certificate.pem : 自己署名証明書ファイル
    key.pk8 : pkcs#8形式の秘密鍵ファイル
    Mms.apk : 署名前の Mms.apk ファイル
    Mms_signed.apk : 署名後の Mms.apk ファイル
  7. 署名を行った Mms.apk を元に戻す。
    adb push Mms.apk /system/app/Mms.apk