普通にはadbで認識できないAndroid機を認識させる

通常のAndroid機は /etc/udev/rules-d/51-android.rules にベンダIDを追加してやるとadbで操作できるようになるのですが、coviaのFLEAZ F4s/F4s+は認識することができません。いろいろ試してみたところ、わかってきたことをメモしておきます。環境は LinuxMint18 MATE edition 64bit です。

まずはUSBのデバイスIDを調べます。(必要なもの以外は結果から削除しています)

$ lsusb
Bus 001 Device 016: ID 0a5c:e688 Broadcom Corp.

BroadcomのチップのベンダIDそのままのようです。(これはF4sのもの。F4s+はデバイスIDはe681になるようです)
とりあえず、/etc/udev/rules-d/51-android.rules にベンダIDを記載して再読み込みさせてみます。

$ cat /etc/udev/rules.d/51-android.rules 
SUBSYSTEM=="usb", ATTR{idVendor}=="05ac", MODE="0666", GROUP="plugdev"
$ sudo udevadm control -R

この状態で、USBを抜き差ししてから adb コマンドを叩いてみても、

$ adb devices
List of devices attached

となって、デバイスが見つかりません。
いろいろググると、~/.android/adb_usb.ini にベンダIDを書くとよい、というような記載をいくつか見つけたので試してみます。

$ cat .android/adb_usb.ini 
0x0a5c

$ sudo service udev restart
$ adb kill-server
$ adb devices
* daemon not running. starting it now on port 5037 *
* daemon started successfully *
List of devices attached 
???????????? no permissions

状況が変わりました。この状態で TCP/IP 接続でデバッグする設定にしてみます。

$ adb tcpip 5555
error: insufficient permissions for device

パーミッションで蹴られてしまいました。ルート権限で試してみます。

$ sudo adb kill-server
$ sudo adb start-server
* daemon not running. starting it now on port 5037 *
* daemon started successfully *
$ adb devices
List of devices attached 
F4Sxxxxxxxxx unauthorized

$ sudo adb tcpip 5555
error: device unauthorized. Please check the confirmation dialog on your device.

端末上にデバッグ接続可否のダイアログが出ていたので、許可してみます。

$ adb tcpip 5555
restarting in TCP mode port: 5555
$ adb install xxxxxxx.apk
2460 KB/s (261419 bytes in 0.103s)
 pkg: /data/local/tmp/xxxxxxx.apk
Success

となって無事にインストールできました。

改めて /etc/udev/rules-d/51-android.rules を削除してやってみました。
どうも、/etc/udev/rules-d/51-android.rules は必要ないようです。
一般ユーザー権限では、

$ adb devices
* daemon not running. starting it now on port 5037 *
* daemon started successfully *
List of devices attached 
???????????? no permissions

となってパーミッションエラーになりますが、通常の Android機はルート権限で adb server を起動すると認識できるようです。

$ sudo adb kill-server
$ sudo adb start-server
* daemon not running. starting it now on port 5037 *
* daemon started successfully *
$ sudo adb tcpip 5555
restarting in TCP mode port: 5555

さらに、今回の covia FLEAZ F4s/F4s+ のようになにもしないと認識しない機種でも、 ~/.android/adb_usb.ini にベンダIDを書いてやれば認識できるようです。

$ echo "0x0a5c" > ~/.android/adb_usb.ini
$ cat ~/.android/adb_usb.ini 
0x0a5c
B ~ $ adb devices
List of devices attached

$ sudo adb kill-server
$ sudo adb start-server
* daemon not running. starting it now on port 5037 *
* daemon started successfully *
$ adb devices
List of devices attached 
F4Pxxxxxxxxx device

$ sudo adb tcpip 5555
restarting in TCP mode port: 5555

ここで F4s+ を外して F4s を接続してみます。

$ adb devices
List of devices attached 
F4Sxxxxxxxxx device

$ sudo adb tcpip 5555
restarting in TCP mode port: 5555

となり、無事に認識しました。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)