كيفية تعطيل تلقائيا ارتفاع حجم تحذير دون الجذر

من المحتمل أن هؤلاء الذين يعيشون في إحدى الدول الأعضاء في الاتحاد الأوروبي قد واجهوا تحذيرًا عند محاولة رفع مستوى صوت سماعات الرأس الخاصة بك كما هو موضح في صورة الميزة أعلاه.

وفقًا للوائح التي وضعتها اللجنة الأوروبية للوقوف الكهروتقني (CENELEC) ، يجب أن يكون لدى جميع الأجهزة الإلكترونية القادرة على تشغيل الوسائط التي تم بيعها بعد فبراير 2013 مستوى حجم إخراج افتراضي يبلغ 85 ديسيبل كحد أقصى. يمكن للمستخدمين اختيار تجاوز التحذير لزيادة مستوى الصوت إلى 100 ديسيبل كحد أقصى ، ولكن عند القيام بذلك يجب أن يظهر التحذير مرة أخرى بعد 20 ساعة من تشغيل الموسيقى.

على الرغم من أننا لن ندخل في نقاش حول فعالية هذه اللائحة في تعزيز الصحة الجيدة ، فإن المستخدمين الذين يختارون في كثير من الأحيان لتجاوز هذا التحذير غالباً ما يتساءلون عما إذا كان من الممكن أتمتة هذه العملية. هناك العديد من الحالات التي يكون من المزعج فيها الموافقة يدويًا على تجاوز الحد المسموح به لمستوى الصوت ، مثل عند بدء تشغيل الموسيقى عن بُعد على جهاز Bluetooth ، لذلك أردنا الشروع في اكتشاف طريقة لتجاوز هذا التحذير تلقائيًا.

توجد بالفعل حلول لتجاوز "حد الصوت الآمن" إذا قمت بالبحث في منتدياتنا ، ولكن جميع الحلول طلبت منك حتى الآن تثبيت وحدة Xposed. يحد هذا بالضرورة من يمكنه استخدامه ، حيث يتطلب Xposed Framework أن يكون لديك وصول إلى الجذر (مما يعني وجود أداة تحميل تمهيد في معظم الهواتف) بالإضافة إلى إصدارات ما قبل Nougat من Android. ولكن بعد البحث في AOSP وإعدادات النظام المختلفة ، لقد اكتشفت طريقة لتجاوز الحد المسموح به من مستوى الصوت / الصوت العالي على جميع الأجهزة دون الحاجة إلى الجذر.

باتباع هذا الدليل ، فإنك تقبل أي مخاطر متعلقة بالاستماع إلى الوسائط بمستويات صوت عالية.


آمنة الصوت تحذير الالتفافية تعليمي

إذا كنت قد قرأت مقالتي السابقة حول تمكين وضع الغمر دون الوصول إلى الجذر ، فربما تكون قد بدأت بالتجول مع بعض الإعدادات التي يمكنك العثور عليها مخفية على هاتفك. إذا لم تكن كذلك ، فإنني أوصي بشدة بذلك ، حيث أنني وجدت أن كل جهاز تقريبًا يحتوي على الكثير من الأشياء الجيدة التي تنتظر اكتشافها. لا تختلف هذه الخدعة نظرًا لأننا سنستخدم خاصية نظام لتجاوز تحذير الصوت الآمن.

على وجه التحديد ، سنقوم بتعديل خاصية System.Global audio_safe_volume_state سواء على الإقلاع أو بشكل دوري حتى يعتقد Android دائمًا أنك وافقت على تجاوز التحذير. تم تعريف هذه الخاصية في AOSP ، والتي نعيد إنتاجها أدناه. هناك عدة ولايات يمكن أن تتخذها هذه المنشأة ، والتي تتراوح من 0-3. بعد 30 ثانية من بدء التشغيل أو بعد كل 20 ساعة من تشغيل الموسيقى المستمر ، يتم ضبط الحالة على "0" أو "غير مكوّن". ثم يتم تعيينه على "1" لـ "معطل" أو "3" لـ "ممكّن" اعتمادًا على كود بلد المحمول الخاص بك. إذا كنت تعيش في الاتحاد الأوروبي ، فسيتم تعيين هذه الخاصية على "3" افتراضيًا ولكن يتم تغييرها إلى "2" لـ "غير نشط" كلما تجاوز المستخدم يدويًا تحذير مستوى الصوت. سنقوم بتغيير قيمة هذه الخاصية إلى الحالة "غير النشطة" (تغييرها إلى "معطل" لم ينجح أبدًا بالنسبة لي ، في حال كنت تتساءل).

تطبيق حجم الوسائط الآمن في AOSP

  //========================================================================================== // 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 set to SAFE_MEDIA_VOLUME_INACTIVE by calling AudioService.disableSafeMediaVolume() // (when user opts out). private final int SAFE_MEDIA_VOLUME_NOT_CONFIGURED = 0; private final int SAFE_MEDIA_VOLUME_DISABLED = 1; private final int SAFE_MEDIA_VOLUME_INACTIVE = 2; private final int SAFE_MEDIA_VOLUME_ACTIVE = 3; private Integer mSafeMediaVolumeState; private int mMcc = 0; // mSafeMediaVolumeIndex is the cached value of config_safe_media_volume_index property private int mSafeMediaVolumeIndex; // mSafeMediaVolumeDevices lists the devices for which safe media volume is enforced, private final int 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. private int mMusicActiveMs; private static final int UNSAFE_VOLUME_MUSIC_ACTIVE_MS_MAX = (20 * 3600 * 1000); // 20 hours private static final int MUSIC_ACTIVE_POLL_PERIOD_MS = 60000; // 1 minute polling interval private static final int SAFE_VOLUME_CONFIGURE_TIMEOUT_MS = 30000; // 30s after boot completed 

ستحتاج أولاً إلى تثبيت Tasker و AutoTools حتى نتمكن من أتمتة هذه الخدعة. من الناحية الفنية ، يمكن استخدام أي تطبيق أتمتة آخر بصرف النظر عن تاسكر ، لكنني على دراية تاسكر فقط لذلك سيكون عليك إجراء تعديلات لوحدك إذا كنت تفضل استخدام تطبيق مختلف. على الرغم من ذلك ، تعد الأدوات التلقائية ضرورية لهذه الخدعة لأن هذا المكون الإضافي سيسمح لنا بالتحكم في "الإعدادات الآمنة" على الجهاز لدينا.

كما هو موضح في مقالتي حول تبديل وضع الغمر ، نحتاج إلى منح إذن WRITE_SECURE_SETTINGS للأدوات التلقائية. وذلك لأن الأمر الخاص بالتحكم في حالة مستوى الصوت الآمن يتم تعريفه ضمن فئة Settings.Global ، على الرغم من أن بناء الجملة الدقيق للأمر مخفي في AOSP (مثلما كان الحال مع الوضع الغامر). إذا كنت قد منحت بالفعل إذن WRITE_SECURE_SETTINGS إلى أدوات AutoTools بعد قراءة تعليمي السابق على وضع الانغماس ، فيمكنك تخطي القسم التالي. إذا لم يكن الأمر كذلك ، فسيتعين عليك إعداده.


منح إذن إعدادات آمنة لأدوات تلقائية

ضمن نظام إدارة أذونات Android ، تحدد التطبيقات الأذونات التي تريد منحها في ملف البيان. يمكن للمستخدمين بعد ذلك منح أو رفض الأذونات عند التثبيت (ما قبل الخطمي) أو عند الطلب (الخطمي +). ومع ذلك ، هناك أذونات معينة لا يمكن منح التطبيقات حتى إذا طلبوها في البيان ، مثل WRITE_SECURE_SETTINGS. وذلك لأن منح أي تطبيق إذنًا قويًا حيث يمنح هذا التطبيق الكثير من التحكم في جهازك.

ولكن هناك حل واحد يمكننا استخدامه لمنح إذن WRITE_SECURE_SETTINGS لأي تطبيق نريده. باستخدام أداة مدير الحزم (PM) في بنك التنمية الآسيوي ، يمكننا منح أي إذن لأي تطبيق نريد (شريطة أن يطلب التطبيق ذلك الإذن في ملف البيان).

أول ما عليك القيام به هو تثبيت ADB binary على جهاز الكمبيوتر الخاص بك متبوعًا ببرنامج التشغيل المناسب لجهازك. ثم ، قم بتمكين تصحيح أخطاء USB في خيارات المطور (انتقل إلى الإعدادات -> حول الهاتف وانقر على رقم البناء 7 مرات إذا لم تكن قد قمت بذلك بالفعل) وقم بتوصيل هاتفك بالكمبيوتر. أخيرًا ، أرسل الأمر التالي بمجرد فتح جهاز:

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

الآن سيكون لدى AutoTools القدرة على تغيير أي إعداد Global أو Secure أو System على جهازك. هناك العديد من الطرق التي يمكنك من خلالها اللعب مع هذه الإعدادات ، وقائمة الإعدادات المتاحة في كل فئة تعتمد اعتمادًا تامًا على جهازك وبناء البرنامج ، ولكن هذه المناقشة هي لفترة أخرى. في أي حال ، سنستعرض لك كيفية استخدام أدوات AutoTool للتحكم في حالة مستوى الصوت الآمن.


تعطيل تحذير الصوت الآمن على التمهيد

فيما يلي وصف الملف الشخصي لأولئك منكم المطلعين على تاسكر. إذا لم تكن معتادًا على Tasker ، فاقرأ للحصول على إرشادات خطوة بخطوة.

تعطيل الصوت الآمن على التمهيد

 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 ] 

افتح تاسكر حتى نتمكن من إنشاء ملف تعريف جديد. في أسفل الزاوية اليمنى ، انقر فوق أيقونة + لإنشاء ملف تعريف جديد. أضف سياق حدث جديد وانتقل إلى Tasker -> Monitor Start. نحن نستخدم سياق الحدث هذا الذي يتم تشغيله عند بدء تشغيل Tasker بدلاً من سياق الحدث الذي يتم تنشيطه عند بدء تشغيل الهاتف لأن الأول يكون أكثر موثوقية من الأخير.

في أي حال ، اضغط على زر الرجوع لأننا سننشئ الآن مهمة مرتبطة بملف التعريف هذا. اسم المهمة أي شيء لأنه لا يهم. بمجرد إدخال شاشة إنشاء المهام ، اضغط على أيقونة + في أسفل الشاشة لإنشاء إجراء جديد. بالنسبة للإجراء الأول ، انتقل إلى Task -> Wait وانتظر لمدة 30 ثانية. هذا يمثل قاعدة "30 ثانية بعد التمهيد" المستخدمة في Android لتعيين حالة التخزين الآمن.

بعد ذلك ، قم بإنشاء إجراء جديد وانتقل إلى البرنامج المساعد -> أدوات تلقائية -> إعدادات آمنة. اضغط على القلم الرصاص لفتح شاشة التكوين للأدوات التلقائية. انتقل إلى إعداد مخصص. لنوع الإعداد أدخل العالمية . للاسم أدخل audio_safe_volume_state. لنوع الإدخال اجعله int. لمعرفة القيمة ، تأكد من أنك وضعت كل شيء بشكل صحيح ، يجب أن يتطابق التكوين مع لقطة الشاشة المتوسطة أدناه. يجب إرسال الأمر تمامًا كما كتبت أو لن يكون له أي تأثير.

بمجرد الانتهاء ، عد إلى القائمة الرئيسية لـ Tasker حيث سنحتاج إلى إنشاء ملف تعريف آخر. الحساب الذي أنشأناه للتو للحسابات عندما يتم تعيين حالة التخزين الآمن بعد 30 ثانية من بدء التشغيل ، ولكن لأولئك الذين لم يعيدوا تشغيل جهازك تقريبًا ، سنقوم بإنشاء ملف تعريف آخر لتعيين هذه القيمة بشكل دوري.


تعطيل تحذير الصوت الآمن بشكل دوري

فيما يلي وصف الملف الشخصي لأولئك منكم المطلعين على تاسكر. إذا لم تكن معتادًا على Tasker ، فاقرأ للحصول على إرشادات خطوة بخطوة.

تعطيل الصوت الآمن بشكل دوري

 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 ] 

إنشاء ملف تعريف جديد ، هذه المرة مع سياق الوقت . لسوء الحظ ، لست على علم بأي طريقة للحصول على الوقت التراكمي الحالي لتشغيل الوسائط بدون جذر ، لذلك سنقوم بدلاً من ذلك فقط بتعيين حالة الصوت الآمن بشكل غير نشط مرة واحدة كل 24 ساعة (... ليس الأمر كما لو أن اللاعبين يستمعون إلى 20 ساعات من الموسيقى خلال فترة 24 ساعة ، أليس كذلك؟). على أي حال ، فإن واجهة Tasker لإعداد مهمة دورية هي نوع من الرهيبة ، ولكن جوهر ذلك هو أنك تريد ضبط "من" و "إلى" في الوقت نفسه. وبهذه الطريقة ، سيعامل Tasker الأمر كما لو كنت تريد تشغيل المهمة مرة واحدة فقط في وقت محدد (لقد قمت بذلك قبل دقيقة من منتصف الليل).

بالنسبة للمهمة ، ما عليك سوى نسخ ما قمت به من أجل الإجراء رقم 2 في ملف التعريف السابق. لا يوجد إجراء جديد أو مختلف في هذه الحالة ، فكل ما نقوم به هو تغيير قيمة خاصية النظام العالمي هذه مرة واحدة كل 24 ساعة.

الآن بعد أن قمت بإعداد كلا الملفين الشخصيين ، انتهيت! أعد تشغيل هاتفك ، ويجب ألا تشاهد الآن تحذير "مستوى الصوت الآمن" عند توصيل سماعات الرأس.


تحميل واستيراد إلى تاسكر

كما هو الحال دائمًا ، نحن نقدم ملف XML للنصوص البرمجية التي يمكنك تنزيلها واستيرادها. ما عليك سوى تنزيل الملفات من الرابط أدناه وحفظها في أي مكان على وحدة التخزين الداخلية الخاصة بك. افتح تاسكر وقم بتعطيل وضع المبتدئين في التفضيلات. بعد ذلك ، عد إلى الشاشة الرئيسية واضغط لفترة طويلة على أعلى علامة التبويب "ملف التعريف". يجب أن ترى نافذة منبثقة يكون أحد الخيارات فيها "استيراد". انقر فوق ذلك وتصفح إلى المكان الذي حفظت فيه ملفات .prf.xml وحدد هذا الملف للاستيراد. كرر للملف الشخصي الثاني.

قم بتنزيل ملف تعريف "تعطيل تحذير الصوت الآمن على التمهيد" قم بتنزيل ملف تعريف "تعطيل تحذير الصوت الآمن بشكل دوري"

نأمل أن تجد هذه النصيحة مفيدة. أخبرنا في التعليقات أدناه إذا كان هذا مناسبًا لك!