Android Debug Bridge updaten
Re: Android Debug Bridge updaten
adb ist ein 32Bit-Binary. Sofern du also amd64 fährst und Multiarch nicht eingerichtet hast, ist die Fehlermeldung „… nicht gefunden“ typisch. Wenn man sich aus ’nem Archiv einzelne Sachen rausholt und wild umbenennt, ohne Abhängigkeiten und ähnliche Sachen zu berücksichtigen, ist’s ebenfalls typisch, dass es nicht funktioniert.
Re: Android Debug Bridge updaten
arch sagt x86_64
vermute mal ich hab Multiarch aktiviert
und ich hab diese 2 Dateien rausgeholt da das Script sowieso das gleiche gemacht hätte. Nur nach /usr/bin was ja nicht sein muss.
add-apt-repository ppa:sun-java-community-team/sun-java6; kennt Debian nicht mal. Konnte ich also nicht installieren. Java hab ich ja sowieso schon oben. (.tar Datei von oracle)
nur einzig und allein das mit dem udev/rules hab ich vielleicht ignoriert da dies auch Rootzugriff braucht und ich nicht weiß was das genau macht.
vermute mal ich hab Multiarch aktiviert
und ich hab diese 2 Dateien rausgeholt da das Script sowieso das gleiche gemacht hätte. Nur nach /usr/bin was ja nicht sein muss.
add-apt-repository ppa:sun-java-community-team/sun-java6; kennt Debian nicht mal. Konnte ich also nicht installieren. Java hab ich ja sowieso schon oben. (.tar Datei von oracle)
nur einzig und allein das mit dem udev/rules hab ich vielleicht ignoriert da dies auch Rootzugriff braucht und ich nicht weiß was das genau macht.
Re: Android Debug Bridge updaten
Vermute mal, dass nicht. Oder die entsprechenden x86-Libs nicht installiert. ldd adb bringt Klarheit.vermute mal ich hab Multiarch aktiviert
Re: Android Debug Bridge updaten
ldd adb: not a dynamic executable
Re: Android Debug Bridge updaten
Dann hast du die falsche Datei aus dem Archiv gepickt. Es so entpacken/installieren, wie der Hersteller es vorgesehen hat, wäre zu einfach gewesen?
Situation hier:
(Die Pfade zu den Libs sind unter Debian andere)
Situation hier:
Code: Alles auswählen
niemand@arch_Xeon:~/Android/Sdk/platform-tools$ file adb
adb: ELF 32-bit LSB shared object, Intel 80386, version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux.so.2, for GNU/Linux 2.6.15, not stripped
niemand@arch_Xeon:~/Android/Sdk/platform-tools$ ldd adb
linux-gate.so.1 (0xf7605000)
librt.so.1 => /usr/lib32/librt.so.1 (0xf75ce000)
libdl.so.2 => /usr/lib32/libdl.so.2 (0xf75c9000)
libpthread.so.0 => /usr/lib32/libpthread.so.0 (0xf75ac000)
libstdc++.so.6 => /usr/lib32/libstdc++.so.6 (0xf74b7000)
libm.so.6 => /usr/lib32/libm.so.6 (0xf7469000)
libgcc_s.so.1 => /usr/lib32/libgcc_s.so.1 (0xf744e000)
libc.so.6 => /usr/lib32/libc.so.6 (0xf7296000)
/lib/ld-linux.so.2 (0xf7606000)
Re: Android Debug Bridge updaten
Wie jetzt? Mit oder ohne root installieren? Für die vorgesehene Methode muss ich das ganze nach /usr/bin kopieren. Außerdem hat diese .zip Datei von dem xda Forum eh nur 3 Dateien. adb_linux fastboot_linux und diese udev_rules 51 Datei. Mich würd interessieren wie ich das apt-add repository ppa zusammenbringe. Allein das funktioniert schon nicht.niemand hat geschrieben:Dann hast du die falsche Datei aus dem Archiv gepickt. Es so entpacken/installieren, wie der Hersteller es vorgesehen hat, wäre zu einfach gewesen?
Re: Android Debug Bridge updaten
Der Weg wurde doch weiter oben schon beschrieben: sdk-tools laden, entpacken, updaten (wobei die platform-tools gezogen werden), fertig. Kein Root, kein umherschmieren in Systemverzeichnissen, nichts.
Zu ppa-Zeugs ist eigentlich nur eins zu sagen: ist meist ein guter Weg, sich sein System zu zerlegen. Kann man nehmen, wenn’s das manuelle Umherpfuschen in den Systemverzeichnissen noch nicht gebracht hat.
Zu ppa-Zeugs ist eigentlich nur eins zu sagen: ist meist ein guter Weg, sich sein System zu zerlegen. Kann man nehmen, wenn’s das manuelle Umherpfuschen in den Systemverzeichnissen noch nicht gebracht hat.
Re: Android Debug Bridge updaten
Also schritt für schritt anleitung:
Kein Root, kein Sudo.
Java war auf der Kiste aber schon installiert, aus Gründen rennt dort sogar ein Oracle Java 7, welches mit https://wiki.debian.org/JavaPackage gebaut wurde.
Du kannst aber auch afaik einfach das jdk tar.gz herunterladen, entpacken und den bin ordner daraus zu deinem PATH hinzufügen. Dann brauchst du nicht mal hier ein Package installieren. Hab ich jetzt aber nicht extra getestet. Die Anleitung oben habe ich gerade auf einer echten Maschine mit einem neu erstellten user ausprobiert.
Code: Alles auswählen
$ su root
# Laut https://wiki.debian.org/Multiarch/HOWTO braucht man diese libs damit das alles rennt
$ dpkg --add-architecture i386
$ apt-get update
$ apt-get install libstdc++6:i386 libgcc1:i386 zlib1g:i386 libncurses5:i386
# jetzt wieder auf einen unpriviligierten nutzer wechseln
$ su demouser
$ cd
$ wget http://dl.google.com/android/android-sdk_r24.0.2-linux.tgz
$ tar xvf android-sdk_r24.0.2-linux.tgz
$ cd android-sdk-linux/tools
$ ./android update sdk -u
# y beim licence dings drücken (insgesamt 3x)
# dann lange warten beim download von den ganzen SDKs
$ cd ../platform-tools
$ file adb
adb: ELF 32-bit LSB shared object, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.15, not stripped
# jetzt noch extra
# gehört dann sinnvollerweise an einen platz wo es jedes mal angehängt wird (zB .bashrc)
$ export PATH=$PATH:~/android-sdk-linux/platform-tools/
$ cd ~
# sollte jetzt auch ganz ohne root klappen
$ adb start-server
* daemon not running. starting it now on port 5037 *
* daemon started successfully *
Java war auf der Kiste aber schon installiert, aus Gründen rennt dort sogar ein Oracle Java 7, welches mit https://wiki.debian.org/JavaPackage gebaut wurde.
Du kannst aber auch afaik einfach das jdk tar.gz herunterladen, entpacken und den bin ordner daraus zu deinem PATH hinzufügen. Dann brauchst du nicht mal hier ein Package installieren. Hab ich jetzt aber nicht extra getestet. Die Anleitung oben habe ich gerade auf einer echten Maschine mit einem neu erstellten user ausprobiert.
Re: Android Debug Bridge updaten
dpkg --add-architecture i386
$ apt-get update
$ apt-get install libstdc++6:i386 libgcc1:i386 zlib1g:i386 libncurses5:i386
ok nachdem funktioniert adb aber nur wenn ich direkt in das Verzeichnis ~/android/platform-tools/adb gehe und ./adb ausführe.
Gib ich adb so ein findet er nix. Das war vorher nicht so.
$ apt-get update
$ apt-get install libstdc++6:i386 libgcc1:i386 zlib1g:i386 libncurses5:i386
ok nachdem funktioniert adb aber nur wenn ich direkt in das Verzeichnis ~/android/platform-tools/adb gehe und ./adb ausführe.
Gib ich adb so ein findet er nix. Das war vorher nicht so.
Re: Android Debug Bridge updaten
Dann nimm den Pfad halt in die $PATH auf. Dafür ist die Variable schließlich da.
Re: Android Debug Bridge updaten
ok hab PATH=$adb:~/adb eingegeben
Problem ist das zwar der Befehl adb geht aber sämtliche andere Befehle wie ls, nano usw gehen nicht mehr. Außerdem krieg ich das nur bis zum nächsten mal einloggen hin. Hab das gleiche mit einem export davor gemacht aber das löste auch das Problem nicht.
Edit: Das Problem hatte ich auch als ich java als User installieren wollte. Wenn ich das mit dem Path für adb hinkrieg, kann ich Java theoretisch auch als User installieren oder?
Problem ist das zwar der Befehl adb geht aber sämtliche andere Befehle wie ls, nano usw gehen nicht mehr. Außerdem krieg ich das nur bis zum nächsten mal einloggen hin. Hab das gleiche mit einem export davor gemacht aber das löste auch das Problem nicht.
Edit: Das Problem hatte ich auch als ich java als User installieren wollte. Wenn ich das mit dem Path für adb hinkrieg, kann ich Java theoretisch auch als User installieren oder?
Re: Android Debug Bridge updaten
Möglicherweise wolltest du eher PATH=$PATH:/home/user/android/platform-tools eingeben, und das z.B. in der .bashrc hinterlegen?
Zum Edit: ja, natürlich. Das sage ich schon die ganze Zeit …
Zum Edit: ja, natürlich. Das sage ich schon die ganze Zeit …
Re: Android Debug Bridge updaten
also von .bashrc und .profile hab ich auch schon gelesen. Jedoch stehen da Sachen wo ich gar keinen Plan hab. Kann mit if fi usw nix anfangen und sobald ich an der letzten Zeile was hinzufüge hab ich das Problem das ich nur adb als befehl hab.
.bashrc oder .profile was brauch ich da jetzt?
.bashrc oder .profile was brauch ich da jetzt?
Re: Android Debug Bridge updaten
Ich hab meine userspezifische Erweiterung in der .bashrc. Und wenn du den alten Inhalt nicht überschreibst, sondern das neue Verzeichnis nur anhängst (wie ich es geschrieben habe), gehen auch die ganzen anderen Sachen anschließend noch.
Re: Android Debug Bridge updaten
ok jetzt gehts. Brauch ich eigentlich nur die ADB Binary (nennt man das so?) oder die ganzen Ordner mit z.b Dokumentationen für Jelly Bean und Kit Kat usw?
Re: Android Debug Bridge updaten
Was du brauchst, wirst du schon selbst wissen müssen.
Re: Android Debug Bridge updaten
Hmm scheint als benötigt man für adb schon Rootrechte.
mario@server:~$ adb devices
* daemon not running. starting it now on port 5037 *
* daemon started successfully *
List of devices attached
???????????? no permissions
starte ich den adb Server als root wird mein Gerät ganz normal erkannt.
Hab laut diversen Anleitungen bereits eine Datei /etc/udev/rules.d/51-android.rules erstellt und ausführbar gemacht mit dem Inhalt aus dieser Datei https://raw.githubusercontent.com/M0Rf3 ... roid.rules
Trotzdem kann man nicht als normaler User auf das Gerät zugreifen.
mario@server:~$ adb devices
* daemon not running. starting it now on port 5037 *
* daemon started successfully *
List of devices attached
???????????? no permissions
starte ich den adb Server als root wird mein Gerät ganz normal erkannt.
Hab laut diversen Anleitungen bereits eine Datei /etc/udev/rules.d/51-android.rules erstellt und ausführbar gemacht mit dem Inhalt aus dieser Datei https://raw.githubusercontent.com/M0Rf3 ... roid.rules
Trotzdem kann man nicht als normaler User auf das Gerät zugreifen.
Re: Android Debug Bridge updaten
Ich kann dir leider nicht mehr sagen, wie ich es seinerzeit unter Debian gemacht habe, aber ich hatte es sehr wohl als User laufen. Unter meinem jetzigen System geht’s ootb.
Re: Android Debug Bridge updaten
mh, ja vermutlich muss das usb gerät in der richtigen gruppe sein damit es klappt.
so schaut das bei mir aus:
Interessant ist aber dass ich tatsächlich ein Nexus 5 habe, trotzdem aber die USB ID von einem Nexus 4... egal rennt trotzdem.
Bei mir wird das Gerät gleich in die Gruppe adb gegeben. Da ich android-tools-adb verwende wird das vermutlich über das Script /lib/udev/rules.d/70-android-tools-adb.rules gelöst, welches vom Paket installiert wird.
Also ich würde das Problem so lösen, dass du android-tools-adb installierst, welches dir die passenden udev rules liefert und dann einfach dein eigenes adb verwendest.
Oder da du ja schon eine UDEV rule datei hast, sollte es klappen. Wenn du allerdings exakt die Datei verwendest die du gepostet hast, wird in der dritt-letzten zeile:
dem usb gerät der zugriff von der gruppe adbusers gewährt. In diese Gruppe must du natürlich deinen Useraccount ebenfalls geben, damit es funktioniert!
dH einmal machen. Damit wird die Gruppe adbusers erstellt und du fügst dich der Gruppe hinzu.
Wenn du testen willst ob das Gerät der richtigen Gruppe hinzugefügt wirst, siehst du ganz oben im Post eh die befehle dafür: mittels lsusb (im package usbutils) listest du alle USB Geräte. Dort steht bei deinem Android Gerät Bus und Device. Dann machst du ein ls -al auf /dev/bus/usb/<Die Bus ID>/<Die Device ID>. Wenn dort dann nicht root als user und adbusers als gruppe steht, greift die udev regel nicht.
so schaut das bei mir aus:
Code: Alles auswählen
$ lsusb
Bus 003 Device 006: ID 18d1:4ee2 Google Inc. Nexus 4 (debug)
$ ls -al /dev/bus/usb/003/006
crw-rw----+ 1 root adb 189, 261 Feb 10 22:48 /dev/bus/usb/003/006
Bei mir wird das Gerät gleich in die Gruppe adb gegeben. Da ich android-tools-adb verwende wird das vermutlich über das Script /lib/udev/rules.d/70-android-tools-adb.rules gelöst, welches vom Paket installiert wird.
Also ich würde das Problem so lösen, dass du android-tools-adb installierst, welches dir die passenden udev rules liefert und dann einfach dein eigenes adb verwendest.
Oder da du ja schon eine UDEV rule datei hast, sollte es klappen. Wenn du allerdings exakt die Datei verwendest die du gepostet hast, wird in der dritt-letzten zeile:
Code: Alles auswählen
ENV{adb_user}=="yes", MODE="0660", GROUP="adbusers", TAG+="uaccess"
dH einmal
Code: Alles auswählen
groupadd adbusers && useradd -G adbusers <deinusername>
Wenn du testen willst ob das Gerät der richtigen Gruppe hinzugefügt wirst, siehst du ganz oben im Post eh die befehle dafür: mittels lsusb (im package usbutils) listest du alle USB Geräte. Dort steht bei deinem Android Gerät Bus und Device. Dann machst du ein ls -al auf /dev/bus/usb/<Die Bus ID>/<Die Device ID>. Wenn dort dann nicht root als user und adbusers als gruppe steht, greift die udev regel nicht.