Dateien per ADB kopieren
Als erstes sucht man sich den Zielordner mittels:
adb shell ls -l /sdcard/
Anschließend kann man Dateien mittes push kopieren:
adb push myfile.ext /sdcard/my/path/
Als erstes sucht man sich den Zielordner mittels:
adb shell ls -l /sdcard/
Anschließend kann man Dateien mittes push kopieren:
adb push myfile.ext /sdcard/my/path/
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.
$ ls -l /dev/bus/usb/003/010
crw-rw-r-- 1 root root 189, 264 Jun 27 14:15 /dev/bus/usb/003/010
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.
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4ee7", MODE="0666", GROUP="plugdev"
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.
$ ls -l /dev/bus/usb/003/011
crw-rw-rw- 1 root plugdev 189, 265 Jun 27 14:22 /dev/bus/usb/003/011
Ab jetzt kann man auch den adb Befehl als nicht-root Benutzer wieder benutzen.
Um herauszufinden welchen DNS-Server man z.B. per DHCP zugewiesen bekommen hat kann man folgenden Befehl nutzen:
nmcli device show <interfacename> | grep "IP4.DNS"
Den Interfacenamen bekommen man übrigens mit
ifconfig
Falls man mal in der Situation sein sollte dass sich der lokale DNS-Server im Neztwerk verabschiedet hat, dann kann man auf diese Weise seinen DNS Server temporär ändern:
echo "nameserver 8.8.8.8" | sudo tee /etc/resolv.conf
Die Adresse 8.8.8.8 ist ein frei verwendbarer Nameserver von Google.