Volle USB OTG Unterstützung (Android API) aktivieren

Calredon

Calredon

Neues Mitglied
4
Hallo,

da ich selber dieses Problem hatte und mittlerweile auch mitbekommen habe, dass viele andere Besitzer des Genio/Xelio Pro ein ähnliches Problem haben, möchte ich hier einen Weg zeigen, wie man USB Hardware, die den vollen USB-Host Modus (OTG) benötigt ans laufen bekommt.

Zunächst einmal die Theorie:

Das Genio Unterstützt laut Hersteller "USB-Host". Das stimmt derzeit leider nur eingeschränkt, da man zwar USB-Sticks oder externe Festplatten anschliessen, lesen und beschreiben kann, andere Hardware, wie z.B. DVB-T Empfänger (Tivizen, Elgato), DSLR-Controller (für Canon) werden aber vom System bzw. von den zugehörigen Apps nicht erkannt. Mit Rootrechten im Terminal sieht man dann z.B. mit "lsusb" dass die Hardware angesteckt und vom Kernel erkannt wurde, aber Android merkt das nicht. Ein Test mit der App "USB Host Diagnostic zeigt dann auch, dass die Android API selber den Host Modus nicht unterstützt:

Code:
[B][COLOR="DarkRed"]Android API:
- Claims support: No
- Classes found: Yes
- Device Detected: No[/COLOR][/B]
Rooted API:
- Claims support: Yes
- Device Detected: Yes
Kernel:
- Claims support: Yes
- Device Detected: Yes
Verdict:
- OS support: Yes
- 3rd Party apps: Rooted

Eine Lösung des Problems war für mich CM10 zu flashen, was leider andere Probleme mit sich brachte, auch die ich jetzt nicht näher eingehen möchte.
Ich habe also nach einer Lösung gesucht und diese auch gefunden, und die ist so einfach dass es fast schon traurig ist - es fehlen lediglich 2 einfache XML Dateien mit effektiv 4 Zeilen relevantem Code!
Man braucht Root, abgesehen davon funktioniert es mit dem aktuellen Stock-ROM von Odys vom 13.01.2013.

Im Ordner /etc/permissions erstellt man folgende Dateien:

android.hardware.usb.host.xml
android.hardware.usb.accessory.xml

In die Dateien schreibt man folgendes (das eigentlich wichtige ist rot markiert):

android.hardware.usb.host.xml

Code:
<?xml version="1.0" encoding="utf-8"?>

<!-- Copyright (C) 2011 The Android Open Source Project
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
     You may obtain a copy of the License at
     http://www.apache.org/licenses/LICENSE-2.0
     Unless required by applicable law or agreed to in writing, software
     distributed under the License is distributed on an "AS IS" BASIS,
     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 
     implied.	

     See the License for the specific language governing permissions and
     limitations under the License.
-->

<!-- This is the standard feature indicating that the device can communicate
  with USB devices as the USB host. -->

[COLOR="DarkRed"]<permissions>
    <feature name="android.hardware.usb.host" />
</permissions>[/COLOR]


android.hardware.usb.accessory.xml


Code:
<?xml version="1.0" encoding="utf-8"?>
	
<!-- Copyright (C) 2011 The Android Open Source Project
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
     You may obtain a copy of the License at
     http://www.apache.org/licenses/LICENSE-2.0
     Unless required by applicable law or agreed to in writing, software
     distributed under the License is distributed on an "AS IS" BASIS,
     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 
     implied.

     See the License for the specific language governing permissions and
     limitations under the License.
-->

<!-- This is the standard feature indicating that the device supports USB accessories. -->
	
[COLOR="DarkRed"]<permissions>
    <feature name="android.hardware.usb.accessory" />
    <library name="com.android.future.usb.accessory"
            file="/system/framework/com.android.future.usb.accessory.jar" />
</permissions>[/COLOR]

Die in der android.hardware.usb.accessory.xml verlinkte JAVA Datei com.android.future.usb.accessory.jar existiert bereits im Ordner /system/framework (USB Host Diagnostic sagt ja auch "- Classes found: Yes")

Nach einem Neustart sieht die Ausgabe von USB Host Diagnostic so aus:

Code:
[COLOR="Green"]Android API:
- Claims support: Yes
- Classes found: Yes
- Device Detected: Yes[/COLOR]
Rooted API:
- Claims support: Yes
- Device Detected: Yes
Kernel:
- Claims support: Yes
- Device Detected: Yes
Verdict:
- OS support: Yes
- 3rd Party apps: Rooted

Damit sollten dann nahezu alle USB Geräte, respektive die zugehörigen Apps ohne Probleme funktionieren.
In meinem Fall musste ich mir allerdings noch die richtige App über ein anderes (lt. Google Play kompatibles) Gerät holen und dann als APK auf das Genio kopieren, da der Play Store der Meinung war, die App sei zum Genio nicht kompatibel.

Ich hoffe es hilft dem einen oder anderen

Gruß

Calredon
 
  • Danke
Reaktionen: Psyborg
als Ergänzung des Beitrags, die benötigten Dateien anbei.

Zur Installation:

- Root erforderlich. Wer nicht weiß, ob er root hat, hat es wahrscheinlich nicht!
- System Partition rw mounten (auf "Knopfdruck" geht das mit ROM Toolbox Light über den Scriptverwalter; dann braucht man wirklich nichts mehr tippen)
- Dateien in /system/etc/permissions kopieren
- Rechte der Dateien auf 644 setzen (ggf. mit einem Dateimanager wie z.B. TotalCommander)
- System wieder read-only setzen (auch das geht über ROM Toolbox light)

evtl. neustarten.

Die angehängte ZIP-Datei ist nicht mit CWM als Update installierbar! Sie enthält nur die beiden XMLs.
 

Anhänge

  • Screenshot_2013-04-07-15-30-51.png
    Screenshot_2013-04-07-15-30-51.png
    12,4 KB · Aufrufe: 2.712
  • FullUSB-OTG.zip
    1,9 KB · Aufrufe: 3.145
Zuletzt bearbeitet von einem Moderator:
  • Danke
Reaktionen: microfink, Vanisch und Psyborg
Nachtrag:

mit diesen Änderungen klappt auch der Zugriff auf den Garmin Forerunner. Cool!
 
Ergänzend sei erwähnt, dass das vermutlich auch auf anderen Tablets funktioniert, z.B. auf dem Motorola Xoom ( dem ersten). Ich werde das in den nächsten Tagen testen.
 
Hallo

Habe das mal probiert, wenn ich mit dem USB-Host Tool nachschaue,habe ich oben die Gerätebezeichnung usw, aber beim Rest nur ein Fragezeichen, FW. ist die letzte mit 279er Kernel, gerootet natürlich auch.

Benutze den Hama Nano TV-Stick und er geht auch (ging schon vorher), nur wollte ich eigentlich den DSLR-Controller nutzen (das Testprogramm geht).

Die OMA FW wollte ich nicht installieren, da mir die Nachteile derzeit den Vorteilen überwiegen.
 
KeBeNe,

nicht falsch verstehen meine dumme Frage, aber Du hast schon beim dritten Eintrag von oben "Diagnostics" einmal "start Diagnostics" angetippt und die Anweisungen befolgt? Das Tool macht die Diagnose nicht automatisch....

Danach solltest Du auch eine entsprechende Aussage vom Tool erhalten ;)
 
Hallo,

deine "dumme" frage war aber die richtige... :)...

also,er findet kein device und claims support gibts auch keinen, der stick is ein RTL28 irgendwas, die DVBT Software erkennt ihn aber und er funktioniert, nur DSLR Remote will nicht..., warum auch immer, hier kommt die gleiche Meldung wie oben...
 
kannst Du nicht mal einen stinknormalen USB-Stick anschließen und dann die Diagnose laufen lassen und davon einen Screenshot machen? Das würde dann jedenfalls klären, ob auf dem Tablet alles 'im Prinzip' richtig eingerichtet ist.

Wenn das der Fall ist, dann dürfte das Problem eher an DSLR Remote oder der Kamera liegen.
 
Hallo,

Ja, das werde ich heute abend mal probieren, hatte nur nichts weiter zur Hand.
 
So,

nun, habe mein Tab nochmal komplett neu gemacht, also die 23013er FW nochmal neu geflashed usw, dann den Root durchgeführt.

nach der Anleitung hier die zwei .XML-Dateien eingefügt.

USB-Diagnostics hat dann auch ein Problem mit dem USB-Port festgestellt, diesen behoben und um Neustart gebeten.

Seit dem funktioniert nun auch alles :D:thumbsup:, prima Sache, auch DSLR Remote läuft endlich..., danke für die gedult hier und die Arbeit des TE.

mfg René
 
Ich habe schon gesucht, aber nicht wirklich etwas gefunden. Wie roote ich das Tablett NUR mit Stockrom, also ohne weitere Änderungen, damit ich diesen USB-OTG Fix einspielen kann?

Gruß V320001
 
Ich habe bisher mit dem XELIO gearbeitet und daran eine RS232-Schnittstelle betrieben. Dazu habe ich vor einem Jahr mit irgendeiner App (wohl USB Host Diagnostics) irgendwie den vollen USB Host Modus erreicht. In meinem Verzeichnis system/etc/permissions liegen jetzt die passenden Dateien
android.hardware.usb.host.xml sowie android.hardware.usb.accessory.xml
Alles läuft damit wunderbar.

Nun habe ich mein Xelio verschenkt und mir dafür wegen Bluetooth das XELIO PRO 7 angeschafft. Da gibt es wieder das gleiche Problem wie beim XELIO.
Gibt es eine ganz einfache Möglichkeit, in meinem Xelio pro 7 den vollen USB Host mode zu erreichen?

Der Versuch, dazu die Dateien in system/etc/permissions zu kopieren scheitert, weil so etwas nicht erlaubt ist.

Es gibt ja irre viel Anleitungen, aber ich brauche ansonsten doch keine root-Rechte.

Sorry, falls die Frage simpel ist, aber ich bin Android-Anfänger und total begeistert von Basic4Android.

Danke schon 'mal im Voraus.
 
& deswegen zusammengeführt.
 
Hallo,
ich habe ein Xelio Pro 7 (=Genio?) und brauche den vollen USB mode.

Bedeutet dein Beitrag, dass ich lediglich ROM toolbox lite und die Anleitung in *2 benötige um die beiden Dateien in system/etc/permissions zu kopieren - und das war's dann?


Sorry, aber ich bin Android-Anfänger.
 
Hallo zusammen,

muss dieses Thema nochmal nach oben holen. Mein Genio erkennt über dslr dashboard die angeschlossene EOS 50D nicht. Habe nun die beiden xml-Dateien gedownloaded und übers USB-Kabel auf die externe SD-Card des Genio kopiert. Mit dem ES Dateiexplorer hab ich nun versucht die beiden Dateien in etc/permissions zu kopieren. Der Kopiervorgang schlägt aber immer fehl. Vermutlich liegt es an mangelnden Schreibrechten auf dem System. Hab Rom Toolbox installiert, wenn ich dort auf mount system r/w gehe hab ich die Auswahl von 7 Optionen - welche nehme ich um Schreibrechte zu bekommen?

Bin mit Android auf dem Genio nicht wirklich bewandert, deshalb meine vielleicht dumme Frage...

Vielleicht kann mir jemand von Euch weiterhelfen damit meine EOS 50D am Genio mit dslr dashboard zusammenarbeitet.

Gruß Android-Pipone
 
das Mounten als r/w wird doch in Rom Toolbox mittels eines Scripts durchgeführt (auch wenn das Script nur aus einer Zeile besteht).

Daher ist die Option "Run Script" offensichtlich die richtige. Und wenn Du dann fertig bist mit dem Kopieren, über das Script "Mount Read-Only" wieder zumachen.
 
ich nehme an ohne root wird das nichts oder? ich bekomme die treiber leider unter win8 64bit nicht installiert...
 

Ähnliche Themen

C
  • Cyberscitymaste
Antworten
0
Aufrufe
1.830
Cyberscitymaste
C
G
Antworten
4
Aufrufe
4.801
Cyberscitymaste
C
W
Antworten
11
Aufrufe
2.531
hävksitol
hävksitol
Zurück
Oben Unten