2011年12月22日木曜日

Xperia rayのテザリング制限解除[要rooted]

※ 以下は保証外の操作について記述しています。真似や参考にしてrayちゃんが「綺麗な顔してるだろ…死んでるんだぜ…それ」な状態になるかもしれないのでオススメしません。



docomoのXperiaシリーズ(他の機種でも?)だと、特定のAPNでないとテザリングが出来ないようになっている。
普通のdocomo SIMでないSIM(Xiとかb-mobileとかイオンSIMとか?)だとつらい。

対象外のAPNでテザリングをONにしても以下のように「Network error occurred」とエラーメッセージが表示されてすぐにOFFになる。

/data/data/com.android.providers.settings/databases/settings.db を覗くと以下のようなテザリングの制限設定がされている。
(左端の数値は勝手に振られるただの連番なので意味はない)
sqlite> select * from secure where name like 'tether%';
29|tether_dun_apn|docomo tethering,dcmtrg.ne.jp,,,,,,,,,440,10,0,*
30|tether_dun_required|1

参考にした次のページによれば、これのtether_dun_requiredの値を0にしてやれば制限が外れる。
俺達のメガネ Xperia arc(SO-01C) 2.3.4アップデートでの Network error occurred 対策
http://chaosore.blog38.fc2.com/blog-entry-317.html

参考ページではSQLite Editerを使っているが余計なアプリをあまりインストールしたくないので、SQLを直接叩くことにした。
必要なsqlite3コマンドは、本来はAndroid SDKのエミュレータ上でしか使えない。ここでは、インストール済みだったTitanium Backupが自身の機能のために持っているsqlite3コマンドを使った。
以下、一通りの操作。
user@localhost:~$ adb shell
$ su
# /data/data/com.keramidas.TitaniumBackup/files/sqlite3 /data/data/com.android.providers.settings/databases/settings.db
SQLite version 3.7.6.3-Titanium
Enter ".help" for instructions
Enter SQL statements terminated with a ";"
sqlite> select * from secure where name = 'tether_dun_required';
30|tether_dun_required|1
sqlite> update secure set value = 0 where name = 'tether_dun_required';
sqlite> select * from secure where name = 'tether_dun_required';
30|tether_dun_required|0
sqlite> .exit
# exit
$ exit
※ 2回のselectは値の確認のためで、別に必要な操作ではない。

設定を書き換えたらrayを再起動。
テザリングをONにしても「Network error occurred」が出なくなってる筈。

※ パケット通信料についてはどうなるか知らん。

1 件のコメント:

匿名 さんのコメント...

XiのSIMでは何もいじらなくても問題なく使えます。(要spモード契約)