So deaktivieren Sie die Warnung zu hoher Lautstärke automatisch ohne Root

Ein Tutorial zum Deaktivieren der Warnung „Hohe Lautstärke“ oder „Sicherer Ton“, die für in der EU verkaufte Geräte erforderlich ist. Dies funktioniert auf allen Geräten ohne Root.

Diejenigen von Ihnen, die in einem der Mitgliedsstaaten der Europäischen Union leben, sind wahrscheinlich auf die Warnung gestoßen, als Sie versuchten, die Lautstärke Ihres Kopfhörers zu erhöhen, wie im Feature-Bild oben gezeigt.

Gemäß den Vorschriften des Europäischen Komitees für elektrotechnische Normung (CENELEC), alles elektronisch Geräte, die Medien abspielen können und nach Februar 2013 verkauft werden, müssen standardmäßig eine Ausgangslautstärke von maximal 85 haben dB. Benutzer können die Warnung außer Kraft setzen und die Lautstärke auf maximal 100 dB erhöhen. Dabei muss die Warnung jedoch nach 20 Stunden Musikwiedergabe erneut angezeigt werden.

Wir werden uns zwar nicht auf eine Debatte über die Wirksamkeit dieser Verordnung bei der Förderung des Guten einlassen Gesundheit, Benutzer, die diese Warnung häufig umgehen, fragen sich oft, ob dieser Prozess möglich ist automatisiert. Es gibt viele Fälle, in denen es ziemlich nervig ist, manuell zuzustimmen, dass die Lautstärkebegrenzung überschrieben werden soll, etwa beim Start Die Fernwiedergabe von Musik auf einem Bluetooth-Gerät ist nicht möglich, daher wollten wir einen Weg finden, dies automatisch zu umgehen Warnung.

Wenn Sie unsere Foren durchsuchen, gibt es bereits Lösungen zur Umgehung der „Grenze für sicheres Volumen“, aber bisher war dies bei allen Lösungen erforderlich Installieren ein Xposed Modul. Dadurch wird zwangsläufig eingeschränkt, wer es verwenden kann, da das Xposed Framework neben der Verwendung von Android-Versionen vor Nougat auch Root-Zugriff (was auf den meisten Telefonen einen entsperrten Bootloader bedeutet) erfordert. Aber nachdem ich mich mit AOSP und verschiedenen Systemeinstellungen beschäftigt habe, habe ich eine Möglichkeit entdeckt, die Grenze für hohe Lautstärke/sicheres Audio zu umgehen auf allen Geräten, ohne dass Root erforderlich ist.

Wenn Sie diese Anleitung befolgen, akzeptieren Sie alle Risiken, die mit dem Hören von Medien bei hoher Lautstärke verbunden sind.


Tutorial zur sicheren Umgehung von Audiowarnungen

Wenn Sie meinen vorherigen Artikel über gelesen haben Aktivieren des Immersive-Modus ohne Root-Zugriff, dann haben Sie möglicherweise angefangen, mit einigen der Einstellungen herumzuspielen, die auf Ihrem Telefon versteckt sind. Wenn nicht, empfehle ich Ihnen dringend, dies zu tun, da ich festgestellt habe, dass fast jedes Gerät eine Menge Extras hat, die nur darauf warten, entdeckt zu werden. Dieser Trick ist nicht anders, da wir eine Systemeigenschaft verwenden, um die sichere Audiowarnung zu umgehen.

Konkret werden wir das System modifizieren. Globales Eigentum audio_safe_volume_state Sowohl beim Booten als auch in regelmäßigen Abständen, sodass Android immer denkt, Sie hätten der Umgehung der Warnung zugestimmt. Diese Eigenschaft ist in AOSP definiert, die wir unten reproduzieren. Es gibt mehrere Zustände, die diese Eigenschaft annehmen kann, im Bereich von 0 bis 3. 30 Sekunden nach dem Booten oder alle 20 Stunden ununterbrochener Musikwiedergabe wird der Status auf „0“ oder „nicht konfiguriert“ gesetzt. Abhängig von Ihrer Einstellung wird es dann auf „1“ für „deaktiviert“ oder „3“ für „aktiviert“ gesetzt Mobile Ländervorwahl. Wenn Sie in der EU leben, ist diese Eigenschaft standardmäßig auf „3“ gesetzt, wird jedoch in „2“ für „inaktiv“ geändert, wenn der Benutzer die Lautstärkewarnung manuell umgeht. Wir werden den Wert dieser Eigenschaft in den Status „inaktiv“ ändern (Falls Sie sich fragen, hat es bei mir nie funktioniert, es auf „deaktiviert“ zu ändern.)


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

mehr lesen

Sie müssen zuerst installieren Tasker Und AutoTools damit wir diesen Trick automatisieren können. Technisch gesehen kann außer Tasker jede andere Automatisierungs-App verwendet werden, aber ich kenne nur Tasker, sodass Sie die Anpassungen selbst vornehmen müssen, wenn Sie lieber eine andere App verwenden möchten. AutoTools ist jedoch für diesen Trick von entscheidender Bedeutung, da dieses Plug-in es uns ermöglicht, sichere Einstellungen auf unserem Gerät zu steuern.

Wie in meinem Artikel zum Umschalten des Immersive-Modus erläutert, müssen wir das gewähren WRITE_SECURE_SETTINGS Erlaubnis für AutoTools. Dies liegt daran, dass der Befehl zum Steuern des sicheren Audio-Lautstärkestatus unter definiert ist Einstellungen. Global Klasse, obwohl die genaue Syntax für den Befehl in AOSP verborgen ist (genau wie beim Immersive Mode). Wenn Sie AutoTools bereits die Berechtigung WRITE_SECURE_SETTINGS erteilt haben, nachdem Sie mein vorheriges Tutorial zum immersiven Modus gelesen haben, können Sie den nächsten Abschnitt überspringen. Wenn nicht, müssen Sie es einrichten.


Im Berechtigungsverwaltungssystem von Android definieren Anwendungen die Berechtigungen, die ihnen gewährt werden sollen, in der Manifestdatei. Benutzer können dann Berechtigungen bei der Installation (vor Marshmallow) oder bei Bedarf (Marshmallow+) erteilen oder verweigern. Es gibt jedoch bestimmte Berechtigungen, die Anwendungen nicht erteilt werden können, selbst wenn sie dies im Manifest anfordern, z WRITE_SECURE_SETTINGS. Dies liegt daran, dass die Gewährung einer derart mächtigen Berechtigung einer Anwendung dieser App weitreichende Kontrolle über Ihr Gerät geben würde.

Es gibt jedoch eine Problemumgehung, mit der wir jeder gewünschten App die Berechtigung WRITE_SECURE_SETTINGS erteilen können. Durch die Verwendung von ADBs Paketmanager (pm) Mit dem Tool können wir jeder gewünschten Anwendung jede beliebige Berechtigung erteilen (vorausgesetzt, die Anwendung fordert diese Berechtigung in der Manifestdatei an).

Das erste, was Sie tun müssen, ist Installieren Sie die ADB-Binärdatei auf Ihren Computer, gefolgt von der Finden Sie den richtigen Treiber für Ihr Gerät. Aktivieren Sie dann das USB-Debugging in den Entwickleroptionen (gehen Sie zu Einstellungen -> Über das Telefon und tippen Sie sieben Mal auf Build-Nummer, falls Sie dies noch nicht getan haben) und verbinden Sie Ihr Telefon mit Ihrem Computer. Senden Sie abschließend den folgenden Befehl, sobald Sie ein Terminal geöffnet haben:

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

Jetzt haben AutoTools die Möglichkeit, alle globalen, sicheren oder Systemeinstellungen auf Ihrem Gerät zu ändern. Es gibt verschiedene Möglichkeiten, mit diesen Einstellungen und der Liste der verfügbaren Einstellungen in herumzuspielen Jede Kategorie hängt vollständig von Ihrem Gerät und Ihrer Softwareversion ab, aber diese Diskussion ist eine andere Zeit. In jedem Fall zeigen wir Ihnen, wie Sie AutoTools verwenden, um den Status des sicheren Volumes zu steuern.


Deaktivieren der sicheren Audiowarnung beim Booten

Hier ist die Beschreibung des Profils für diejenigen unter Ihnen, die mit Tasker vertraut sind. Wenn Sie mit Tasker nicht vertraut sind, lesen Sie weiter, um eine Schritt-für-Schritt-Anleitung zu erhalten.

Deaktivieren Sie Safe Audio beim Booten

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 ]

mehr lesen

Öffnen Sie Tasker, damit wir ein neues Profil erstellen können. Tippen Sie unten rechts auf + Symbol, um ein neues Profil zu erstellen. Fügen Sie eine neue hinzu Ereignis Kontext und gehen Sie zu Tasker -> Monitorstart. Wir verwenden diesen Ereigniskontext, der beim Start von Tasker ausgelöst wird, und nicht den Ereigniskontext, der beim Hochfahren des Telefons aktiviert wird, da ersterer weitaus zuverlässiger ist als letzterer.

Klicken Sie auf jeden Fall auf die Schaltfläche „Zurück“, da wir nun eine mit diesem Profil verknüpfte Aufgabe erstellen. Benennen Sie die Aufgabe beliebig, da es keine Rolle spielt. Sobald Sie den Bildschirm zur Aufgabenerstellung aufgerufen haben, drücken Sie auf + Symbol unten in der Mitte des Bildschirms, um eine neue Aktion zu erstellen. Gehen Sie für die erste Aktion zu Aufgabe -> Warten und lass es warten 30 Sekunden. Dies erklärt die „30 Sekunden nach dem Booten“-Regel, die in Android zum Festlegen des sicheren Volume-Status verwendet wird.

Erstellen Sie als Nächstes eine neue Aktion und gehen Sie zu Plugin -> AutoTools -> Sichere Einstellungen. Drücken Sie den Stift, um den Konfigurationsbildschirm für AutoTools zu öffnen. Gehe zu Benutzerdefinierte Einstellung. Geben Sie als Einstellungstyp ein Global. Geben Sie als Name ein audio_safe_volume_state. Machen Sie es für den Eingabetyp int. Für den Wert machen Sie es 2. Stellen Sie sicher, dass Sie alles richtig eingegeben haben. Die Konfiguration sollte mit dem mittleren Screenshot unten übereinstimmen. Der Befehl muss gesendet werden genau wie ich geschrieben habe, sonst wird es keine Auswirkungen haben.

Wenn Sie fertig sind, kehren Sie zum Hauptmenü von Tasker zurück, da wir ein weiteres Profil erstellen müssen. Das, das wir gerade erstellt haben, berücksichtigt, wenn der sichere Volume-Status 30 Sekunden nach dem Booten festgelegt wird, aber für Für diejenigen unter Ihnen, die Ihr Gerät fast nie neu starten, erstellen wir ein weiteres Profil, um dies regelmäßig festzulegen Wert.


Deaktivieren Sie die sichere Audiowarnung regelmäßig

Hier ist die Beschreibung des Profils für diejenigen unter Ihnen, die mit Tasker vertraut sind. Wenn Sie mit Tasker nicht vertraut sind, lesen Sie weiter, um eine Schritt-für-Schritt-Anleitung zu erhalten.

Deaktivieren Sie Safe Audio regelmäßig

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 ]

mehr lesen

Erstellen Sie ein neues Profil, dieses Mal mit a Zeit Kontext. Leider ist mir keine Methode bekannt, ohne die die aktuelle Gesamtzeit der Medienwiedergabe ermittelt werden könnte root, daher setzen wir stattdessen den sicheren Volume-Status regelmäßig alle 24 Stunden auf inaktiv (... Es ist doch nicht so, dass ihr innerhalb von 24 Stunden tatsächlich 20 Stunden Musik hört, oder?). Wie auch immer, die Benutzeroberfläche von Tasker zum Festlegen einer periodischen Aufgabe ist ziemlich schrecklich, aber der Kern davon ist, dass Sie die „Von“- und die „Bis“-Zeit auf die gleiche Zeit einstellen möchten. Auf diese Weise wird Tasker es so behandeln, als ob Sie möchten, dass die Aufgabe nur einmal zu einem festgelegten Zeitpunkt ausgelöst wird (ich habe es 1 Minute vor Mitternacht gemacht).

Was die Aufgabe betrifft, kopieren Sie einfach, was Sie für Aktion Nr. 2 im vorherigen Profil getan haben. In diesem Fall gibt es keine neue oder andere Aktion, da wir lediglich den Wert dieser globalen Systemeigenschaft alle 24 Stunden ändern.

Nachdem Sie nun beide Profile eingerichtet haben, sind Sie fertig! Starten Sie Ihr Telefon neu und Sie sollten jetzt nicht mehr die Warnung „sichere Lautstärke“ sehen, wenn Sie Ihre Kopfhörer anschließen.


Herunterladen und in Tasker importieren

Wie immer stellen wir die XML-Datei der Skripte zur Verfügung, die Sie herunterladen und importieren können. Laden Sie die Dateien einfach über den untenstehenden Link herunter und speichern Sie sie irgendwo auf Ihrem internen Speicher. Öffnen Sie Tasker und deaktivieren Sie den Anfängermodus in den Einstellungen. Gehen Sie dann zurück zum Hauptbildschirm und drücken Sie lange auf die Registerkarte „Profil“ oben. Sie sollten ein Popup mit einer der Optionen „Importieren“ sehen. Tippen Sie darauf, navigieren Sie zu dem Speicherort, an dem Sie die .prf.xml-Dateien gespeichert haben, und wählen Sie die zu importierende Datei aus. Wiederholen Sie den Vorgang für das zweite Profil.

Laden Sie das Profil „Sichere Audiowarnung beim Booten deaktivieren“ herunter

Laden Sie das Profil „Sichere Audiowarnung regelmäßig deaktivieren“ herunter

Wir hoffen, dass Sie diesen Tipp nützlich finden. Lassen Sie uns in den Kommentaren unten wissen, ob dies für Sie funktioniert!