Slik deaktiverer du automatisk advarselen om høyt volum uten rot

En veiledning om hvordan du deaktiverer advarselen om høyt volum eller sikker lyd som kreves på enheter som selges i EU. Dette fungerer på alle enheter uten root.

De av dere som bor i en av medlemsnasjonene i EU har sannsynligvis kommet over advarselen når de prøver å øke volumet på hodetelefonene som vist i funksjonsbildet ovenfor.

I henhold til forskrifter fastsatt av European Committee for Electrotechnical Standarisation (CENELEC), alt elektronisk enheter som er i stand til medieavspilling solgt etter februar 2013, må ha et standard utgangsvolumnivå på maksimalt 85 dB. Brukere kan velge å overstyre advarselen for å øke volumet til maksimalt 100 dB, men ved å gjøre det må advarselen dukke opp igjen etter 20 timers musikkavspilling.

Selv om vi ikke kommer til å gå inn i en debatt om effektiviteten av denne forordningen for å fremme gode helse, brukere som ofte velger å omgå denne advarselen ofte lurer på om denne prosessen kan være automatisert. Det er mange tilfeller hvor det er ganske irriterende å manuelt godta å overstyre volumgrensen, for eksempel når du starter musikkavspilling eksternt på en Bluetooth-enhet, så vi ville begynne å finne en måte å omgå dette automatisk advarsel.

Løsninger for å omgå "sikker volumgrense" finnes allerede hvis du søker i forumene våre, men så langt har alle løsningene krevd at du installere en Xposed Modul. Dette begrenser nødvendigvis hvem som kan bruke det, ettersom Xposed Framework krever at du har root-tilgang (som betyr en ulåst oppstartslaster på de fleste telefoner) i tillegg til å være på pre-Nougat-versjoner av Android. Men etter å ha gravd i AOSP og forskjellige systeminnstillinger, har jeg oppdaget en måte å omgå grensen for høyt volum/sikker lyd på alle enheter uten å kreve root.

Ved å følge denne veiledningen aksepterer du enhver risiko forbundet med å lytte til media på høyt volumnivå.


Veiledning for sikker lydadvarsel

Hvis du har lest min forrige artikkel om aktiverer Immersive Mode uten root-tilgang, så har du kanskje begynt å leke med noen av innstillingene du kan finne skjult på telefonen. Hvis du ikke har det, anbefaler jeg at du gjør det, siden jeg har funnet ut at nesten hver enhet har massevis av godbiter som bare venter på å bli oppdaget. Dette trikset er ikke annerledes siden vi bruker en systemegenskap for å omgå sikker lydadvarsel.

Spesielt vil vi endre systemet. Global eiendom audio_safe_volume_state både ved oppstart og med jevne mellomrom, så Android vil alltid tro at du har samtykket til å omgå advarselen. Denne eiendommen er definert i AOSP, som vi gjengir nedenfor. Det er flere tilstander denne egenskapen kan ta, alt fra 0-3. 30 sekunder etter oppstart eller etter hver 20. time med kontinuerlig musikkavspilling, settes tilstanden til '0' eller 'ikke konfigurert'. Den settes deretter til '1' for 'deaktivert' eller '3' for 'aktivert' avhengig av din Mobil landskode. Hvis du bor i EU, er denne egenskapen satt til '3' som standard, men endres til '2' for 'inaktiv' når brukeren manuelt omgår volumadvarselen. Vi vil endre verdien av denne egenskapen til "inaktiv" tilstand (å endre den til 'deaktivert' fungerte aldri for meg, i tilfelle du lurer).


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

Les mer

Du må først installere Tasker og Autoverktøy slik at vi kan automatisere dette trikset. Teknisk sett kan enhver annen automatiseringsapp enn Tasker brukes, men jeg er bare kjent med Tasker, så du må gjøre justeringer på egen hånd hvis du foretrekker å bruke en annen app. AutoTools er imidlertid avgjørende for dette trikset, siden denne plugin-modulen lar oss kontrollere sikre innstillinger på enheten vår.

Som forklart i artikkelen min om å veksle oppslukende modus, må vi gi WRITE_SECURE_SETTINGS tillatelse til AutoTools. Dette er fordi kommandoen for å kontrollere den sikre lydvolumtilstanden er definert under Innstillinger. Global klasse, selv om den eksakte syntaksen for kommandoen er skjult i AOSP (akkurat som det var for Immersive Mode). Hvis du allerede har gitt WRITE_SECURE_SETTINGS-tillatelsen til AutoTools etter å ha lest min forrige veiledning om oppslukende modus, kan du hoppe over neste seksjon. Hvis ikke, må du sette den opp.


Under Androids tillatelsesstyringssystem definerer applikasjoner tillatelsene de vil gis i Manifest-filen. Brukere kan deretter gi eller nekte tillatelser ved installasjon (pre-Marshmallow) eller på forespørsel (Marshmallow+). Det er imidlertid visse tillatelser som søknader ikke kan gis selv om de ber om det i Manifestet, som f.eks WRITE_SECURE_SETTINGS. Dette er fordi å gi enhver applikasjon en tillatelse så kraftig som dette ville gi den appen massevis av kontroll over enheten din.

Men det er én løsning som vi kan bruke for å gi WRITE_SECURE_SETTINGS-tillatelsen til enhver app vi ønsker. Ved å bruke ADB-er pakkeansvarlig (pm) verktøyet, kan vi gi enhver tillatelse til enhver applikasjon vi ønsker (forutsatt at applikasjonen ber om tillatelsen i Manifest-filen).

Det første du må gjøre er installer ADB-binæren på datamaskinen din etterfulgt av riktig driver for enheten din. Aktiver deretter USB-feilsøking i utvikleralternativer (gå til Innstillinger --> Om telefon og trykk på Byggnummer 7 ganger hvis du ikke allerede har gjort det) og koble telefonen til datamaskinen. Til slutt, send følgende kommando når du har åpnet en terminal:

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

Nå vil AutoTools ha muligheten til å endre alle globale, sikre eller systeminnstillinger på enheten din. Det er forskjellige måter du kan leke med disse innstillingene, og listen over tilgjengelige innstillinger i hver kategori avhenger helt av enheten og programvarebyggingen din, men den diskusjonen er for en annen tid. Uansett, vi går videre og viser deg hvordan du bruker AutoTools for å kontrollere den sikre volumtilstanden.


Deaktiverer sikker lydadvarsel ved oppstart

Her er beskrivelsen av profilen for de av dere som er kjent med Tasker. Hvis du ikke er kjent med Tasker, les videre for trinnvise instruksjoner.

Deaktiver sikker lyd ved oppstart

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 ]

Les mer

Åpne Tasker slik at vi kan opprette en ny profil. Trykk på nederst i høyre hjørne + ikonet for å opprette en ny profil. Legg til en ny Begivenhet kontekst og gå til Tasker --> Monitor Start. Vi bruker denne hendelseskonteksten som utløses når Tasker starter opp i stedet for hendelseskonteksten som aktiveres når telefonen starter fordi førstnevnte er langt mer pålitelig enn sistnevnte.

I alle fall, trykk på tilbake-knappen da vi nå oppretter en oppgave knyttet til denne profilen. Gi oppgaven et navn, siden det ikke spiller noen rolle. Når du har kommet inn i skjermbildet Oppretting av oppgave, trykker du på + ikonet nederst på midten av skjermen for å opprette en ny handling. For den første handlingen, gå til Oppgave --> Vent og la det vente på 30 sekunder. Dette står for "30 sekunder etter oppstart"-regelen som brukes i Android for å angi sikker volumtilstand.

Deretter oppretter du en ny handling og går til Plugin --> Autoverktøy --> Sikre innstillinger. Trykk på blyanten for å åpne konfigurasjonsskjermen for AutoTools. Gå til Egendefinert innstilling. For innstillingstype skriv inn Global. For Navn skriv inn audio_safe_volume_state. For Input Type gjør det int. For verdien gjør det 2. Kontroller at du setter alt riktig, konfigurasjonen skal samsvare med det midterste skjermbildet nedenfor. Kommandoen må sendes nøyaktig som jeg har skrevet ellers vil det ikke ha noen innvirkning.

Når du er ferdig, gå tilbake til hovedmenyen til Tasker, da vi må opprette en ny profil. Den vi nettopp opprettet står for når den sikre volumtilstanden er satt 30 sekunder etter oppstart, men for de av dere som nesten aldri starter enheten på nytt, lager vi en annen profil for å stille inn dette med jevne mellomrom verdi.


Deaktiver sikker lydadvarsel med jevne mellomrom

Her er beskrivelsen av profilen for de av dere som er kjent med Tasker. Hvis du ikke er kjent med Tasker, les videre for trinnvise instruksjoner.

Deaktiver sikker lyd med jevne mellomrom

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 ]

Les mer

Opprett en ny profil, denne gangen med en Tid kontekst. Dessverre er jeg ikke klar over noen metode for å få den nåværende kumulative tiden for medieavspilling uten root, så vi vil i stedet bare periodisk sette den sikre volumtilstanden til inaktiv en gang hver 24. time (... det er ikke slik at dere faktisk hører på 20 timer med musikk i løpet av 24 timer, ikke sant?). Uansett, Taskers grensesnitt for å angi en periodisk oppgave er litt forferdelig, men hovedsaken er at du vil sette "Fra" og "Til"-tiden til samme tid. På denne måten vil Tasker behandle det som om du vil at oppgaven bare skal utløses én gang på et bestemt tidspunkt (jeg gjorde det 1 minutt før midnatt).

Når det gjelder oppgaven, bare kopier det du gjorde for handling #2 i forrige profil. Det er ingen ny eller annerledes handling i dette tilfellet, siden alt vi gjør er å endre verdien på denne globale systemegenskapen en gang hver 24. time.

Nå som du har satt opp begge disse profilene, er du ferdig! Start telefonen på nytt og du skal nå ikke lenger se advarselen om "sikkert volum" når du kobler til hodetelefonene.


Last ned og importer til Tasker

Som alltid tilbyr vi skriptets XML-fil som du kan laste ned og importere. Bare last ned filene fra lenken nedenfor og lagre dem hvor som helst på din interne lagring. Åpne Tasker og deaktiver nybegynnermodus i Innstillinger. Gå deretter tilbake til hovedskjermen og trykk lenge på "Profil"-fanen øverst. Du skal se en popup med et av alternativene "Importer." Trykk på det og bla til der du lagret .prf.xml-filene og velg den filen du vil importere. Gjenta for den andre profilen.

Last ned profilen "Deaktiver sikker lydadvarsel ved oppstart".

Last ned profilen 'Deaktiver sikker lydadvarsel med jevne mellomrom'

Vi håper du finner dette tipset nyttig. Gi oss beskjed i kommentarene nedenfor om dette fungerer for deg!