[How-To] Eigenes Hardware-Tastatur-Layout erstellen

S

schwix

Erfahrenes Mitglied
65
Da mehrfach danach gefragt wurde, hier eine kurze Anleitung wie man sich selbst ein individuelles Tastaturlayout erstellen kann.

#############################
Was wird benötigt?
#############################

Ein Hex-Editor. Welcher ist im Prinzip egal. Empfehlen kann ich Notepad++ mit dem passenden HEX-Plugin. Dies kann im im Programm unter "Erweiterungen -> Plugin Manager runterladen".

Als zweites braucht man die sec_keypad.kcm.bin aus dem Ordner /system/usr/keychars. Im Notepad++ geladen muss man nurnoch als HEX anzeigen (mit passendem Button oder über "Erweiterungen -> HEX-Editor -> View in Hex"


#############################
Überblick
#############################

Jeder der noch nie mit nem HEX-Editor gearbeitet hat wird der Anblick nun eventuell etwas überfordern.

57532d1321708745-how-eigenes-hardware-tastatur-layout-erstellen-01.jpg


Man sieht nun links den eigentlichen HEX-Code, rechts die "Übersetzung". Wir orientieren uns rechts. Interessant wird es ab Reihe 000000e0. Dort steht rechts

. . . . A . ! . a . A . ! . ä . (oder ähnlich, je nachdem wie euer Layout z.Z. ist).

Das erste Große "A" sagt uns in diesem Fall um welchen Knopf es sich handelt. Wofür das erste ! ist, weiß ich nicht genau, interessant ist es ab dem ersten kleinen "a". Dies gibt die Belegung der A-Taste an, wenn man sie alleine drückt. Das 2. große "A" gibt die Belegung an, wenn man Shift gedrückt hält.
Das 2. "!" gibt die Belegung an, wenn man Alt gedrückt hält. Das "ä" gibt die Belegung für Alt+Shift an.

Die Positionen sind für alle Tasten gleich. Und im Prinzip ist es das auch schon. Man ändert nun rechts entsprechend die Belegung wie man es wünscht. Z.B:

. . . . A . ! . a . A . ! . = .

Nun würde beispielsweise Alt+Shift+A ein "=" ergeben.


#############################
Vorsicht
#############################

Leider sind manche Symbole nicht so einfach wie Buchstaben und Zahlen. Ein € beispielsweise kann man nicht einfach in die Datei schreiben. Man muss also den HEX-Code einfügen. Des HEX-Code für € wäre "a5". Rechts sehen wir dann statt einem € ein ¥. Nichts desto trotz bekommen wir auf dem Handy am Ende ein €.

Im Zweifelsfall einfach Ausprobieren.


Wir immer, ohne Gewähr!
 

Anhänge

  • 01.jpg
    01.jpg
    194,4 KB · Aufrufe: 5.207
Zuletzt bearbeitet:
  • Danke
Reaktionen: Stefan1981 und steve8x8
Erst einmal danke.
Auf meimem 5510 (2.2, immer noch) gibt es diese Datei (sec_keypad.kcm.bin) aber anscheinend nicht (*), statt dessen:
keychars:
total 12
-rw-r--r-- 1 home 912 Oct 18 00:15 callisto_keypad3.kcm.bin
-rw-r--r-- 1 home 896 Oct 18 00:15 qwerty2.kcm.bin
-rw-r--r-- 1 home 896 Oct 18 00:15 qwerty.kcm.bin

keylayout:
total 16
-rw-r--r-- 1 home 349 Oct 18 00:15 AVRCP.kl
-rw-r--r-- 1 home 1697 Oct 18 00:15 callisto_headset.kl
-rw-r--r-- 1 home 991 Oct 18 00:15 callisto_keypad3.kl
-rw-r--r-- 1 home 1699 Oct 18 00:15 qwerty.kl

Was haben die .kl-Dateien mit den .kcm.bin-Dateien zu tun?

Was noch interessant sein könnte:
Wie kann man die "Messaging" und "Google Search" Tasten (links von der Leertaste) umdefinieren?

(*) Ich versuche noch einmal einen Komplettabzug auf die SD, dort sucht es sich einfach besser
 
Auf 2.2 muss man statt der "sec_keypad.kcm.bin" die "callisto_keypad3.kcm.bin" nehmen.

Die .kl datei, in deinem Fall callisto_keypad3.kl, definiert die Softwarefunktionen zu den einzelnen Tasten, wenn gewünscht.
Hier ist also festgelegt, was softwaremäßig passiert, wenn du n Knopf drückst, Messaging zB.

Genau dahintergestiegen bin ich aber noch nicht.
 
Zuletzt bearbeitet:
Etwas allgemeinere Informationen kann man im Source-Tree von Android (Vorsicht, riesig!) finden:
development/pdk/docs/porting/keymaps_keyboard_input.jd
Dort sind sowohl die .kcm.bin als auch die .kl erklärt (mit dem Stand von 4.0.1, aber der grobe Rahmen dürfte klar sein)...
 
Vielen Dank... das ist SUPER!

Ne frage hätt ich noch..

Wenn man lange auf ne Taste drückt kommt ein Auswahlmenü.
Hab Ihr ne Ahnung wie man das bearbeiten kann?

Danke!
 
=,^,und ä hinzu-zu-programmieren hat jetzt super geklappt, aber bei ö und ü kommt wenn ich es auf dem handy drücke jeweils ein kästchen als zeichen, dass das zeichen zu speziell ist, bzw nicht erkannt wird :confused2:
wie kann ich ö und ü im editor korreckt eingeben, dass da auch ö und ü rauskommt; gibts dafür nen code?
und gibt es irgendeine möglichkeit die umlaute auch groß zu schreiben?
 
ASCII-Tabelle

achte darauf, das bei den umlauten der block dahinter 00 ist.
 
  • Danke
Reaktionen: alphade
Hier sollten die bisher bekannten unterschiedlichen Tastaturen (mit snapshot) eingefügt werden und die vorhanden Treiber dazu verlinkt werden.
Vielleicht kann man sich auch eine einheitliche Belegung der Kombinationen Alt+Shift einigen.
Wie z.B. hier:
[DEV][Samsung Galaxy GT-I5510 Callisto]German Keyboard Layout for Gingerbread - xda-developers

Layout description: All keys work as printed on the german keyboard.
Changes/additions:

  • Sym key for Umlaut
  • = on Shift+ß
  • ~ on Shift+?
  • ^ on Shift+.
  • < on Alt+Sym
  • > on Shift+Sym
  • [ on Alt+Shift+L
  • ] on Alt+Shift+ß
  • { on Alt+Shift+o
  • } on Alt+Shift+p
 
Im Anhang ist ein modifizierter qwertz-Tastaturtreiber (enthält u.a. äöüÄÖÜ u.a.Sonderzeichen). Die Tastenbelegung ist in der txt-Datei beschrieben.
Getestet unter CyanogenMod-7.2.0-20121005-STABLE-ajay.
 

Anhänge

  • qwertz_cm72.zip
    1,4 KB · Aufrufe: 278
Nach dem Motto "Es ist nie zu spät":
Bevor ich auf CM10+ umstelle, habe ich mich auch noch mal etwas ausführlicher mit der HW-Tastatur unter Gingerbread (2.3.6) befasst, und herausgekommen sind die beiden Dateien im angehängten ZIP. (Die Entsprechung für die neueren CM gibt es demnächst.)

Vorab: Ich habe eine QWERTZ/KLß/NM?-Tastatur, bei der die runden Klammern auf dem L und dem danebenliegenden ß (nicht 9 und 0) aufgedruckt sind. shift-Punkt ist Komma, nicht .com - YMMV!

Spanisches ! und ? mit alt und dem "normalen" Zeichen (also alt-shift-A bzw alt-?)
Akzentzeichen ("combining") liegen auf alt-shift-Q (`), -W (^), -E (´), -T (~), U (").
alt-shift-X wandelt weiterhin die 4 hex-Ziffern im Tastaturpuffer in das entsprechende Unicode-Zeichen.
Den Rest: einfach mal ausprobieren ;) nur zwei normale Tasten haben keine alt-shift-Belegung bekommen.
Sym ist weiterhin Sym.

Die beiden Dateien müssen natürlich als root in die entsprechenden Verzeichnisse geschrieben und mit korrekten user/group/permissions versehen werden!

Einen schönen Sommer Euch allen!
 

Anhänge

  • i5510gb-keys.zip
    1,1 KB · Aufrufe: 151
Und für alle, die schon "weiter" sind, hier noch eine (allerdings nicht signierte) zip-Datei zum Flashen via CWM-Recovery.
Getestet mit meinem 551 - Tastenbelegung siehe oben!! und CM11/Kernel3 (sollte auch mit 10 oder 9 funktionieren).
Etwas merkwürdig ist, dass der Browser von KitKat die alt-Taste nicht erkennt (macht das @ etwas schwierig), und auch der Terminal Emulator hat Schwierigkeiten mit zB den Umlauten. In Inkpad etc. sollte aber alles funktionieren.
 

Anhänge

  • qwertz-recovery.zip
    174,8 KB · Aufrufe: 134

Ähnliche Themen

E
Antworten
17
Aufrufe
10.811
email.filtering
E
magneton
Antworten
1
Aufrufe
1.490
Stefan1981
S
S
  • Angepinnt
  • schwix
14 15 16
Antworten
306
Aufrufe
80.929
TrolliusW
T
Zurück
Oben Unten