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.
Xiaomi Mi 9 SE
Codename:
grusROM: AlphaDroid v4.6
Android: 16
Build:
16-20260713-gapps-grus-v4.6Root: 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
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.

