fastbootとadbがsudoで機能しない
Fastbootコマンドを実行しようとすると、Ubuntuマシンで非常に奇妙な問題が発生します。
私が走ると:
fastbootデバイス
私は得る
権限がないfastboot
だから私は管理者権限でコマンドを実行します:
Sudo fastbootデバイス
そして、私は結果を得ます
Sudo:fastboot:コマンドが見つかりません
どうすればいいの? PATHにディレクトリがあり、Sudoがなくてもすべてが正しく機能します。
Sudo
を実行する必要があるたびにfastboot
を介して権限を強制する代わりに、問題を完全に修正できます。
lsusb
を使用して、デバイスのUSB VendorIDを識別します- デバイスが接続されているときに適切な権限を設定するように
udev
を構成します - 利益!
おまけとして-adb
でも修正されます。
たとえば、私の場合(「Megafon SP-A20i」の場合):
$ fastboot devices
no permissions fastboot
$ Sudo fastboot devices
[Sudo] password for kaa:
MedfieldA9055F28 fastboot
$
修正しましょう:
まず、デバイスを特定する必要があります。
a)USBバス番号を探します(ハック:デバイスがIntelベースのデバイスであることを知っています)
$ fastboot -l devices
no permissions fastboot usb:1-1.2
$ lsusb |grep 001 |grep -i intel
Bus 001 Device 044: ID 8087:09ef Intel Corp.
Bus 001 Device 002: ID 8087:0020 Intel Corp. Integrated Rate Matching Hub
$
b)他のIntelデバイスを探します。
$ lsusb |grep 8087
Bus 002 Device 002: ID 8087:0020 Intel Corp. Integrated Rate Matching Hub
Bus 001 Device 044: ID 8087:09ef Intel Corp.
Bus 001 Device 002: ID 8087:0020 Intel Corp. Integrated Rate Matching Hub
$
ハブは確かにスマートフォンではないため、必要なUSBベンダーIDは「8087」です。
次に、udev
を構成します(「idVendor」の値を自分のものに置き換える必要があります)。
$ Sudo sh -c "echo '# Megafon SP-A20i' >> /etc/udev/rules.d/51-Android.rules"
$ Sudo sh -c "echo 'SUBSYSTEM==\"usb\", ATTR{idVendor}==\"8087\", MODE=\"0666\", GROUP=\"plugdev\"' >> /etc/udev/rules.d/51-Android.rules"
$ Sudo service udev restart
udev stop/waiting
udev start/running, process 1821
$
3番目に、udev
が魔法のような機能を実行できるようにデバイスを再接続します。
最終チェック:
$ fastboot -l devices
MedfieldA9055F28 fastboot usb:1-1.2
$ adb devices
List of devices attached
$ fastboot reboot
rebooting...
finished. total time: 0.253s
$ sleep 90
$ adb devices
List of devices attached
MedfieldA9055F28 device
$
出来上がり!
使用できます
Sudo $(which fastboot)デバイス