Come disattivare automaticamente l'avviso di volume elevato senza root

Un tutorial su come disattivare l'avviso Volume alto o Audio sicuro richiesto sui dispositivi venduti nell'UE. Funziona su tutti i dispositivi senza root.

Quelli di voi che vivono in uno dei paesi membri dell'Unione Europea probabilmente si sono imbattuti nell'avviso quando hanno provato ad alzare il volume delle cuffie, come mostrato nell'immagine sopra.

Secondo le normative stabilite dal Comitato Europeo di Standardizzazione Elettrotecnica (CENELEC), tutto elettronico i dispositivi in ​​grado di riprodurre contenuti multimediali venduti dopo febbraio 2013 devono avere un livello di volume di uscita predefinito pari a massimo 85 dB. Gli utenti possono scegliere di ignorare l'avviso per aumentare il volume fino a un massimo di 100 dB, ma così facendo l'avviso deve riapparire dopo 20 ore di riproduzione musicale.

Mentre non entreremo in un dibattito sull'efficacia di questo regolamento nel promuovere il bene salute, gli utenti che scelgono spesso di ignorare questo avviso spesso si chiedono se questo processo sia possibile automatizzato. Ci sono molti casi in cui è piuttosto fastidioso dover accettare manualmente di ignorare il limite del volume, ad esempio quando si avvia riproduzione musicale in remoto su un dispositivo Bluetooth, quindi volevamo cercare di trovare un modo per bypassare automaticamente questo problema avvertimento.

Esistono già soluzioni per aggirare il "limite di volume sicuro" se effettui una ricerca nei nostri forum, ma finora tutte le soluzioni ti hanno richiesto di installare un Xposed Modulo. Ciò limita necessariamente chi può utilizzarlo, poiché Xposed Framework richiede l'accesso root (il che significa un bootloader sbloccato sulla maggior parte dei telefoni) oltre a essere sulle versioni pre-Nougat di Android. Ma dopo aver analizzato AOSP e varie impostazioni di sistema, ho scoperto un modo per aggirare il limite di volume alto/audio sicuro su tutti i dispositivi senza richiedere root.

Seguendo questa guida, accetti tutti i rischi legati all'ascolto di contenuti multimediali a livelli di volume elevati.


Tutorial per bypassare gli avvisi audio sicuri

Se hai letto il mio precedente articolo su abilitare la modalità immersiva senza accesso root, potresti aver iniziato a giocare con alcune delle impostazioni che puoi trovare nascoste sul tuo telefono. Se non l'hai fatto, ti consiglio vivamente di farlo, poiché ho scoperto che quasi ogni dispositivo ha un sacco di chicche che aspettano solo di essere scoperte. Questo trucco non è diverso poiché utilizzeremo una proprietà di sistema per ignorare l'avviso audio sicuro.

Nello specifico, modificheremo il System. Proprietà globale audio_safe_volume_state sia all'avvio che periodicamente, quindi Android penserà sempre che tu abbia acconsentito a ignorare l'avviso. Questa proprietà è definito nell'AOSP, che riproduciamo di seguito. Esistono diversi stati che questa proprietà può assumere, compresi tra 0 e 3. 30 secondi dopo l'avvio o dopo ogni 20 ore di riproduzione musicale continua, lo stato viene impostato su "0" o "non configurato". Viene quindi impostato su '1' per 'disabilitato' o '3' per 'abilitato' a seconda del Codice Paese cellulare. Se vivi nell'Unione Europea, questa proprietà è impostata su "3" per impostazione predefinita ma viene modificata in "2" per "inattivo" ogni volta che l'utente ignora manualmente l'avviso sul volume. Modificheremo il valore di questa proprietà nello stato "inattivo". (cambiarlo in "disabilitato" non ha mai funzionato per me, nel caso te lo stessi chiedendo).


//
// 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

Per saperne di più

Dovrai prima installare Tasker E Strumenti automatici quindi possiamo automatizzare questo trucco. Tecnicamente, è possibile utilizzare qualsiasi altra app di automazione oltre a Tasker, ma conosco solo Tasker, quindi dovrai apportare modifiche da solo se preferisci utilizzare un'app diversa. AutoTools, tuttavia, è fondamentale per questo trucco poiché questo plug-in ci consentirà di controllare le impostazioni di sicurezza sul nostro dispositivo.

Come spiegato nel mio articolo sull'attivazione della modalità immersiva, dobbiamo concedere il file WRITE_SECURE_SETTINGS autorizzazione ad AutoTools. Questo perché il comando per controllare lo stato del volume audio sicuro è definito in Impostazioni. Globale class, sebbene la sintassi esatta del comando sia nascosta in AOSP (proprio come lo era per la modalità Immersive). Se hai già concesso l'autorizzazione WRITE_SECURE_SETTINGS ad AutoTools dopo aver letto il mio tutorial precedente sulla modalità immersiva, puoi saltare la sezione successiva. In caso contrario, dovrai configurarlo.


Nel sistema di gestione delle autorizzazioni di Android, le applicazioni definiscono le autorizzazioni che desiderano ottenere nel file Manifest. Gli utenti possono quindi concedere o negare le autorizzazioni durante l'installazione (pre-Marshmallow) o su richiesta (Marshmallow+). Tuttavia, ci sono alcune autorizzazioni che le applicazioni non possono essere concesse anche se lo richiedono nel Manifesto, come ad esempio WRITE_SECURE_SETTINGS. Questo perché concedere a qualsiasi applicazione un'autorizzazione così potente darebbe a quell'app un sacco di controllo sul tuo dispositivo.

Ma esiste una soluzione alternativa che possiamo utilizzare per concedere l'autorizzazione WRITE_SECURE_SETTINGS a qualsiasi app che desideriamo. Utilizzando ADB gestore pacchetti (pm) strumento, possiamo concedere qualsiasi autorizzazione a qualsiasi applicazione desideriamo (a condizione che l'applicazione richieda tale autorizzazione nel file Manifest).

La prima cosa che dovrai fare è installa il binario ADB sul tuo computer seguito da driver giusto per il tuo dispositivo. Quindi, abilita il debug USB nelle Opzioni sviluppatore (vai su Impostazioni -> Informazioni sul telefono e tocca Numero build 7 volte se non l'hai già fatto) e collega il telefono al computer. Infine, invia il seguente comando dopo aver aperto un terminale:

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

Ora AutoTools avrà la possibilità di modificare qualsiasi impostazione globale, sicura o di sistema sul tuo dispositivo. Esistono vari modi in cui puoi giocare con queste impostazioni e con l'elenco delle impostazioni disponibili in ogni categoria dipende completamente dal dispositivo e dalla build del software, ma questa discussione riguarda un'altra tempo. In ogni caso, andremo avanti mostrandoti come utilizzare AutoTools per controllare lo stato del volume di sicurezza.


Disabilitare l'avviso audio sicuro all'avvio

Ecco la descrizione del profilo per quelli di voi che hanno familiarità con Tasker. Se non hai familiarità con Tasker, continua a leggere per istruzioni dettagliate.

Disabilita l'audio sicuro all'avvio

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 ]

Per saperne di più

Apri Tasker in modo che possiamo creare un nuovo profilo. Nell'angolo in basso a destra tocca + icona per creare un nuovo profilo. Aggiungi un nuovo Evento contesto e vai a Tasker --> Avvia monitoraggio. Stiamo utilizzando questo contesto Evento che si attiva all'avvio di Tasker piuttosto che il contesto Evento che si attiva all'avvio del telefono perché il primo è molto più affidabile del secondo.

In ogni caso, premi il pulsante Indietro poiché ora creeremo un'attività associata a questo profilo. Assegna un nome qualsiasi all'attività poiché non ha importanza. Una volta entrati nella schermata di creazione dell'attività, premere su + nella parte inferiore centrale dello schermo per creare una nuova azione. Per la prima azione, vai a Attività --> Attendi e fallo aspettare 30 secondi. Ciò tiene conto della regola "30 secondi dopo l'avvio" utilizzata in Android per impostare lo stato del volume sicuro.

Quindi, crea una nuova azione e vai a Plugin --> Strumenti automatici --> Impostazioni sicure. Premi la matita per aprire la schermata di configurazione di AutoTools. Vai a Impostazione personalizzata. Per il Tipo di impostazione immettere Globale. Per il Nome inserire audio_safe_volume_state. Per il tipo di input, fallo int. Per il valore fallo 2. Assicurati di aver inserito tutto correttamente, la configurazione dovrebbe corrispondere allo screenshot centrale qui sotto. Il comando deve essere inviato esattamente come ho scritto altrimenti non avrà alcun effetto.

Una volta terminato, torna al menu principale di Tasker poiché dovremo creare un altro profilo. Quello che abbiamo appena creato tiene conto del momento in cui lo stato del volume sicuro viene impostato 30 secondi dopo l'avvio, ma per quelli di voi che non riavviano quasi mai il dispositivo creeranno un altro profilo per impostarlo periodicamente valore.


Disattiva periodicamente l'avviso audio sicuro

Ecco la descrizione del profilo per quelli di voi che hanno familiarità con Tasker. Se non hai familiarità con Tasker, continua a leggere per istruzioni dettagliate.

Disattiva periodicamente l'audio sicuro

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 ]

Per saperne di più

Crea un nuovo profilo, questa volta con a Tempo contesto. Sfortunatamente non sono a conoscenza di alcun metodo per ottenere il tempo cumulativo corrente di riproduzione multimediale senza root, quindi imposteremo periodicamente lo stato del volume sicuro su inattivo una volta ogni 24 ore (... non è che voi ragazzi ascoltiate effettivamente 20 ore di musica in un periodo di 24 ore, giusto?). Ad ogni modo, l'interfaccia di Tasker per l'impostazione di un'attività periodica è un po' terribile, ma il succo è che si desidera impostare l'ora "Da" e "A" allo stesso tempo. In questo modo, Tasker lo tratterà come se volessi che l'attività si attivi solo una volta all'ora prestabilita (l'ho fatto 1 minuto prima di mezzanotte).

Per quanto riguarda l'attività, copia semplicemente ciò che hai fatto per l'Azione n. 2 nel profilo precedente. Non c'è alcuna azione nuova o diversa in questo caso, poiché tutto ciò che stiamo facendo è modificare il valore di questa proprietà di sistema globale una volta ogni 24 ore.

Ora che hai impostato entrambi questi profili, il gioco è fatto! Riavvia il telefono e ora non dovresti più vedere l'avviso "volume sicuro" quando colleghi le cuffie.


Scarica e importa in Tasker

Come sempre, forniamo il file XML degli script che puoi scaricare e importare. Basta scaricare i file dal collegamento sottostante e salvarli ovunque nella memoria interna. Apri Tasker e disabilita la modalità Principiante nelle Preferenze. Quindi, torna alla schermata principale e premi a lungo sulla scheda "Profilo" in alto. Dovresti vedere un pop-up con una delle opzioni "Importa". Toccalo e vai alla posizione in cui hai salvato i file .prf.xml e seleziona il file da importare. Ripetere per il secondo profilo.

Scarica il profilo "Disabilita avviso audio sicuro all'avvio".

Scarica il profilo "Disabilita periodicamente l'avviso audio sicuro".

Ci auguriamo che questo suggerimento sia utile. Fateci sapere nei commenti qui sotto se funziona per voi!