夜中までかかって格闘して、なんとか成功しました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化済み、Busybox導入済、バージョン0.68適用)
- P-01D用ADBドライバ [ここ]
- Android SDK(Platform-tools) [ここ]
- APK Tools [ここ] V1.3.1を使用
2012.9.3追記:V1.3.1が無くなっていて、V1.4しか入手できないようです。
1.4ではうまくいかないという報告もあるので、ご注意を。
- apktool
↑<APK Toolsインストールフォルダ>\toolsのapktool.jar・apktool.batをPATH通したフォルダにコピー。
もしくは、<APK Toolsインストールフォルダ>\toolsにパスを通してもいいと思う。
- JAVA [ここ] Jre6を使用
それぞれのインストール方法や使い方は、各自で調べてください。(Android SDK+JAVAは
ここがrootスレで紹介されていました。)
環境変数に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/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でリマウントする。
D:\users> adb shell
$ su
# mount -o rw,remount -t yaffs2 /dev/block/mtdblock1 /system
↑「mtdblock1」は、念のためmountコマンドで/systemがどこにマウントされているか確認してください。
↑↑また、/systemが最初からrwでマウントされているなら、(8)の作業は不要です。
#うちのP-01Dはなぜか/systemがrwでマウントされっぱなし。
#危険なのでそのうち調べて修正・・・
↑仕様だとかw
(9)adb shellで、オリジナルのSettings.apkをバックアップしておく。
D:\users> adb shell
$ su
# cp /system/app/Settings.apk /system/app/Settings.apk.org とか
やり方は何でもいいですけど、cpコマンドはbusyboxインストールしていないと使えないかも?
(10)adb pushコマンドで、/system/appにアップロードする。
直接アップロードできない場合が多いと思うので、まずSDカードなどに「adb push Settings.apk /sdcard」にアップロード後、adb shellで「cp /sdcard/Settings.apk /system/app/Settings.apk」でコピーするとうまくいくと思います。
(10.1)Settings.apkのパーミッションを644に変更する。
D:\users> adb shell chmod 644 /system/app/Settings.apk
コメントで項番つけて会話してるので、10.1になってますw
(11)adb rebootで再起動。
(12)P-01Dが再起動したら、「設定」⇒「端末情報」に入り、MENUキーとボリューム下げるボタンを同時に長押し、解除キーに適当な文字(
数字24文字?)を入力して「OK」する。
(「SIMロックが解除されました」と表示されれば完了。)
ざっとこんな感じでした。
<困った点>
- framework-res.apkからリソースダウンロード(apktool if)を忘れると、コンパイルで失敗する場合があります。
コンパイルが通っても容量の少ないapkファイルが出来たりするかも。
(容量少なくてもOKという投稿も2chで見ましたが)
できた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) ]
2021年12月3日 1:00 PM
2021年12月3日 12:58 PM
2021年12月3日 10:23 AM
2021年11月30日 2:42 PM
2021年9月26日 3:27 PM
2021年9月26日 3:26 PM
2021年9月23日 2:33 AM
2021年9月23日 2:29 AM
2021年8月29日 1:24 PM
2021年8月28日 9:11 PM