にゃののん日記

2015-04-23 (木)

[] Galaxy Nexusのセルスタンバイ対策をやってみる

Google公式グローバルファームウェアであるAndroid 4.3(JWR66Y)のセルスタンバイ対策何となくやってみた。

対策

IIJmioデータ通信専用SIMデータ通信そのものは問題なく可能だけど、アンテナピクトやデータ通信ピクトは白い三角の枠のみで何も表示されず、キャリア等の表示も緊急通報のみ-NTT DOCOMOとなっている。クイック設定パネルのモバイルネットワーク表示は白い三角の枠のみで通信サービスはありませんと表示されている。また、電池のセルスタンバイの圏外時間が100%となっている。

対策手順

Galaxy Nexusブートローダモードで起動してAndroid SDKインストールされたPCUSB接続して、以下の手順でframework-res.apkのbools.xmlにあるconfig_voice_capableをtrueからfalseに書き換えることで通話機能無効にする。必要ファイル群はコマンドを見て適宜予め準備しておく。

  1. fastboot boot recovery-clockwork-6.0.4.7-maguro.img」でCWMを起動する
  2. CWMが起動したら「mounts and storage」→「mount /system」→「+++++Go Back+++++」で/systemをマウントする
  3. adb pull /system/framework/framework-res.apk」でframework-res.apkPC転送する
  4. java -jar apktool_2.0.0rc4.jar d framework-res.apk」でframework-res.apkを展開する
  5. メモ帳などで「framework-res\res\values\bools.xml」の「<bool name="config_voice_capable">true</bool>」を「<bool name="config_voice_capable">false</bool>」に書き換える
  6. java -jar apktool_2.0.0rc4.jar b framework-res」でframework-resを再生成する
  7. 「COPY framework-res\build\apk\resources.arsc」で再生成されたresources.arscをカレントディレクトリコピーする
  8. 「COPY framework-res.apk framework-res.zip」でframework-res.apkzipファイルとしてカレントディレクトリコピーする
  9. 7za u -mx=0 framework-res.zip resources.arsc」で7-Zipコマンドラインバージョンを使ってframework-res.zipにresources.arscを無圧縮で上書きする
  10. 念の為に「zipalign -f 4 framework-res.zip framework-res_new.apk」で32ビット単位の位置合わせを行う(しなくても、まあ大丈夫だと思う)
  11. adb push framework-res_new.apk /system/framework/framework-res.apk」で書き換えたframework-res.apkGalaxy Nexus転送する
  12. adb shell chmod 644 /system/framework/framework-res.apk」でframework-res.apkパーミッションを正しく設定し直す
  13. CWMからreboot system now」→「No」で再起動する

対策

アンテナピクトは電波強度が正しく表示され、アンテナピクト左上にデータ通信ピクトの「H」や「3G」などが表示され、キャリア等の表示もNTT DOCOMO-NTT DOCOMOとなっている。クイック設定パネルのモバイルネットワーク表示は白い三角の枠のみで緊急通報のみと表示されている。また、電池のセルスタンバイの圏外時間は表示されていない。

復旧手順

元のframework-res.apkGalaxy Nexus転送して上書きし、パーミッションを644に設定し直す

トラックバック - http://d.hatena.ne.jp/nyanonon/20150423/p3