1. Nimm jetzt an unserem Uhans - 3. ADVENT - Gewinnspiel teil - Alle Informationen findest Du hier!

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

Dieses Thema im Forum "Samsung Galaxy 551 (I5510) Forum" wurde erstellt von schwix, 18.11.2011.

  1. schwix, 18.11.2011 #1
    schwix

    schwix Threadstarter Fortgeschrittenes Mitglied

    Beiträge:
    363
    Erhaltene Danke:
    62
    Registriert seit:
    17.01.2011
    Phone:
    Samsung Galaxy 551
    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.

    [​IMG]

    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
      Dateigröße:
      212.4 KB
      Aufrufe:
      4,172
    Zuletzt bearbeitet: 03.05.2012
    Stefan1981 und steve8x8 haben sich bedankt.
  2. steve8x8, 18.11.2011 #2
    steve8x8

    steve8x8 Android-Experte

    Beiträge:
    847
    Erhaltene Danke:
    79
    Registriert seit:
    14.01.2011
    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
     
  3. schwix, 18.11.2011 #3
    schwix

    schwix Threadstarter Fortgeschrittenes Mitglied

    Beiträge:
    363
    Erhaltene Danke:
    62
    Registriert seit:
    17.01.2011
    Phone:
    Samsung Galaxy 551
    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: 18.11.2011
  4. steve8x8, 19.11.2011 #4
    steve8x8

    steve8x8 Android-Experte

    Beiträge:
    847
    Erhaltene Danke:
    79
    Registriert seit:
    14.01.2011
    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)...
     
  5. Stefan1981, 21.11.2011 #5
    Stefan1981

    Stefan1981 Neuer Benutzer

    Beiträge:
    22
    Erhaltene Danke:
    3
    Registriert seit:
    12.08.2011
    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!
     
  6. alphade, 04.01.2012 #6
    alphade

    alphade Junior Mitglied

    Beiträge:
    33
    Erhaltene Danke:
    0
    Registriert seit:
    09.12.2011
    =,^,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?
     
  7. schwix, 04.01.2012 #7
    schwix

    schwix Threadstarter Fortgeschrittenes Mitglied

    Beiträge:
    363
    Erhaltene Danke:
    62
    Registriert seit:
    17.01.2011
    Phone:
    Samsung Galaxy 551
    ASCII-Tabelle

    achte darauf, das bei den umlauten der block dahinter 00 ist.
     
    alphade bedankt sich.
  8. Maxeddy, 27.11.2012 #8
    Maxeddy

    Maxeddy Android-Hilfe.de Mitglied

    Beiträge:
    55
    Erhaltene Danke:
    7
    Registriert seit:
    08.12.2011
    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
     
  9. Maxeddy, 27.11.2012 #9
    Maxeddy

    Maxeddy Android-Hilfe.de Mitglied

    Beiträge:
    55
    Erhaltene Danke:
    7
    Registriert seit:
    08.12.2011
    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:

  10. steve8x8, 22.07.2014 #10
    steve8x8

    steve8x8 Android-Experte

    Beiträge:
    847
    Erhaltene Danke:
    79
    Registriert seit:
    14.01.2011
    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:

  11. steve8x8, 25.11.2014 #11
    steve8x8

    steve8x8 Android-Experte

    Beiträge:
    847
    Erhaltene Danke:
    79
    Registriert seit:
    14.01.2011
    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:

Diese Seite empfehlen