/

USBケーブルを全く使わずにAndroid端末とPCをadb接続する(LineageOSかroot化が必要)

TermuxとTermux用adbを使えば、普通のAndroid端末でもUSB無しの接続ができると思って、最初の投稿をしましたが、結局できないことが判明したので内容を修正しました

TermuxとTermux用adbを使えば、普通のAndroid端末でもUSB無しでadb接続ができると思って、最初の投稿をしましたが、結局できないことが判明したので内容を修正しました

Wi-Fi経由でAndroidに接続するだけなのであればAndroidにTermuxを入れてSSHで入ってLinux環境を作る【まとめ版】の1~3を参照してください

Zenfone2のTermux画面
Zenfone2のTermux画面

Android端末とPCをUSBケーブルを1回も使わずに、adb接続する方法です。

adb接続に使うUSBケーブルはデータ通信に対応してなければならないとか、そもそもAndroid端末のUSBポートが壊れていて充電しかできない場合とかにオススメでございます。

なお、USBケーブルなしで繋ぐということは電波を使うことになるのでWi-Fiが必須となります。

もちろんPCもAndroidも同じWi-Fiネットワーク内にいることが条件です。

また、LineageOS(OxygenOSでもいいようです)がインストールされている端末か、root化されている端末である必要があります。

ケースA. Android側での準備(LineageOSかOxygenがインストールされている)

端末にカスタムROMのLineageOSを焼いている場合です。

私のAndroid端末および会社で使ってる端末で確認しました。 確認した端末は下記のとおりです。

  • Zenfone 2 / LineageOS 14.1 / Android 7.1.2
  • Nexus 5 / LineageOS系のAndroid 9
  • Zenfone 2 Laser / LineageOS系のAndroid 8
  • Huawei P8 Lite / LineageOS系のAndroid 7
  1. 設定 => 端末情報 => ビルド番号を数回タップして「開発者向けオプション」を表示する
  2. 設定 => 端末情報 => 開発者向けオプション
    • AndroidデバッグをONにする
    • ネットワーク経由のadbという項目があったらオンにする
    • IPとポートをメモする

これだけです、とにかく非常に簡単です。

OxygenOSでもいけるようですが、私はOxygenOSの入ったAndroid端末を持っていないので実際にできるかは確認できていません。

ケースB. Android側での準備(root化されている)

  1. 設定 => 端末情報 => ビルド番号を数回タップして「開発者向けオプション」を表示する
  2. 設定 => 端末情報 => 開発者向けオプション
    • AndroidデバッグをONにする
  3. ターミナルアプリをインストールする 下記のリンクを参照
  4. ターミナル用キーボードアプリをインストールする(必須ではない) 下記のリンクを参照
  5. なんらかの方法で3でインストールしたターミナルアプリのルートアクセスを許可する
    • LineageOSだと開発者オプションからルートアクセスを許可できるようですが、私の端末ではちゃんと確認できず
  6. IPとPortの設定と確認
    • インストールしたターミナルアプリを起動して下記のコマンドを打つ
# IPの確認
$ ip a | grep wlan
## 下記のように表示される この場合だと2行目のinetの直後から"/"の前までがIP
### 3: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
###    inet xxx.xxx.x.xxx/xx brd xxx.xxx.x.xxx scope global wlan0

# ポートの確認
$ getprop | grep port

## 下記のように表示されたらOK portは5555
### [setprop service.adb.tcp.port]: [5555]

# ポートが表示されなかったら
$ su
$ setprop service.adb.tcp.port 5555

このルート化されている場合の方法はちゃんと私の端末でテストできてません、なのでわかり次第更新します。

ケースC. Android側での準備(通常の場合)

この方法はUSB接続を使います。なので、タイトルのUSBを使わずというのとは趣旨がずれますが、一応書いときます。

  1. 設定 => 端末情報 => ビルド番号を数回タップして「開発者向けオプション」を表示する

  2. 設定 => 端末情報 => 開発者向けオプション

    • AndroidデバッグをONにする
  3. PCと端末をUSBで繋げる

  4. PCでターミナルをたちあげる(コマンドプロンプトとかcygwinとかターミナルとか)

# 接続
$ adb devices

# 端末にadb接続していいかアラートが表示されるのでOKする

# Wi-Fi接続の許可
$ adb tcpip 5555

# IPの確認
$ adb shell ip route
## 表示されたIPをメモ
  1. 端末とPCのUSB接続を外す

PC側からadbで接続

ケースA・B・Cのどれかを実行出来たらPCからAndroidに接続します。

PCでターミナル(Windowsならコマンドプロンプトとかcygwinとか)を起動し、下記のコマンドを打ちます。

# adb接続
$ adb connect <IP>:5555
## 例
$ adb connect 192.168.1.123:5555

# adbコマンドでいろんなことをする #

# 接続を切る場合は
$ adb disconnect

こんな感じでUSBケーブルを全く使わず(ケースC以外)でPCからAndroidにadb接続できちゃいます。

あと、注意としてPC側がWi-Fiと有線LANに接続されている場合は、うまく行かないので有線LANのほうは抜いて試してください。

なお、Androidが起動していて、かつWi-Fi接続していることが条件なので、fastbootモードで再起動したりすると接続は切れちゃいますのであしからず。

今回のこの方法は端末数台(Asus Zenfone 2とHUAWEI P8 Liteとか)でテストしたものですが、Samsung系とかXiaomiとかでは全くテストできていないのでそういうメーカーのスマホの場合どうなるかわかりません。

自分の端末でやってみたらうまく行かなかった!ということもありますのでその時はごめんなさい。

[ 参考 ] Secrets of Android Developer Options. Wireless Debugging: Yay or Nay?