- Android 14, PC için web kamerası kullanırken ayrı uygulamalara duyulan ihtiyacı azaltarak işletim sistemi düzeyinde USB web kamerası modu sunulmasını mümkün kılıyor
- Yeni USB Preferences seçeneği, cihazı UVC (USB Video Class) moduna geçirerek Windows, macOS ve Linux PC’lerin onu standart bir USB web kamerası olarak tanımasını sağlıyor
- Ancak özellik otomatik olarak etkinleşmiyor; çekirdek ayarları ve UVC yapılandırması, USB HAL güncellemesi ve Webcam Service sistem uygulamasının uyumlu olması gerekiyor
- Webcam Service, Camera2 API karelerini
/dev/videodüğümüne iletir; kullanıcılar bildirim üzerinden önizleme, yakınlaştırma ve lens değiştirme kontrollerini kullanabilir - Android 14’e yükseltilen cihazlar bile eski çekirdek veya HAL kısıtları varsa kapsam dışında kalabilir; bu nedenle gerçek destek, üreticinin uygulamasına bağlı
Android 14’ün USB web kamerası modu
- Android 14’ten itibaren akıllı telefonu PC için web kamerası olarak kullanma özelliği Android OS’in kendisine dahil edilebilir
- COVID döneminde Zoom, Google Meet gibi görüntülü toplantı platformlarının kullanımı arttı, ancak iyi web kameralarını bulmak zor ya da pahalıydı; dizüstü bilgisayarların yerleşik web kameralarının kalitesi de sınırlıydı
- Akıllı telefon kameraları çoğu web kamerasından daha iyi görüntü kalitesi sunduğu için, daha önce birçok kullanıcı üçüncü taraf yazılımlarla akıllı telefonunu web kamerası gibi kullanıyordu
- Android 14’te USB Preferences içinde USB webcam seçeneği görünebilir
- Mevcut USB modları arasında dosya aktarımı/Android Auto (MTP), USB tethering (NCM), MIDI, PTP vb. bulunur
- USB webcam seçildiğinde, cihaz destekliyorsa USB modu UVC’ye geçer
- Bağlı Windows, macOS ve Linux PC, Android cihazı standart bir USB web kamerası olarak tanır
- Bu, başka Android cihazlarda da mümkün olabilir
Özelliği etkinleştirmek için gereken koşullar
- Android 14’ün web kamerası desteği varsayılan olarak açık gelen bir özellik değil
- Gerçekten çalışması için dört koşul gerekiyor
- Linux çekirdek ayarının etkinleştirilmesi
- UVC gadget yapılandırması
- USB HAL güncellemesi
- Yeni sistem uygulamasının önceden yüklü olması
Çekirdek ayarı gereksinimleri
- Gerekli Linux çekirdek ayarı
CONFIG_USB_CONFIGFS_F_UVC - Bu ayar, Android cihazın UVC gadget olarak bağlanabilmesi için gerekli
- Android 14’e yükseltilecek birçok cihazın ve Android 14 ile çıkan neredeyse tüm cihazların bu ayarın etkin olduğu bir çekirdeğe sahip olma olasılığı yüksek
- Generic Kernel Image (GKI),
android12-5.10sürümünden itibaren bu ayarı varsayılan olarak etkinleştiriyor - Android 12 veya üstüyle piyasaya çıkan ve Linux kernel 5.10 veya üstünü kullanan cihazların GKI çekirdeği taşıması gerekiyor
- Generic Kernel Image (GKI),
- Android ekosisteminde majör çekirdek sürümü yükseltmeleri nadir olduğundan ve Google Requirements Freeze (GRF) programı eski vendor uygulamalarının da sertifikalandırılmasına imkân verdiğinden, Android 14’e yükseltilen bazı cihazlar USB web kamerası özelliğini destekleyemeyebilir
- Desteği kontrol etmenin en doğrudan yolu çekirdek sürümünü ve ayarın etkin olup olmadığını doğrulamaktır
- Çekirdek sürümünü kontrol etme:
adb shell "cat /proc/version"
- Çekirdek ayarını kontrol etme:
adb shell "zcat /proc/config.gz | grep 'CONFIG_USB_CONFIGFS_F_UVC'"
- Çekirdek sürümünü kontrol etme:
- Örneğin Android 13 çalıştıran Galaxy Z Fold 5,
android13-5.15GKI kullanıyor veCONFIG_USB_CONFIGFS_F_UVC=yayarına sahip; bu nedenle Android 14’e yükseltildiğinde, diğer ön koşulları da karşılaması şartıyla USB web kamerası özelliğini destekleyebilir
Webcam Service sistem uygulaması
- Bazı Pixel cihazları için Android 14 QPR1 beta, Webcam Service adlı yeni bir sistem uygulaması içeriyor
- Paket adı
com.android.deviceaswebcam libjni_deviceAsWebcam.sopaylaşımlı kitaplığına bağımlı- Bu uygulama ve kitaplık, Android 14’ün planlanan kaynak kodu sürümüne dahil edilecek
- Paket adı
- Webcam Service uygulaması, Android cihazı web kamerasına dönüştüren DeviceAsWebcam hizmetini uygular
- Bu hizmet, kamera karelerini ana cihazın okuyabileceği
/dev/videodüğümüne iletir - SELinux policy uyarınca
/dev/videodüğümüne yalnızcadevice_as_webcamalanındaki süreçler erişebilir- Gerçek erişen taraf yalnızca Webcam Service sistem uygulamasıdır
- Dolayısıyla Android 14’ün yerel USB web kamerası desteğini cihaz üreticileri kullanabilir; üçüncü taraf uygulamalar doğrudan kullanamaz
USB web kamerasının başlatılması ve kullanıcı kontrolü
- USB Preferences’ta yeni USB webcam seçeneği açıldığında sistem
android.hardware.usb.action.USB_STATEintent’ini broadcast eder- Intent,
connectedveuvcextras içerir
- Intent,
- Webcam Service, bu intent’i alan bir receiver’a sahiptir
uvcextra değeritrueolarak ayarlanırandroid.hardware.usb#isUvcSupportEnabled()framework metodutruedöndürür- İki koşul sağlandığında sistem hizmetini başlatır
isUvcSupportEnabled(), sistem özelliğiro.usb.uvc.enabledtrueolduğundatruedöndürür- Bu özellik OEM tarafından build zamanında ayarlanmalıdır
- Ayarlanmazsa USB Preferences’ta USB webcam seçeneği gösterilmez ve Webcam Service de başlatılmaz
- Bu özelliği yalnızca Settings ve Webcam Service gibi sistem uygulamaları okuyabilir
- Webcam Service başlatıldığında, kullanıcının web kamerasını ayarlayabileceği yeni bir bildirim gösterilir
- Bildirime dokunulduğunda kamera önizlemesi açılır
- Kullanıcı yakınlaştırma/uzaklaştırma veya lens değiştirme yapabilir
- İçeride Webcam Service uygulaması, sistem tarafından sonlandırılmamak için bir foreground service başlatır
- Camera2 API’yi kullanır ve 720p (1280×720) veya 1080p (1920×1080) akışı destekler
- Bağlı ana cihazda web kamerası cihaz adı Android Webcam olarak gösterilir
ConfigFS ve USB HAL
- Ana cihazda görünen ad, video parametreleri ve tam kodlama yöntemi, cihaz üreticisinin UVC gadget’ı configfs ile nasıl yapılandırdığına bağlıdır
- Tensor tabanlı Pixel cihazlarda Google’ın UVC gadget function yapılandırması,
/vendor/etc/init/hwiçindekiinit.gs[101|201].usb.rcdosyalarında bulunur - Android’in Settings’te seçilen USB modunu UVC’ye çevirebilmesi için güncellenmiş USB HAL gerekir
- GRF programı nedeniyle Android 14’e yükseltilen birçok cihazın güncellenmiş USB HAL almayabileceği olasıdır; bu durumda özellik çalışmaz
Platform desteği ve sınırlar
- Google, Android’e yerel USB web kamerası özelliğini uyguladığı için, bu özelliği isteyen cihaz üreticileri onu benimseyebilir
- Webcam Service uygulaması beklendiği gibi AOSP’ye dahil edilirse, cihaz üreticileri web kamerası özelliğini uygulamak için bundan yararlanabilir
- Apple’ın Continuity Camera özelliğiyle karşılaştırılabilir, ancak Android yaklaşımı birden fazla platformda çalışır
- Android 14 çalıştıran ve gereksinimleri karşılayan telefonlar standart bir USB web kamerasına dönüştürülerek tüm PC’lerde kullanılabilir
1 yorum
Hacker News yorumları
scrcpy bu amaç için zaten harika: https://github.com/Genymobile/scrcpy
OBS'de telefon kamerasını yayınlamak için
adbile cihazı bekleyip,wlan0IP'sini alıp,adb tcpip 5555veadb connectile bağlandıktan sonrascrcpy -e --v4l2-sink=/dev/video0 --lock-video-orientation=1 -n -Nçalıştırmak yeterliKaynaktan derleyebiliyorsanız PR'ın üstüne ek commit'ler de koydum; Android'in sınırlı yüksek hızlı yakalama modunu desteklediği için 120fps/240fps kamera yayını mümkün oluyor. Toplantılar için pek işe yaramaz ama yüksek kare hızlı karma gerçeklik VR videoları yakalamakta faydalı. Bildiğim kadarıyla, ister kapalı kaynak ister açık kaynak olsun, 60fps'i aşan bir Android webcam uygulaması yok
adbaraç setin epey oturmuş görünüyor; benim tarafta eksik kalan iki şey için tavsiye merak ediyorum. Biri ADB/TCP sabit portu ayarlamak ya da PC'ye otomatik yönlendirmek; Android artık her seferinde portu değiştiriyor. Diğeri mobil hotspot üzerinde ADB/TCP'yi açmak; Android “Please connect to WiFi” diye şikâyet ediyorBu ikisi dışında scrcpy, KDE Connect ve Waydroid sayesinde Linux-Android entegrasyonu neredeyse kusursuz, Apple kullanıcılarını bile kıskandıracak düzeyde
Biraz konu dışı ama lockdown sırasında iPhone'u webcam olarak kullanmanın yolunu ararken VDO.Ninja'yı keşfettim: https://vdo.ninja/
Başta OBS'ye video feed'i göndermenin bir yoluydu ve bununla webcam girişini kurdum. Proje büyüdükçe tarayıcı içinde masaüstü görüntüsü ve ses paylaşımını doğrudan açan, Zoom benzeri amaçlarla da kullanılabilir hale geldi; bu sayede uzaktan sanal film geceleri düzenleyebildim
Oda oluşturma arayüzüyle de yapılabiliyor ama yalnızca URL parametreleriyle her şeyi yapılandırmak mümkün olduğundan çok daha esnek ve sağlamdı: https://docs.vdo.ninja/master/how-does-it-work
Gönderici ve alıcı URL'leri oluşturunca WebRTC ile otomatik bağlanıyorlar. Örneğin VLC penceresini yakalayıp görüntü ve ses gönderen bir kaynak oluşturabiliyor, iki hedef URL'nin bu görüntü ve sesi alırken kendi mikrofon seslerini de birbirlerine göndermesini sağlayabiliyordum. Böylece tarayıcı içinde filmi birlikte izleyip dinlerken sohbet etmek de mümkündü. Bu projeyle hiçbir ilgim yok, sadece gerçekten harika olduğunu düşünüyorum
OBS, bilgisayar ekranını Twitch gibi yerlere yayınlamak için kullanılan bir araç: https://obsproject.com/
Sevindirici bir ek özellik. Şirketler takip özellikleri veya portre modu gibi şeylere sahip kameralar yapmak için zaman ve emek harcadı
Ancak pandemi sırasında her şeyin birden uzaktan çalışmaya döndüğü ve insanların webcam bulmak için koşturduğu döneme kıyasla biraz geç çıkmış gibi hissettiriyor. O zaman üçüncü taraf uygulama satın aldırmak yerine bu özelliği sunsalardı iyi olurdu
Benim için çok az ve çok geç. Böyle “ani çıkış” yapan biri olmak istemem ama kısaca anlatayım: 2013’e kadar cep telefonu kullanmayıp sadece sabit hat kullandım, sonra Nexus 4 ile başladım ve 2-3 yılda bir Pixel 6’ya kadar yükselttim. Ama yarın ilk iPhone’um teslim edilecek.
Sebep çok. Google telefonumu harici bir ekrana takıp yansıtma yapamıyorum; DisplayPort çıkışı da hiçbir gerekçe olmadan kaynak kodda açıkça devre dışı bırakılmış: https://twitter.com/MishaalRahman/status/1189998588023234560 Başka telefonlarda gayet çalışan bir özellik.
Android telefondaki SMS’lere de ayrı bir uygulama olmadan erişilemiyor.
adb backupdenedim, olmadı; root yapılırsa belki mümkün olabilir ama bildiğim kadarıyla root süreci genelde her şeyi siliyor.Telefon yedeklerine de erişilemiyor. Yalnızca Google sunucularında tutuluyorlar ve onlara yaklaşmanın tek yolu telefona geri yüklemek. Fiziksel olarak satın aldığım cihaz elimde duruyor ama içindeki her şeye erişemiyorum. iPhone ise Windows’a ya da Mac’e takılıp yedeği bilgisayara dökebiliyor; içinde mesajlar, sistem ayarları, kişiler, fotoğraflar, veritabanları, neredeyse her şey var. Donanımsal koruma anahtarları gibi şeyler istisna olabilir.
Google’ın oyunlarına hiç girmiyorum bile. Messenger karmaşası, birçok hizmetin kapatılması, yetersiz destek, reklam ve takibin daha güçlü entegre edilmesi gibi şeyler. Apple da kusursuz değil ama bir süreliğine duvarlarla çevrili bahçeye girmeye değer gibi hissediyorum. iOS’te ekran çıkışı, kendi cihazına erişim, mantıklı bir mesajlaşma sistemi ve en azından gizliliği önemsiyormuş gibi bir his var. Paradoksal biçimde, Google ürünlerine kıyasla Apple ürünlerini kullanırken daha fazla kontrol bende gibi hissediyorum.
Örneğin şarj hızını ya da tahmini şarj süresini göremediğiniz için birkaç şarj cihazı arasından iPhone uyumlu hızlı şarj cihazını ve kablosunu seçip seçmediğinizi doğrulamak zor; Chrome ya da Firefox kurulu olsa bile metin seçip web’de ara dediğinizde Safari’ye gidiyor. Böyle küçük sinir bozucu şeyler çok ve işletim sistemi o kadar kapalı ki yapabileceğiniz bir şey yok.
Android çok daha fazla özelleştirilebiliyor; iPhone’da GBA emülatörü çalıştırmak gibi sideload işleri de daha kolay. Samsung katlanır telefonları gibi daha ilginç cihazlar da Android ekosisteminde daha fazla. Mac ile ekosistem entegrasyonu iyi ama taraflardan birinin açıkça daha iyi olduğunu söylemek zor.
Google’ın kapattığı hizmetlerden beni etkileyen olmadı; messenger karmaşasıyla ne kastedildiğini de pek bilmiyorum. Hangi desteğin yetersiz olduğu da net değil.
Pixel 1 XL harikaydı ama yaklaşık 2 yıl sonra kamera sürekli hata vermeye başladı; açılması 3 saniyeden uzun sürüyor ya da sık sık çöküyordu. Sonunda pil ömrü kötüleşti; yedek pil de birkaç ay içinde yıpranınca geçtim.
Pixel 3a, güvenlik güncellemelerinin bitmesine iki ay kala cebimden düşüp kırıldı. Genel olarak iyi bir telefondı ama Google beklediğim kadar uzun desteklemedi. Pixel 6 Pro şu ana kadar fena değil, fakat eşimin Pixel 5’inde yavaş performans ve kararsız hücresel bağlantı gibi sorunlar var.
Çıkarılacak ders “Pixel telefon alma” olabilir ama alternatifler güvenlik açısından daha çok kâbusa benzeyebilir. Galaxy telefonlarda silinmesi gereken inanılmaz miktarda çöp uygulama önceden yüklüydü. Pixel’de yalnızca Google uygulamaları var ve çoğu kaldırılabiliyor; bu yüzden önceden 30 şirketin uygulamasının yüklü olduğu ve belki de silinemediği bir telefona kıyasla gizlilik ve güvenlik endişesi daha az.
Yıllardır Apple’ı çok eleştirdim; sonunda platform değiştirmek en iyi seçenek gibi göründüğü için hayal kırıklığına uğruyorum.
Bazı rahatsızlıklar epey sinir bozucu görünüyor ama istediğim bilgisayarda kod yazıp kendi telefonumda ya da arkadaşımın telefonunda çalıştırmak için abonelik ücreti ödeme ve herhangi bir nedenle reddedebilecek bir inceleyiciye sunma kısıtlamasını kabul edecek kadar değil.
Bu sistemlerde root
adberişimi mümkün ve böylece SQLite SMS veritabanına da erişilebiliyor. USB-C’nin DP alternatif modu üzerinden ekran yansıtma varsayılan olarak çalışıyor; Android’in “masaüstü modu” da açılabiliyor ama oldukça temel ve deneysel durumda.Fairphone uzun süre destekleniyor, onarımı kolay ve mainline kernel de çalıştırabiliyor (postmarketOS vb.). Elbette hangi Android telefon olursa olsun işletim sistemi tarafında hâlâ Google’a bağımlı.
Google’a yönelik birçok şikâyete katılıyorum ama Apple’a geçmek bir kötülüğü başka bir kötülükle değiştirmek gibi geliyor. Bir Apple telefonuna asla “benim” demem; Apple’ın “kendi cihazına erişim” sunduğunu da hissetmiyorum.
Bir yılı aşkın süredir Camo uygulamasını kullanıyorum. Çok iyi çalışıyor; kamerayı Wi‑Fi üzerinden görüntülemeyi de desteklediği için kablo gerekmiyor. Temel hesap ücretsiz: https://reincubate.com/camo/
Bu zaten birkaç yıldır yapılıyordu. Hangi anlamda desteğin hâlâ olmadığı söyleniyor, bilmiyorum
Bu özellik gelirse şu anda 250 dolar olan Pixel 6a, piyasadaki fiyat/performans açısından en iyi web kamerası olma ihtimali yüksek
Çok sinir bozucu bir indirim sitesinde, 6 ay sonra operatör kilidinin otomatik olarak açılacağı yazıyordu. Site çok sinir bozucu olduğu için link vermeyeceğim. 6 aylık sayacın başlaması için telefonu mutlaka etkinleştirmeniz gerekiyor
Bildiğim kadarıyla Nokia N900’de 2009’da gstreamer ile bu mümkündü. Gerçekte bir video cihazı oluşturup kullanmadım ama
v4l2sinko zaman da zaten vardı diye düşünüyorum. Uzak pencere ve OpenCV ile akış yapmak için epey birkaç kez kullandımŞimdiye kadar sahip olduğum tek iyi telefondu. Android cihazlarda da işlerin bu kadar kolay olmasını isterdim ama garip şekilde neredeyse hiçbir zaman öyle olmuyor
Bu da zor bir iş ve saygıyı hak ediyor. Ama yazılıma yönelik bu sert ve muhafazakâr bakış açısının uzun süredir üretilen şeyleri tamamen domine ettiği hissine kapılıyorum. Güçlü kullanıcılara sağlam bir dayanak sunmaya çalışan bilişim giderek azalıyor. Teknoloji sürekli mesafeyi açıyor ve daha anlaşılmaz hâle geliyor. İronik biçimde bunun nedeni, daha derine inip uzman ya da kâşif olmak isteyenler için giriş yollarını sürekli kaybetmemiz
Android telefonu araç kamerası olarak kullanabilsek güzel olurdu. Ne zaman mümkün olacak? Olması çok doğal görünen bir özellik gibi duruyor
Olsa iyi bir özellik, ama çoğu kişi Zoom sırasında telefonunu elinin altında tutmak isteyecektir. Yine de yedek telefonu olan çok kişi olabilir