Cela peut être vieux, mais je n'ai pas trouvé de preuve que cela ait changé au fil des années d'Android. Toutes les informations proviennent de un ancien dépôt github AOSP. Cela nécessitera un accès root car il vous oblige à modifier des fichiers au niveau du système.
Android utilise le périphérique d'événements d'entrée Linux standard (/dev/event0) et le pilote tel que décrit dans le fichier d'en-tête kernel linux/input.h. Pour plus d'informations sur les pilotes d'entrée Linux standard, veuillez consulter les pilotes d'entrée Linux à http://kernel.org.
Sélection de la carte de disposition des touches d'une carte de disposition des touches Les cartes de disposition des touches sont installées dans /system/usr/keylayout
et /data/usr/keylayout
.
Pour chaque périphérique de clavier xxx, définissez la propriété du système android.keylayout.xxx
(consultez la création d'un nouvel appareil pour obtenir de l'aide pour définir des propriétés de système). Si vous ne spécifiez pas de fichier de disposition de touche, Android utilisera le fichier par défaut /system/usr/keylayout/qwerty.kl
.
Format de fichier Les cartes de disposition des touches sont stockées sur l'appareil sous forme de fichiers texte UTF-8 et ont les caractéristiques suivantes :
Commentaires : Le symbole dièse (#) indique un commentaire et tout ce qui suit le symbole dièse sur une ligne est ignoré.
Espace blanc: Toutes les lignes vides sont ignorées. Définitions de touches : Les définitions de touches suivent la syntaxe touche SCANTCODE CODETOUCHE [DRAPEAUX...], où SCANTCODE est un nombre, CODETOUCHE est défini dans votre fichier de disposition de touche spécifique (android.keylayout.xxx), et les DRAPEAUX potentiels sont définis comme suit :
SHIFT : Pendant qu'elle est enfoncée, la touche de modification shift est définie
ALT : Pendant qu'elle est enfoncée, la touche de modification alt est définie
CAPS : Pendant qu'elle est enfoncée, la touche de verrouillage des majuscules est définie
WAKE : Quand cette touche est enfoncée pendant que l'appareil est endormi, l'appareil se réveillera et l'événement de touche sera envoyé à l'application.
WAKE_DROPPED : Quand cette touche est enfoncée pendant que l'appareil est endormi, l'appareil se réveillera mais l'événement de touche ne sera pas envoyé à l'application.
En utilisant les commandes ci-dessus pour vous aider, vous pourriez changer le fichier quelque chose comme:
touche 13 DPAD_UP
touche 15 SHIFT
à:
touche 13 SHIFT
touche 15 DPAD_UP
C'était un grand moment de nostalgie pour moi - j'étais vraiment passionné par la remapping des touches à l'époque des "nouveaux-ROM-chaque-autre-après-midi".