adb jetzt auch auf dem Galaxy

  • 31 Antworten
  • Letztes Antwortdatum
F

floe

Ambitioniertes Mitglied
1
Hallo zusammen,

das ist jetzt erst mal eher für die Hackernaturen interessant: ich hab adb ein bisschen gepatcht und jetzt läufts auch auf dem Galaxy. Wer das auch ausprobieren möchte, muss leider in den sauren Apfel beissen und sich das Android SDK selber übersetzen (siehe source.android.com). Vorher muss noch dieses Changeset hier https://review.source.android.com/#change,10728 angewandt werden, dann kann adb auch mit dem Galaxy reden (zumindest mal unter Linux, für Windows hab ich's noch nicht probiert).

Happy hacking :)
CU Floe
 
olafgeibig schrieb:
Dort gab es auch einen Link auf den source bei android.git.kernel.org . Und der hatte schon die Samsung Vendor ID drin... Wieso weicht das voneinander ab?
http://android.git.kernel.org/?p=pl...t;a=blob_plain;f=adb/usb_vendors.c;hb=cupcake

Hm, kapier ich nicht ganz. usb_vendors.c gibts bei mir gar nicht. Ich dachte eigentlich, ich hätte mir den master-Branch geholt, und der beinhaltet inzwischen Cupcake? Aber ich bin nicht grade der git-Kenner, evtl. hab ich den falschen Branch. Wie kann ich das feststellen?
 
floe schrieb:
Hm, kapier ich nicht ganz. usb_vendors.c gibts bei mir gar nicht. Ich dachte eigentlich, ich hätte mir den master-Branch geholt, und der beinhaltet inzwischen Cupcake? Aber ich bin nicht grade der git-Kenner, evtl. hab ich den falschen Branch. Wie kann ich das feststellen?
Im gitweb-Interface kannst du die History der Branches vergleichen. master hat die zwei relevanten Commits von cupcake noch nicht drin.
 
leromarinvit schrieb:
Im gitweb-Interface kannst du die History der Branches vergleichen. master hat die zwei relevanten Commits von cupcake noch nicht drin.
Ah, verstehe. Gut, dann brauchts letztlich von meinem Changeset nur den Patch für usb_linux.c, da das Samsung ein bisschen komplexere USB-Descriptors hat als die anderen Geräte. Soweit ich das auf den ersten Blick beurteilen kann, dürfte es unter Windows/Mac auf Anhieb klappen, sobald die USB-ID drin ist.
 
Kann man nicht, sobald alles neu übersetzt ist, die relevanten Dateien irgendwo hochladen und dann hier posten? Oder sind das zu viele (sprich betrifft das größere Teile des SDK)?

Dann müsste nicht jeder selber übersetzen :)
 
Großartig - nun funzt es bei mir. Ich habe Ubuntu hardy 64 bit mit dem r3 cupcake sdk mit dem gepatchten adb. Geht alles, shell, ddms...

SUPER!!! Danke, ich hoffe, das geht in den head ein (oder wie auch immer man das bei git nennt). Ich bin so frei mal auf den Changeset und diesen Thread im dem englischen Thread zu verlinken.

Cheers, Olaf
 
olafgeibig schrieb:
Großartig - nun funzt es bei mir. Ich habe Ubuntu hardy 64 bit mit dem r3 cupcake sdk mit dem gepatchten adb. Geht alles, shell, ddms...

Das bedeutet was? Was kannst du jetzt damit anfangen?
 
Das hilft mir unter Windows aber vermutlich noch immer nicht, weil der Treiber fürs Galaxy nicht erkannt / angenommen wird, oder?
 
Ok, man braucht das SDK natürlich in erster Line zum gescheiten Entwickeln. mit der adb muss man halt nicht mehr seine Apps immer via USB-storage auf das Gerät kopieren und, installieren und ausprobieren, sondern das geht bequem über adb. Man kann seine App auf dem Gerät remote-debuggen, und und und.

Für den geneigten User ist adb auch interessant, da man mittels
Code:
adb shell
eine remote Kommandozeile aufmachen kann. Auf dem Gerät selber kann man ja nicht richtig mit einer Shell umgehen. Ausserdem bietet ddms gewaltige Analyse-Möglichkeiten, Logs, Speicher-Auslastung, Threads, etc. etc.

By the way, damit ddms richtig auf einem 64 bit Linux funzt, müsste man 64 bit SWT-libs genau in der benötigten Version bereitstellen. Das SDK hat aber nur 32 bit Versionen mit dabei. Da ich diese Versionen auf die schnelle nicht gefunden habe (könnte man evtl. von einer eclipse distro extrahieren), habe ich mir ein 32 bit Java installiert und im ddms skript in Zeile 72 dann java_cmd="/usr/lib/jvm/ia32-java-6-sun/jre/bin/java" gesetzt. Dann geht's.

Gruß, Olaf
 
unter WindowsXP ist es mit dem sdk1.5r3 noch etwas leichter
einfach die inf-Datei für den USB-Treiber anpassen

im oberen Teil:
[Google.NTx86]
%USB\VID_04E8&PID_6640&MI_04.DeviceDescRelease%=androidusb.Dev, USB\VID_04E8&PID_6640&MI_04

im unteren Teil:
[Strings]
...
USB\VID_04E8&PID_6640&MI_04.DeviceDescRelease="Samsung Galaxy Composite ADB Interface"

danach den Treiber installieren, schauen, ob adb schon läuft, wenn ja, per Taskmanager erst mal killen
eclipse starten und da Samsung als Gerät auswählen


Datei hab ich angehangen (musste jedoch Endung inf in txt ändern)
win2k hab ich bei mir rausgehauen, geht nur für XP und neuer, auch die die Kennungen der anderen Geräte sind weg
 

Anhänge

  • android_usb.txt
    2,4 KB · Aufrufe: 900
floe schrieb:
Das ist jetzt das adb-Binary für Linux; scheint auch alleine zu laufen. Einfach mal ausprobieren..

Super! Danke!
Funktioniert bei mir mit Opensuse 10.2
 
Psycholein schrieb:
unter WindowsXP ist es mit dem sdk1.5r3 noch etwas leichter
einfach die inf-Datei für den USB-Treiber anpassen

im oberen Teil:
[Google.NTx86]
%USB\VID_04E8&PID_6640&MI_04.DeviceDescRelease%=androidusb.Dev, USB\VID_04E8&PID_6640&MI_04
[...]

Nach welchem Schema hast du denn die Datei angepasst? Weil ich hab ein amd64-System (Win7), da sieht die .inf nochmal ein bissl anders aus (bezüglich der IDs etc).
Habe allerdings den Abschnitt [Strings] mal angepasst (der ist doch eigentlich eh nur Visualisierung, oder hat der echte Auswirkungen auf die Treiberfunktion?) und mal installiert .. zumindest erkennt man Galaxy jetzt wieder die PC-Verbindung (basiert auf einem anderen Problem -> anderes Thema) .. aber eine adb-Connection kriege ich noch nicht hin ...
 
hab mir im Gerätemanager die Geräteinstanzkennung angeschaut (beim nicht erkannten Gerät) unter Details
da stand genau der String bei mir - mit nem Zusatz hinten dran
in der Hardware-Kennung steht noch mal genau der gleich String ohne den Zusatz hinten, aber dort sind noch ein paar weitere

das Schema erkennt man dann recht schnell, VID ... PID ... MI ...
mehr ist nicht nötig

edit: Eclipse im Debug-Mode und Screenshot vom Gerät
hab die komplette Kennung vom Samsung übermalt ;)
 

Anhänge

  • adb.jpg
    adb.jpg
    134,2 KB · Aufrufe: 526
Zuletzt bearbeitet:
Hmm, bei mir geht alles Mögliche: Shell, Screenshot, Thread- und Heapanalyse, nur logcat will nicht:
Ich bekomme immer nur die Meldung

Code:
logcat read: Invalid argument
Mit dem Simulator funktioniert's, nur mit dem Handy nicht. Hab ich irgendwo eine Einstellung vergessen?
 
Was bringt denn das adb und was kann man damit anfangen?
 
adb = Android Debugging Bridge
als Programmierer kann man so leichter Programme rüberschieben, debuggen und noch ein paar Dinge

als normaler Anwender braucht man es nur selten, außer man nutzt dieses Tethering-Programm, aber so bald das usb-Modem mal stabil laufen sollte, braucht man das nicht mehr und spart sich so besser das Geld für das App ;)
 
Psycholein, bei Dir zeigt es ja gar keine Prozesse an?

Ich sehe bei mir komischerweise nur einen Prozess (MyBackup Pro). Liegt das am nicht-root, dass man nicht alle Prozesse sehen kann oder stimmt mit dem Treiber oder der ADB irgendwas noch nicht?

Ist das dieser Patch den man einbauen muss?
 
Danke für die Info!
 

Ähnliche Themen

F
Antworten
5
Aufrufe
1.989
ludibubi
L
F
Antworten
1
Aufrufe
3.455
lety2000
L
Ö
Antworten
8
Aufrufe
1.816
Öwe
Ö
Zurück
Oben Unten