1. ホーム
  2. android

[解決済み] Android Debug Bridge (adb) デバイス - パーミッションがない [重複].

2022-04-13 01:58:49

質問

Fedora Linux 17 で HTC Wildfire A3333 をデバッグモードで接続すると問題が発生します。Adbは言います。

./adb devices
List of devices attached 
????????????    no permissions

私の udev ルール (最初のルールは Samsung 用で正常に動作し、2 番目のルールは HTC 用で正常に動作しない)。

SUBSYSTEM=="usb",SYSFS{idVendor}=="04e8",SYMLINK+="android_adb",MODE="0666",GROUP="plugdev" 
SUBSYSTEM=="usb",SYSFS{idVendor}=="0bb4",SYMLINK+="android_adb",MODE="0666",GROUP="plugdev"

サムスン製端末の場合は、すべてOKです。

 ./adb devices
List of devices attached 
00198a9422618e  device

私は同じようなスレッドで与えられたすべての答えを試していますが、運が悪いです。 アンドロイド開発でHTCワイルドファイアを使用

解決するには?

この問題の原因は、システムのパーミッションに関係しています(@ IsaacCisneros さん、この提案に感謝します)。HTC Wildfire (そして多分他のデバイスも) は Samsung デバイスよりもシステムから何かを必要としているようです。単純な解決策は、Eclipseをrootとして実行することですが、これはFedoraのような非sudoのLinuxシステムではあまり快適ではありません。

同じ目標を達成する別の方法を見つけました。IDE全体をスーパーユーザー権限で実行するよりも、よりユーザーフレンドリーでセキュリティホールも少ないと思われる方法です。これはまだ問題の回避策に過ぎないことに留意してください。システムルートの使用は管理作業に限定されるべきで、"adb "はSUIDを持たない通常のユーザーアカウントで動作するように設計されています。SUIDの適切な設定は非常に安全であるという事実にもかかわらず、すべてのパーミッションの増加は潜在的なシステムのセキュリティホールとなるのです。

1.adbバイナリの所有権を設定する(所有者:root、所有者グループ:user_group)。

chown root:user_group adb

2.SUIDでパーミッションを設定する。

chmod 4550 adb

このような結果になるはずです(ls -llh)。

-r-sr-x---. 1 root user_name 1.2M Jan 8 11:42 adb

この後、通常のユーザーアカウントを使用することになりますが、rootとしてadbを実行することができるようになります。Eclipseを通常のユーザーとして実行すれば、HTCが正しく検出されるはずです。

./adb devices 
List of devices attached 
HT0BPPY15230    device