Een tutorial over het uitschakelen van de waarschuwing Hoog volume of Veilige audio, die vereist is op apparaten die in de EU worden verkocht. Dit werkt op alle apparaten zonder root.
Degenen onder u die in een van de lidstaten van de Europese Unie wonen, zijn waarschijnlijk de waarschuwing tegengekomen wanneer u probeert het volume van uw hoofdtelefoon te verhogen, zoals weergegeven in de bovenstaande afbeelding.
Volgens de voorschriften van het Europees Comité voor Elektrotechnische Standaardisatie (CENELEC), allemaal elektronisch apparaten die media kunnen afspelen en die na februari 2013 zijn verkocht, moeten een standaard uitgangsvolumeniveau van maximaal 85 hebben dB. Gebruikers kunnen ervoor kiezen om de waarschuwing te negeren en het volume te verhogen tot maximaal 100 dB, maar daarbij moet de waarschuwing opnieuw verschijnen na 20 uur muziek afspelen.
Hoewel we geen debat gaan voeren over de effectiviteit van deze regelgeving bij het bevorderen van het goede gezondheid vragen gebruikers die er vaak voor kiezen deze waarschuwing te omzeilen zich vaak af of dit proces mogelijk is geautomatiseerd. Er zijn veel gevallen waarin het nogal vervelend is om handmatig akkoord te gaan met het negeren van de volumelimiet, bijvoorbeeld wanneer u begint muziek op afstand afspelen op een Bluetooth-apparaat, dus we wilden een manier bedenken om dit automatisch te omzeilen waarschuwing.
Er bestaan al oplossingen om de "veilige volumelimiet" te omzeilen als u op onze forums zoekt, maar tot nu toe is voor alle oplossingen vereist dat u installeren een Xposed Module. Dit beperkt noodzakelijkerwijs wie het kan gebruiken, omdat het Xposed Framework vereist dat je root-toegang hebt (wat een ontgrendelde bootloader op de meeste telefoons betekent) en dat je ook op pre-Nougat-versies van Android zit. Maar nadat ik me had verdiept in AOSP en verschillende systeeminstellingen, heb ik een manier ontdekt om de limiet voor hoog volume/veilige audio te omzeilen op alle apparaten zonder root.
Door deze handleiding te volgen, accepteert u alle risico's die gepaard gaan met het luisteren naar media op een hoog volumeniveau.
Handleiding voor het omzeilen van veilige audiowaarschuwingen
Als je mijn vorige artikel over waardoor de meeslepende modus zonder root-toegang wordt ingeschakeld, dan ben je misschien begonnen met spelen met enkele van de instellingen die je op je telefoon verborgen kunt vinden. Als je dat nog niet hebt gedaan, raad ik je ten zeerste aan om dat te doen, omdat ik heb ontdekt dat bijna elk apparaat een heleboel goodies bevat die wachten om ontdekt te worden. Deze truc is niet anders, omdat we een systeemeigenschap zullen gebruiken om de veilige audiowaarschuwing te omzeilen.
Concreet gaan we het systeem aanpassen. Globaal bezit audio_safe_volume_state zowel tijdens het opstarten als periodiek, zodat Android altijd denkt dat u ermee heeft ingestemd de waarschuwing te omzeilen. Deze eigenschap is gedefinieerd in AOSP, die we hieronder reproduceren. Er zijn verschillende toestanden die deze eigenschap kan aannemen, variërend van 0-3. 30 seconden na het opstarten of na elke 20 uur ononderbroken muziek afspelen wordt de status ingesteld op '0' of 'niet geconfigureerd'. Het wordt dan ingesteld op '1' voor 'uitgeschakeld' of '3' voor 'ingeschakeld', afhankelijk van uw systeem Mobiele landcode. Als u in de EU woont, is deze eigenschap standaard ingesteld op '3', maar wordt deze gewijzigd in '2' voor 'inactief' wanneer de gebruiker de volumewaarschuwing handmatig omzeilt. We zullen de waarde van deze eigenschap wijzigen in de status 'inactief' (het veranderen naar 'uitgeschakeld' heeft bij mij nooit gewerkt, voor het geval je het je afvraagt).
//
// 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
Lees verder
U moet eerst installeren Tasker En AutoTools zodat we deze truc kunnen automatiseren. Technisch gezien kan elke andere automatiseringsapp behalve Tasker worden gebruikt, maar ik ben alleen bekend met Tasker, dus je zult zelf aanpassingen moeten maken als je liever een andere app gebruikt. AutoTools is echter cruciaal voor deze truc, omdat we met deze plug-in de veilige instellingen op ons apparaat kunnen beheren.
Zoals uitgelegd in mijn artikel over het wisselen van de meeslepende modus, moeten we de SCHRIJF_SECURE_SETTINGS toestemming voor AutoTools. Dit komt omdat de opdracht voor het regelen van de veilige audiovolumestatus is gedefinieerd onder de Instellingen. Globaal class, hoewel de exacte syntaxis voor de opdracht verborgen is in AOSP (net zoals voor de Immersive-modus). Als je al de toestemming WRITE_SECURE_SETTINGS aan AutoTools hebt verleend nadat je mijn vorige tutorial over de meeslepende modus hebt gelezen, kun je de volgende sectie overslaan. Als dit niet het geval is, moet u dit instellen.
Onder het machtigingsbeheersysteem van Android definiëren applicaties de machtigingen die ze willen verlenen in het Manifest-bestand. Gebruikers kunnen vervolgens machtigingen verlenen of weigeren bij installatie (pre-Marshmallow) of op aanvraag (Marshmallow+). Er zijn echter bepaalde machtigingen waardoor applicaties niet kunnen worden verleend, zelfs niet als ze daarom in het Manifest vragen, zoals SCHRIJF_SECURE_SETTINGS. Dit komt omdat het verlenen van een toestemming aan een applicatie die zo krachtig is als deze, die app veel controle over je apparaat zou geven.
Maar er is één oplossing die we kunnen gebruiken om de toestemming WRITE_SECURE_SETTINGS te verlenen aan elke gewenste app. Door het gebruik van ADB's pakketbeheerder (pm) tool, kunnen we elke gewenste toestemming verlenen aan elke gewenste applicatie (op voorwaarde dat de applicatie om die toestemming vraagt in het Manifest-bestand).
Het eerste dat u hoeft te doen is installeer het ADB-binaire bestand op uw computer, gevolgd door de juiste stuurprogramma voor uw apparaat. Schakel vervolgens USB-foutopsporing in in Opties voor ontwikkelaars (ga naar Instellingen --> Over de telefoon en tik zeven keer op Build-nummer als u dat nog niet hebt gedaan) en sluit uw telefoon aan op uw computer. Stuur ten slotte de volgende opdracht zodra u een terminal heeft geopend:
adb shell pm grant com.joaomgcd.autotools android.permission.WRITE_SECURE_SETTINGS
Nu heeft AutoTools de mogelijkheid om elke algemene, beveiligde of systeeminstelling op uw apparaat te wijzigen. Er zijn verschillende manieren waarop u met deze instellingen kunt spelen, en de lijst met beschikbare instellingen in elke categorie hangt volledig af van je apparaat en softwareversie, maar die discussie is voor een andere tijd. In ieder geval laten we u zien hoe u AutoTools kunt gebruiken om de veilige volumestatus te regelen.
Veilige audiowaarschuwing bij opstarten uitschakelen
Hier is de beschrijving van het profiel voor degenen onder u die bekend zijn met Tasker. Als u niet bekend bent met Tasker, lees dan verder voor stapsgewijze instructies.
Schakel Veilige audio bij opstarten uit
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 ]
Lees verder
Open Tasker zodat we een nieuw profiel kunnen maken. Tik rechtsonder op de + pictogram om een nieuw profiel aan te maken. Voeg een nieuwe toe Evenement context en ga naar Tasker --> Monitor starten. We gebruiken deze gebeurteniscontext die wordt geactiveerd wanneer Tasker opstart, in plaats van de gebeurteniscontext die wordt geactiveerd wanneer de telefoon opstart, omdat de eerste veel betrouwbaarder is dan de laatste.
Druk in ieder geval op de terugknop, want we zullen nu een taak maken die aan dit profiel is gekoppeld. Geef de taak een willekeurige naam, want het maakt niet uit. Zodra u het scherm voor het maken van taken opent, drukt u op de + -pictogram middenonder in het scherm om een nieuwe actie te maken. Ga voor de eerste actie naar Taak --> Wacht en laat het wachten 30 seconden. Dit verklaart de regel "30 seconden na het opstarten" die in Android wordt gebruikt om de veilige volumestatus in te stellen.
Maak vervolgens een nieuwe actie en ga naar Plug-in --> AutoTools --> Veilige instellingen. Druk op het potlood om het configuratiescherm voor AutoTools te openen. Ga naar Aangepaste instelling. Voer voor het instellingstype in Globaal. Voer bij Naam in audio_safe_volume_state. Maak het voor het invoertype int. Voor de waarde, maak het 2. Controleer of je alles correct hebt geplaatst. De configuratie moet overeenkomen met de middelste schermafbeelding hieronder. Het commando moet worden verzonden precies zoals ik heb geschreven, anders zal het geen enkel effect hebben.
Als je klaar bent, ga je terug naar het hoofdmenu van Tasker, omdat we een ander profiel moeten maken. Degene waarvoor we zojuist accounts hebben gemaakt wanneer de veilige volumestatus 30 seconden na het opstarten is ingesteld, maar voor degenen onder u die uw apparaat bijna nooit opnieuw opstarten, we zullen een ander profiel maken om dit periodiek in te stellen waarde.
Schakel de veilige audiowaarschuwing periodiek uit
Hier is de beschrijving van het profiel voor degenen onder u die bekend zijn met Tasker. Als u niet bekend bent met Tasker, lees dan verder voor stapsgewijze instructies.
Schakel Veilige audio regelmatig uit
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 ]
Lees verder
Maak een nieuw profiel aan, dit keer met a Tijd context. Helaas ken ik geen enkele methode om de huidige cumulatieve tijd voor het afspelen van media te verkrijgen zonder root, dus in plaats daarvan zullen we de veilige volumestatus periodiek eens in de 24 uur op inactief zetten (... het is niet zo dat jullie binnen een periode van 24 uur naar 20 uur muziek luisteren, toch?). Hoe dan ook, de interface van Tasker voor het instellen van een periodieke taak is nogal verschrikkelijk, maar de essentie ervan is dat je de "Van" en de "To" tijd op dezelfde tijd wilt instellen. Op deze manier zal Tasker het behandelen alsof je wilt dat de taak slechts één keer op een bepaald tijdstip wordt geactiveerd (ik heb het 1 minuut voor middernacht gemaakt).
Wat de taak betreft: kopieer gewoon wat u voor actie #2 in het vorige profiel hebt gedaan. In dit geval is er geen nieuwe of andere actie, omdat we alleen maar de waarde van deze Globale systeemeigenschap elke 24 uur veranderen.
Nu je beide profielen hebt ingesteld, ben je klaar! Start uw telefoon opnieuw op en u zou nu niet langer de waarschuwing "veilig volume" moeten zien wanneer u uw hoofdtelefoon aansluit.
Downloaden en importeren in Tasker
Zoals altijd leveren we het XML-bestand van de scripts dat u kunt downloaden en importeren. Download eenvoudigweg de bestanden via de onderstaande link en sla deze overal op uw interne opslag op. Open Tasker en schakel de Beginnersmodus uit in Voorkeuren. Ga vervolgens terug naar het hoofdscherm en druk lang op het tabblad “Profiel” bovenaan. Je zou een pop-up moeten zien met als een van de opties 'Importeren'. Tik daarop en blader naar waar u de .prf.xml-bestanden hebt opgeslagen en selecteer dat bestand om te importeren. Herhaal dit voor het tweede profiel.
Download het profiel 'Schakel veilige audiowaarschuwing bij opstarten uit'
Download het profiel 'Schakel veilige audiowaarschuwing periodiek uit'
We hopen dat je deze tip nuttig vindt. Laat ons in de reacties hieronder weten of dit voor jou werkt!