Yüksek Hacimli Uyarıyı Kök Olmadan Otomatik Olarak Devre Dışı Bırakma

AB'de satılan cihazlarda gerekli olan Yüksek Ses Düzeyi veya Güvenli Ses uyarısının nasıl devre dışı bırakılacağına ilişkin bir eğitim. Bu, root olmayan tüm cihazlarda çalışır.

Avrupa Birliği'ne üye ülkelerden birinde yaşayanlarınız, muhtemelen yukarıdaki resimde gösterildiği gibi kulaklığınızın sesini yükseltmeye çalışırken bu uyarıyla karşılaşmışsınızdır.

Avrupa Elektroteknik Standardizasyon Komitesi (CENELEC) tarafından belirlenen düzenlemelere göre, tüm elektronik Şubat 2013'ten sonra satılan ve medya oynatabilen cihazların varsayılan çıkış ses düzeyi maksimum 85 olmalıdır dB. Kullanıcılar, ses seviyesini maksimum 100 dB'ye çıkarmak için uyarıyı geçersiz kılmayı seçebilirler ancak bunu yaparken uyarının 20 saatlik müzik oynatımından sonra yeniden görünmesi gerekir.

Her ne kadar bu düzenlemenin iyiliği teşvik etmedeki etkinliği hakkında bir tartışmaya girmesek de sağlık açısından, bu uyarıyı sıklıkla atlamayı tercih eden kullanıcılar sıklıkla bu sürecin başarılı olup olamayacağını merak etmektedirler. otomatik. Ses seviyesi sınırını geçersiz kılmayı manuel olarak kabul etmek zorunda kalmanın oldukça can sıkıcı olduğu birçok durum vardır; örneğin; Bluetooth cihazında uzaktan müzik çalma, bu nedenle bunu otomatik olarak atlamanın bir yolunu bulmak istedik. uyarı.

Forumlarımızda arama yaparsanız "güvenli ses seviyesi sınırını" aşmaya yönelik çözümler zaten mevcuttur, ancak şu ana kadar tüm çözümler şunları yapmanızı gerektirdi: düzenlemek bir Xposed Modül. Xposed Framework, Android'in Nougat öncesi sürümlerinde olmanın yanı sıra kök erişimine (çoğu telefonda kilidi açılmış bir önyükleyici anlamına gelir) sahip olmanızı gerektirdiğinden, bu, onu kimlerin kullanabileceğini zorunlu olarak sınırlar. Ancak AOSP'yi ve çeşitli sistem ayarlarını inceledikten sonra yüksek ses/güvenli ses sınırını atlamanın bir yolunu keşfettim root gerektirmeden tüm cihazlarda.

Bu kılavuzu takip ederek, medyayı yüksek ses seviyelerinde dinlemeyle ilgili tüm riskleri kabul etmiş olursunuz.


Güvenli Sesli Uyarı Baypas Eğitimi

Daha önceki yazımı okuduysanız Kök erişimi olmadan Sürükleyici Modu etkinleştirme, o zaman telefonunuzda gizli bulabileceğiniz bazı ayarlarla oynamaya başlamış olabilirsiniz. Eğer yapmadıysanız kesinlikle yapmanızı tavsiye ederim, çünkü hemen hemen her cihazın keşfedilmeyi bekleyen tonlarca özelliği olduğunu gördüm. Güvenli sesli uyarıyı atlamak için bir sistem özelliği kullanacağımız için bu numara farklı değil.

Özellikle, Sistemi değiştireceğiz. Küresel mülkiyet audio_safe_volume_state hem açılışta hem de periyodik olarak, böylece Android her zaman uyarıyı atlamayı kabul ettiğinizi düşünecektir. Bu mülk AOSP'de tanımlanmışaşağıda çoğaltıyoruz. Bu özelliğin alabileceği 0-3 arasında değişen çeşitli durumlar vardır. Önyüklemeden 30 saniye sonra veya her 20 saatlik sürekli müzik çalmanın ardından durum '0' veya 'yapılandırılmadı' olarak ayarlanır. Daha sonra, kullanım durumunuza bağlı olarak 'devre dışı' için '1'e veya 'etkin' için '3'e ayarlanır. Mobil Ülke Kodu. AB'de yaşıyorsanız, bu özellik varsayılan olarak '3' olarak ayarlanır ancak kullanıcı ses seviyesi uyarısını manuel olarak atladığında 'etkin değil' için '2' olarak değiştirilir. Bu özelliğin değerini 'etkin değil' durumuna değiştireceğiz (merak ediyorsanız, bunu 'devre dışı' olarak değiştirmek benim için hiçbir zaman işe yaramadı).


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

devamını oku

İlk önce yüklemeniz gerekecek Görevli Ve Otomatik Araçlar böylece bu numarayı otomatikleştirebiliriz. Teknik olarak Tasker dışında herhangi bir otomasyon uygulaması kullanılabilir, ancak ben yalnızca Tasker'ı biliyorum, bu nedenle farklı bir uygulama kullanmayı tercih ederseniz ayarlamaları kendi başınıza yapmanız gerekecektir. Ancak AutoTools bu hile için kritik önem taşıyor çünkü bu eklenti, cihazımızdaki Güvenli Ayarları kontrol etmemize olanak sağlayacak.

Sürükleyici Mod'u değiştirme hakkındaki makalemde açıklandığı gibi, WRITE_SECURE_SETTINGS AutoTools'a izin. Bunun nedeni, güvenli ses seviyesi durumunu kontrol etme komutunun, Ayarlar. Küresel sınıf, ancak komutun tam sözdizimi AOSP'de gizlidir (tıpkı Sürükleyici Modda olduğu gibi). Sürükleyici Mod hakkındaki önceki eğitimimi okuduktan sonra AutoTools'a WRITE_SECURE_SETTINGS iznini zaten verdiyseniz sonraki bölümü atlayabilirsiniz. Değilse, ayarlamanız gerekecektir.


Android'in izin yönetimi sisteminde uygulamalar, verilmesini istedikleri izinleri Manifest dosyasında tanımlar. Kullanıcılar daha sonra kurulum sırasında (Marshmallow öncesi) veya isteğe bağlı olarak (Marshmallow+) izin verebilir veya reddedebilir. Ancak başvuruların Manifest'te talep edilse dahi verilemeyeceği bazı izinler bulunmaktadır. WRITE_SECURE_SETTINGS. Bunun nedeni, herhangi bir uygulamaya bu kadar güçlü bir izin vermenin, o uygulamaya cihazınız üzerinde çok fazla kontrol sağlamasıdır.

Ancak istediğimiz herhangi bir uygulamaya WRITE_SECURE_SETTINGS izni vermek için kullanabileceğimiz bir geçici çözüm var. ADB'leri kullanarak paket yöneticisi (pm) aracıyla istediğimiz herhangi bir uygulamaya herhangi bir izin verebiliriz (uygulamanın Manifest dosyasında bu izni talep etmesi şartıyla).

Yapmanız gereken ilk şey ADB ikili dosyasını yükleyin bilgisayarınıza ve ardından cihazınız için doğru sürücü. Ardından, Geliştirici Seçenekleri'nde USB Hata Ayıklamayı etkinleştirin (Ayarlar -> Telefon Hakkında'ya gidin ve henüz yapmadıysanız Derleme numarasına 7 kez dokunun) ve telefonunuzu bilgisayarınıza bağlayın. Son olarak, bir terminal açtıktan sonra aşağıdaki komutu gönderin:

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

Artık AutoTools cihazınızdaki herhangi bir Global, Güvenli veya Sistem ayarını değiştirme olanağına sahip olacak. Bu ayarlarla oynamanın çeşitli yolları ve mevcut ayarların listesi vardır. her kategori tamamen cihazınıza ve yazılım yapınıza bağlıdır, ancak bu tartışma başka bir konu içindir zaman. Her durumda, güvenli birim durumunu kontrol etmek için AutoTools'u nasıl kullanacağınızı size göstermeye devam edeceğiz.


Önyüklemede Güvenli Ses Uyarısını Devre Dışı Bırakma

Tasker'a aşina olanlar için profilin açıklaması burada. Tasker'a aşina değilseniz adım adım talimatlar için okumaya devam edin.

Önyüklemede Güvenli Sesi Devre Dışı Bırak

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 ]

devamını oku

Yeni bir profil oluşturabilmemiz için Tasker'ı açın. Sağ alt köşedeki simgesine dokunun + Yeni bir profil oluşturmak için simge. Yeni bir tane ekle Etkinlik bağlam ve şuraya gidin: Tasker --> Monitör Başlat. Telefon önyüklendiğinde etkinleşen Etkinlik bağlamı yerine, Tasker başlatıldığında tetiklenen bu Etkinlik bağlamını kullanıyoruz çünkü ilki ikincisinden çok daha güvenilirdir.

Her durumda, artık bu profille ilişkili bir Görev oluşturacağımız için geri düğmesine basın. Önemli olmadığı için Göreve herhangi bir ad verin. Görev oluşturma ekranına girdiğinizde, + Yeni bir Eylem oluşturmak için ekranın alt ortasındaki simgeye tıklayın. İlk eylem için şuraya gidin: Görev --> Bekle ve beklemesini sağla 30 saniye. Bu, Android'de güvenli birim durumunu ayarlamak için kullanılan "önyüklemeden 30 saniye sonra" kuralını açıklar.

Ardından yeni bir Eylem oluşturun ve şuraya gidin: Eklenti --> Otomatik Araçlar --> Güvenli Ayarlar. AutoTools'un yapılandırma ekranını açmak için kaleme basın. Git Özel Ayar. Ayar Türü için girin Küresel. Ad için girin audio_safe_volume_state. Giriş Türü için bunu yapın int. Değer için bunu yapın 2. Her şeyi doğru yerleştirdiğinizden emin olmak için kontrol edin; yapılandırma aşağıdaki ortadaki ekran görüntüsüyle eşleşmelidir. Komutun gönderilmesi gerekiyor Kesinlikle yazdığım gibi yoksa hiçbir etkisi olmaz.

İşiniz bittiğinde, başka bir profil oluşturmamız gerekeceğinden Tasker'ın ana menüsüne geri dönün. Az önce oluşturduğumuz, güvenli birim durumunun önyüklemeden 30 saniye sonra ayarlandığı zamanı hesaba katar, ancak Cihazınızı neredeyse hiç yeniden başlatmayanlarınız için bunu periyodik olarak ayarlamak için başka bir profil oluşturacağız değer.


Güvenli Sesli Uyarıyı Periyodik Olarak Devre Dışı Bırakın

Tasker'a aşina olanlar için profilin açıklaması burada. Tasker'a aşina değilseniz adım adım talimatlar için okumaya devam edin.

Güvenli Sesi Periyodik Olarak Devre Dışı Bırakın

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 ]

devamını oku

Bu sefer yeni bir profil oluşturun. Zaman bağlam. Ne yazık ki, medya oynatmanın mevcut kümülatif süresini elde etmek için herhangi bir yöntemin farkında değilim. root, bu nedenle güvenli birim durumunu periyodik olarak her 24 saatte bir devre dışı olarak ayarlayacağız (... siz aslında 24 saat içinde 20 saat müzik dinlemiyorsunuz, değil mi?). Her neyse, Tasker'ın periyodik bir Görev ayarlamaya yönelik arayüzü biraz berbat, ancak bunun özü, "Başlangıç" ve "Bitiş" zamanını aynı zamana ayarlamak istemenizdir. Bu şekilde, Tasker, Görevin belirli bir zamanda yalnızca bir kez tetiklenmesini istediğiniz gibi davranacaktır (bunu gece yarısından 1 dakika önce yaptım).

Göreve gelince, önceki profildeki Eylem #2 için yaptıklarınızı kopyalamanız yeterlidir. Bu durumda yeni veya farklı bir Eylem yok, yaptığımız tek şey bu Global sistem özelliğinin değerini 24 saatte bir değiştirmek.

Artık bu profillerin ikisini de kurduğunuza göre işiniz bitti! Telefonunuzu yeniden başlatın ve artık kulaklığınızı taktığınızda "güvenli ses seviyesi" uyarısını görmemelisiniz.


Tasker'a İndirin ve İçe Aktarın

Her zaman olduğu gibi, indirebileceğiniz ve içe aktarabileceğiniz komut dosyalarının XML dosyasını sağlıyoruz. Dosyaları aşağıdaki bağlantıdan indirin ve dahili depolama alanınızda herhangi bir yere kaydedin. Tasker'ı açın ve Tercihler'de Başlangıç ​​Modunu devre dışı bırakın. Ardından ana ekrana dönün ve üstteki “Profil” sekmesine uzun basın. Seçeneklerden birinin "İçe Aktar" olduğu bir açılır pencere görmelisiniz. Buna dokunun ve .prf.xml dosyalarını kaydettiğiniz yere göz atın ve içe aktarılacak dosyayı seçin. İkinci profil için tekrarlayın.

'Önyüklemede Güvenli Ses Uyarısını Devre Dışı Bırak' Profilini İndirin

'Güvenli Sesli Uyarıyı Periyodik Olarak Devre Dışı Bırak' Profilini İndirin

Bu ipucunu faydalı bulacağınızı umuyoruz. Bu sizin için işe yararsa aşağıdaki yorumlarda bize bildirin!