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:
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
android.hardware.usb.accessory.xml
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:
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
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