last update 2015年3月25日 9:29

ドコモ端末+MVNO SIMでもテザリングを使えるようにする方法(root不要)

TetheringWithDocomoAndroid_sh

非rootでも、ドコモ版 Android 機+MVNOの格安SIMで公式テザリングが使えるようにする技、を AndroPlus さんなどが紹介している件について触れておきます。

これは全ての機種で使える技ではなく、現状、Xperia AX、A、A2、Z1f、Z2、Z3、Z3 Compact、など、Xperia シリーズでの成功報告がメインとなっています。(LG G2 L-01F など他機種でも成功報告があるようですが…)

adbコマンドで公式テザリング時のAPN切り替えを無効化する

Android 端末のテザリング時APNロックを解除する方法は以下。

  • Android 側で「開発者向けオプション」を出す
  • Android 側で「設定」→「開発者向けオプション」→「USBデバッグ」にチェック
  • PC 側で adb コマンドが使える様にする。(Android機種用のUSBドライバと Android SDK をインストール)
  • Android を USB で PC と接続する。

その後、PC のコマンドプロンプトなどで adb コマンドがあるディレクトリへ移動し、次のコマンドを実行します。

adb shell
settings put global tether_dun_required 0

これだけです。

うまくいかない場合は、

  • adb shell コマンドが無いと言われる場合
    →「Android SDK Manager」で「Android SDK Platform-tools」をインストールしましょう。
  • adb shell コマンドでエラーが発生する場合
    → その機種用のUSBドライバ(adbドライバ)が正しくインストールされているか確認しましょう。

ついでなので、ドコモのテザリング周りの仕様と、今回の方法でMVNOでもテザリングできるようになる理由、についても触れておきます。

ドコモ版Android機は、公式テザリングにAPNロックが掛かっている

ドコモ版 Android 機で公式テザリングをONにすると、通常、接続先APNが強制的にテザリング専用APN「dcmtrg.ne.jp」へと切り替わる仕様となっています。

しかし、この「dcmtrg.ne.jp」はドコモ契約のSIMでしか繋がらない APN のため、「ドコモのAndroid端末に MVNO の SIM を挿すと公式テザリングが使えない」原因となっていました。

厄介なテザリングAPNロックを無効化する方法はこれまでも知られていましたが、いずれも root 権限が必要。という欠点がありました。(具体的には、custom_settings.xml を書き換えたり、Android の内部設定値を保持している「settings.db」を軽量データベース「sqlite」で直接書き換える方法など)

今回、AndroPlus さんが紹介された技は、非rootでも「settings.db」を書き換えられる。というのが新しい点と言えます。

余談

今回の方法は、settings.db にテザリング関連の設定が入っている機種で、なおかつ、先のコマンドが許可されている一部機種でのみ使える、と推測されます。

未報告機種での成功・失敗情報は、コメント欄、Twitter などでいただけると、記事に蓄積できると思います。

目下、国内端末のSIMフリー化を推進中の総務省ですが、root を取得しない一般ユーザーにとってはテザリングAPNロックやaGPSサーバーロックなどの細かい課題が浮き上がってきている状況であり、MVNO 側からも総務省に対して声を上げていたとは耳にしています。

5月以降のSIMフリー義務化以降、SIMフリー化手続き時にこれらのロックが合わせて解除されるのか、それとも、ついにドコモのテザリング専用APNが廃止される形になるのか、どのような形で落ち着くのか、気になる所です。

ソース:

この記事への1件のコメントがあります

  1. tnsox says:

    1ヶ月前

    情報ありがとうございます.
    SH-06Eでwifiテザリングはできなかったのですが,
    こちらと,tarosuke@githubさん↓のサイトを参考に
    http://qiita.com/tarosuke@github/items/427a71986e4c71965472
    USBテザリングできました.
    tarosuke@githubさんはiijmioですが,
    私はイオンモバイルなので以下のコマンドでうまくいきました.

    settings put global tether_dun_apn AEON,i-aeonmobile.com,,,user,0000,,,,,440,10,3,*

    また,私はandroidの以下のコマンドラインツールを2つダウンロードしたのですが,
    adbコマンドだけなら2)をダウンロードしてcmdから実行するだけで良かったのかもしれません.

    1)「Android SDK Tools」
    https://developer.android.com/studio/index.html#command-tools
    2)「SDK Platform Tools」
    https://developer.android.com/studio/releases/platform-tools.html

コメントを記入