Un tutoriel sur la façon de désactiver l'avertissement de volume élevé ou de sécurité audio requis sur les appareils vendus dans l'UE. Cela fonctionne sur tous les appareils sans root.
Ceux d'entre vous qui vivent dans l'un des pays membres de l'Union européenne ont probablement été confrontés à cet avertissement lorsqu'ils ont essayé d'augmenter le volume de leur casque, comme le montre l'image ci-dessus.
Conformément aux réglementations établies par le Comité européen de normalisation électrotechnique (CENELEC), tous les appareils électroniques les appareils capables de lire des médias vendus après février 2013 doivent avoir un niveau de volume de sortie par défaut d'un maximum de 85 dB. Les utilisateurs peuvent choisir de contourner l'avertissement pour augmenter le volume jusqu'à un maximum de 100 dB, mais ce faisant, l'avertissement doit réapparaître après 20 heures de lecture de musique.
Même si nous n'allons pas engager un débat sur l'efficacité de ce règlement pour promouvoir le bien-être santé, les utilisateurs qui choisissent fréquemment de contourner cet avertissement se demandent souvent si ce processus peut être automatique. Il existe de nombreux cas où il est plutôt ennuyeux de devoir accepter manuellement de outrepasser la limite de volume, comme lorsque vous démarrez lecture de musique à distance sur un appareil Bluetooth, nous voulions donc trouver un moyen de contourner automatiquement ce problème. avertissement.
Des solutions pour contourner la « limite de volume de sécurité » existent déjà si vous effectuez une recherche sur nos forums, mais jusqu'à présent, toutes les solutions vous ont obligé à installer un Xposed Module. Cela limite nécessairement qui peut l'utiliser, car Xposed Framework nécessite que vous ayez un accès root (ce qui signifie un chargeur de démarrage déverrouillé sur la plupart des téléphones) ainsi que des versions antérieures à Nougat d'Android. Mais après avoir fouillé dans AOSP et divers paramètres système, j'ai découvert un moyen de contourner la limite de volume élevé/audio de sécurité. sur tous les appareils sans nécessiter root.
En suivant ce guide, vous acceptez tous les risques liés à l'écoute de médias à des niveaux de volume élevés.
Tutoriel de contournement des avertissements audio sécurisés
Si vous avez lu mon article précédent sur activer le mode immersif sans accès root, alors vous avez peut-être commencé à jouer avec certains des paramètres que vous pouvez trouver cachés sur votre téléphone. Si ce n'est pas le cas, je vous le recommande vivement, car j'ai constaté que presque tous les appareils contiennent une tonne de cadeaux qui ne demandent qu'à être découverts. Cette astuce n'est pas différente car nous utiliserons une propriété système pour contourner l'avertissement audio de sécurité.
Plus précisément, nous modifierons le système. Propriété mondiale audio_safe_volume_state à la fois au démarrage et périodiquement afin qu'Android pense toujours que vous avez consenti à contourner l'avertissement. Cette propriété est défini dans l'AOSP, que nous reproduisons ci-dessous. Cette propriété peut prendre plusieurs états, allant de 0 à 3. 30 secondes après le démarrage ou toutes les 20 heures de lecture continue de musique, l'état est défini sur « 0 » ou « non configuré ». Il est ensuite réglé sur « 1 » pour « désactivé » ou « 3 » pour « activé » en fonction de votre Indicatif de pays mobile. Si vous résidez dans l'UE, cette propriété est définie sur « 3 » par défaut, mais est remplacée par « 2 » pour « inactif » chaque fois que l'utilisateur contourne manuellement l'avertissement de volume. Nous allons changer la valeur de cette propriété à l'état "inactif". (le changer en « désactivé » n'a jamais fonctionné pour moi, au cas où vous vous poseriez la question).
//
// 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
En savoir plus
Vous devrez d'abord installer Tâcheur et Outils automatiques afin que nous puissions automatiser cette astuce. Techniquement, n'importe quelle autre application d'automatisation en dehors de Tasker peut être utilisée, mais je ne connais que Tasker, vous devrez donc faire des ajustements vous-même si vous préférez utiliser une autre application. AutoTools, cependant, est essentiel à cette astuce car ce plug-in nous permettra de contrôler les paramètres sécurisés sur notre appareil.
Comme expliqué dans mon article sur le basculement en mode immersif, nous devons accorder le WRITE_SECURE_SETTINGS autorisation à AutoTools. En effet, la commande permettant de contrôler l'état du volume audio sécurisé est définie sous Paramètres. Mondial classe, bien que la syntaxe exacte de la commande soit cachée dans AOSP (tout comme c'était le cas pour le mode immersif). Si vous avez déjà accordé l'autorisation WRITE_SECURE_SETTINGS à AutoTools après avoir lu mon précédent didacticiel sur le mode immersif, vous pouvez ignorer la section suivante. Sinon, vous devrez le configurer.
Sous le système de gestion des autorisations d'Android, les applications définissent les autorisations qu'elles souhaitent obtenir dans le fichier manifeste. Les utilisateurs peuvent ensuite accorder ou refuser des autorisations lors de l'installation (pré-Marshmallow) ou à la demande (Marshmallow+). Cependant, il existe certaines autorisations que les applications ne peuvent pas obtenir même si elles en font la demande dans le manifeste, telles que WRITE_SECURE_SETTINGS. En effet, accorder à n’importe quelle application une autorisation aussi puissante donnerait à cette application une tonne de contrôle sur votre appareil.
Mais il existe une solution de contournement que nous pouvons utiliser pour accorder l'autorisation WRITE_SECURE_SETTINGS à n'importe quelle application de notre choix. En utilisant les BAD gestionnaire de paquets (pm) outil, nous pouvons accorder n'importe quelle autorisation à n'importe quelle application de notre choix (à condition que l'application demande cette autorisation dans le fichier manifeste).
La première chose que vous devrez faire est installer le binaire ADB sur votre ordinateur suivi du bon pilote pour votre appareil. Ensuite, activez le débogage USB dans les options du développeur (allez dans Paramètres -> À propos du téléphone et appuyez 7 fois sur le numéro de build si vous ne l'avez pas déjà fait) et connectez votre téléphone à votre ordinateur. Enfin, envoyez la commande suivante une fois que vous avez ouvert un terminal :
adb shell pm grant com.joaomgcd.autotools android.permission.WRITE_SECURE_SETTINGS
Désormais, AutoTools aura la possibilité de modifier n'importe quel paramètre global, sécurisé ou système sur votre appareil. Il existe différentes manières de jouer avec ces paramètres et la liste des paramètres disponibles dans chaque catégorie dépend entièrement de la version de votre appareil et de votre logiciel, mais cette discussion est pour une autre temps. Dans tous les cas, nous allons vous montrer comment utiliser AutoTools pour contrôler l’état du volume sécurisé.
Désactivation de l'avertissement audio sécurisé au démarrage
Voici la description du profil pour ceux d’entre vous qui connaissent Tasker. Si vous n'êtes pas familier avec Tasker, lisez la suite pour obtenir des instructions étape par étape.
Désactiver l'audio sécurisé au démarrage
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 ]
En savoir plus
Ouvrez Tasker pour que nous puissions créer un nouveau profil. Dans le coin inférieur droit, appuyez sur le + icône pour créer un nouveau profil. Ajouter un nouveau Événement contexte et allez à Taskeur -> Démarrage du moniteur. Nous utilisons ce contexte d'événement qui se déclenche au démarrage de Tasker plutôt que le contexte d'événement qui s'active au démarrage du téléphone car le premier est beaucoup plus fiable que le second.
Dans tous les cas, appuyez sur le bouton retour car nous allons maintenant créer une tâche associée à ce profil. Nommez la tâche comme vous le souhaitez, car cela n'a pas d'importance. Une fois entré dans l'écran de création de tâches, appuyez sur le bouton + en bas au milieu de l'écran pour créer une nouvelle action. Pour la première action, rendez-vous sur Tâche -> Attendre et fais-le attendre 30 secondes. Cela explique la règle « 30 secondes après le démarrage » utilisée dans Android pour définir l'état du volume sécurisé.
Ensuite, créez une nouvelle action et accédez à Plugin -> AutoTools -> Paramètres sécurisés. Appuyez sur le crayon pour ouvrir l'écran de configuration d'AutoTools. Aller à Paramètre personnalisé. Pour le type de paramètre, entrez Mondial. Pour le nom, entrez audio_safe_volume_state. Pour le type d'entrée, faites-le int. Pour la valeur, faites-le 2. Vérifiez que vous avez tout mis correctement, la configuration doit correspondre à la capture d'écran du milieu ci-dessous. La commande doit être envoyée exactement comme je l'ai écrit, sinon cela n'aura aucun effet.
Une fois que vous avez terminé, revenez au menu principal de Tasker car nous devrons créer un autre profil. Celui que nous venons de créer prend en compte le moment où l'état du volume sécurisé est défini 30 secondes après le démarrage, mais pour ceux d'entre vous qui ne redémarrent presque jamais votre appareil, nous créerons un autre profil pour définir cela périodiquement valeur.
Désactiver périodiquement l'avertissement audio de sécurité
Voici la description du profil pour ceux d’entre vous qui connaissent Tasker. Si vous n'êtes pas familier avec Tasker, lisez la suite pour obtenir des instructions étape par étape.
Désactiver périodiquement l'audio sécurisé
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 ]
En savoir plus
Créez un nouveau profil, cette fois avec un Temps contexte. Malheureusement, je ne connais aucune méthode permettant d'obtenir la durée cumulée actuelle de lecture multimédia sans root, nous allons donc simplement définir périodiquement l'état du volume sécurisé sur inactif une fois toutes les 24 heures (... ce n'est pas comme si vous écoutiez réellement 20 heures de musique sur une période de 24 heures, n'est-ce pas ?). Quoi qu'il en soit, l'interface de Tasker pour définir une tâche périodique est plutôt terrible, mais l'essentiel est que vous souhaitez définir l'heure "De" et "À" à la même heure. De cette façon, Tasker le traitera comme si vous souhaitiez que la tâche ne se déclenche qu'une seule fois à une heure définie (je l'ai faite 1 minute avant minuit).
Quant à la tâche, copiez simplement ce que vous avez fait pour l'action n°2 dans le profil précédent. Il n'y a pas d'action nouvelle ou différente dans ce cas, car tout ce que nous faisons est de modifier la valeur de cette propriété système globale une fois toutes les 24 heures.
Maintenant que vous avez configuré ces deux profils, vous avez terminé! Redémarrez votre téléphone et vous ne devriez plus voir l'avertissement « volume de sécurité » lorsque vous branchez vos écouteurs.
Télécharger et importer vers Tasker
Comme toujours, nous fournissons le fichier XML des scripts que vous pouvez télécharger et importer. Téléchargez simplement les fichiers à partir du lien ci-dessous et enregistrez-les n'importe où sur votre stockage interne. Ouvrez Tasker et désactivez le mode débutant dans les préférences. Ensuite, revenez à l’écran principal et appuyez longuement sur l’onglet « Profil » en haut. Vous devriez voir une fenêtre contextuelle avec l'une des options étant « Importer ». Appuyez dessus et accédez à l'endroit où vous avez enregistré les fichiers .prf.xml et sélectionnez ce fichier à importer. Répétez l’opération pour le deuxième profil.
Téléchargez le profil « Désactiver l'avertissement audio sécurisé au démarrage »
Téléchargez le profil « Désactiver périodiquement l'avertissement audio sécurisé »
Nous espérons que cette astuce vous sera utile. Faites-nous savoir dans les commentaires ci-dessous si cela fonctionne pour vous !