Wenn man beim Ausführen des adb Befehls folgenden Fehler erhält:
* daemon not running. starting it now at tcp:5037 *
* daemon started successfully *
adb: error: failed to get feature set: insufficient permissions for device: verify udev rules.
See [http://developer.android.com/tools/device.html] for more information.
dann hat man auf das USB Device keine Zugriffsrechte
Wenn man sich die Ausgabe von dmesg anschaut, bekommt man einige wichtige Informationen.
[22040.856756] usb 3-2: new high-speed USB device number 10 using xhci_hcd
[22041.085756] usb 3-2: New USB device found, idVendor=18d1, idProduct=4ee7
[22041.085758] usb 3-2: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[22041.085759] usb 3-2: Product: Nexus 7 [24044.085770] usb 3-2: Manufacturer: asus
[22041.085761] usb 3-2: SerialNumber: 1fa6c31a
Man kann erkennen das das angeschlossene Gerät ein Nexus 7 ist welches am Bus 3 hängt und die USB Device Nummer 10 hat. Daraus ergibt sich die Gerätedatei /dev/bus/usb/003/010. Schaut man sich diese an stellt man fest, dass diese root gehört und auch nur root bzw. Mitglieder der Gruppe root darauf Zugriff haben.
Die Rechte die eine solche Gerätedatei erhält kann man über udev-Regeln verändern.
Für mein Nexus 7 habe ich eine Datei /etc/udev/rules.d/80-nexus.rules angelegt mit folgendem Inhalt.
Steckt man das Gerät jetzt aus und wieder ein wird die Gerätedatei andere Rechte bekommen. Allerdings wieder mit dmesg schauen denn die USB device number wird sich sicherlich ändern.
Ab jetzt kann man auch den adb Befehl als nicht-root Benutzer wieder benutzen.