Motorola DEFY - Anleitung: Tastenbelegung für HID Bluetooth Tastatur selber erstellen

  • Antworten:3
Christian
  • Forum-Beiträge: 2

13.01.2012, 21:18:44 via Website

Wie erstelle ich meine eigene Tastenbelegung für eine beliebige HID kompatible Bluetooth Tastatur?

Durchgeführt habe ich das mit meinem Motorola Defy mit CM7.1. Das müßte aber mit jedem Gerät gehen das HID Unterstützung hat. Man benötigt aber Root-Rechte!!!

Alles ohne Gewähr! Bitte sichert euer System vorher falls was schief geht!!!

Ausgangssituation war diese:

Ich habe mir eine HID kompatible Bluetooth Tastatur gekauft und konnte sie nicht benutzen da das System von einer QWERTY-Tastatur ausging. Es war aber ein QWERTZ Tastatur mit Umlauten für Deutschland. Einen Treiber lieferte der Hersteller nicht mit. Das verbinden einer HID Kompatible Bluetooth Tastatur war kein Problem und funktionierte super, aber die Tasten waren falsch belegt.

Zuerst habe ich nach einer App gesucht die das Problem lößt. Zwei kamen in frage. BlueInput von Teksoft und BlueKeyboard JP von Elbrain.

BlueKeyboard JP von Elbrain funktionierte nicht vernünftig.
BlueInput von Teksoft funktionierte prinzipiell, war aber keine schöne Lösung.

Ich habe lange gesucht und viel darüber gefunden wie man das Layout von vorhandenen Treiberdateien ändert, aber ich hatte ja keine Treiberdatei!

Ich habe die Entwicklungsinformationen über Keymaps and Keyboard Input studiert und folgende Idee gehabt.

http://www.kandroid.org/online-pdk/guide/keymaps_keyboard_input.html#androidKeymapKeyLayoutMapTitle

Wenn das System das erstem mal eine HID Kompatible Bluetooth Tastatur benutzt, sucht es nach dem Treiber dafür. Wenn es diesen nicht gibt wird der Standard QWERTY verwendet. Das System generiert darüber eine (eigentlich unsichtbare) Meldung. Aus der Meldung kann man ablesen wie diese Datei heißt, die das System erwartet.

Anschließend nehmen ich die Standard QWERTY Datei, benenne sie wie vom System erwartet um und verändere die Tastenbelegung. Fertig!!!

So geht es im Detail:

1.) Mit der Anwendung aLogcat von Jeffrey Blattman lasse ich die Systemmeldungen mitschreiben.

So habe ich die App eingestellt:



Dann registriere und verbinde ich die BT-Tastatur und verwende diese.

2.) Anschließend durchsuche ich die aufgezeichnete Datei nach der Meldung

KeyCharacterMap: Error loading keycharmap file '/system/usr/keychars/????????????'

Dahinter kann man lese welche Datei erwartet wird. In meinem Fall die Datei „Macro_Keyboard.kcm.bin“



3.) Nun kopiere ich mir mit der App Root Explorer von Speed Software die Datei /system/usr/keychars/qwerty.kcm.bin auf die SD-Karte



4.) Die Datei qwerty.kcm.bin benenne ich auf der SD-Karte in „Macro_Keyboard.kcm.bin“ um. So wie ich den Namen unter 2.) ermittelt habe.

5.) Dann benutze ich einen HEX-Editor wie z.B HxD von http://mh-nexus.de/en/ um die Datei so wie es nötig ist zu verändern.



Welche Tastenbelegung man wie Ändern muß ermittelt man mit der App KeynrTracker von chrisboyle.

https://github.com/chrisboyle/keytest/downloads



Dazu braucht man noch eine ASCII Tabelle wie z.B. http://www.torsten-horn.de/techdocs/ascii.htm

Die App Zeigt dir den KeyCode der Taste (im Dezimalsystem), dann weißt du welche Zeile in der Datei für diese Taste zuständig ist. Der KeyCode (und die anderen Inhalte) wird in der Datei allerdings üblicherweise im Hexadezimalsystem angezeigt, also vorher z.B. mit dem Windowstaschenrechner umrechnen. Den Windowstaschenrechner dazu auf Wissenschaftliche umstellen, dann geht das damit auch.

Im HexEditor ersetzt man an den entsprechenden Stellen den falschen durch den richtigen ASCII-Code und speichert die Datei wieder auf der SD-Karte.

Darauf achten ScanCode und KeyCode nicht zu vertauschen!!!

Die KeyLayoutMap-Datei unter /system/usr/keylayout/qwerty.kl mit der Zuordnung der ScanCode habe ich unverändert gelassen. Eine Anpassung der KeyCode war ausreichend. Falls das nötig ist müßt ihr mal weiter forschen... Das habe ich noch nicht gemacht.


6.) Wenn die Datei Macro_Keyboard.kcm.bin fertig gestellt ist wird sie zurück in das Verzeichnis /system/usr/keychars/ kopiert wo auch die Datei qwerty.kcm.bin als Basis hergeholt wurde.

Dazu muß man erst mal den Schreibzugriff ermögliche in dem man in der App Root Explorer von Speed Software oben rechts den Knopf drück.



Falls es noch nicht geht, nun noch mal Booten und schon sind wir fertig!

Ich habe hier mit eine Rii Mini Keyboard http://www.riitek.com/product_Info.asp?id=62 ans laufen gebracht. Interessant war das die Tasten rechts und links der Leertaste den KeyCode 0 liefern und so vom System nicht ausgewertet und so auch nicht neu belegt werden können. Ich habe einfach die ja doch seltenen Zeichen auf die Tasten darüber gelegt wo man sie dann mit Alt und Alt-Shift erreichen kann.



So war ich am Ziel, ich hoffe ihr könnt es auch erfolgreich umsetzen. Bei dieser Tastatur funktioniert auch der Cursorblock und die Mausfunktion mit dem CM7.1 zusammen.

— geändert am 04.04.2019, 21:45:42 durch Moderator

Antworten
Friedemann T.
  • Forum-Beiträge: 2

23.04.2012, 12:48:47 via Website

Hallo Christian,
stehe vor dem selben Problem wie du und hätte vier Fragen an dich:

1. Zur Tastatur: Da hast die genau die Tastatur: BT und deutschem Layout
2. Ist bei der Verwendung einer externen die Bilschirmtatatur sichtbar oder nicht
3. Wir verwenden in der Firma eine Anwendung, die eine gewisse Funktionalität über die Belegung der Funktionstasten hat. Verwendest du diese auch?
4. Müsste ich das Rad noch einmal neu erfinden, oder würdes du die Datei zur Verfügung stellen?

Viele Grüße Friedemann

Antworten
Christian
  • Forum-Beiträge: 2

23.04.2012, 20:23:56 via Website

Hallo lieber User,

zu 1.) Da kannst du das Typenschild von meiner Tastatur sehen. Ist eine BT Tastatur mit deutschem Layout.



zu 2.) Die Bildschirmtastatur erscheint am Anfang mal, nach ein paar Sekunden benutzen der externen Tastatur verschwindet die Bildschirmtastatur.

zu 3.) Die Funktionstasten benutze ich nicht, aber der Scancode wird an die Anwendungen gesendet, Anwendung könnten also die F-Tasten benutzen.

zu 4.) Hier meine Datei:

http://bigupload.com/en/file/38640/macro-keyboard-by-cf.zip.html

Viel Erfolg,

Christian

Antworten
Friedemann T.
  • Forum-Beiträge: 2

23.04.2012, 22:36:05 via Website

Hallo Christian,
vielen Dank erst mal. Morgen kommt die Tastatur, dann werden wir mal sehen. Mit deiner Anleitung und der Datei und deiner Vorarbeit müsste ich erst mal zurecht kommen.

Friedemann

Antworten