Saltar al contenido
Todo sobre trucos y tutoriales de Android

Cómo desactivar automáticamente el aviso de alto volumen sin raíz

Aquellos de ustedes que viven en uno de los países miembros de la Unión Europea probablemente se han encontrado con la advertencia cuando intentan subir el volumen de sus auriculares. Esto ocurre porque tienes la opción activar advertencia volumen alto android seleccionada. En este artículo vamos a ver como quitar aviso de volumen alto android de forma fácil.

Según la normativa del Comité Europeo de Normalización Electrotécnica (CENELEC), todos los dispositivos electrónicos capaces de reproducir medios vendidos después de febrero de 2013 deben tener un nivel de volumen de salida por defecto de un máximo de 85 dB. Los usuarios pueden elegir anular la advertencia para aumentar el volumen hasta un máximo de 100 dB, pero al hacerlo, la advertencia debe volver a aparecer después de 20 horas de reproducción de música.

Aunque no vamos a entrar en un debate sobre la eficacia de esta regulación en la promoción de la buena salud, los usuarios que con frecuencia eligen pasar por alto esta advertencia a menudo se preguntan si este proceso puede automatizarse. Hay muchos casos en los que es bastante molesto tener que aceptar manualmente la anulación del límite de volumen, como cuando se inicia la reproducción de música de forma remota en un dispositivo Bluetooth, por lo que queríamos empezar a buscar la forma de pasar por alto esta advertencia automáticamente.

Ya existen soluciones para evitar el «límite de volumen seguro» si busca en nuestros foros, pero hasta ahora todas las soluciones han requerido la instalación de un módulo Xposed. Esto necesariamente limita quién puede usarlo, ya que el Xposed Framework requiere que tengas acceso de root (lo que significa un gestor de arranque desbloqueado en la mayoría de los teléfonos), así como que estés en versiones anteriores de Android. Pero después de indagar en AOSP y en varias configuraciones del sistema, he descubierto una forma de evitar el límite de audio de alto volumen/seguro en todos los dispositivos sin requerir root.

Al seguir esta guía, usted acepta cualquier riesgo relacionado con la escucha de medios a niveles de volumen altos.

Tutorial de Bypass de advertencia de audio seguro

Si has leído mi artículo anterior sobre cómo activar el modo inmersivo sin acceso root, es posible que hayas empezado a jugar con algunas de las configuraciones que puedes encontrar ocultas en tu teléfono. Si no lo has hecho, te recomiendo que lo hagas, ya que he descubierto que casi todos los dispositivos tienen un montón de cosas que esperan ser descubiertas. Este truco no es diferente ya que usaremos una propiedad del sistema para eludir la advertencia de audio segura.

Específicamente, modificaremos la propiedad System.global audio_safe_volume_state tanto en el arranque como periódicamente para que Android siempre piense que usted ha aceptado pasar por alto la advertencia. Esta propiedad está definida en AOSP, que reproducimos a continuación. Hay varios estados que esta propiedad puede tomar, que van desde 0-3. 30 segundos después del arranque o después de cada 20 horas de reproducción continua de música, el estado se establece en ‘0’ o ‘no configurado’. Luego se establece en ‘1’ para ‘deshabilitado’ o ‘3’ para ‘habilitado’ según su código de país móvil . Si vive en la UE, esta propiedad se establece en ‘3’ de forma predeterminada, pero se cambia a ‘2’ para ‘inactivo’ cada vez que el usuario omite manualmente la advertencia de volumen. Cambiaremos el valor de esta propiedad al estado ‘inactivo’ (cambiarlo a ‘deshabilitado’ nunca funcionó para mí, en caso de que se lo pregunte).

TE PUEDE INTERESAR:  5 herramientas y aplicaciones para gestionar sus gastos y su presupuesto

Implementación de volúmenes de medios seguros en AOSP


//==========================================================================================
    // Safe media volume management.
    // MUSIC stream volume level is limited when headphones are connected according to safety
    // regulation. When the user attempts to raise the volume above the limit, a warning is
    // displayed and the user has to acknowlegde before the volume is actually changed.
    // The volume index corresponding to the limit is stored in config_safe_media_volume_index
    // property. Platforms with a different limit must set this property accordingly in their
    // overlay.
    //==========================================================================================
    // mSafeMediaVolumeState indicates whether the media volume is limited over headphones.
    // It is SAFE_MEDIA_VOLUME_NOT_CONFIGURED at boot time until a network service is connected
    // or the configure time is elapsed. It is then set to SAFE_MEDIA_VOLUME_ACTIVE or
    // SAFE_MEDIA_VOLUME_DISABLED according to country option. If not SAFE_MEDIA_VOLUME_DISABLED, it
    // can be set to SAFE_MEDIA_VOLUME_INACTIVE by calling AudioService.disableSafeMediaVolume()
    // (when user opts out).
    private final int SAFE_MEDIA_VOLUME_NOT_CONFIGURED = ;
    private final int SAFE_MEDIA_VOLUME_DISABLED = 1;
    private final int SAFE_MEDIA_VOLUME_INACTIVE = 2;
    private final int SAFE_MEDIA_VOLUME_ACTIVE = 3;
    private Integer mSafeMediaVolumeState;
    private int mMcc = ;
    // mSafeMediaVolumeIndex is the cached value of config_safe_media_volume_index property
    private int mSafeMediaVolumeIndex;
    // mSafeMediaVolumeDevices lists the devices for which safe media volume is enforced,
    private final int mSafeMediaVolumeDevices = AudioSystem.DEVICE_OUT_WIRED_HEADSET |
                                                AudioSystem.DEVICE_OUT_WIRED_HEADPHONE;
    // mMusicActiveMs is the cumulative time of music activity since safe volume was disabled.
    // When this time reaches UNSAFE_VOLUME_MUSIC_ACTIVE_MS_MAX, the safe media volume is re-enabled
    // automatically. mMusicActiveMs is rounded to a multiple of MUSIC_ACTIVE_POLL_PERIOD_MS.
    private int mMusicActiveMs;
    private static final int UNSAFE_VOLUME_MUSIC_ACTIVE_MS_MAX = (20 * 3600 * 1000); // 20 hours
    private static final int MUSIC_ACTIVE_POLL_PERIOD_MS = 60000;  // 1 minute polling interval
    private static final int SAFE_VOLUME_CONFIGURE_TIMEOUT_MS = 30000;  // 30s after boot completed

Primero necesitarás instalar Tasker y AutoTools para que podamos automatizar este truco. Técnicamente, cualquier otra aplicación de automatización aparte de Tasker puede ser usada, pero sólo estoy familiarizado con Tasker así que tendrás que hacer ajustes por tu cuenta si prefieres usar una aplicación diferente. AutoTools, sin embargo, es fundamental para este truco, ya que este plug-in nos permitirá controlar la configuración segura de nuestro dispositivo.

Como expliqué en mi artículo sobre la conmutación del modo inmersivo, necesitamos conceder el permiso WRITE_SECURE_SETTINGS a AutoTools. Esto se debe a que el comando para controlar el estado seguro del volumen de audio se define en la clase Settings.Global, aunque la sintaxis exacta del comando está oculta en AOSP (igual que en el modo inmersivo). Si ya has concedido el permiso WRITE_SECURE_SETTINGS a AutoTools después de haber leído mi tutorial anterior sobre el modo inmersivo, entonces puedes saltarte la siguiente sección. Si no, entonces tendrás que prepararlo.

Conceder permiso de configuración segura a AutoTools

Bajo el sistema de gestión de permisos de Android, las aplicaciones definen los permisos que quieren que se les concedan en el archivo Manifiesto. Los usuarios pueden conceder o denegar los permisos de instalación (antes del malvavisco) o a petición (Malvavisco+). Sin embargo, hay ciertos permisos que las aplicaciones no pueden ser concedidas aunque lo soliciten en el Manifiesto, como WRITE_SECURE_SETTINGS. Esto se debe a que otorgarle a cualquier aplicación un permiso tan poderoso como éste le daría a esa aplicación una tonelada de control sobre su dispositivo.

TE PUEDE INTERESAR:  3 Mensajes De Error Comunes de tu Pc

Pero hay una solución que podemos usar para conceder el permiso WRITE_SECURE_SETTINGS a cualquier aplicación que queramos. Utilizando la herramienta de gestión de paquetes (pm) del ADB, podemos conceder cualquier permiso a cualquier aplicación que queramos (siempre que la aplicación solicite ese permiso en el archivo Manifiesto).

Lo primero que tendrá que hacer es instalar el binario ADB en su ordenador seguido del controlador adecuado para su dispositivo. A continuación, habilite la función de depuración USB en Opciones del desarrollador (vaya a Configuración -> Acerca del teléfono y pulse sobre el número de compilación 7 veces si aún no lo ha hecho) y conecte el teléfono a la computadora. Finalmente, envíe el siguiente comando una vez que haya abierto una terminal:

adb shell pm grant com.joaomgcd.autotools android.permission.WRITE_SECURE_SETTINGS

Ahora AutoTools tendrá la capacidad de cambiar cualquier ajuste Global, Seguro o Sistema en su dispositivo. Hay varias maneras de jugar con estos ajustes, y la lista de ajustes disponibles en cada categoría depende completamente de la construcción de su dispositivo y software, pero esa discusión es para otro momento. En cualquier caso, le mostraremos cómo usar AutoTools para controlar el estado de volumen seguro.

Desactivación de la advertencia de audio seguro en el arranque

 

Aquí está la descripción del perfil para aquellos de ustedes que están familiarizados con Tasker. Si no está familiarizado con Tasker, siga leyendo para obtener instrucciones paso a paso.

Desactivar Audio seguro en el arranque

Profile: Disable Safe Audio On Boot (6)
	Event: Monitor Start
Enter: Anon (7)
	A1: Wait [ MS: Seconds:30 Minutes: Hours: Days: ] 
	A2: AutoTools Secure Settings [ Configuration:Setting Type: Global
Name: audio_safe_volume_state
Input Type: Int
Value: 2 Timeout (Seconds):60 ]

Abre el Tasker para que podamos crear un nuevo perfil. En la esquina inferior derecha pulse sobre el icono + para crear un nuevo perfil. Añada un nuevo contexto Evento y vaya a Tareas -> Inicio de monitorización. Estamos usando este contexto de Evento que se activa cuando se inicia el Tasker en lugar del contexto de Evento que se activa cuando el teléfono arranca porque el primero es mucho más fiable que el segundo.

En cualquier caso, pulse el botón Atrás ya que ahora crearemos una Tarea asociada a este perfil. Nombra la Tarea de cualquier manera, ya que no importa. Una vez que entre en la pantalla de creación de tareas, pulse el icono + en la parte inferior central de la pantalla para crear una nueva acción. Para la primera acción, vaya a Tarea -> Esperar y haga que espere 30 segundos. Esto explica la regla «30 segundos después del arranque» utilizada en Android para establecer el estado de volumen seguro.

A continuación, cree una nueva acción y vaya a Plugin -> AutoTools -> Secure Settings. Pulse el lápiz para abrir la pantalla de configuración de AutoTools. Vaya a Configuración personalizada. Para el Tipo de Configuración ingrese Global . Para el Nombre ingrese audio_safe_volume_state. Para el tipo de entrada hágalo int. Para el valor, hazlo 2. Compruebe que ha puesto todo correctamente, la configuración debe coincidir con la imagen de abajo. El comando debe ser enviado exactamente como lo he escrito o no tendrá ningún efecto.

TE PUEDE INTERESAR:  Activar NFC en un smartphone Android

 

Una vez que haya terminado, vuelva al menú principal de Tasker, ya que tendremos que crear otro perfil. Para la que acabamos de crear cuentas cuando el estado del volumen seguro se establece 30 segundos después del inicio, pero para aquellos de ustedes que casi nunca reinician su dispositivo, crearemos otro perfil para establecer periódicamente este valor.

Desactivar periódicamente la advertencia de audio seguro

Aquí está la descripción del perfil para aquellos de ustedes que están familiarizados con Tasker. Si no está familiarizado con Tasker, siga leyendo para obtener instrucciones paso a paso.

Desactivar periódicamente Safe Audio

Profile: Disable Safe Audio Periodically (21)
	Time: 11:59PM
Enter: Anon (122)
	A1: AutoTools Secure Settings [ Configuration:Setting Type: Global
Name: audio_safe_volume_state
Input Type: Int
Value: 2 Timeout (Seconds):60 ]

Cree un nuevo perfil, esta vez con un contexto Time . Desafortunadamente, no conozco ningún método para obtener el tiempo acumulativo actual de reproducción de medios sin root, por lo que en lugar de eso estableceremos periódicamente el estado de volumen seguro a inactivo una vez cada 24 horas (…. no es como si realmente escucharan 20 horas de música en un período de 24 horas, ¿verdad?). De todos modos, la interfaz de Tasker para establecer una Tarea periódica es un poco terrible, pero lo esencial es que se desea establecer la hora «De» y la hora «A» al mismo tiempo. De esta manera, Tasker lo tratará como si quisiera que la Tarea se disparara sólo una vez a una hora determinada (la hice 1 minuto antes de la medianoche).

En cuanto a la Tarea, simplemente copia lo que hiciste para la Acción #2 en el perfil anterior. No hay ninguna acción nueva o diferente en este caso, ya que todo lo que estamos haciendo es cambiar el valor de esta propiedad del sistema global una vez cada 24 horas.

 

Ahora que ha configurado estos dos perfiles, ¡ha terminado! Reinicie su teléfono y ya no debería ver la advertencia de «volumen seguro» cuando conecte sus auriculares.

Descargar e importar a Tasker

Como siempre, proporcionamos el archivo XML de los scripts que puede descargar e importar. Simplemente descargue los archivos desde el enlace de abajo y guárdelos en cualquier lugar de su almacenamiento interno. Abre el Tasker y desactiva el modo Principiante en las Preferencias. A continuación, vuelva a la pantalla principal y pulse durante mucho tiempo en la pestaña «Perfil» en la parte superior. Debería ver una ventana emergente con una de las opciones siendo «Importar». Pulse sobre él y busqué el lugar donde guardó los archivos.prf.xml y seleccione el archivo que desea importar. Repita para el segundo perfil.

Descargue el perfil ‘Desactivar advertencia de audio seguro en el arranque’ Descargue el perfil ‘Deshabilitar la advertencia de audio segura periódicamente’

Esperamos que este consejo le resulte útil. Háganos saber en los comentarios de abajo si esto funciona para usted!