Intentando reasignar mis botones de hardware

Como tengo un botón de retroceso roto, he reasignado mis botones de tal manera que mi botón original para subir el volumen funciona como un botón de menú y mi botón de menú original como el botón de retroceso. He hecho esto cambiando los valores clave en /system/usr/keylayout/generic.kl.

El problema es que he flasheado una nueva ROM, así que tuve que hacerlo de nuevo, pero ahora ya no funciona. Los valores modificados son persistentes, pero mi teléfono lo ignora, al parecer.

Y sí, por supuesto he reiniciado después de hacer los cambios nuevamente.

¿Alguien tiene una idea?

Respuestas (3)

Como escribió que ha modificado un archivo del sistema, es seguro asumir que su dispositivo está rooteado. Hay varias aplicaciones disponibles que prometen reasignar claves (consulte mi lista de aplicaciones de reasignación de claves ), una de ellas podría resolver su problema. No he probado ninguno de ellos (no tenía necesidad), pero lo que suena prometedor es Xposed Additions , mira estas capturas de pantalla:

captura de pantalla captura de pantalla
Adiciones Xposed (fuente: Google Play ; haga clic en las imágenes para ver variantes más grandes)

En la primera captura de pantalla (la pantalla principal del módulo), el último elemento dice "Botones". Tocar eso lleva a la segunda captura de pantalla: mire nuevamente el mismo botón y verá que incluso incluye teclas de hardware (aquí: el powerbotón). El elemento justo encima de eso sería su backbotón (blando o duro). Por lo tanto, no es necesario manipular directamente los archivos del sistema, solo deje que Xposed se encargue de eso :)

Sin saber qué teléfono tienes, qué ROM o qué versión, es difícil decirte exactamente por qué, pero la explicación más simple es que estás editando el archivo de distribución de teclas incorrecto. Las roms de Cyanogenmod tienden a admitir varios diseños de teclas específicos para ciertos dispositivos, y estos tienen prioridad sobre el archivo Generic.kl, por razones obvias. Los archivos de diseño de teclas se asignan a tipos de dispositivos individuales. Puede haber otros archivos .kl que sean específicos para sus botones, como sec_key.kl, sec_jack.kl (para botones duros Samsung y botones de auriculares), cyttsp-i2c.kl (para controladores de pantalla de tinta electrónica Cypress TrueTouch utilizados en B&N Nook), gpio-keys.kl, etc, etc.

Por lo tanto, debe ver cuáles están allí, cuál es para su dispositivo específico (esperemos que esté comentado) y editarlo.

Supongo que las asignaciones de teclas solo se leen en el primer arranque después de actualizar la ROM y se almacenarán en una base de datos en la partición /data. Esta base de datos no se actualizará cuando se cambien los valores en generic.kl. Puede probar este pensamiento haciendo un borrado de datos. Esto activará la lectura de los valores modificados de generic.kl (¡DESPUÉS DE ELIMINAR TODOS SUS DATOS DE USUARIO!). Otra forma sería encontrar esta base de datos y editarla a mano o simplemente eliminarla y reiniciar para volver a leer generic.kl.

Gracias, esa parece ser la solución si puedo encontrar esa base de datos. ¿Tienes alguna idea o adivinas dónde encontrarlo?
No es así en absoluto como Android maneja el diseño de teclas y los archivos de mapas de caracteres clave.