Pocket wifi Unlock化への道 ― 2010/06/09 12:01
Pocket WifiにはSIM Lockはかかっていなく、海外ではEM以外の電波をつかめるらしい。ただし、ネットワークロックがかかっており、EM以外のネットワークを使うのは無理らしい。
・・・・どこでネットワークをはねているのだろう?
と言うことで、せっかくtelnet出来たことだし、中身をのぞいてみますか。
これから話すことは、linuxの知識があるかた向けに話します。
最低限、mountやcp, mvが使えることを期待しています。
1.Pocket Wifiとのファイルのやりとり
telnetで中に入れれば、catを使って中を覗くことが出来ます。ただし、エディタがないので、編集はPCを使ってやることになるでしょう。エディタを移植しても良いですが、Pocket Wifiのrootはcramfsになっており、ファイルを直接置くことができません。なので、せっかくある microSDスロットを使いましょう。
telnetでログインしたら、
mkdir /mnt/sdcard
mount -t vfat /dev/mmcblk0p1 /mnt/sdcard
と打ちます。
これで、/mnt/sdcardで、microSDの中身が見れます。
(PCとの同時アクセスは出来ませんのでPCで書き込んだ後に、上記コマンドを打ってください。)
Pocket Wifiのファイルを、/mnt/sdcardにコピーして、その後は
sync
umount /mnt/sdcard
と打って、Pocket Wifiから電池を抜いて再起動しましょう。
(電池を抜かないと、microSDの中身をPCに見せてくれません。)
これで、ファイルのやり取りが出来る環境ができました。
2.Webの設定画面をハックする。
上記の手順で、/www/js以下を丸々/mnt/sdcardにコピーしましょう。
次に、
mount -t vfat /dev/mmcblk0p1 /www/js
てなことをすると、
Webの設定画面のjsがmicroSDの中身を参照します。
(夜へ続く)
・・・・どこでネットワークをはねているのだろう?
と言うことで、せっかくtelnet出来たことだし、中身をのぞいてみますか。
これから話すことは、linuxの知識があるかた向けに話します。
最低限、mountやcp, mvが使えることを期待しています。
1.Pocket Wifiとのファイルのやりとり
telnetで中に入れれば、catを使って中を覗くことが出来ます。ただし、エディタがないので、編集はPCを使ってやることになるでしょう。エディタを移植しても良いですが、Pocket Wifiのrootはcramfsになっており、ファイルを直接置くことができません。なので、せっかくある microSDスロットを使いましょう。
telnetでログインしたら、
mkdir /mnt/sdcard
mount -t vfat /dev/mmcblk0p1 /mnt/sdcard
と打ちます。
これで、/mnt/sdcardで、microSDの中身が見れます。
(PCとの同時アクセスは出来ませんのでPCで書き込んだ後に、上記コマンドを打ってください。)
Pocket Wifiのファイルを、/mnt/sdcardにコピーして、その後は
sync
umount /mnt/sdcard
と打って、Pocket Wifiから電池を抜いて再起動しましょう。
(電池を抜かないと、microSDの中身をPCに見せてくれません。)
これで、ファイルのやり取りが出来る環境ができました。
2.Webの設定画面をハックする。
上記の手順で、/www/js以下を丸々/mnt/sdcardにコピーしましょう。
次に、
mount -t vfat /dev/mmcblk0p1 /www/js
てなことをすると、
Webの設定画面のjsがmicroSDの中身を参照します。
(夜へ続く)
Pocket Wifi Unlock化への道(その2) ― 2010/06/09 22:00
さて、なぜ直接、Pocket Wifiの中身を書き換えないのか?
それは、Pocket Wifiに使われているファイルシステムがcramfsと言うRead Onlyの圧縮ファイルのため、ひとつのファイルを書き換えることはできないからだ。
3.どう書き換えるか?
これはtelnetでなくてもわかるが、ネットワークの選択画面で手動にすると、ネットワークとして選べるのがEMだけあるが、実際に、このネットワークの画面を作っている、javascriptを見ると、
at_network_list_get
を使って、ネットワークのリストを作っていることがわかる。
じゃ、この関数を持っているモジュールをだましてやればOKなのでは?
と考えては見たが、どうだますかがわからない。
一番簡単なのは、ネットワークロックがかかっていないファームを見ることができればよいのだが・・・・
E5830のファイルが覗ければ良いな・・・・
でも、E5830持っていないし・・・・!?
4.E5830のファイルを見る
ここに書くことは、公開すると法に触れる可能性があるので、ぼかして書きます。
1.「E5830 ファーム」で検索をかける。
2.どんなファイルでも解凍できるツールで、入手した
ファイルを解凍
3.「505というファイル」=ファーム+あるファイルシステム
(ヒントは、この記事)
4.ファイルシステムの先頭から、ファイルの最後までを
別ファイルに保存
5.保存したファイルをlinuxに持っていってマウント
これから書く記事は、これらが理解できる人向けに書きますので、質問は受け付けません。
(続く・・)
それは、Pocket Wifiに使われているファイルシステムがcramfsと言うRead Onlyの圧縮ファイルのため、ひとつのファイルを書き換えることはできないからだ。
3.どう書き換えるか?
これはtelnetでなくてもわかるが、ネットワークの選択画面で手動にすると、ネットワークとして選べるのがEMだけあるが、実際に、このネットワークの画面を作っている、javascriptを見ると、
at_network_list_get
を使って、ネットワークのリストを作っていることがわかる。
じゃ、この関数を持っているモジュールをだましてやればOKなのでは?
と考えては見たが、どうだますかがわからない。
一番簡単なのは、ネットワークロックがかかっていないファームを見ることができればよいのだが・・・・
E5830のファイルが覗ければ良いな・・・・
でも、E5830持っていないし・・・・!?
4.E5830のファイルを見る
ここに書くことは、公開すると法に触れる可能性があるので、ぼかして書きます。
1.「E5830 ファーム」で検索をかける。
2.どんなファイルでも解凍できるツールで、入手した
ファイルを解凍
3.「505というファイル」=ファーム+あるファイルシステム
(ヒントは、この記事)
4.ファイルシステムの先頭から、ファイルの最後までを
別ファイルに保存
5.保存したファイルをlinuxに持っていってマウント
これから書く記事は、これらが理解できる人向けに書きますので、質問は受け付けません。
(続く・・)
ちょっと寄り道 ― 2010/06/12 02:25
Pocket Wifiのユーザーランドで、書き換えられる領域として、揮発性のRAM FS以外に、不揮発領域として
/mnt/flash
というものがある。
書き込める容量が少ないため、スクリプト程度しか置けないけど・・・・
スクリプト?
/etc/init.d/rcS
ってのが、電源ON時に呼ばれているのは、中身を見ていればわかるが、実は、この/etc/init.d/rcSから、
/mnt/flash/customer.rcS
ってスクリプトを実行することができるのだ。
なので、このスクリプトからmicroSD上のファイルが実行できれば、本体を書き換えなくても、いろいろな実行ファイルを自動で動かすようになる。・・・・・はず。
だが実際は、このスクリプトが実行されるタイミングでは、マイクロSDスロットはマウントすることはできない。
なので、遅延実行のスクリプトをする必要があるのだが、どんな方法があるだろうか・・・・。
まあ、自動でマイクロSD上のファイル実行ができるようになれば、危険を少なく、失敗したとしてもマイクロSDを抜けば元に戻せる安全な改造ができるな。
ちなみに、/bin 以下に自動実行されるいろいろなシェルスクリプトがあるのだが、
pa = Power Adapter, nopa = No Power Adapter
らしく、USBにつないでいるときとつないでいないときで、処理を変えているらしい。
あと、dc unlockで使う、USBポートがD25HWでは殺されているので、dc unlockが見つけてくれないポートも、このスクリプトを実行してやると出てくる。
でもdc unlockではネットワークロックははずせないようだけど。
/mnt/flash
というものがある。
書き込める容量が少ないため、スクリプト程度しか置けないけど・・・・
スクリプト?
/etc/init.d/rcS
ってのが、電源ON時に呼ばれているのは、中身を見ていればわかるが、実は、この/etc/init.d/rcSから、
/mnt/flash/customer.rcS
ってスクリプトを実行することができるのだ。
なので、このスクリプトからmicroSD上のファイルが実行できれば、本体を書き換えなくても、いろいろな実行ファイルを自動で動かすようになる。・・・・・はず。
だが実際は、このスクリプトが実行されるタイミングでは、マイクロSDスロットはマウントすることはできない。
なので、遅延実行のスクリプトをする必要があるのだが、どんな方法があるだろうか・・・・。
まあ、自動でマイクロSD上のファイル実行ができるようになれば、危険を少なく、失敗したとしてもマイクロSDを抜けば元に戻せる安全な改造ができるな。
ちなみに、/bin 以下に自動実行されるいろいろなシェルスクリプトがあるのだが、
pa = Power Adapter, nopa = No Power Adapter
らしく、USBにつないでいるときとつないでいないときで、処理を変えているらしい。
あと、dc unlockで使う、USBポートがD25HWでは殺されているので、dc unlockが見つけてくれないポートも、このスクリプトを実行してやると出てくる。
でもdc unlockではネットワークロックははずせないようだけど。
最近のコメント