前置きが長くなりましたが、実際にSIMロックを解除します。
解説しているページは他にたくさん見当たりますが、
その通りやっても、うまくいきませんでした。
これから解説するのは、私の端末でうまくいった方法なので、
すべての端末でうまくいくとは限りません。
また、端末が起動しなくなる等が発生しても責任は負いかねますので
自己責任でやってください。
以下の方法は、rootを取っているのが前提です。
まずは、関連するファイルを取ってきます。
1. /data/radio/nv_data.bin
2. /data/radio/nv_data.bin.md5
3. /factory/nv_data.bin
4. /factory/nv_data.bin.md5
上記のファイルをESファイルエクスプローラ等でsdcardにコピーした後、
USBケーブルでPCとつなぎ、PCにコピーします。
1の/data/radio/nv_data.binは現在のシステムで使用されているファイルです。
ただ/dataはシステムを初期化すると消えてしまうので、
その場合には3の/factory/nv_data.binをコピーしてくるようです。
なので、1のみを変更した場合には、システムを初期化すると
SIMロックされた状態に戻ってしまいます。
一方で、3を変更すると、システムを初期化してもSIMロック解除が維持されます。
また、2と4はそれぞれmd5チェックサムなのですが、
これが曲者で、単なるmd5チェックサムではないようです。
詳細は後述します。
ひとまず、1のみ変更してみます。
上に書いたように、1のファイルが消えちゃった場合には3が使われるので、
3を編集してもいいです。
(1と3の中身が違っている場合があるようですが、特に問題なさそうです)
バイナリエディタでnv_data.binを開き、0x181469番地の01を00に変更します。
(他の番地の値も変更している記事がありますが、それは不要)
変更したnv_data.binをGalaxy Nexusのsdcardにコピーします。
# 本来ならば、nv_data.bin.md5も変更すべきなのですが、
# 普通のmd5チェックサムではないようなので、計算できません。
# そこで、まずはnv_data.binのみをコピーして、md5チェックサムを調べます。
次に、Galaxy NexusでESファイルエクスプローラを起動し、
PCからコピーしてきた/sdcardのnv_data.binを
/data/radio/nv_data.binに上書きし、再起動します。
再起動後に/data/radio/log/nv.logを見ると一番下に
MD5 fail. orignal md5 'xxxxxxxx' computed md5 'yyyyyyyy'
という行があるはずです (xxxxxxxx, yyyyyyyyは32桁の文字列)。
ここで、書き換え後のmv_data.binのmd5チェックサムがyyyyyyyyであることが分かります。
そこで、PCで2のnv_data.bin.md5をyyyyyyyyに書き換えます。
(末尾に改行などを入れないように注意)
# Android端末上で編集しても問題ないはずですが、
# 再起動時にMD5 open failというエラーが出てうまくいきませんでした
作ったnv_data.bin.md5は端末のsdcardにコピーしておきます。
またまた端末に戻って、先ほど編集したnv_data.binとnv_data.bin.md5を
ESファイルエクスプローラ等で/data/radioにコピーします。
先ほど再起動したときに、1のnv_data.binのmd5チェックサムと
2のnv_data.bin.md5が一致しなかったため、
3のnv_data.binが1に上書きされてしまっています。
なので、nv_data.binのコピーも必要です。
ここまで、終わったら端末を再起動します。
再起動が終わったら/data/radio/log/nv.logを確認し、
新たなログが増えていなければ、成功です。
ログが増えている場合には、バイナリエディタでのnv_data.binの編集から
もう一度やってみましょう。
成功した場合には、一旦電源を切り、Docomo以外のSIMを挿してみます。
どこのキャリアのSIMか、どこのキャリアに接続しているかが表示されれば成功です。
今回買った3HKは、softbankにローミングしているようです。

この状態だと、端末を初期化するとSIMロックされてしまいます。
初期化してもSIMロックされないようにする方法は、次の記事で。
解説しているページは他にたくさん見当たりますが、
その通りやっても、うまくいきませんでした。
これから解説するのは、私の端末でうまくいった方法なので、
すべての端末でうまくいくとは限りません。
また、端末が起動しなくなる等が発生しても責任は負いかねますので
自己責任でやってください。
以下の方法は、rootを取っているのが前提です。
まずは、関連するファイルを取ってきます。
1. /data/radio/nv_data.bin
2. /data/radio/nv_data.bin.md5
3. /factory/nv_data.bin
4. /factory/nv_data.bin.md5
上記のファイルをESファイルエクスプローラ等でsdcardにコピーした後、
USBケーブルでPCとつなぎ、PCにコピーします。
1の/data/radio/nv_data.binは現在のシステムで使用されているファイルです。
ただ/dataはシステムを初期化すると消えてしまうので、
その場合には3の/factory/nv_data.binをコピーしてくるようです。
なので、1のみを変更した場合には、システムを初期化すると
SIMロックされた状態に戻ってしまいます。
一方で、3を変更すると、システムを初期化してもSIMロック解除が維持されます。
また、2と4はそれぞれmd5チェックサムなのですが、
これが曲者で、単なるmd5チェックサムではないようです。
詳細は後述します。
ひとまず、1のみ変更してみます。
上に書いたように、1のファイルが消えちゃった場合には3が使われるので、
3を編集してもいいです。
(1と3の中身が違っている場合があるようですが、特に問題なさそうです)
バイナリエディタでnv_data.binを開き、0x181469番地の01を00に変更します。
(他の番地の値も変更している記事がありますが、それは不要)
変更したnv_data.binをGalaxy Nexusのsdcardにコピーします。
# 本来ならば、nv_data.bin.md5も変更すべきなのですが、
# 普通のmd5チェックサムではないようなので、計算できません。
# そこで、まずはnv_data.binのみをコピーして、md5チェックサムを調べます。
次に、Galaxy NexusでESファイルエクスプローラを起動し、
PCからコピーしてきた/sdcardのnv_data.binを
/data/radio/nv_data.binに上書きし、再起動します。
再起動後に/data/radio/log/nv.logを見ると一番下に
MD5 fail. orignal md5 'xxxxxxxx' computed md5 'yyyyyyyy'
という行があるはずです (xxxxxxxx, yyyyyyyyは32桁の文字列)。
ここで、書き換え後のmv_data.binのmd5チェックサムがyyyyyyyyであることが分かります。
そこで、PCで2のnv_data.bin.md5をyyyyyyyyに書き換えます。
(末尾に改行などを入れないように注意)
# Android端末上で編集しても問題ないはずですが、
# 再起動時にMD5 open failというエラーが出てうまくいきませんでした
作ったnv_data.bin.md5は端末のsdcardにコピーしておきます。
またまた端末に戻って、先ほど編集したnv_data.binとnv_data.bin.md5を
ESファイルエクスプローラ等で/data/radioにコピーします。
先ほど再起動したときに、1のnv_data.binのmd5チェックサムと
2のnv_data.bin.md5が一致しなかったため、
3のnv_data.binが1に上書きされてしまっています。
なので、nv_data.binのコピーも必要です。
ここまで、終わったら端末を再起動します。
再起動が終わったら/data/radio/log/nv.logを確認し、
新たなログが増えていなければ、成功です。
ログが増えている場合には、バイナリエディタでのnv_data.binの編集から
もう一度やってみましょう。
成功した場合には、一旦電源を切り、Docomo以外のSIMを挿してみます。
どこのキャリアのSIMか、どこのキャリアに接続しているかが表示されれば成功です。
今回買った3HKは、softbankにローミングしているようです。

この状態だと、端末を初期化するとSIMロックされてしまいます。
初期化してもSIMロックされないようにする方法は、次の記事で。