Návod, ako vypnúť upozornenie na vysokú hlasitosť alebo bezpečný zvuk, ktoré sa vyžaduje na zariadeniach predávaných v E.U. Toto funguje na všetkých zariadeniach bez root.
Tí z vás, ktorí žijú v niektorom z členských štátov Európskej únie, sa pravdepodobne stretli s varovaním, keď sa pokúšali zvýšiť hlasitosť slúchadiel, ako je znázornené na obrázku vyššie.
Podľa predpisov stanovených Európskym výborom pre elektrotechnickú normalizáciu (CENELEC), všetko elektronické zariadenia schopné prehrávať médiá predávané po februári 2013 musia mať predvolenú výstupnú hlasitosť maximálne 85 dB. Používatelia sa môžu rozhodnúť prepísať varovanie a zvýšiť hlasitosť na maximálne 100 dB, ale varovanie sa pri tom musí znova objaviť po 20 hodinách prehrávania hudby.
Aj keď sa nebudeme púšťať do diskusie o účinnosti tohto nariadenia pri presadzovaní dobra Používatelia, ktorí sa často rozhodnú toto varovanie obísť, sa často pýtajú, či je tento proces možný automatizované. Existuje veľa prípadov, kedy je dosť nepríjemné, keď musíte manuálne súhlasiť s prepísaním limitu hlasitosti, napríklad keď začnete prehrávanie hudby na diaľku na zariadení Bluetooth, takže sme chceli nájsť spôsob, ako to automaticky obísť POZOR.
Riešenia na obídenie „limitu bezpečného objemu“ už existujú, ak prehľadávate naše fóra, ale zatiaľ všetky riešenia vyžadujú, aby ste Inštalácia Xposed modul. To nevyhnutne obmedzuje, kto ho môže používať, pretože Xposed Framework vyžaduje, aby ste mali prístup root (čo znamená odomknutý bootloader na väčšine telefónov), ako aj na verziách Androidu pred verziou Nougat. Ale po prehrabaní sa v AOSP a rôznych systémových nastaveniach som objavil spôsob, ako obísť limit vysokej hlasitosti/bezpečného zvuku na všetkých zariadeniach bez potreby root.
Dodržiavaním tohto návodu prijímate všetky riziká spojené s počúvaním médií pri vysokej hlasitosti.
Návod na bezpečné obídenie zvukového varovania
Ak ste čítali môj predchádzajúci článok o zapnutie imerzného režimu bez prístupu root, potom ste sa možno začali hrať s niektorými nastaveniami, ktoré môžete nájsť skryté vo svojom telefóne. Ak nie, vrelo vám to odporúčam, pretože som zistil, že takmer každé zariadenie má kopec vychytávok, ktoré čakajú na objavenie. Tento trik sa nijako nelíši, pretože na obídenie bezpečného zvukového upozornenia použijeme vlastnosť systému.
Konkrétne budeme upravovať Systém. Globálny majetok audio_safe_volume_state pri zavádzaní aj pravidelne, takže Android si bude vždy myslieť, že ste súhlasili s obídením upozornenia. Táto nehnuteľnosť je definované v AOSP, ktorý reprodukujeme nižšie. Táto vlastnosť môže nadobudnúť niekoľko stavov, v rozsahu od 0 do 3. 30 sekúnd po spustení alebo po každých 20 hodinách nepretržitého prehrávania hudby sa stav nastaví na „0“ alebo „nekonfigurované“. Potom sa nastaví na „1“ pre „zakázané“ alebo „3“ pre „povolené“ v závislosti od vášho Mobilný kód krajiny. Ak žijete v E.U., táto vlastnosť je predvolene nastavená na „3“, ale zmení sa na „2“ pre „neaktívne“ vždy, keď používateľ manuálne obíde varovanie o hlasitosti. Hodnotu tejto vlastnosti zmeníme na „neaktívny“ stav (zmena na 'zakázané' mi nikdy nefungovala, ak by vás to zaujímalo).
//
// 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
čítaj viac
Najprv budete musieť nainštalovať Tasker a AutoTools aby sme tento trik mohli zautomatizovať. Technicky je možné použiť akúkoľvek inú automatizačnú aplikáciu okrem aplikácie Tasker, ale poznám iba Tasker, takže ak uprednostňujete používanie inej aplikácie, budete musieť vykonať úpravy sami. AutoTools je však pre tento trik kritický, pretože tento doplnok nám umožní ovládať zabezpečené nastavenia na našom zariadení.
Ako je vysvetlené v mojom článku o prepínaní ponorného režimu, musíme povoliť WRITE_SECURE_SETTINGS povolenie pre AutoTools. Príkaz na ovládanie stavu bezpečnej hlasitosti zvuku je totiž definovaný pod Nastavenie. globálne triedy, aj keď presná syntax príkazu je skrytá v AOSP (rovnako ako v prípade Immersive Mode). Ak ste už udelili oprávnenie WRITE_SECURE_SETTINGS AutoTools po prečítaní môjho predchádzajúceho návodu o imerznom režime, môžete preskočiť ďalšiu časť. Ak nie, budete ho musieť nastaviť.
V systéme správy povolení systému Android aplikácie definujú povolenia, ktoré im chcú udeliť v súbore Manifest. Používatelia potom môžu udeliť alebo zamietnuť povolenia na inštaláciu (pred Marshmallow) alebo na požiadanie (Marshmallow+). Sú však určité povolenia, ktoré aplikáciám nemožno udeliť, aj keď o to požiadajú v Manifeste, ako napr WRITE_SECURE_SETTINGS. Je to preto, že udelenie povolenia akejkoľvek aplikácii tak silného ako toto by tejto aplikácii poskytlo veľa kontroly nad vaším zariadením.
Existuje však jedno riešenie, ktoré môžeme použiť na udelenie povolenia WRITE_SECURE_SETTINGS akejkoľvek aplikácii, ktorú chceme. Pomocou ADB správca balíkov (pm) môžeme udeliť akékoľvek povolenie akejkoľvek aplikácii, ktorú chceme (za predpokladu, že aplikácia požaduje toto povolenie v súbore Manifest).
Prvá vec, ktorú musíte urobiť, je nainštalujte binárny súbor ADB do počítača a následne správny ovládač pre vaše zariadenie. Potom povoľte ladenie USB v Možnostiach vývojára (prejdite do Nastavenia --> O telefóne a 7-krát klepnite na Číslo zostavy, ak ste tak ešte neurobili) a pripojte telefón k počítaču. Nakoniec po otvorení terminálu odošlite nasledujúci príkaz:
adb shell pm grant com.joaomgcd.autotools android.permission.WRITE_SECURE_SETTINGS
Teraz budú mať AutoTools možnosť zmeniť akékoľvek globálne, zabezpečené alebo systémové nastavenie na vašom zariadení. S týmito nastaveniami a zoznamom dostupných nastavení sa môžete pohrať rôznymi spôsobmi každá kategória úplne závisí od vášho zariadenia a zostavy softvéru, ale táto diskusia je na inú čas. V každom prípade vám ukážeme, ako používať AutoTools na ovládanie stavu bezpečnej hlasitosti.
Vypnutie bezpečného zvukového upozornenia pri zavádzaní
Tu je popis profilu pre tých z vás, ktorí poznajú Tasker. Ak nepoznáte Tasker, prečítajte si podrobné pokyny.
Zakázať bezpečný zvuk pri zavádzaní
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 ]
čítaj viac
Otvorte Tasker, aby sme mohli vytvoriť nový profil. V pravom dolnom rohu klepnite na + ikonu na vytvorenie nového profilu. Pridať nový Udalosť kontext a prejdite na Tasker --> Monitor Start. Používame tento kontext udalosti, ktorý sa spustí pri spustení aplikácie Tasker, a nie kontext udalosti, ktorý sa aktivuje pri spustení telefónu, pretože prvý je oveľa spoľahlivejší ako druhý.
V každom prípade stlačte tlačidlo späť, pretože teraz vytvoríme úlohu spojenú s týmto profilom. Pomenujte úlohu akokoľvek, pretože na tom nezáleží. Keď vstúpite na obrazovku vytvorenia úlohy, stlačte na + ikonu v strede spodnej časti obrazovky a vytvorte novú akciu. Pre prvú akciu prejdite na Úloha --> Počkajte a nech počká 30 sekúnd. Toto zodpovedá pravidlu „30 sekúnd po spustení“, ktoré sa používa v systéme Android na nastavenie stavu bezpečného zväzku.
Ďalej vytvorte novú akciu a prejdite na Plugin --> AutoTools --> Secure Settings. Stlačením ceruzky otvoríte konfiguračnú obrazovku pre AutoTools. Ísť do Vlastné nastavenie. Pre Typ nastavenia zadajte globálne. Do poľa Názov zadajte audio_safe_volume_state. Pre Typ vstupu urobte to int. Pre hodnotu to urobte 2. Skontrolujte, či ste všetko vložili správne, konfigurácia by sa mala zhodovať so strednou snímkou obrazovky nižšie. Príkaz musí byť odoslaný presne tak ako som napísal, inak to nebude mať žiadny vplyv.
Po dokončení sa vráťte do hlavnej ponuky aplikácie Tasker, pretože budeme musieť vytvoriť ďalší profil. Ten, ktorý sme práve vytvorili, počíta s tým, keď je stav bezpečného zväzku nastavený 30 sekúnd po spustení, ale pre pre tých z vás, ktorí takmer nikdy nereštartujú svoje zariadenie, vytvoríme ďalší profil, aby sme to pravidelne nastavovali hodnotu.
Pravidelne vypnite bezpečné zvukové varovanie
Tu je popis profilu pre tých z vás, ktorí poznajú Tasker. Ak nepoznáte Tasker, prečítajte si podrobné pokyny.
Pravidelne deaktivujte 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 ]
čítaj viac
Vytvorte si nový profil, tentoraz s a Čas kontext. Bohužiaľ si nie som vedomý žiadnej metódy, ako získať aktuálny kumulatívny čas prehrávania médií bez nej root, takže namiesto toho budeme pravidelne nastavovať stav bezpečného zväzku na neaktívny raz za 24 hodín (... nie je to tak, že by ste v skutočnosti počúvali 20 hodín hudby za 24 hodín, však?). V každom prípade je rozhranie Taskeru na nastavenie pravidelnej úlohy hrozné, ale podstatou je, že chcete nastaviť čas „Od“ a „Do“ na rovnaký čas. Týmto spôsobom bude Tasker zaobchádzať tak, ako by ste chceli, aby sa úloha spustila iba raz v nastavenom čase (urobil som to 1 minútu pred polnocou).
Čo sa týka úlohy, skopírujte, čo ste urobili pre akciu #2 v predchádzajúcom profile. V tomto prípade nejde o žiadnu novú alebo odlišnú akciu, pretože všetko, čo robíme, je meniť hodnotu tejto globálnej systémovej vlastnosti raz za 24 hodín.
Teraz, keď ste nastavili oba tieto profily, ste hotoví! Reštartujte telefón a po pripojení slúchadiel by sa vám už nemalo zobrazovať upozornenie na „bezpečnú hlasitosť“.
Stiahnite si a importujte do aplikácie Tasker
Ako vždy poskytujeme súbor XML skriptov, ktorý si môžete stiahnuť a importovať. Jednoducho si stiahnite súbory z nižšie uvedeného odkazu a uložte ich kdekoľvek na internom úložisku. Otvorte Tasker a vypnite režim pre začiatočníkov v Predvoľbách. Potom sa vráťte na hlavnú obrazovku a dlho stlačte kartu „Profil“ hore. Mali by ste vidieť vyskakovacie okno s jednou z možností „Importovať“. Klepnite na to a prejdite na miesto, kde ste uložili súbory .prf.xml a vyberte tento súbor na import. Opakujte pre druhý profil.
Stiahnite si profil „Zakázať bezpečné zvukové varovanie pri spustení“.
Stiahnite si profil „Pravidelne vypínajte bezpečné zvukové varovanie“.
Dúfame, že tento tip vám bude užitočný. Dajte nám vedieť v komentároch nižšie, či to funguje pre vás!