ADB

Vorbereitungen

Damit man unter Linux auch als User auf das USB-Gerät zugreifen kann, sollte eine passende Udev Regel angelegt werden:

/etc/udev/rules.d/70-android.rules
SUBSYSTEM=="usb", ENV{ID_VENDOR_ID}="04e8", ENV{ID_MODEL_ID}="681c", MODE="0666"

Anstatt 04e8 und 681c müssen die Vendor und Product ID des eigenen Smartphones eingetragen werden, diese kann man per lsusb anzeigen lassen.

ADB Befehle

adv devices
adb remount -- remount failed: No such file or directory
adb root -- adbd cannot run as root in production builds
adb logcat
adb logcat *:W *:E
adb shell
pm list packages

Probleme mit der ADB

Gelegentlich, besonders nach Änderungen in der /system Partition kam es vor, dass ADB nicht mehr funktionierte. Nachforschungen per strace zeigten mir, dass der lokale adb Server das USB Device irgendwie nicht mehr mochte (wurde nach dem read wieder geschlossen). Verdächtigerweise zeigte lsusb nun auch eine andere ProductID an als sonst (und zwar 6601 anstatt 681c).
Woran das liegt ist mir noch nicht ganz klar, aber eine Lösung habe ich gefunden: Es muss die Cache Partition gelöscht werden.
Dies ist im Recovery mode möglich, den man per "reboot recovery" in einer Shell (als root) erreichen kann.