Galaxy Tab 7.0 Plus SC-02D に入れたICSでデータ専用 SIMを使う





Galaxy Tab 7.0 Plus SC-02D に入れたice cream sandwichで
IIJmioやb-mobileなどのMVNO データ専用 SIMを使えるようにする手順です。

2012年11月9日追記:新しい記事を書きました。
こちらの記事ではもう少し簡単にMVNO データ専用 SIMが使用できるようになります。
Galaxy Tab 7.0 Plus SC-02D にICS P6200XXLQ6_P6200OXXLQ2_EUR.zip を入れる


このICSは非Deodex環境のようでブローヴちゃんの修正パッチが使えません。
そのため、ちょっと手順が難しいです。

なお、以下のホームページを参考にさせていただきました。感謝いたします。
ブローヴちゃん
Android + データ専用 SIM での動作修正パッチ
Android + データ専用 SIM で「緊急通報のみ」を消す

nunnun's weblog
非Deodex環境 [SO-02C] でセルスタンバイ問題を解決する

<注意>
「/system/framework/framework.odex」を入れ替える作業になります。
失敗すると正しく起動できなくなります。
あくまで、自己責任でお願いします。


前半はWindowd(私はWindows XPを使用)での作業
後半はSC-02D本体(adb shell接続)での作業になります。

■必要なファイル
以下のファイルをダウンロードします。
(1)baksmali-1.3.3.jar
(2)smali-1.3.3.jar
(3)dexopt-wrapper
(4)7-zip(圧縮解凍ツールの7-zipを使用します)

解凍後、(1)から(3)は作業フォルダにコピーします。
例)
作業フォルダ「C:\temp\sc-02d」にコピーします。

なお、(1)、(2)はブローヴちゃんの修正パッチからコピーして使用してもOKです。
baksmali-1.3.2.jar
smali-1.3.2.jar

(3)のファイルは作業後半にSC-02D本体に転送して使用します。


以後、作業ディレクトリーとして
「C:\temp\sc-02d」を使用して説明しています。
必要に応じディレクトリーを作成してください。
(C:\>mkdir \temp\sc-02d

それでは作業開始です。
なお、赤い文字が入力するコマンドになります。
ブラウザの表示が折り返していても、連続した赤い文字は1行での入力になりますので注意してください。


■本体からframeworkを転送する
C:\>c:
C:\>cd \temp\sc-02d

C:\temp\sc-02d>dir
   ・・・作業開始時の作業ディレクトリーの内容
ドライブ C のボリューム ラベルがありません。
ボリューム シリアル番号は 8407-8B4B です

C:\temp\sc-02d のディレクトリ

2012/07/20 11:52 <DIR> .
2012/07/20 11:52 <DIR> ..
2012/07/20 11:43 471,233 baksmali-1.3.3.jar
2009/05/30 23:15 5,512 dexopt-wrapper
2012/07/20 11:44 653,002 smali-1.3.3.jar
3 個のファイル 1,129,747 バイト
2 個のディレクトリ 27,411,615,744 バイトの空き領域

C:\temp\sc-02d>adb pull /system/framework framework
   ・・・frameworkの転送
pull: building file list...
pull: /system/framework/twframework.odex -> framework/twframework.odex
pull: /system/framework/twframework.jar -> framework/twframework.jar
pull: /system/framework/twframework-res.apk -> framework/twframework-res.apk
pull: /system/framework/svc.odex -> framework/svc.odex
pull: /system/framework/svc.jar -> framework/svc.jar
pull: /system/framework/services.odex -> framework/services.odex
pull: /system/framework/services.jar -> framework/services.jar
pull: /system/framework/send_bug.odex -> framework/send_bug.odex
pull: /system/framework/send_bug.jar -> framework/send_bug.jar
pull: /system/framework/secmediarecorder.odex -> framework/secmediarecorder.odex
pull: /system/framework/secmediarecorder.jar -> framework/secmediarecorder.jar
pull: /system/framework/sechardware.odex -> framework/sechardware.odex
pull: /system/framework/sechardware.jar -> framework/sechardware.jar
pull: /system/framework/secframework.odex -> framework/secframework.odex
pull: /system/framework/secframework.jar -> framework/secframework.jar
pull: /system/framework/seccamera.odex -> framework/seccamera.odex
pull: /system/framework/seccamera.jar -> framework/seccamera.jar
pull: /system/framework/sec_feature.odex -> framework/sec_feature.odex
pull: /system/framework/sec_feature.jar -> framework/sec_feature.jar
pull: /system/framework/pm.odex -> framework/pm.odex
pull: /system/framework/pm.jar -> framework/pm.jar
pull: /system/framework/monkey.odex -> framework/monkey.odex
pull: /system/framework/monkey.jar -> framework/monkey.jar
pull: /system/framework/minimode.odex -> framework/minimode.odex
pull: /system/framework/minimode.jar -> framework/minimode.jar
pull: /system/framework/libvtmanagerjar.odex -> framework/libvtmanagerjar.odex
pull: /system/framework/libvtmanagerjar.jar -> framework/libvtmanagerjar.jar
pull: /system/framework/javax.obex.odex -> framework/javax.obex.odex
pull: /system/framework/javax.obex.jar -> framework/javax.obex.jar
pull: /system/framework/input.odex -> framework/input.odex
pull: /system/framework/input.jar -> framework/input.jar
pull: /system/framework/ime.odex -> framework/ime.odex
pull: /system/framework/ime.jar -> framework/ime.jar
pull: /system/framework/framework2.odex -> framework/framework2.odex
pull: /system/framework/framework2.jar -> framework/framework2.jar
pull: /system/framework/framework.odex -> framework/framework.odex
pull: /system/framework/framework.jar -> framework/framework.jar
pull: /system/framework/framework-res.apk -> framework/framework-res.apk
pull: /system/framework/filterfw.odex -> framework/filterfw.odex
pull: /system/framework/filterfw.jar -> framework/filterfw.jar
pull: /system/framework/ext.odex -> framework/ext.odex
pull: /system/framework/ext.jar -> framework/ext.jar
pull: /system/framework/core.odex -> framework/core.odex
pull: /system/framework/core.jar -> framework/core.jar
pull: /system/framework/core-junit.odex -> framework/core-junit.odex
pull: /system/framework/core-junit.jar -> framework/core-junit.jar
pull: /system/framework/com.yamaha.android.media.odex -> framework/com.yamaha.android.media.odex
pull: /system/framework/com.yamaha.android.media.jar -> framework/com.yamaha.android.media.jar
pull: /system/framework/com.samsung.device.jar -> framework/com.samsung.device.jar
pull: /system/framework/com.google.widevine.software.drm.odex -> framework/com.google.widevine.software.drm.odex
pull: /system/framework/com.google.widevine.software.drm.jar -> framework/com.google.widevine.software.drm.jar
pull: /system/framework/com.google.android.media.effects.jar -> framework/com.google.android.media.effects.jar
pull: /system/framework/com.google.android.maps.jar -> framework/com.google.android.maps.jar
pull: /system/framework/com.android.location.provider.odex -> framework/com.android.location.provider.odex
pull: /system/framework/com.android.location.provider.jar -> framework/com.android.location.provider.jar
pull: /system/framework/com.android.future.usb.accessory.odex -> framework/com.android.future.usb.accessory.odex
pull: /system/framework/com.android.future.usb.accessory.jar -> framework/com.android.future.usb.accessory.jar
pull: /system/framework/bu.odex -> framework/bu.odex
pull: /system/framework/bu.jar -> framework/bu.jar
pull: /system/framework/bouncycastle.odex -> framework/bouncycastle.odex
pull: /system/framework/bouncycastle.jar -> framework/bouncycastle.jar
pull: /system/framework/bmgr.odex -> framework/bmgr.odex
pull: /system/framework/bmgr.jar -> framework/bmgr.jar
pull: /system/framework/apache-xml.odex -> framework/apache-xml.odex
pull: /system/framework/apache-xml.jar -> framework/apache-xml.jar
pull: /system/framework/android.test.runner.odex -> framework/android.test.runner.odex
pull: /system/framework/android.test.runner.jar -> framework/android.test.runner.jar
pull: /system/framework/android.policy.odex -> framework/android.policy.odex
pull: /system/framework/android.policy.jar -> framework/android.policy.jar
pull: /system/framework/am.odex -> framework/am.odex
pull: /system/framework/am.jar -> framework/am.jar
pull: /system/framework/GlobalConfig.odex -> framework/GlobalConfig.odex
pull: /system/framework/GlobalConfig.jar -> framework/GlobalConfig.jar
73 files pulled. 0 files skipped.
2722 KB/s (43025702 bytes in 15.432s)


■framework.odexとframework.jarを作業ディレクトリにコピーします
C:\temp\sc-02d>mkdir workspace

C:\temp\sc-02d>copy framework\framework.odex workspace\
1 個のファイルをコピーしました。

C:\temp\sc-02d>copy framework\framework.jar workspace\
1 個のファイルをコピーしました。


■逆コンパイルに必要なファイルを作業ディレクトリにコピーします
C:\temp\sc-02d>copy framework\core-junit.odex workspace\
1 個のファイルをコピーしました。

C:\temp\sc-02d>copy framework\core.odex workspace\
1 個のファイルをコピーしました。

C:\temp\sc-02d>copy framework\bouncycastle.odex workspace\
1 個のファイルをコピーしました。

C:\temp\sc-02d>copy framework\ext.odex workspace\
1 個のファイルをコピーしました。



コピーコマンドだけを抜き出したもの
copy framework\framework.odex workspace\
copy framework\framework.jar workspace\
copy framework\core-junit.odex workspace\
copy framework\core.odex workspace\
copy framework\bouncycastle.odex workspace\
copy framework\ext.odex workspace\


■framework.odexを逆コンパイル
C:\temp\sc-02d>java -Xmx512m -jar baksmali-1.3.3.jar --api-level 15 -d workspace -o workspace\lv15 -x workspace\framework.odex

■GsmServiceStateTracker.smaliを編集
C:\temp\sc-02d\workspace\lv15\com\android\internal\telephony\gsm\GsmServiceStateTracker.smaliを編集します。

上記は作業(カレント)ディレクトリーが(C:\temp\sc-02d)の場合の例です。
(1)、(2)共、同一ファイルに対する編集作業です。

(1)MVNO回線のセルスタンバイ問題
「:pswitch_data_3a」を検索
修正前


修正後 「:pswitch_37」に


(2)緊急通報のみ
「緊急通報のみ」の表示を「NTT DOCOMO」の表示にします。
「GsmServiceStateTracker;->regCodeToServiceState」を検索
修正前


修正後 「0x1」を「0x0」に


■framework.odexのコンパイル
修正結果を反映させるためframework.odexをコンパイルしclasses.dexを作ります。

C:\temp\sc-02d>java -Xmx512m -jar smali-1.3.3.jar --api-level 15 -o workspace\classes.dex workspace\lv15

■framework.jarを再構築
上のコンパイル結果「classes.dex」を「framework.jar」に追加します。

(1)ファイル名をframework.jarからframework.zipへ名称変更します。
C:\temp\sc-02d>move workspace\framework.jar workspace\framework.zip

(2)classes.dexを追加
7-Zipでworkspace\framework.zipを開きます。


エクスプローラから7zipの画面へ
workspace\classes.dex
をドラッグ&ドロップし追加します。


終了します。(別段、保存の操作は不要)


この状態でのファイルの一覧です。
C:\temp\sc-02d>dir workspace
ドライブ C のボリューム ラベルがありません。
ボリューム シリアル番号は 8407-8B4B です

C:\temp\sc-02d\workspace のディレクトリ

2012/07/20 12:19 <DIR> .
2012/07/20 12:19 <DIR> ..
2012/07/20 08:52 977,840 bouncycastle.odex
2012/07/20 12:08 10,628,140 classes.dex
2012/07/20 08:52 23,648 core-junit.odex
2012/07/20 08:52 3,363,472 core.odex
2012/07/20 08:52 1,494,256 ext.odex
2012/07/20 08:52 11,859,536 framework.odex
2012/07/20 12:19 4,370,034 framework.zip
2012/07/20 11:58 <DIR> lv15
7 個のファイル 32,716,926 バイト
3 個のディレクトリ 27,199,373,312 バイトの空き領域



(3)上記(1)で名称変更したファイル名をframework.jarに戻します
C:\temp\sc-02d>move workspace\framework.zip workspace\framework.jar

<注>
7-Zipは.zipのファイル以外にも
.jar
.apk
のファイルを直接開けます。
従いまして、上記(1)、(3)のmoveコマンドを使用せず
「workspace\framework.jar」を直接 7-Zip で開くこともできます。


■必要ファイルをSC-02D本体へ転送
以下の2ファイルをSC-02Dの「/data/local/tmp/」へ転送します。
workspace\framework.jar
dexopt-wrapper

C:\temp\sc-02d>adb push workspace\framework.jar /data/local/tmp/
2731 KB/s (4370034 bytes in 1.562s)

C:\temp\sc-02d>adb push dexopt-wrapper /data/local/tmp/
344 KB/s (5512 bytes in 0.015s)


-・-・-・-・-・-
■以降、本体での作業■
-・-・-・-・-・-

adb shell でSC-02Dに入ります。

■dexopt-wrapperの実行
dexopt-wrapperは転送した状態では実行権が無いのでchmodで実行権を付与後、
jarをodexに変換します。

shell@android:/ $ su
shell@android:/ # cd /data/local/tmp
shell@android:/data/local/tmp # ls -l
-rw-rw-rw- shell shell 5512 2009-05-30 23:15 dexopt-wrapper
-rw-rw-rw- shell shell 4370034 2012-07-20 12:19 framework.jar
shell@android:/data/local/tmp # chmod 777 dexopt-wrapper
shell@android:/data/local/tmp # ls -l
-rwxrwxrwx shell shell 5512 2009-05-30 23:15 dexopt-wrapper
-rw-rw-rw- shell shell 4370034 2012-07-20 12:19 framework.jar
shell@android:/data/local/tmp # ./dexopt-wrapper framework.jar framework.odex
--- BEGIN 'framework.jar' (bootstrap=0) ---
--- waiting for verify+opt, pid=8662
--- would reduce privs here
--- END 'framework.jar' (success) ---


■署名のコピー
オリジナルのframework.odexから署名部分だけコピーします。

shell@android:/data/local/tmp # busybox dd if=/system/framework/framework.odex of=framework.odex bs=1 count=20 skip=52 seek=52 conv=notrunc
20+0 records in
20+0 records out
20 bytes (20B) copied, 0.001560 seconds, 12.5KB/s
shell@android:/data/local/tmp # ls -l
-rwxrwxrwx shell shell 5512 2009-05-30 23:15 dexopt-wrapper
-rw-rw-rw- shell shell 4370034 2012-07-20 12:19 framework.jar
-rw-r--r-- root root 11850184 2012-07-20 12:33 framework.odex


■framework.odexの入れ替え
修正したframework.odexとオリジナルのframework.odexを入れ替えます。

shell@android:/data/local/tmp # mount -o remount,rw /system /system
shell@android:/data/local/tmp # cp /system/framework/framework.odex /data/local/tmp/framework.odex.org
・・・オリジナルのバックアップ
shell@android:/data/local/tmp # cp /data/local/tmp/framework.odex /system/framework/framework.odex
shell@android:/data/local/tmp # chmod 644 /system/framework/framework.odex
shell@android:/data/local/tmp # chown root.root /system/framework/framework.odex
shell@android:/data/local/tmp # ls -l /system/framework/framework.odex
-rw-r--r-- root root 11850184 2012-07-20 12:36 framework.odex


■reboot
rebootを実施し、CWMからキャッシュクリアをします。

shell@android:/data/local/tmp # busybox rm -rf /cache/*
shell@android:/data/local/tmp # busybox rm /data/dalvik-cache/*
shell@android:/data/local/tmp # reboot recovery


■APN設定
simに応じたAPN設定を行います。


APNの設定が完了するとSIMが認識され3G回線が利用できるようになります。


■本体に転送したファイルのバックアップ
本体「/data/local/tmp」にあるファイルはROMの再インストール等で消えてしまうので
パソコンや外部SDCardに保存します。
ただし、パソコンや外部SDCardに保存するとファイルの実行権、所有者が変更されますので
そのまま使用できません。
使用する場合は再度「chmod」、「chown」コマンドを実施します。

バックアップの実行例

C:\temp\sc-02d>mkdir backup
C:\temp\sc-02d>cd backup
C:\temp\sc-02d\backup>adb pull /data/local/tmp/
pull: building file list...
pull: /data/local/tmp/framework.odex.org -> ./framework.odex.org
pull: /data/local/tmp/framework.odex -> ./framework.odex
pull: /data/local/tmp/dexopt-wrapper -> ./dexopt-wrapper
pull: /data/local/tmp/framework.jar -> ./framework.jar
4 files pulled. 0 files skipped.
4152 KB/s (28085266 bytes in 6.605s)

■その他
差し当たり、後は、日本語フォントの入れ替えが必要になります。
参考記事:Galaxy Tab SC-01C をovercome v4.1からICS/CM9にしました
スポンサーサイト

コメントの投稿

非公開コメント

No title

中華スマホAMOI N821でこちらのやり方で無事DTIのServersMan SIM 3G 100がつながるようになりました。
初心者にも大変わかりやすく、コピペすればできちゃうように詳しく書いていただき本当に助かりました(*^▽^*)

Re: No title

もうてんさん

こんにちは。お役に立てて良かったです。

実は、もう少し簡単にMVNO データ専用 SIM対応ができるよう記事を追加しています。
http://takiza.blog39.fc2.com/blog-entry-95.html
こちらも参考にどうぞ。
アクセスカウンタ
オンラインカウンター
現在の閲覧者数:
プロフィール

たっきー

Author:たっきー
たっきーのブログへようこそ!
パソコン・スマホを
より使いやすくするため奮闘中!
改造したり、root取ったり
色々やってます。

カテゴリ
最新記事
最新コメント
月別アーカイブ
最新トラックバック
検索フォーム
RSSリンクの表示
リンク
ブロとも申請フォーム

この人とブロともになる

QRコード
QR