Un tutorial despre cum să dezactivați avertismentul High Volume sau Safe Audio care este necesar pe dispozitivele vândute în U.E. Acest lucru funcționează pe toate dispozitivele fără root.
Cei dintre voi care locuiți într-una dintre țările membre ale Uniunii Europene probabil că au dat peste avertisment atunci când încercați să creșteți volumul căștilor, așa cum se arată în imaginea de mai sus.
Conform reglementărilor stabilite de Comitetul European de Standardizare Electrotehnică (CENELEC), toate electronice dispozitivele capabile de redare media vândute după februarie 2013 trebuie să aibă un nivel implicit al volumului de ieșire de maximum 85 dB. Utilizatorii pot alege să anuleze avertismentul pentru a crește volumul la maximum 100 dB, dar, în acest sens, avertismentul trebuie să reapară după 20 de ore de redare a muzicii.
Deși nu vom intra într-o dezbatere despre eficacitatea acestui regulament în promovarea binelui sănătate, utilizatorii care aleg frecvent să ocolească acest avertisment se întreabă adesea dacă acest proces poate fi automatizate. Există multe cazuri în care este destul de enervant să fiți de acord manual să depășiți limita de volum, cum ar fi atunci când începeți redarea muzicii de la distanță pe un dispozitiv Bluetooth, așa că am vrut să găsim o modalitate de a ocoli automat acest lucru avertizare.
Soluții pentru a ocoli „limita sigură a volumului” există deja dacă căutați pe forumurile noastre, dar până acum toate soluțiile v-au cerut să instalare un Xposed Modul. Acest lucru limitează neapărat cine îl poate folosi, deoarece Xposed Framework vă cere să aveți acces root (ceea ce înseamnă un bootloader deblocat pe majoritatea telefoanelor), precum și să fiți pe versiunile Android pre-Nougat. Dar după ce am săpat în AOSP și în diferite setări ale sistemului, am descoperit o modalitate de a ocoli limita de volum mare/sunet sigur pe toate dispozitivele fără a necesita root.
Urmând acest ghid, acceptați orice risc implicat de ascultarea conținutului media la niveluri de volum ridicate.
Tutorial de ocolire a avertismentului audio sigur
Dacă ați citit articolul meu anterior pe activarea modului immersiv fără acces root, atunci este posibil să fi început să te joci cu unele dintre setările pe care le poți găsi ascunse pe telefon. Dacă nu ați făcut-o, vă recomand cu căldură să faceți, deoarece am descoperit că aproape fiecare dispozitiv are o mulțime de bunătăți care așteaptă să fie descoperite. Acest truc nu este diferit, deoarece vom folosi o proprietate de sistem pentru a ocoli avertismentul audio sigur.
Mai exact, vom modifica sistemul. Proprietate globală audio_safe_volume_state atât la pornire, cât și periodic, astfel încât Android va crede întotdeauna că ați consimțit să ocoliți avertismentul. Această proprietate este definite în AOSP, pe care îl reproducem mai jos. Există mai multe stări pe care această proprietate poate avea, variind de la 0 la 3. La 30 de secunde după pornire sau după fiecare 20 de ore de redare continuă a muzicii, starea este setată la „0” sau „neconfigurat”. Apoi este setat la „1” pentru „dezactivat” sau „3” pentru „activat”, în funcție de dvs. Codul de țară mobil. Dacă locuiți în U.E., această proprietate este setată la „3” în mod implicit, dar este schimbată la „2” pentru „inactiv” ori de câte ori utilizatorul ocolește manual avertismentul privind volumul. Vom schimba valoarea acestei proprietăți în starea „inactivă”. (schimbarea lui în „dezactivat” nu a funcționat niciodată pentru mine, în caz că vă întrebați).
//
// 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
citeşte mai mult
Mai întâi va trebui să instalați Tasker și AutoTools astfel încât să putem automatiza acest truc. Din punct de vedere tehnic, poate fi utilizată orice altă aplicație de automatizare în afară de Tasker, dar sunt familiarizat doar cu Tasker, așa că va trebui să faceți ajustări pe cont propriu dacă preferați să utilizați o altă aplicație. AutoTools, totuși, este esențial pentru acest truc, deoarece acest plug-in ne va permite să controlăm Setările Securizate pe dispozitivul nostru.
După cum am explicat în articolul meu despre comutarea modului immersiv, trebuie să acordăm WRITE_SECURE_SETTINGS permisiunea AutoTools. Acest lucru se datorează faptului că comanda pentru controlul stării sigure a volumului audio este definită sub Setări. Global clasa, deși sintaxa exactă pentru comandă este ascunsă în AOSP (la fel cum a fost pentru Modul Immersive). Dacă ați acordat deja permisiunea WRITE_SECURE_SETTINGS pentru AutoTools după ce ați citit tutorialul meu anterior despre Modul immersiv, atunci puteți sări peste secțiunea următoare. Dacă nu, atunci va trebui să-l configurați.
În cadrul sistemului de management al permisiunilor Android, aplicațiile definesc permisiunile pe care doresc să le fie acordate în fișierul Manifest. Utilizatorii pot apoi să acorde sau să refuze permisiuni la instalare (pre-Marshmallow) sau la cerere (Marshmallow+). Cu toate acestea, există anumite permisiuni pe care aplicațiile nu le pot fi acordate chiar dacă o solicită în Manifest, cum ar fi WRITE_SECURE_SETTINGS. Acest lucru se datorează faptului că acordarea oricărei aplicații o permisiune la fel de puternică ca aceasta ar oferi aplicației o mulțime de control asupra dispozitivului dvs.
Dar există o soluție pe care o putem folosi pentru a acorda permisiunea WRITE_SECURE_SETTINGS oricărei aplicații pe care o dorim. Prin utilizarea ADB-urilor manager de pachete (pm) instrument, putem acorda orice permisiune oricărei aplicații pe care o dorim (cu condiția ca aplicația să solicite acea permisiune în fișierul Manifest).
Primul lucru pe care va trebui să-l faci este instalați binarul ADB pe computer, urmat de driverul potrivit pentru dispozitivul dvs. Apoi, activați Depanarea USB în Opțiuni pentru dezvoltatori (accesați Setări --> Despre telefon și atingeți Numărul de compilare de 7 ori dacă nu ați făcut-o deja) și conectați telefonul la computer. În cele din urmă, trimiteți următoarea comandă după ce ați deschis un terminal:
adb shell pm grant com.joaomgcd.autotools android.permission.WRITE_SECURE_SETTINGS
Acum AutoTools va avea capacitatea de a modifica orice setare globală, sigură sau de sistem de pe dispozitiv. Există diferite moduri în care vă puteți juca cu aceste setări și cu lista setărilor disponibile în fiecare categorie depinde complet de dispozitivul și versiunea software-ului dvs., dar această discuție este pentru alta timp. În orice caz, vom continua să vă arătăm cum să utilizați AutoTools pentru a controla starea sigură a volumului.
Dezactivarea avertismentului audio sigur la pornire
Iată descrierea profilului pentru cei dintre voi care sunt familiarizați cu Tasker. Dacă nu sunteți familiarizat cu Tasker, citiți mai departe pentru instrucțiuni pas cu pas.
Dezactivați sunetul sigur la pornire
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 ]
citeşte mai mult
Deschideți Tasker pentru a putea crea un profil nou. În colțul din dreapta jos, atingeți + pictograma pentru a crea un profil nou. Adăugați un nou Eveniment context și mergeți la Tasker --> Monitor Start. Folosim acest context de eveniment care se declanșează atunci când Tasker pornește, mai degrabă decât contextul de eveniment care se activează la pornirea telefonului, deoarece primul este mult mai fiabil decât cel din urmă.
În orice caz, apăsați butonul Înapoi deoarece acum vom crea o sarcină asociată acestui profil. Numiți Sarcina orice, deoarece nu contează. Odată ce intrați în ecranul de creare a sarcinii, apăsați pe + pictograma din mijlocul de jos al ecranului pentru a crea o nouă acțiune. Pentru prima acțiune, accesați Sarcină --> Așteptați și lăsați-l să aștepte 30 de secunde. Aceasta ține cont de regula „30 de secunde după pornire” utilizată în Android pentru a seta starea sigură a volumului.
Apoi, creați o nouă acțiune și accesați Plugin --> Instrumente automate --> Setări securizate. Apăsați creionul pentru a deschide ecranul de configurare pentru AutoTools. Mergi la Setare personalizata. Pentru Tipul de setare, introduceți Global. Pentru Nume, introduceți audio_safe_volume_state. Pentru tipul de intrare, faceți-l int. Pentru valoarea face-o 2. Verificați pentru a vă asigura că ați pus totul corect, configurația ar trebui să se potrivească cu captura de ecran din mijloc de mai jos. Comanda trebuie trimisă exact așa cum am scris sau nu va avea niciun efect.
După ce ați terminat, reveniți la meniul principal al Tasker, deoarece va trebui să creăm un alt profil. Cel pe care tocmai l-am creat este considerat atunci când starea sigură a volumului este setată la 30 de secunde după pornire, dar pentru aceia dintre voi care aproape că nu vă repornește niciodată dispozitivul, vom face un alt profil pentru a seta periodic acest lucru valoare.
Dezactivați periodic avertismentul audio sigur
Iată descrierea profilului pentru cei dintre voi care sunt familiarizați cu Tasker. Dacă nu sunteți familiarizat cu Tasker, citiți mai departe pentru instrucțiuni pas cu pas.
Dezactivați periodic audio sigur
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 ]
citeşte mai mult
Creați un profil nou, de data aceasta cu a Timp context. Din păcate, nu cunosc nicio metodă pentru a obține timpul cumulat actual de redare media fără root, așa că, în schimb, vom seta periodic starea volumului sigur la inactiv o dată la 24 de ore (... nu e ca și cum voi ascultați de fapt 20 de ore de muzică într-o perioadă de 24 de ore, nu?). Oricum, interfața lui Tasker pentru setarea unei sarcini periodice este oarecum groaznică, dar esențiala este că doriți să setați timpul „De la” și „Pentru” la același timp. În acest fel, Tasker îl va trata așa cum doriți ca sarcina să se declanșeze o singură dată la un moment stabilit (am făcut-o cu 1 minut înainte de miezul nopții).
În ceea ce privește Sarcina, doar copiați ceea ce ați făcut pentru Acțiunea #2 în profilul anterior. Nu există nicio acțiune nouă sau diferită în acest caz, deoarece tot ceea ce facem este să schimbăm valoarea acestei proprietăți a sistemului global o dată la 24 de ore.
Acum că ați configurat ambele profiluri, ați terminat! Reporniți telefonul și acum nu ar trebui să mai vedeți avertismentul „volum sigur” atunci când conectați căștile.
Descărcați și importați în Tasker
Ca întotdeauna, oferim fișierul XML al scripturilor pe care îl puteți descărca și importa. Pur și simplu descărcați fișierele din linkul de mai jos și salvați-le oriunde în stocarea internă. Deschideți Tasker și dezactivați modul începător în Preferințe. Apoi, reveniți la ecranul principal și apăsați lung pe fila „Profil” sus. Ar trebui să vedeți o fereastră pop-up cu una dintre opțiuni fiind „Importați”. Atingeți-l și răsfoiți unde ați salvat fișierele .prf.xml și selectați acel fișier de importat. Repetați pentru al doilea profil.
Descărcați profilul „Dezactivați avertismentul audio sigur la pornire”.
Descărcați profilul „Dezactivați periodic avertismentul audio sigur”.
Sperăm că veți găsi acest sfat util. Spune-ne în comentariile de mai jos dacă acest lucru funcționează pentru tine!