Rehber Flatpak uygulamaları için mikrofon iznini reddetmek

NapsakLan

Hectopat
Katılım
6 Eylül 2022
Mesajlar
96
Çözümler
1
Birçok Flatpak uygulaması ses oynatabilmek için --socket=pulseaudio iznine sahiptir. Ancak bu izin aynı zamanda o Flatpak uygulamasının mikrofonunuzu dinlemesine ve diğer uygulamaların oynattığı seslere de erişebilmesini sağlar. Ne yazık ki Flatpak geliştiricileri henüz bu iş için izole bir ses portalı implement etmediler. Ancak eğer PipeWire kullanan bir Linux dağıtımı kullanıyorsanız, Flatpak uygulamalarına --socket=pulseaudio izni verdiğiniz halde o Flatpak uygulamalarının mikrofonunuza ve diğer uygulamaların seslerine erişmesini engelleyebilirsiniz. Hemen başlayalım:

1-) Öncelikle flatpak.conf adıyla $HOME/.config/pipewire/pipewire-pulse.conf.d/ klasöründe bir dosya oluşturuyorsunuz. Eğer bu klasörler sizde mevcut değilse, kendiniz oluşturunuz.
2-) flatpak.conf dosyamızın içine şunu kopyalayıp yapıştırıyoruz:
Kod:
pulse.rules = [
    {
        matches = [
            { pipewire.client.access = "flatpak" }
        ]
        actions = {
            quirks = [ b-record-stream ]
        }
    }
]
3-) Son olarak systemctl restart --user pipewire-pulse komudunu çalıştırıyoruz.
Böyle bir şekilde --socket=pulseaudio iznine sahip Flatpak uygulamaları sizin mikrofonunuza ve diğer uygulamaların oynattığı sese erişemez. Ancak ses oynatabilmesini engellemez. Eğer bütün Flatpak uygulamalarını kısıtlamak yerine sadece istediklerinizi kısıtlamak istiyorsanız şu tarz bir yolda mevcuttur:
Kod:
pulse.rules = [
    {
        matches = [
            { pipewire.access.portal.app_id = "org.telegram.desktop" },
            { pipewire.access.portal.app_id = "com.brave.Browser" }
        ]
        actions = {
            quirks = [ b-record-stream ]
        }
    }
]
Burada örnek olarak sadece Telegram ve Brave Flatpak uygulamalarına bu kısıtlamayı uygulamış bulunmaktayız. Eğer sadece belli Flatpak uygulamalarını kısıtlanmamasını istiyorsanız ancak diğer tüm Flatpak uygulamalarının kısıtlanmasını istiyorsanız şu tarz bir yolda mevcuttur:
Kod:
pulse.rules = [
    {
        matches = [
            {
                pipewire.access.portal.app_id = "!org.telegram.desktop",
                pipewire.access.portal.app_id = "!com.brave.Browser"
            }
        ]
        actions = {
            quirks = [ b-record-stream ]
        }
    }
]
Burada örnek olarak Telegram ve Brave Flatpak uygulamaları dışındaki tüm Flatpak uygulamalarını kısıtlamış oluyoruz. Fark ettiyseniz başlarındaki ünlem işareti "buna eşit değilse" anlamına geliyor. Ve gene fark ettiyseniz Brave ve Telegram Flatpak uygulamalarını ayrı süslü parantezlere almak yerine tek bir süslü parantez içine aldım. Eğer ayrı süslü parantezlerine almış olsaydım bu "veya" anlamına gelirdi. Bu şekilde ise "ve" anlamına geliyor.

Flatpak'e uzun bir zaman boyunca izole bir ses portalı gelmeyecek gibi duruyor. Ama bu yolla böyle bir güvenlik sağlayabilirsiniz. Esenlikler dilerim.
Not: Kısıtlamak istediğiniz Flatpak uygulamalarına sandbox kaçışı diyeceğimiz tarzda izinler vermediğinizi varsayıyorum.
Not-2: Kısıtlamak istediğiniz Flatpak uygulamalarına --filesystem=xdg-run/pipewire-0 iznini vermediğinizi varsayıyorum.
Not-3: Ben bunu sadece Fedora Kinoite'de denedim. Diğer dağıtımlarda da çalışıyor mu diye test etmedim.
 
Son düzenleme:
Bu siteyi kullanmak için çerezler gereklidir. Siteyi kullanmaya devam etmek için çerezleri kabul etmelisiniz. Daha Fazlasını Öğren.…