Android Pie テザリングできない現象のデバッグ
2022年 06月 28日 火曜日
これは2022/06/28のMK社内LTで発表した内容です。
概要
- Android にてテザリングができない現象が発生いたしました
- 対策方法、及びAndroid のデバッグ方法を紹介します
Android デバッグツール:ADB 紹介
- ADB (Android Debug Bridge)は、デバイスと通信するための多用途のコマンドライン ツールです
- adbは、Android SDK Platform-Tools パッケージに含まれています。
SDK Platform-Tools インストール for Mac
- brew install --cask android-platform-tools
SDK Platform-Tools インストール for Windows/Linux
adb 使用
Android 側の設定
- 設定アプリを起動
- ビルド番号を連続タップ
- 開発者向けオプション
- USBでパソコンに接続
- USBデバッグを許可
Host 側
- adb devices
List of devices attached
FA75V1801831	deviceWi-Fi 経由でデバイスに接続する
- adb tcpip 5555
- adb connect device_ip_address:5555
connected to 192.168.174.71:5555- adb devices
List of devices attached
FA75V1801831	device
192.168.174.71:5555	deviceAndroid のバージョンを確認する
adb shell
htc_ocndugl:/ $ getprop ro.build.id
PQ2A.190205.003- android-9.0.0_r33
Logの確認
adb shell
htc_ocndugl:/ $- logcat -c
- logcat Tethering:* *:S
- テザリングを起動
下記のようなログを確認することができました
htc_ocndugl:/ $ logcat Tethering:* *:S
--------- beginning of main
--------- beginning of system
06-27 23:25:18.020  1796  1871 D Tethering: interfaceStatusChanged wlan0, false
06-27 23:25:18.023  1796  1871 D Tethering: ignore interface down for wlan0
06-27 23:25:18.024  1796  1871 D Tethering: interfaceStatusChanged wlan0, false
06-27 23:25:18.024  1796  1871 D Tethering: ignore interface down for wlan0
06-27 23:25:18.029  1796  1871 D Tethering: interfaceStatusChanged wlan0, false
06-27 23:25:18.030  1796  1871 D Tethering: ignore interface down for wlan0
06-27 23:25:18.047  1796  1871 D Tethering: interfaceStatusChanged wlan0, false
06-27 23:25:18.048  1796  1871 D Tethering: ignore interface down for wlan0
06-27 23:25:18.133  1796  1871 D Tethering: interfaceStatusChanged wlan0, false
06-27 23:25:18.133  1796  1871 D Tethering: ignore interface down for wlan0
06-27 23:25:18.193  1796  2069 W Tethering: setWifiInuse: false
06-27 23:25:18.193  1796  1857 D Tethering: Tethering got CONNECTIVITY_ACTION: [type: WIFI[], state: DISCONNECTED/DISCONNECTED, reason: (unspecified), extra: (none), failover: false, available: true, roaming: false]
06-27 23:25:18.414  1796  1857 D Tethering: Tethering wlan0
06-27 23:25:18.483  1796  1857 D Tethering: sendTetherStateChangedBroadcast avail=[] local_only=[] tether=[wlan0] error=[]
06-27 23:25:18.484  1796  1857 D Tethering: Tether Mode requested by name=wlan0 state=TetheredState
06-27 23:25:18.484  1796  1857 V Tethering: TetherMasterSM: enter TetherModeAliveState
06-27 23:25:18.493  1796  1857 I Tethering: [OffloadController] tethering offload disabled
06-27 23:25:18.536  1796  1857 I Tethering: [UpstreamNetworkMonitor] requesting mobile upstream network: NetworkRequest [ NONE id=0, [ Transports: CELLULAR Capabilities: DUN&TRUSTED&NOT_VPN Unwanted: ] ]
06-27 23:25:18.716  1796  1871 D Tethering: interfaceStatusChanged rmnet_data1, true
06-27 23:25:19.157  1796  1857 D Tethering: Tethering got CONNECTIVITY_ACTION: [type: MOBILE[LTE], state: CONNECTED/CONNECTED, reason: (unspecified), extra: bmobile.ne.jp, failover: false, available: true, roaming: false]
06-27 23:25:19.370  1796  1857 E Tethering: [UpstreamNetworkMonitor] ERROR registerMobileNetworkRequest() already registered
06-27 23:25:20.502  1796  1871 D Tethering: interfaceStatusChanged wlan0, true
06-27 23:25:20.519  1796  1871 D Tethering: interfaceStatusChanged wlan0, true
06-27 23:25:29.200  1796  1857 E Tethering: [UpstreamNetworkMonitor] ERROR registerMobileNetworkRequest() already registered
06-27 23:25:39.213  1796  1857 E Tethering: [UpstreamNetworkMonitor] ERROR registerMobileNetworkRequest() already registered
06-27 23:25:49.598  1796  1857 E Tethering: [UpstreamNetworkMonitor] ERROR registerMobileNetworkRequest() already registered[UpstreamNetworkMonitor] ERROR registerMobileNetworkRequest() already registered
Android ソースコード検索
Android Code Search
- registerMobileNetworkRequest() already registeredを検索する
- `packages/modules/Connectivity/Tethering/src/com/android/networkstack/tethering/UpstreamNetworkMonitor.java
`
- ソースコードバージョンをandroid-9.0.0_r33に変更
この commit の時点ではファイルが存在しません
選択したファイルは、履歴のこの時点には存在しません。- Android Code Search は 2019/12/18 リリースのため、それ以前のコードはキーワード検索しかできないため使いづらいです
AndroidXRef
- 
android-9.0.0_r33はなくって、android-9.0.0_r3のみです。 
- 
"registerMobileNetworkRequest() already registered"を検索する
- リリース関数を検索
- 
パラメータ dnuRequiredを変更してみよう
- 
http://androidxref.com/9.0.0_r3/s?refs=updateMobileRequiresDun&project=frameworks 
- 
getTetherApnRequiredを検索
- 
TETHER_DUN_REQUIRED
- 
http://androidxref.com/9.0.0_r3/xref/frameworks/base/core/java/android/provider/Settings.java#9352 
public static final String TETHER_DUN_REQUIRED = "tether_dun_required";TETHER_DUN_REQUIREDのチェックと設定
130|htc_ocndugl:/ $ settings get global tether_dun_required
null130|htc_ocndugl:/ $ settings put global tether_dun_required 0130|htc_ocndugl:/ $ logcat -c
htc_ocndugl:/ $ logcat Tethering:* *:S
--------- beginning of system
--------- beginning of main
06-28 00:34:18.527  1796  1871 D Tethering: interfaceStatusChanged wlan0, false
06-28 00:34:18.527  1796  1871 D Tethering: ignore interface down for wlan0
06-28 00:34:18.530  1796  1871 D Tethering: interfaceStatusChanged wlan0, false
06-28 00:34:18.530  1796  1871 D Tethering: ignore interface down for wlan0
06-28 00:34:18.532  1796  1871 D Tethering: interfaceStatusChanged wlan0, true
06-28 00:34:18.555  1796  1871 D Tethering: interfaceStatusChanged wlan0, true
06-28 00:34:18.586  1796  2064 W Tethering: setWifiInuse: true
06-28 00:34:19.206  1796  1857 D Tethering: Tethering got CONNECTIVITY_ACTION: [type: MOBILE[LTE], state: DISCONNECTED/DISCONNECTED, reason: (unspecified), extra: bmobile.ne.jp, failover: false, available: true, roaming: false]
06-28 00:34:19.234  1796  1857 D Tethering: Tethering got CONNECTIVITY_ACTION: [type: WIFI[], state: CONNECTED/CONNECTED, reason: (unspecified), extra: (none), failover: false, available: true, roaming: false]
06-28 00:34:27.108  1796  1871 D Tethering: interfaceStatusChanged wlan0, false
06-28 00:34:27.109  1796  1871 D Tethering: ignore interface down for wlan0
06-28 00:34:27.109  1796  1871 D Tethering: interfaceStatusChanged wlan0, false
06-28 00:34:27.110  1796  1871 D Tethering: ignore interface down for wlan0
06-28 00:34:27.114  1796  1871 D Tethering: interfaceStatusChanged wlan0, false
06-28 00:34:27.115  1796  1871 D Tethering: ignore interface down for wlan0
06-28 00:34:27.137  1796  1871 D Tethering: interfaceStatusChanged wlan0, false
06-28 00:34:27.137  1796  1871 D Tethering: ignore interface down for wlan0
06-28 00:34:27.248  1796  1871 D Tethering: interfaceStatusChanged wlan0, false
06-28 00:34:27.249  1796  1871 D Tethering: ignore interface down for wlan0
06-28 00:34:27.269  1796  1857 D Tethering: Tethering got CONNECTIVITY_ACTION: [type: WIFI[], state: DISCONNECTED/DISCONNECTED, reason: (unspecified), extra: (none), failover: false, available: true, roaming: false]
06-28 00:34:27.409  1796  1857 D Tethering: Tethering got CONNECTIVITY_ACTION: [type: MOBILE[LTE], state: CONNECTED/CONNECTED, reason: (unspecified), extra: bmobile.ne.jp, failover: false, available: true, roaming: false]
06-28 00:34:27.411  1796  2069 W Tethering: setWifiInuse: false
06-28 00:34:27.617  1796  1857 D Tethering: Tethering wlan0
06-28 00:34:27.633  1796  1857 D Tethering: sendTetherStateChangedBroadcast avail=[] local_only=[] tether=[wlan0] error=[]
06-28 00:34:27.673  1796  1857 D Tethering: Tether Mode requested by name=wlan0 state=TetheredState
06-28 00:34:27.673  1796  1857 V Tethering: TetherMasterSM: enter TetherModeAliveState
06-28 00:34:27.683  1796  1857 I Tethering: [OffloadController] tethering offload disabled
06-28 00:34:27.688  1796  1857 I Tethering: [UpstreamNetworkMonitor] requesting mobile upstream network: NetworkRequest [ NONE id=0, [ Transports: CELLULAR Capabilities: INTERNET&NOT_RESTRICTED&TRUSTED&NOT_VPN Unwanted: ] ]
06-28 00:34:27.701  1796  1857 I Tethering: Looking for default routes on: {InterfaceName: rmnet_data1 LinkAddresses: [10.56.75.45/30,]  Routes: [0.0.0.0/0 -> 10.56.75.46 rmnet_data1,10.56.75.44/30 -> 0.0.0.0 rmnet_data1,] DnsAddresses: [223.25.162.10,223.25.162.9,] UsePrivateDns: false PrivateDnsServerName: null Domains: null MTU: 1500 TcpBufferSizes: 1048576,2097152,10485760,262144,524288,3461120}
06-28 00:34:27.702  1796  1857 I Tethering: Found upstream interface(s): [rmnet_data1]
06-28 00:34:27.708  1796  1857 I Tethering: Looking for default routes on: {InterfaceName: rmnet_data1 LinkAddresses: [10.56.75.45/30,]  Routes: [0.0.0.0/0 -> 10.56.75.46 rmnet_data1,10.56.75.44/30 -> 0.0.0.0 rmnet_data1,] DnsAddresses: [223.25.162.10,223.25.162.9,] UsePrivateDns: false PrivateDnsServerName: null Domains: null MTU: 1500 TcpBufferSizes: 1048576,2097152,10485760,262144,524288,3461120}
06-28 00:34:27.708  1796  1857 I Tethering: Found upstream interface(s): [rmnet_data1]
06-28 00:34:27.754  1796  1857 D Tethering: Tethering got CONNECTIVITY_ACTION: [type: MOBILE[LTE], state: CONNECTED/CONNECTED, reason: (unspecified), extra: bmobile.ne.jp, failover: false, available: true, roaming: false]
06-28 00:34:27.756  1796  1857 I Tethering: Looking for default routes on: {InterfaceName: rmnet_data1 LinkAddresses: [10.56.75.45/30,]  Routes: [0.0.0.0/0 -> 10.56.75.46 rmnet_data1,10.56.75.44/30 -> 0.0.0.0 rmnet_data1,] DnsAddresses: [223.25.162.10,223.25.162.9,] UsePrivateDns: false PrivateDnsServerName: null Domains: null MTU: 1500 TcpBufferSizes: 1048576,2097152,10485760,262144,524288,3461120}
06-28 00:34:27.756  1796  1857 I Tethering: Found upstream interface(s): [rmnet_data1]
06-28 00:34:27.778  1796  1857 D Tethering: Tethering got CONNECTIVITY_ACTION: [type: MOBILE[LTE], state: DISCONNECTED/DISCONNECTED, reason: (unspecified), extra: bmobile.ne.jp, failover: false, available: true, roaming: false]
06-28 00:34:27.779  1796  1857 I Tethering: Looking for default routes on: {InterfaceName: rmnet_data1 LinkAddresses: [10.56.75.45/30,]  Routes: [0.0.0.0/0 -> 10.56.75.46 rmnet_data1,10.56.75.44/30 -> 0.0.0.0 rmnet_data1,] DnsAddresses: [223.25.162.10,223.25.162.9,] UsePrivateDns: false PrivateDnsServerName: null Domains: null MTU: 1500 TcpBufferSizes: 1048576,2097152,10485760,262144,524288,3461120}
06-28 00:34:27.780  1796  1857 I Tethering: Found upstream interface(s): [rmnet_data1]
06-28 00:34:27.782  1796  1857 D Tethering: Tethering got CONNECTIVITY_ACTION: [type: MOBILE[LTE], state: CONNECTED/CONNECTED, reason: (unspecified), extra: bmobile.ne.jp, failover: false, available: true, roaming: false]
06-28 00:34:27.790  1796  1857 I Tethering: Looking for default routes on: {InterfaceName: rmnet_data1 LinkAddresses: [10.56.75.45/30,]  Routes: [0.0.0.0/0 -> 10.56.75.46 rmnet_data1,10.56.75.44/30 -> 0.0.0.0 rmnet_data1,] DnsAddresses: [223.25.162.10,223.25.162.9,] UsePrivateDns: false PrivateDnsServerName: null Domains: null MTU: 1500 TcpBufferSizes: 1048576,2097152,10485760,262144,524288,3461120}
06-28 00:34:27.797  1796  1857 I Tethering: Found upstream interface(s): [rmnet_data1]
06-28 00:34:29.699  1796  1871 D Tethering: interfaceStatusChanged wlan0, true
06-28 00:34:29.709  1796  1871 D Tethering: interfaceStatusChanged wlan0, trueまとめ
- テザリング起動する時、ネットワークレジスターでエラーが発生します
- ソース検索ツールを使った回避方法の探し方をまとめました
- アップデート前に前回のネットワーク設定を初期化する必要がありました
- dnuRequired 関するパラメターを変更すれば、内部の設定を初期化してくれるようです
- Android SettingsのTETHER_DUN_REQUIREDを0 にすれば、問題を解消することができます
- adb settings put global tether_dun_required 0
この記事をシェア
 
   
   
   
   
   
   
   
   
   
  