2014年8月8日金曜日

【Xperia Z1 f】テザリング時のAPN強制変更を無効化する

2014年8月8日金曜日 , , , , ,
ドコモショップで高い手数料3240円を支払ってSIMロック解除して貰えば、取り敢えずはドコモSIM以外で端末を使うことができるようになります。

ただ制限があって、テザリング時はspモードのテザリング専用APNに強制接続される仕様なので、実質ドコモ以外ではテザリングが使えません。全く理解できないこの制限なんですが、ドコモは何を考えているのでしょうかね? 嫌がらせとしか考えられません。

ということで何とかします。
ルート化済み端末の場合、そういったことも解決できます。

なお、Z1 fだとデータベースの場所もテーブル名も他の端末とは変わってます。
ただデータベースを書き換えるだけでOKになっているのは楽でいいですね。

下準備

  • Android SDKのインストールとPATHなどの設定を行ってadbコマンドが通るようにする
  • Xperia側でUSBデバッグをオンに設定をする
  • XperiaをPCにADB Interfaceドライバで認識できるようにドライバを当てる
  • Titanium Backupをインストールしておく
今までの当ブログ記事をお読みいただいた方は、上記のやり方は分かっている(終わっている)かと思いますので省略します。まだの方はAndroidネタから該当の記事を参考下さい。

何はともかくバックアップ

何はともかくシステム全体をバックアップしましょう。
これで万が一失敗しても失敗前の状態に戻せます。

リカバリを導入している人はCWMかTWRPリカバリでまるごとバックアップしておきましょう。導入してない人はTitanium Backupでアプリとシステムをバックアップしておきましょう。Titanium Backupの有料版はとても便利なので、購入しておくと後々楽に作業できます。ただ文鎮化した場合、Flashtoolでftfファイル書き込み→Googleアカウント設定→Titanium Backupのインストール→Titanium Backupで復旧という作業が必要になり、面倒なのでどうせならリカバリの導入を検討しましょう。こちらなら再起動→リカバリ→Restoreだけで元に戻せますので。

ちなみに当方はTWRPリカバリでBackupしました。

Titanium Backupのsqliteを使う

  1. コマンドプロンプト(cmd.exe)を立ち上げます。

  2. USBデバッグがオンの状態でPCに端末を接続します。

  3. 立ち上げたら以下のように「adb shell」と入力してエンターキーを押し、端末にアクセスします。


    端末にアクセスした状態がこちら。


  4. shellでsuコマンドを実行します。
    「su」と入力してエンターキーを押します。
    これは端末のファイル操作に関して全権を取得するためです。


    初めて「adb shell」suコマンドを実行した場合、端末側でUSB経由の完全なアクセスを許可するかどうか聞いてくるので、端末を見て「許可」をタップします。


    これで「adb shell」経由で好き勝手出来るようになりました。
  5. root@~」になっていればOKです。


  6. それではTitanium Backupのsqliteを使って、データベースの中のAPN強制変更している部分を書き換えます。
  7. 「/data/data/com.keramidas.TitaniumBackup/files/sqlite3」がTitaniumBackupのsqliteです。これでデータベースの「/data/data/com.android.providers.settings/databases/settings.db」を開きます。

    以下のコマンドをshellに入力してください。
    「/data/data/com.keramidas.TitaniumBackup/files/sqlite3 /data/data/com.android.providers.settings/databases/settings.db」
    を入力したらエンターキーを押します。


  8. そうするとこのような画面になります。
    sqlite>のところに「update global set value = '0' where name = 'tether_dun_required';」と入力してエンターキーを押します。



    エンターキーを押すとこんな感じになります。
    黄色が実行された証拠です。


  9. データベースの変更が終わったので、sqliteを終了します。
    下記のコマンド(「.quit」)を入力して、Enterを押してください。

  10. sqliteを抜けると「adb shell」に戻ってきます。
    syncコマンドを実行して、データベースと端末のメモリを同期させましょう。

  11. 後は適当にexitコマンドを実行して、コマンドプロンプトを閉じます。
  12. 最後に、ちゃんとテザリングができているか確認してみます。
ルート取ってるとすごい簡単に作業が終わりますね(^^

0 件のコメント:

コメントを投稿