Grus Ultrasound Proximity Fix v1.5 es una solución desarrollada para recuperar el funcionamiento nativo del sensor de proximidad ultrasónico del Xiaomi Mi 9 SE (grus) en una instalación específica de AlphaDroid v4.6 basada en Android 16.

El problema afectaba varias funciones importantes del teléfono: llamadas telefónicas normales, llamadas de WhatsApp y reproducción de notas de voz de WhatsApp.

Después de una investigación profunda del sistema de audio, los sensores y la implementación de ultrasonido utilizada por Xiaomi, conseguimos identificar la causa real y restaurar el funcionamiento completo sin modificar permanentemente la partición /vendor.

Configuración probada
Xiaomi Mi 9 SE
Codename: grus
ROM: AlphaDroid v4.6
Android: 16
Build: 16-20260713-gapps-grus-v4.6
Root: KernelSU Next
Método: KernelSU + OverlayFS

¿Qué problema tenía el Xiaomi Mi 9 SE?

El Mi 9 SE utiliza una implementación de proximidad ultrasónica basada en tecnología de Elliptic.

En lugar de depender únicamente de un sensor infrarrojo tradicional, el teléfono utiliza una combinación de componentes de audio, rutas ultrasónicas y software para detectar si el dispositivo está cerca del rostro.

En la versión de AlphaDroid probada, la proximidad no funcionaba correctamente durante:

  • Llamadas telefónicas normales.
  • Llamadas de WhatsApp.
  • Notas de voz de WhatsApp.

El síntoma más evidente era que al acercar el teléfono al oído, la pantalla no reaccionaba como debía o el sistema no gestionaba correctamente el cambio de proximidad y la ruta de audio.

El problema no era WhatsApp

Una de las primeras conclusiones importantes fue que el problema no estaba realmente en WhatsApp.

El sistema Elliptic sí estaba intentando activar el mecanismo de proximidad mediante:

ultrasound-proximity=1

Sin embargo, los registros mostraban un error muy revelador:

clientConnect: Error connect server socket /dev/socket/audio_hw_socket
Connection refused

Eso significaba que Elliptic estaba intentando comunicarse con el subsistema de audio, pero el servidor necesario dentro del Audio HAL no estaba respondiendo.

La causa real: el Audio HAL

El análisis del archivo:

/vendor/lib/hw/audio.primary.sdm710.so

mostró que el Audio HAL utilizado por la ROM no incluía completamente la implementación nativa de ultrasonido que Xiaomi utiliza en el Mi 9 SE.

Al comparar ese HAL con una implementación específica para grus, encontramos componentes fundamentales como:

audio_hw_socket
ultrasound_extn_start
ultrasound_extn_stop
ultrasound-proximity-input
ultrasound-proximity-output
ultrasound_start_tx
ultrasound_start_rx

Esta fue una de las pruebas más importantes de toda la investigación.

El hardware y Elliptic estaban presentes, pero faltaba la implementación correcta del lado del Audio HAL.

Restaurando el sistema ultrasónico nativo

La solución consistió en restaurar el Audio HAL compatible con el Xiaomi Mi 9 SE junto con dos dependencias necesarias de 32 bits.

Después de cargar los componentes correctos, el comportamiento cambió completamente.

El socket que anteriormente rechazaba las conexiones comenzó a funcionar:

/dev/socket/audio_hw_socket — LISTEN

Esto confirmó que el servidor nativo del Audio HAL estaba activo.

Ultrasound TX y RX restaurados

El sistema comenzó también a iniciar correctamente las rutas ultrasónicas internas del Mi 9 SE.

Transmisión ultrasónica:

PCM 11
ultrasound_start_tx: exit - success

Recepción ultrasónica:

PCM 38
ultrasound_start_rx: exit - success

Con estas rutas activas, el teléfono recuperó la comunicación entre Elliptic, el Audio HAL y el hardware.

Android comenzó a recibir nuevamente la proximidad

Los eventos de Elliptic comenzaron a responder correctamente al acercar y alejar el teléfono:

Proximity event: 0
Proximity event: 5

Y Android comenzó a aplicar el estado de proximidad:

Applying proximity: Positive

Eso confirmó que la señal estaba recorriendo nuevamente toda la cadena.

Llamadas telefónicas funcionando

Una vez restaurado el sistema ultrasónico, el sensor volvió a responder durante llamadas telefónicas normales.

Al acercar el Xiaomi Mi 9 SE al oído, Android puede detectar correctamente la proximidad y apagar la pantalla para evitar pulsaciones accidentales.

Llamadas de WhatsApp funcionando

El mismo mecanismo también vuelve a funcionar correctamente durante llamadas de WhatsApp.

La aplicación puede depender otra vez del sistema de proximidad de Android en lugar de encontrarse con una implementación ultrasónica incompleta.

Notas de voz de WhatsApp solucionadas

Las notas de voz fueron una de las pruebas más importantes del proyecto.

Con Grus Ultrasound Proximity Fix v1.5 instalado, al reproducir una nota de voz y acercar el teléfono al oído:

  • Elliptic detecta la proximidad.
  • Android recibe el evento.
  • La pantalla se apaga correctamente.
  • El audio puede adaptarse al uso junto al oído.
  • Al alejar el teléfono, el sensor vuelve a responder.

Esto demuestra que no estamos simulando el apagado de la pantalla mediante un script.

La solución restaura la cadena nativa de proximidad ultrasónica del Xiaomi Mi 9 SE.

Una solución systemless con KernelSU

Uno de los objetivos principales fue evitar escribir directamente sobre la partición /vendor.

Grus Ultrasound Proximity Fix utiliza KernelSU / KernelSU Next y OverlayFS.

En lugar de reemplazar físicamente archivos del sistema, se crea una superposición de:

/vendor/lib

Esto permite que Android vea el Audio HAL y las librerías correctas durante el arranque sin modificar permanentemente los archivos originales de la ROM.

Al desactivar o eliminar el módulo y reiniciar, el sistema puede volver a utilizar los archivos originales.

SELinux también fue clave

Durante el desarrollo apareció un segundo problema importante.

El primer montaje OverlayFS cargaba correctamente el nuevo Audio HAL, pero Android tenía dificultades para arrancar porque algunos servicios de vendor perdían acceso a sus propias librerías.

El motivo era el contexto SELinux del overlay.

La versión final aplica:

u:object_r:vendor_file:s0

antes de montar el contenido.

Esto permite que servicios relacionados con audio, cámara, OMX y gráficos continúen accediendo correctamente a sus librerías.

¿Qué corrige Grus Ultrasound Proximity Fix v1.5?

  • Proximidad durante llamadas telefónicas.
  • Proximidad durante llamadas de WhatsApp.
  • Proximidad durante notas de voz de WhatsApp.
  • Servidor audio_hw_socket.
  • Integración entre Elliptic y Audio HAL.
  • Ruta ultrasónica TX.
  • Ruta ultrasónica RX.
  • Gestión del estado de proximidad dentro de Android.

Descargar Grus Ultrasound Proximity Fix v1.5

El proyecto está publicado gratuitamente en GitHub.

Ver Release oficial v1.5 en GitHub

Cómo instalar

La instalación se realiza desde KernelSU:

KernelSU
→ Modules
→ Install from storage
→ seleccionar Grus-Ultrasound-Proximity-Fix-v1.5-KernelSU.zip
→ reiniciar

Importante antes de instalar

Advertencia:

Este módulo fue diseñado y probado específicamente en un Xiaomi Mi 9 SE grus con:

AlphaDroid v4.6
Android 16
Build 16-20260713-gapps-grus-v4.6
KernelSU Next

No asumimos compatibilidad automática con otras ROMs, otras compilaciones de AlphaDroid o dispositivos diferentes.

El Audio HAL es un componente crítico del sistema. Utilizarlo en una configuración incompatible puede provocar problemas de audio o incluso impedir temporalmente que Android complete el arranque.

Si se presenta un problema de arranque, KernelSU dispone de métodos de recuperación para desactivar módulos.

Cómo se desarrolló esta solución

Este fix nació de una investigación directa sobre un Xiaomi Mi 9 SE real.

Fue necesario analizar paso por paso la cadena completa:

Llamadas / WhatsApp
        ↓
Android
        ↓
Elliptic
        ↓
audio_hw_socket
        ↓
Audio HAL
        ↓
Ultrasound TX / RX
        ↓
Hardware de proximidad

Después de revisar registros del sistema, rutas de audio, mixer controls, procesos de sensores, sockets UNIX, librerías de vendor y diferentes implementaciones del Audio HAL, se encontró finalmente la causa real.

La solución final combina:

  • Audio HAL compatible con grus.
  • Dependencias necesarias de 32 bits.
  • KernelSU Next.
  • OverlayFS.
  • Corrección del contexto SELinux.
  • Pruebas reales de llamadas y WhatsApp.

Resultado

Grus Ultrasound Proximity Fix v1.5 devuelve al Xiaomi Mi 9 SE una función que depende directamente de su arquitectura original de hardware y software.

Después de aplicar el fix, quedaron funcionando correctamente:

✓ Llamadas telefónicas
✓ Llamadas de WhatsApp
✓ Notas de voz de WhatsApp
✓ Apagado de pantalla al acercar el teléfono al oído
✓ Detección al alejar nuevamente el dispositivo
✓ Ultrasound TX y RX
✓ audio_hw_socket
✓ Integración Elliptic + Android

Todo ello mediante una implementación systemless que evita modificar permanentemente la partición vendor.


Proyecto y solución desarrollados por Ariel Torres.

Instagram: @draccesoriosrd

DR Accesorios RD
Tecnología, soluciones Android y pruebas reales con dispositivos.