読者です 読者をやめる 読者になる 読者になる

memo-pad’s blog

自分のためのメモをまとめています。ここに書いてある内容については責任は負いません。全て自己責任でお願いします。

docomo端末でのMVNOテザリング有効化方法

導入

だいぶ前に手に入れた0sim(0 SIM | nuroモバイル)を長らく放置していたので、余っていたDocomo端末にさしてモバイルルータ代わりにしました。

月500MBまでしか無料じゃないですけど、そこまで頻繁には使わないので中々快適です。

ただ、Docomo端末でMVNOを使ってテザリングする際に罠が一つあったのでここに書いておきます。

ちなみにメインで使ってるau端末はMVNO使ってますがテザリングはそのまま使えたのでdocomo端末特有の問題だと思われます。

どんな罠があるのか?

結論から言ってしまうと、Docomo端末でMVNO使ってテザリングするとネットに繋がりません。

これは、テザリングする際にDocomo端末はデフォルトのAPNを見にいってしまって、MVNO用に設定したAPNを見に行かないのが原因みたいです。

どうやってテザリング中にネット接続をできるようにするのか

まずはadb使えるように環境を整える必要があります。

自分はMac環境ですが、Android Studioを入れていたため既にadbが入っている状態でしたので、ここは省略

下記は実際に自分の持っている端末(Docomo L-05D)に対して行ったことです。

  1. PCでadbを使える環境を整える
  2. スマートフォンをUSBデバッグ状態でPCと接続する
  3. コマンドプロンプトやターミナルで下記コマンドを実行(L-05Dの場合)
$ adb shell content insert --uri content://settings/secure --bind name:s:tether_dun_required --bind value:i:0

–bind value:i:に0を指定することでテザリング時にAPNが変更されなくなります。

もとに戻したい時はここの0を1にすればOK。

PCとスマートフォンを接続するケーブルは給電専用ではなくて、下記のようなデータ通信可能なケーブルを使ってください

補足: adb contentコマンドの使い方

下記コマンドでcontentコマンドの使い方が見れる

$ adb shell content

出力結果

usage: adb shell content [subcommand] [options]

usage: adb shell content insert --uri <URI> --bind <BINDING> [--bind <BINDING>...]
  <URI> a content provider URI.
  <BINDING> binds a typed value to a column and is formatted:
  <COLUMN_NAME>:<TYPE>:<COLUMN_VALUE> where:
  <TYPE> specifies data type such as:
  b - boolean, s - string, i - integer, l - long, f - float, d - double
  Note: Omit the value for passing an empty string, e.g column:s:
  Example:
  # Add "new_setting" secure setting with value "new_value".
  adb shell content insert --uri content://settings/secure --bind name:s:new_setting --bind value:s:new_value

usage: adb shell content update --uri <URI> [--where <WHERE>]
  <WHERE> is a SQL style where clause in quotes (You have to escape single quotes - see example below).
  Example:
  # Change "new_setting" secure setting to "newer_value".
  adb shell content update --uri content://settings/secure --bind value:s:newer_value --where "name='new_setting'"

usage: adb shell content delete --uri <URI> --bind <BINDING> [--bind <BINDING>...] [--where <WHERE>]
  Example:
  # Remove "new_setting" secure setting.
  adb shell content delete --uri content://settings/secure --where "name='new_setting'"

usage: adb shell content query --uri <URI> [--projection <PROJECTION>] [--where <WHERE>] [--sort <SORT_ORDER>]
  <PROJECTION> is a list of colon separated column names and is formatted:
  <COLUMN_NAME>[:<COLUMN_NAME>...]
  <SORT_OREDER> is the order in which rows in the result should be sorted.
  Example:
  # Select "name" and "value" columns from secure settings where "name" is equal to "new_setting" and sort the result by name in ascending order.
  adb shell content query --uri content://settings/secure --projection name:value --where "name='new_setting'" --sort "name ASC"