とりとめもなく、だらだらぬるぬる書き留めるらしいです。

P-01DのSIMロック解除




P-01DをAMAZONで検索(\4,900~)

夜中までかかって格闘して、なんとか成功しましたP-01DのSIMアンロック。
キーになったのは、2ch P-01D rootスレの下記投稿

【ROM焼き】docomo with series P-01D root1
http://anago.2ch.net/test/read.cgi/smartphone/1343620749/

606 名前:SIM無しさん 投稿日:2012/08/21(火) 00:06:23.07
SimLockDialog$4.smaliのStrings.equalsを呼んだ後の分岐をコメントアウト
端末情報から適当な解除コードを入れても解除できた。
長さチェックは残すので、充分な長さは必要。
親切なことに、元々、ヒントになるログも吐いてくれるので参考になる。

解除コードの認証方法も、SimLockDialogを読めば分かるけど、
現実的な時間で解除コードを求める方法は分からず。

あと、アンロックした結果がどこに作用するか調べて、
直接そっちをイジれば簡単とも思ったが、よく分からなくなったので深追いしてない。


620 名前:615 投稿日:2012/08/21(火) 14:50:58.32
#if-eqz v14, :cond_4
じゃあだめでした


621 名前:SIM無しさん 投稿日:2012/08/21(火) 19:38:39.26
606サンクス。一応できたようだ
620の人は、そもそも解除コード入れてるかい?


624 名前:615 投稿日:2012/08/21(火) 20:54:44.67
>>621
>解除コード入れてるかい?
いつどこでいれるのでしょうか??

Photonの時は電源ONで入力画面になったんですが


630 名前:SIM無しさん 投稿日:2012/08/22(水) 03:52:43.43
>>624
これじゃねーの?

> 121 名前:SIM無しさん 投稿日:2012/02/02(木) 17:14:15.54
> ホーム → [MENU] → [設定] → 端末情報 → [MENU]押しながら[VOL-]
> で、SIMロック解除コードの入力画面が出る。
> SIMロック解除済みの場合、「SIMロック解除済みです」と出る。
>
>
> 123 名前:SIM無しさん 投稿日:2012/02/03(金) 00:31:31.78
> 要するに「端末情報」を表示した状態で、MENUキーとボリューム下げるボタンを同時に押すんでしょ?
> 俺のP-01Dは解除コードの入力画面出たよ。
> 何入力すればいいのかわからんけどw

http://anago.2ch.net/test/read.cgi/smartphone/1320986759/121-123


634 名前:615 投稿日:2012/08/22(水) 09:55:58.25
色々指導、助言ありがとうございました
V1.3.1でうまくいったようです

2台目を買ったときのために、自分の作業メモとして残します。
正直、自分でも何がキーになって失敗/成功したのかよくわからないので・・・

もし試す場合は、
・P-01Dを文鎮化(壊す)させる可能性がある。
・不正競争防止法や電波法その他の法律に触れる可能性がある。
ことを理解されたうえで、すべて自己責任でどうぞ。

<作業の大きな流れ>
1.P-01DからSettings.apkとframework-res.apkをダウンロード
2.framework-res.apkからリソースインストール
3.Settings.apkをデコンパイルして、SimLockDialog$4.smaliを修正
4.Settings.apkをコンパイル
5.P-01Dに修正したSettings.apkをアップロード
6.解除コードを入力

やり方や使用ツールはいろいろあると思います。
ここに記載しているやり方は一例であって、唯一の正解ではありません。
当サイトでは、Windows7 Professional 64bitにて実行しました。


<用意するもの>
  • P-01D(root化済み、バージョン0.68適用)
  • P-01D用ADBドライバ [ここ]
  • Android SDK(Platform-tools) [ここ]
  • APK Tools [ここ] V1.3.1を使用
  • apktool
    ↑<APK Toolsインストールフォルダ>\toolsのapktool.jar・apktool.batをPATH通したフォルダにコピー。
    もしくは、<APK Toolsインストールフォルダ>\toolsにパスを通してもいいと思う。
  • JAVA [ここ] Jre6を使用

それぞれのインストール方法や使い方は、各自で調べてください。
環境変数にJAVAへのパス通したのに、APK Tools起動時に「JAVA見つかりません」とか言われちゃう人は、Start.batの上のほうに直接、

SET PATH=%PATH%;C:\program files\JAVA\jre6\bin

とか入れておくのが手っ取り早い。

<順序>
(0)P-01DをUSBデバッグモードでPCにつなぐ。

(1)コマンドプロンプト起動して
「adb pull /system/app/Settings.apk」
「adb pull /system/framework-res.apk」
実行し、P-01DのSettings.apkとframework-res.apkをダウンロードする。
(コマンドプロンプトのカレントフォルダに上記2ファイルがダウンロードされる)

(2)(1)のコマンドプロンプトで「apktool if framework-res.apk」実行し、リソースをインストールする。
(ユーザフォルダ下に1.apkが作成される)

(3)APK Toolsインストールフォルダ先の「編集前」フォルダに(1)のSettings.apkをコピーする。

(4)APK Toolsを起動(Start.bat)し、「2 [編集前]をデコンパイル」を実行する。
(APK Toolsインストールフォルダの「ソース」フォルダにSettings.apkというフォルダが作成され、その中にデコンパイルされたソースが作成される)

(5)「ソース」フォルダ内の「SimLockDialog$4.smali」というファイルを探す。

(6)SimLockDialog$4.smaliをテキストエディタで開き「if-eqz v14, :cond_4」という行をコメントアウトして保存する。
invoke-virtual {v14, v15}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v14
#if-eqz v14, :cond_4
←この行をコメントアウト
「if-eqz v14, :cond_4」は2行あるようですが、2chで教えられたのはこの1行だけです。

(7)APK Toolsの「3 [ソース]をコンパイル」を実行する
(APK Toolsインストールフォルダ先の「編集後」フォルダにSettings.apkファイルが作成される。)

(8)adb shellでP-01Dにログインし、/systemをrwでリマウントする。
# mount -o rw,remount -t yaffs2 /dev/block/mtdblock** /system
↑**は、mountコマンドでどこにマウントされているか確認してください。


#うちのP-01Dはなぜか/systemがrwでマウントされっぱなし。
#危険なのでそのうち調べて修正・・・

(9)adb shellで、オリジナルのSettings.apkをバックアップしておく。
# cp /system/app/Settings.apk /system/app/Settings.apk.org とか

(10)adb putコマンドで、/system/appにアップロードする。
直接アップロードできない場合が多いと思うので、まずSDカードなどに「adb put Settings.apk /sdcard」にアップロード後、adb shellで「cp /sdcard/Settings.apk /system/app/Settings.apk」でコピーするとうまくいくと思います。とか

(11)adb rebootで再起動。

(12)P-01Dが再起動したら、「設定」⇒「端末情報」に入り、MENUキーとボリューム下げるボタンを同時に長押し、解除キーに適当な文字(数字24文字?)を入力して「OK」する。
(「SIMロックが解除されました」と表示されれば完了。)

ざっとこんな感じでした。

<困った点>
  • framework-res.apkからリソースダウンロード(apktool if)を忘れると、コンパイルで失敗する場合があります。
    コンパイルが通っても容量の少ないapkファイルが出来たりするかも。
    できたSettings.apkにresource.arscファイル入っていればOKかな?
  • 最初はAPK Toolsを使わず、apktool単体でapktool bコマンドを使ってコンパイルしていましたが、Settings.apkを作るときに7-zipでAndroidManifest.xml、classes.dex、resources.arscを再圧縮かけて前のapkファイルに上書きする作業がどうも怪しくて、結局APK Toolsでデコンパイル、コンパイルするようにしました。
  • APK Toolsのアップロードは失敗したので、手動でadb pushしています。
    うまくいく人は、そのままAPK Toolsでいいと思います。
  • 解除キーは、何桁が正解なのかよくわかりません。適当に入力したので・・・w

たぶん、よく知っている人がやればもっと簡単な手順でやれると思います。
(1)(2)(3)(8)(10)あたりは、adbやapktoolコマンドを使わなくてもAPK Toolsだけで完結する気がする。

(12)で何度も失敗し、そのたびにコンパイル・アップロードを繰り返しましたが、正直何が問題で失敗していたのかよくわかりません。
最初に、APK Tools同梱のapktoolとは異なるバージョンのapktoolで(2)のリソースダウンロードをしていたのが問題だったのかも。
ちなみにSettings.apkを壊してしまっても「設定」が出なくなるだけなので、オリジナルのapkファイルをバックアップしておけば、致命的な状況になるケースは少ないと思います。
しかしながら、ロック解除すると、再びロックする方法は不明です(Settings.apkを戻してもロックフリー状態)。

そういうわけで、これを実行することで、P-01DがSIMフリーとなり、ソフトバンクSIMや海外SIMを使えるようになります。
残念ながら3G 900MHzには対応していないので、プラチナバンドでは使えません。
次は、ソフトバンクMMSを受信できるようにしてみたいと思います。
(また時間のあるときに・・・w)

なお、パケ放題契約をしていないSIMをスマホに刺すと、パケ死(パケット代で死亡)する可能性もありますので、くれぐれもご注意を。

2chの先人や、ツール開発者の皆様に感謝!

[ P-01DのSIMロック解除(8/23) ][ Panasonic P-01D入手(7/29) ]

トラックバック・ピンバックはありません

ご自分のサイトからトラックバックを送ることができます。

コメント 4 件

こんにちは。APK Toolsを使ったデコンパイルとリコンパイルでSettingをつくりなおすんですね。smailファイルはテザリングの解析で見てみたんですが、自分の印象では、「ここをいじるとリコンパイルできなさそう」というものでした。ですが、リコンパイルできるんですね。ということは、おなじ話でテザリングもふがほげできそうですね。
参考になります。

こんにちは。へたれです。 APK Toolsでのデコンパイルとリコンパイル 参考になりました。
自分も、デコンパイルはしてみたんですが、このファイルからのリコンパイルは、「ファイルをかえると無理かな?」と思い、しませんでした。
テザリングでも、にたようなことができるかもしれませんので、とらいしてみようとおもいます。
自分の日記にこの記事をリンクしました。

よろしくです。

KEI より:

2chの当該スレでなんか紹介されてる・・・w
解除キーを数字で打ち込むところと、コメントアウトする行は1行であることを書こうと思ったんですが、プロバイダ規制されてたw

KEI より:

>>2chのQAてざりんぐのひと(へたれ)様
こんばんわ!
すみません、WordpressのAkismetが勝手にへたれ様のコメントをスパム認定して投稿停止させてました(汗)
今管理画面みて気づきました、ゴメンナサイ。
(投稿ひとつカブってたので削除しました。)

リンクありがとうございます。
なるほど、スラッシュドットのあの記事は、へたれ様のなのですね。

テザリングもいけますかねー。
ソースコード追っかけるのは自分にはハードル高いので、皆様の知識をもとにヒトバシラーするだけなんですが^^;
また面白そうな情報が出てきたらトライしようと思います。


今後ともよろしくお願いします^^

コメントをどうぞ