Cómo desactivar automáticamente la advertencia de alto volumen sin root

Un tutorial sobre cómo desactivar la advertencia de volumen alto o audio seguro que se requiere en los dispositivos vendidos en la UE. Esto funciona en todos los dispositivos sin root.

Aquellos de ustedes que viven en uno de los países miembros de la Unión Europea probablemente se hayan encontrado con la advertencia al intentar subir el volumen de sus auriculares como se muestra en la imagen principal de arriba.

Según la normativa establecida por el Comité Europeo de Normalización Electrotécnica (CENELEC), todos los dispositivos electrónicos Los dispositivos capaces de reproducir medios vendidos después de febrero de 2013 deben tener un nivel de volumen de salida predeterminado de un máximo de 85 dB. Los usuarios pueden optar por anular la advertencia para aumentar el volumen a 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.

Si bien no vamos a entrar en un debate sobre la eficacia de este reglamento para promover el buen salud, los usuarios que frecuentemente optan por omitir esta advertencia a menudo se preguntan si este proceso puede ser automatizado. Hay muchos casos en los que resulta bastante molesto tener que aceptar manualmente anular el límite de volumen, como cuando inicias reproducción de música de forma remota en un dispositivo Bluetooth, por lo que queríamos comenzar a encontrar una manera de evitar automáticamente este problema. advertencia.

Ya existen soluciones para evitar el "límite de volumen seguro" si busca en nuestros foros, pero hasta ahora todas las soluciones requieren que instalar un expuesto Módulo. Esto necesariamente limita quién puede usarlo, ya que Xposed Framework requiere que tengas acceso de root (lo que significa un gestor de arranque desbloqueado en la mayoría de los teléfonos), además de estar en versiones de Android anteriores a Nougat. Pero después de profundizar en AOSP y varias configuraciones del sistema, descubrí una manera de evitar el límite de volumen alto/audio seguro. en todos los dispositivos sin necesidad de root.

Al seguir esta guía, acepta los riesgos que implica escuchar medios a niveles de volumen altos.


Tutorial de omisión segura de advertencia de audio

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

Específicamente, modificaremos el System. propiedad global audio_safe_volume_state tanto al arrancar como periódicamente para que Android siempre piense que has dado tu consentimiento para omitir la advertencia. Esta propiedad es definido en AOSP, que reproducimos a continuación. Hay varios estados que puede adoptar esta propiedad, que van de 0 a 3. 30 segundos después del inicio 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' dependiendo de su Código de país móvil. Si vive en la UE, esta propiedad está configurada 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 te lo preguntes).


//
// 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 setto SAFE_MEDIA_VOLUME_INACTIVE bycalling AudioService.disableSafeMediaVolume()
// (when user opts out).
privatefinalint SAFE_MEDIA_VOLUME_NOT_CONFIGURED = 0;
privatefinalint SAFE_MEDIA_VOLUME_DISABLED = 1;
privatefinalint SAFE_MEDIA_VOLUME_INACTIVE = 2;
privatefinalint SAFE_MEDIA_VOLUME_ACTIVE = 3;
private Integer mSafeMediaVolumeState;
privateint mMcc = 0;
// mSafeMediaVolumeIndex is the cached value of config_safe_media_volume_index property
privateint mSafeMediaVolumeIndex;
// mSafeMediaVolumeDevices lists the devices for which safe media volume is enforced,
privatefinalint 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.
privateint mMusicActiveMs;
privatestaticfinalint UNSAFE_VOLUME_MUSIC_ACTIVE_MS_MAX = (20 * 3600 * 1000); // 20 hours
privatestaticfinalint MUSIC_ACTIVE_POLL_PERIOD_MS = 60000; // 1 minute polling interval
privatestaticfinalint SAFE_VOLUME_CONFIGURE_TIMEOUT_MS = 30000; // 30s after boot completed

leer más

Primero necesitarás instalar Tasker y Autoherramientas para que podamos automatizar este truco. Técnicamente, se puede usar cualquier otra aplicación de automatización además de Tasker, pero solo estoy familiarizado con Tasker, por lo que tendrás que hacer ajustes por tu cuenta si prefieres usar una aplicación diferente. Sin embargo, AutoTools es fundamental para este truco, ya que este complemento nos permitirá controlar la configuración segura de nuestro dispositivo.

Como se explica en mi artículo sobre cómo alternar el modo inmersivo, debemos otorgar la ESCRIBIR_CONFIGURACIONES_SEGURAS permiso a AutoTools. Esto se debe a que el comando para controlar el estado de volumen de audio seguro se define en el Ajustes. Global clase, aunque la sintaxis exacta del comando está oculta en AOSP (al igual que en el modo inmersivo). Si ya le ha otorgado el permiso WRITE_SECURE_SETTINGS a AutoTools después de haber leído mi tutorial anterior sobre el modo inmersivo, puede omitir la siguiente sección. Si no, tendrás que configurarlo.


En el sistema de gestión de permisos de Android, las aplicaciones definen los permisos que desean que se les otorgue en el archivo Manifiesto. Luego, los usuarios pueden otorgar o denegar permisos durante la instalación (antes de Marshmallow) o bajo demanda (Marshmallow+). Sin embargo, hay ciertos permisos que las aplicaciones no pueden otorgar incluso si lo solicitan en el Manifiesto, como por ejemplo ESCRIBIR_CONFIGURACIONES_SEGURAS. Esto se debe a que otorgar a cualquier aplicación un permiso tan poderoso como este le daría a esa aplicación un gran control sobre su dispositivo.

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

Lo primero que tendrás que hacer es instalar el binario ADB en su computadora seguido del controlador adecuado para su dispositivo. Luego, habilite la depuración de USB en Opciones de desarrollador (vaya a Configuración --> Acerca del teléfono y toque Número de compilación 7 veces si aún no lo ha hecho) y conecte su teléfono a su 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 configuración global, segura o del sistema en su dispositivo. Hay varias formas de jugar con estas configuraciones y la lista de configuraciones disponibles en Cada categoría depende completamente de su dispositivo y de la versión del software, pero esa discusión queda para otro tema. tiempo. En cualquier caso, continuaremos mostrándole cómo usar AutoTools para controlar el estado del volumen seguro.


Deshabilitar la advertencia de audio segura al arrancar

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

Deshabilitar audio seguro al arrancar

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

leer más

Abre Tasker para que podamos crear un nuevo perfil. En la esquina inferior derecha, toque el + icono para crear un nuevo perfil. Agregar un nuevo Evento contexto y vaya a Tasker --> Monitorear inicio. Estamos utilizando este contexto de evento que se activa cuando se inicia Tasker en lugar del contexto de evento que se activa cuando se inicia el teléfono porque el primero es mucho más confiable que el segundo.

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

A continuación, cree una nueva acción y vaya a Complemento --> AutoTools --> Configuración segura. Presione el lápiz para abrir la pantalla de configuración de AutoTools. Ir 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 En t. Por el valor hazlo 2. Verifique para asegurarse de haber puesto todo correctamente, la configuración debe coincidir con la captura de pantalla del medio a continuación. El comando debe ser enviado. exactamente como he escrito o no tendrá ningún efecto.

Una vez que haya terminado, regrese al menú principal de Tasker, ya que necesitaremos crear otro perfil. El que acabamos de crear tiene en cuenta cuando el estado del volumen seguro se establece 30 segundos después del arranque, pero para Aquellos de ustedes que casi nunca reinician su dispositivo crearemos otro perfil para configurar esto periódicamente. valor.


Desactive la advertencia de audio segura periódicamente

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

Deshabilite el audio seguro periódicamente

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 ]

leer más

Crea un nuevo perfil, esta vez con un Tiempo contexto. Desafortunadamente, no conozco ningún método para obtener el tiempo acumulado actual de reproducción multimedia sin root, por lo que en su lugar estableceremos periódicamente el estado de volumen seguro en inactivo una vez cada 24 horas (... No es que ustedes escuchen 20 horas de música en un período de 24 horas, ¿verdad?). De todos modos, la interfaz de Tasker para configurar una tarea periódica es algo terrible, pero lo esencial es que deseas configurar el tiempo "Desde" y "Hasta" al mismo tiempo. De esta manera, Tasker lo tratará como si quisieras que la tarea se active solo una vez a una hora determinada (lo 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. En este caso no hay ninguna acción nueva o diferente, 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 ambos perfiles, ¡ya está! Reinicia tu teléfono y ahora ya no debería ver la advertencia de "volumen seguro" cuando conecte sus auriculares.


Descargar e importar a Tasker

Como siempre, le proporcionamos el archivo XML de los scripts que puede descargar e importar. Simplemente descargue los archivos desde el enlace a continuación y guárdelos en cualquier lugar de su almacenamiento interno. Abra Tasker y desactive el modo principiante en Preferencias. Luego, regrese a la pantalla principal y mantenga presionada la pestaña "Perfil" en la parte superior. Debería ver una ventana emergente con una de las opciones como "Importar". Toque eso y busque donde guardó los archivos .prf.xml y seleccione ese archivo para importar. Repita para el segundo perfil.

Descargue el perfil 'Desactivar advertencia de audio seguro al arrancar'

Descargue el perfil 'Desactivar la advertencia de audio segura periódicamente'

Esperamos que encuentre útil este consejo. ¡Háganos saber en los comentarios a continuación si esto funciona para usted!