כיצד להשבית באופן אוטומטי את אזהרת עוצמת הקול ללא שורש

click fraud protection

מדריך כיצד להשבית את אזהרת עוצמת הקול הגבוהה או שמע בטוח הנדרשת במכשירים הנמכרים באיחוד האירופי. זה עובד בכל המכשירים ללא שורש.

אלו מכם שמתגוררים באחת המדינות החברות באיחוד האירופי כנראה נתקלו באזהרה כאשר ניסו להגביר את עוצמת הקול של האוזניות שלכם כפי שמוצג בתמונה העליונה.

בהתאם לתקנות שנקבעו על ידי הוועדה האירופית לתקינה אלקטרוטכנית (CENELEC), הכל אלקטרוני מכשירים המסוגלים להשמיע מדיה הנמכרים לאחר פברואר 2013 חייבים ברמת ברירת המחדל של עוצמת הקול של 85 dB. משתמשים יכולים לבחור לעקוף את האזהרה כדי להגביר את עוצמת הקול למקסימום של 100 dB, אך בכך האזהרה חייבת להופיע מחדש לאחר 20 שעות של השמעת מוזיקה.

אמנם לא ניכנס לוויכוח על היעילות של הרגולציה הזו בקידום טוב בריאות, משתמשים שבוחרים לעתים קרובות לעקוף את האזהרה הזו תוהים לעתים קרובות אם תהליך זה יכול להיות אוטומטי. ישנם מקרים רבים שבהם זה די מעצבן להסכים ידנית לעקוף את מגבלת עוצמת הקול, כמו כאשר אתה מתחיל השמעת מוזיקה מרחוק במכשיר בלוטות', אז רצינו להתחיל למצוא דרך לעקוף זאת באופן אוטומטי אַזהָרָה.

פתרונות לעקוף את "מגבלת הנפח הבטוחה" כבר קיימים אם תחפשו בפורומים שלנו, אך עד כה כל הפתרונות דרשו מכם

להתקין Xposed מודול. זה בהכרח מגביל את מי שיכול להשתמש בו, מכיוון ש-Xposed Framework דורש ממך גישת שורש (שמשמעותה טוען אתחול לא נעול ברוב הטלפונים) כמו גם להיות בגרסאות טרום-נוגט של אנדרואיד. אבל לאחר חפירה ב-AOSP ובהגדרות מערכת שונות, גיליתי דרך לעקוף את מגבלת הווליום הגבוה/אודיו בטוח בכל המכשירים ללא צורך בשורש.

על ידי ביצוע מדריך זה, אתה מקבל כל סיכונים הכרוכים בהאזנה למדיה ברמות עוצמת קול גבוהות.


מדריך לעקוף אזהרת אודיו בטוח

אם קראת את המאמר הקודם שלי בנושא הפעלת מצב טבילה ללא גישת שורש, אז אולי התחלת לשחק עם כמה מההגדרות שאתה יכול למצוא מוסתרות בטלפון שלך. אם לא, אני ממליץ לך בחום לעשות זאת, מכיוון שגיליתי שכמעט בכל מכשיר יש המון דברים טובים שרק מחכים להתגלות. הטריק הזה אינו שונה מכיוון שאנו נשתמש במאפיין מערכת כדי לעקוף את אזהרת האודיו הבטוחה.

באופן ספציפי, אנו נשנה את המערכת. רכוש גלובלי audio_safe_volume_state גם באתחול וגם מעת לעת כך ש-Android תמיד תחשוב שהסכמת לעקוף את האזהרה. הנכס הזה הוא מוגדר ב-AOSP, שאנו משחזרים להלן. ישנם מספר מצבים שנכס זה יכול לקחת, החל מ-0-3. 30 שניות לאחר האתחול או לאחר כל 20 שעות של השמעת מוזיקה רציפה, המצב מוגדר ל-'0' או 'לא מוגדר'. לאחר מכן הוא מוגדר ל-'1' עבור 'מושבת' או '3' עבור 'מופעל' בהתאם לחשבון שלך קוד מדינה לנייד. אם אתה גר באיחוד האירופי, מאפיין זה מוגדר ל-'3' כברירת מחדל, אך משתנה ל-'2' עבור 'לא פעיל' בכל פעם שהמשתמש עוקף ידנית את אזהרת עוצמת הקול. אנו נשנה את הערך של מאפיין זה למצב 'לא פעיל' (לשנות את זה ל'נכה' אף פעם לא עבד לי, למקרה שאתה תוהה).


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

קרא עוד

תחילה תצטרך להתקין טאסקר ו כלי אוטומטי כדי שנוכל להפוך את הטריק הזה לאוטומטי. מבחינה טכנית, ניתן להשתמש בכל אפליקציית אוטומציה אחרת מלבד Tasker, אבל אני מכיר רק את Tasker כך שתצטרך לבצע התאמות בעצמך אם אתה מעדיף להשתמש באפליקציה אחרת. עם זאת, הכלים האוטומטיים הם קריטיים לטריק הזה מכיוון שהפלאגין הזה יאפשר לנו לשלוט בהגדרות המאובטחות במכשיר שלנו.

כפי שהוסבר במאמר שלי על החלפת מצב Immersive, אנחנו צריכים להעניק את WRITE_SECURE_SETTINGS הרשאה ל-AutoTools. הסיבה לכך היא שהפקודה לשליטה במצב עוצמת השמע הבטוח מוגדרת תחת הגדרות. גלוֹבָּלִי class, אם כי התחביר המדויק של הפקודה מוסתר ב-AOSP (בדיוק כפי שהיה עבור מצב Immersive). אם כבר הענקת את הרשאת WRITE_SECURE_SETTINGS ל-AutoTools לאחר שקראת את המדריך הקודם שלי בנושא Immersive Mode, אז אתה יכול לדלג על הסעיף הבא. אם לא, אז תצטרך להגדיר את זה.


תחת מערכת ניהול ההרשאות של אנדרואיד, יישומים מגדירים את ההרשאות שהם רוצים שיעניקו בקובץ Manifest. לאחר מכן, המשתמשים יכולים להעניק או לדחות הרשאות בהתקנה (טרום מרשמלו) או לפי דרישה (Marshmallow+). עם זאת, ישנן הרשאות מסוימות שלא ניתן להעניק לבקשות גם אם הן מבקשות זאת במניפסט, כגון WRITE_SECURE_SETTINGS. הסיבה לכך היא מתן רשות לכל אפליקציה חזקה כמו זו תעניק לאותה אפליקציה המון שליטה על המכשיר שלך.

אבל יש פתרון אחד שבו נוכל להשתמש כדי להעניק את הרשאת WRITE_SECURE_SETTINGS לכל אפליקציה שנרצה. על ידי שימוש ב-ADB's מנהל חבילות (pm) כלי, נוכל להעניק כל הרשאה לכל אפליקציה שנרצה (בתנאי שהאפליקציה מבקשת הרשאה זו בקובץ המניפסט).

הדבר הראשון שתצטרך לעשות הוא התקן את ה-ADB הבינארי למחשב שלך ואחריו את דרייבר מתאים למכשיר שלך. לאחר מכן, הפעל איתור באגים ב-USB באפשרויות המפתחים (עבור להגדרות --> אודות הטלפון והקש על מספר Build 7 פעמים אם עדיין לא עשית זאת) וחבר את הטלפון שלך למחשב. לבסוף, שלח את הפקודה הבאה לאחר שפתחת מסוף:

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

כעת לכלים אוטומטיים תהיה את היכולת לשנות כל הגדרה גלובלית, מאובטחת או מערכת במכשיר שלך. ישנן דרכים שונות שבהן תוכל לשחק עם ההגדרות הללו, ועם רשימת ההגדרות הזמינות כל קטגוריה תלויה לחלוטין במבנה המכשיר ובתוכנה שלך, אבל הדיון הזה הוא לדיון אחר זְמַן. בכל מקרה, נמשיך ונראה לך כיצד להשתמש בכלים אוטומטיים כדי לשלוט במצב הווליום הבטוח.


השבתת אזהרת אודיו בטוחה בעת האתחול

הנה תיאור הפרופיל לאלו מכם שמכירים את Tasker. אם אינך מכיר את 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 כדי שנוכל ליצור פרופיל חדש. בפינה הימנית התחתונה הקש על + סמל כדי ליצור פרופיל חדש. הוסף חדש מִקרֶה הקשר וללכת ל Tasker --> Monitor Start. אנו משתמשים בהקשר האירוע הזה המופעל כאשר Tasker מופעל ולא בהקשר האירוע המופעל כאשר הטלפון מאתחל מכיוון שהראשון אמין הרבה יותר מהאחרון.

בכל מקרה, לחץ על כפתור החזרה מכיוון שאנו ניצור כעת משימה הקשורה לפרופיל זה. תן שם למשימה משום שהיא לא משנה. לאחר שנכנסת למסך יצירת המשימות, לחץ על + סמל באמצע התחתון של המסך כדי ליצור פעולה חדשה. עבור הפעולה הראשונה, עבור אל משימה --> המתן ותחכה לזה 30 שניות. זה מסביר את הכלל "30 שניות לאחר האתחול" המשמש באנדרואיד כדי להגדיר את מצב עוצמת הקול הבטוחה.

לאחר מכן, צור פעולה חדשה ועבור אל תוסף --> כלי אוטומטי --> הגדרות מאובטחות. הקש על העיפרון כדי לפתוח את מסך התצורה עבור כלי אוטומטי. לך ל הגדרות מותאמות. עבור סוג ההגדרה הזן גלוֹבָּלִי. עבור השם הזן audio_safe_volume_state. עבור סוג הקלט תעשה את זה int. בשביל הערך תעשה את זה 2. בדוק כדי לוודא שאתה שם הכל נכון, התצורה צריכה להתאים לצילום המסך האמצעי למטה. יש לשלוח את הפקודה בְּדִיוּק כפי שכתבתי או שזה לא ישפיע.

לאחר שתסיים, חזור לתפריט הראשי של Tasker מכיוון שנצטרך ליצור פרופיל נוסף. זה שיצרנו זה עתה חשבונות עבור כאשר מצב עוצמת הקול הבטוח מוגדר 30 שניות לאחר האתחול, אבל עבור אלו מכם שכמעט אף פעם לא מאתחלים את המכשיר שלכם, ניצור פרופיל נוסף כדי להגדיר זאת מעת לעת ערך.


השבת את אזהרת שמע בטוח מעת לעת

הנה תיאור הפרופיל לאלו מכם שמכירים את Tasker. אם אינך מכיר את 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 ]

קרא עוד

צור פרופיל חדש, הפעם עם א זְמַן הֶקשֵׁר. לצערי אני לא מודע לאף שיטה לקבל את הזמן המצטבר הנוכחי של השמעת מדיה בלי root, אז במקום זאת פשוט נגדיר מעת לעת את מצב עוצמת הקול הבטוח ללא פעיל אחת ל-24 שעות (... זה לא כאילו אתם באמת מקשיבים ל-20 שעות של מוזיקה בפרק זמן של 24 שעות, נכון?). בכל מקרה, הממשק של Tasker להגדרת משימה תקופתית הוא די נורא, אבל עיקרו הוא שאתה רוצה להגדיר את הזמן "מאת" ו"אל" לאותו זמן. בדרך זו, Tasker יתייחס לזה כאילו אתה רוצה שהמשימה תופעל רק פעם אחת בזמן מוגדר (עשיתי אותה דקה אחת לפני חצות).

לגבי המשימה, פשוט העתק את מה שעשית עבור פעולה מס' 2 בפרופיל הקודם. אין פעולה חדשה או שונה במקרה הזה, מכיוון שכל מה שאנחנו עושים זה לשנות את הערך של מאפיין מערכת גלובלית זה אחת ל-24 שעות.

כעת, לאחר שהגדרת את שני הפרופילים הללו, סיימת! הפעל מחדש את הטלפון שלך וכעת אתה כבר לא אמור לראות את האזהרה "ווליום בטוח" כשאתה מחבר את האוזניות שלך.


הורד וייבא ל-Tasker

כמו תמיד, אנו מספקים את קובץ ה-XML של הסקריפטים שתוכל להוריד ולייבא. כל שעליך לעשות הוא להוריד את הקבצים מהקישור למטה ולשמור אותם בכל מקום באחסון הפנימי שלך. פתח את Tasker והשבת את מצב מתחיל בהעדפות. לאחר מכן, חזור למסך הראשי ולחץ לחיצה ארוכה על הכרטיסייה "פרופיל" למעלה. אתה אמור לראות חלון קופץ עם אחת מהאפשרויות "ייבוא". הקש על זה ודפדף למקום שבו שמרת את קבצי ה-.prf.xml ובחר את הקובץ הזה לייבא. חזור על הפרופיל השני.

הורד את הפרופיל 'השבת אזהרת אודיו בטוחה באתחול'

הורד את הפרופיל 'השבת אזהרת שמע בטוחה מדי פעם'

אנו מקווים שתמצא את הטיפ הזה שימושי. ספר לנו בתגובות למטה אם זה עובד בשבילך!