Fichiers de configuration du périphérique d'entrée

Les fichiers de configuration des périphériques d'entrée (fichiers .idc ) contiennent des propriétés de configuration spécifiques au périphérique qui affectent le comportement des périphériques d'entrée.

Les fichiers de configuration des périphériques d'entrée ne sont généralement pas nécessaires pour les périphériques standard tels que les claviers et les souris HID, car le comportement par défaut du système garantit généralement qu'ils fonctionneront immédiatement. D'un autre côté, les périphériques intégrés, en particulier les écrans tactiles, nécessitent presque toujours des fichiers de configuration de périphérique d'entrée pour spécifier leur comportement.

Raisonnement

Android détecte et configure automatiquement la plupart des fonctionnalités du périphérique d'entrée en fonction des types d'événements et des propriétés signalés par le pilote de périphérique d'entrée du noyau Linux associé.

Par exemple, si un périphérique d'entrée prend en charge le type d'événement EV_REL et les codes REL_X et REL_Y ainsi que le type d'événement EV_KEY et BTN_MOUSE , alors Android classera le périphérique d'entrée comme une souris. Le comportement par défaut d'une souris est de présenter un curseur à l'écran qui suit les mouvements de la souris et simule les touches lorsque l'on clique sur la souris. Bien que la souris puisse être configurée différemment, le comportement par défaut est généralement suffisant pour les périphériques de souris standard.

Certaines classes de périphériques d'entrée sont plus ambiguës. Par exemple, les écrans tactiles multi-touch et les tablettes tactiles prennent en charge au minimum le type d'événement EV_ABS et les codes ABS_MT_POSITION_X et ABS_MT_POSITION_Y . Cependant, les utilisations prévues de ces appareils sont très différentes et ne peuvent pas toujours être déterminées automatiquement. En outre, des informations supplémentaires sont nécessaires pour donner un sens aux informations de pression et de taille signalées par les appareils tactiles. Par conséquent, les appareils tactiles, en particulier les écrans tactiles intégrés, nécessitent généralement des fichiers IDC.

Emplacement

Les fichiers de configuration du périphérique d'entrée sont localisés par fournisseur USB, identifiant de produit (et éventuellement de version) ou par nom de périphérique d'entrée.

Les chemins suivants sont consultés dans l'ordre.

  • /odm/usr/idc/Vendor_XXXX_Product_XXXX_Version_XXXX.idc
  • /vendor/usr/idc/Vendor_XXXX_Product_XXXX_Version_XXXX.idc
  • /system/usr/idc/Vendor_XXXX_Product_XXXX_Version_XXXX.idc
  • /data/system/devices/idc/Vendor_XXXX_Product_XXXX_Version_XXXX.idc
  • /odm/usr/idc/Vendor_XXXX_Product_XXXX.idc
  • /vendor/usr/idc/Vendor_XXXX_Product_XXXX.idc
  • /system/usr/idc/Vendor_XXXX_Product_XXXX.idc
  • /data/system/devices/idc/Vendor_XXXX_Product_XXXX.idc
  • /odm/usr/idc/ device-name .idc
  • /vendor/usr/idc/ device-name .idc
  • /system/usr/idc/ device-name .idc
  • /data/system/devices/idc/ device-name .idc

Lors de la construction d'un chemin de fichier contenant le nom du périphérique, tous les caractères du nom du périphérique autres que « 0 » - « 9 », « a » - « z », « A » - « Z », « - » ou « _ » sont remplacés par '_'.

Syntaxe

Un fichier de configuration de périphérique d'entrée est un fichier texte brut composé d'attributions de propriétés et de commentaires.

Propriétés

Les affectations de propriétés se composent chacune d'un nom de propriété, d'un = , d'une valeur de propriété et d'une nouvelle ligne. Comme ça:

property = value

Les noms de propriété sont des identifiants de texte littéraux non vides. Ils ne doivent pas contenir d'espaces. Chaque composant du système d'entrée définit un ensemble de propriétés utilisées pour configurer sa fonction.

Les valeurs de propriété sont des chaînes littérales non vides, des entiers ou des nombres à virgule flottante. Ils ne doivent pas contenir d'espaces ni de caractères réservés \ ou " .

Les noms et valeurs des propriétés sont sensibles à la casse.

commentaires

Les lignes de commentaires commencent par « # » et se poursuivent jusqu'à la fin de la ligne. Comme ça:

# A comment!

Les lignes vides sont ignorées.

Exemple

# This is an example of an input device configuration file.
# It might be used to describe the characteristics of a built-in touch screen.

# This is an internal device, not an external peripheral attached to the USB
# or Bluetooth bus.
device.internal = 1

# The device should behave as a touch screen, which uses the same orientation
# as the built-in display.
touch.deviceType = touchScreen
touch.orientationAware = 1

# Additional calibration properties...
# etc...

Propriétés communes

La propriété suivante est commune à toutes les classes de périphériques d’entrée.

Reportez-vous à la documentation de chaque classe de périphérique d'entrée pour plus d'informations sur les propriétés spéciales utilisées par chaque classe.

device.internal

Définition : device.internal = 0 | 1

Spécifie si le périphérique d’entrée est un composant interne intégré par opposition à un périphérique connecté en externe (très probablement amovible).

  • Si la valeur est 0 , le périphérique est externe.

  • Si la valeur est 1 , le périphérique est interne.

  • Si la valeur n'est pas précisée, la valeur par défaut est 0 pour tous les appareils sur le bus USB (BUS_USB) ou Bluetooth (BUS_BLUETOOTH), 1 sinon.

Cette propriété détermine les décisions de stratégie par défaut concernant les événements de réveil.

Les périphériques d'entrée internes ne sortent généralement pas l'écran du mode veille, sauf s'ils sont explicitement configurés à cet effet dans le fichier de disposition des touches ou dans une règle de stratégie codée en dur. Cette distinction empêche les pressions sur les touches et les touches de réveiller faussement votre téléphone lorsqu'il est dans votre poche. Habituellement, seule une petite poignée de clés de réveil sont définies.

À l’inverse, les périphériques d’entrée externes réveillent généralement l’appareil de manière plus agressive car ils sont supposés être éteints ou non branchés pendant le transport. Par exemple, appuyer sur n’importe quelle touche d’un clavier externe est un bon indicateur que l’utilisateur souhaite que l’appareil se réveille et réponde.

Il est important de s’assurer que la valeur de la propriété device.internal est correctement définie pour tous les périphériques d’entrée internes.

Validation

Assurez-vous de valider les fichiers de configuration de votre périphérique d'entrée à l'aide de l'outil Validate Keymaps .

,

Les fichiers de configuration des périphériques d'entrée (fichiers .idc ) contiennent des propriétés de configuration spécifiques au périphérique qui affectent le comportement des périphériques d'entrée.

Les fichiers de configuration des périphériques d'entrée ne sont généralement pas nécessaires pour les périphériques standard tels que les claviers et les souris HID, car le comportement par défaut du système garantit généralement qu'ils fonctionneront immédiatement. D'un autre côté, les périphériques intégrés, en particulier les écrans tactiles, nécessitent presque toujours des fichiers de configuration de périphérique d'entrée pour spécifier leur comportement.

Raisonnement

Android détecte et configure automatiquement la plupart des fonctionnalités du périphérique d'entrée en fonction des types d'événements et des propriétés signalés par le pilote de périphérique d'entrée du noyau Linux associé.

Par exemple, si un périphérique d'entrée prend en charge le type d'événement EV_REL et les codes REL_X et REL_Y ainsi que le type d'événement EV_KEY et BTN_MOUSE , alors Android classera le périphérique d'entrée comme une souris. Le comportement par défaut d'une souris est de présenter un curseur à l'écran qui suit les mouvements de la souris et simule les touches lorsque l'on clique sur la souris. Bien que la souris puisse être configurée différemment, le comportement par défaut est généralement suffisant pour les périphériques de souris standard.

Certaines classes de périphériques d'entrée sont plus ambiguës. Par exemple, les écrans tactiles multi-touch et les tablettes tactiles prennent en charge au minimum le type d'événement EV_ABS et les codes ABS_MT_POSITION_X et ABS_MT_POSITION_Y . Cependant, les utilisations prévues de ces appareils sont très différentes et ne peuvent pas toujours être déterminées automatiquement. En outre, des informations supplémentaires sont nécessaires pour donner un sens aux informations de pression et de taille signalées par les appareils tactiles. Par conséquent, les appareils tactiles, en particulier les écrans tactiles intégrés, nécessitent généralement des fichiers IDC.

Emplacement

Les fichiers de configuration du périphérique d'entrée sont localisés par fournisseur USB, identifiant de produit (et éventuellement de version) ou par nom de périphérique d'entrée.

Les chemins suivants sont consultés dans l'ordre.

  • /odm/usr/idc/Vendor_XXXX_Product_XXXX_Version_XXXX.idc
  • /vendor/usr/idc/Vendor_XXXX_Product_XXXX_Version_XXXX.idc
  • /system/usr/idc/Vendor_XXXX_Product_XXXX_Version_XXXX.idc
  • /data/system/devices/idc/Vendor_XXXX_Product_XXXX_Version_XXXX.idc
  • /odm/usr/idc/Vendor_XXXX_Product_XXXX.idc
  • /vendor/usr/idc/Vendor_XXXX_Product_XXXX.idc
  • /system/usr/idc/Vendor_XXXX_Product_XXXX.idc
  • /data/system/devices/idc/Vendor_XXXX_Product_XXXX.idc
  • /odm/usr/idc/ device-name .idc
  • /vendor/usr/idc/ device-name .idc
  • /system/usr/idc/ device-name .idc
  • /data/system/devices/idc/ device-name .idc

Lors de la construction d'un chemin de fichier contenant le nom du périphérique, tous les caractères du nom du périphérique autres que « 0 » - « 9 », « a » - « z », « A » - « Z », « - » ou « _ » sont remplacés par '_'.

Syntaxe

Un fichier de configuration de périphérique d'entrée est un fichier texte brut composé d'attributions de propriétés et de commentaires.

Propriétés

Les affectations de propriétés se composent chacune d'un nom de propriété, d'un = , d'une valeur de propriété et d'une nouvelle ligne. Comme ça:

property = value

Les noms de propriété sont des identifiants de texte littéraux non vides. Ils ne doivent pas contenir d'espaces. Chaque composant du système d'entrée définit un ensemble de propriétés utilisées pour configurer sa fonction.

Les valeurs de propriété sont des chaînes littérales non vides, des entiers ou des nombres à virgule flottante. Ils ne doivent pas contenir d'espaces ni de caractères réservés \ ou " .

Les noms et valeurs des propriétés sont sensibles à la casse.

commentaires

Les lignes de commentaires commencent par « # » et se poursuivent jusqu'à la fin de la ligne. Comme ça:

# A comment!

Les lignes vides sont ignorées.

Exemple

# This is an example of an input device configuration file.
# It might be used to describe the characteristics of a built-in touch screen.

# This is an internal device, not an external peripheral attached to the USB
# or Bluetooth bus.
device.internal = 1

# The device should behave as a touch screen, which uses the same orientation
# as the built-in display.
touch.deviceType = touchScreen
touch.orientationAware = 1

# Additional calibration properties...
# etc...

Propriétés communes

La propriété suivante est commune à toutes les classes de périphériques d’entrée.

Reportez-vous à la documentation de chaque classe de périphérique d'entrée pour plus d'informations sur les propriétés spéciales utilisées par chaque classe.

device.internal

Définition : device.internal = 0 | 1

Spécifie si le périphérique d’entrée est un composant interne intégré par opposition à un périphérique connecté en externe (très probablement amovible).

  • Si la valeur est 0 , le périphérique est externe.

  • Si la valeur est 1 , le périphérique est interne.

  • Si la valeur n'est pas précisée, la valeur par défaut est 0 pour tous les appareils sur le bus USB (BUS_USB) ou Bluetooth (BUS_BLUETOOTH), 1 sinon.

Cette propriété détermine les décisions de stratégie par défaut concernant les événements de réveil.

Les périphériques d'entrée internes ne sortent généralement pas l'écran du mode veille, sauf s'ils sont explicitement configurés à cet effet dans le fichier de disposition des touches ou dans une règle de stratégie codée en dur. Cette distinction empêche les pressions sur les touches et les touches de réveiller faussement votre téléphone lorsqu'il est dans votre poche. Habituellement, seule une petite poignée de clés de réveil sont définies.

À l’inverse, les périphériques d’entrée externes réveillent généralement l’appareil de manière plus agressive car ils sont supposés être éteints ou non branchés pendant le transport. Par exemple, appuyer sur n’importe quelle touche d’un clavier externe est un bon indicateur que l’utilisateur souhaite que l’appareil se réveille et réponde.

Il est important de s’assurer que la valeur de la propriété device.internal est correctement définie pour tous les périphériques d’entrée internes.

Validation

Assurez-vous de valider les fichiers de configuration de votre périphérique d'entrée à l'aide de l'outil Validate Keymaps .