Bu, orijinali İngilizce olan bir sayfanın çevirisidir.

Android ve Kullanıcıların Özgürlüğü

Android, kullanıcılarının özgürlüğüne ne ölçüde saygı duyuyor? Özgürlüğe değer veren bir bilgisayar kullanıcısı için herhangi bir yazılım sistemi hakkında sorulması gereken en önemli soru budur.

Free/libre yazılım hareketinde kullanıcıların özgürlüğüne saygı duyan bir yazılım geliştiriyoruz, böylece biz ve siz özgür olmayan yazılımlardan kurtulabiliyoruz. Aksine “açık kaynak” fikri kodun nasıl geliştirileceğine odaklanır; asıl değeri özgürlükten ziyade kod kalitesi olan farklı bir düşünce akımıdır. Dolayısıyla buradaki endişe Android'in “açık” olup olmadığı değil, kullanıcıların özgür olmasına izin verip vermediğidir.

Android; Linux (Torvalds'ın çekirdeği) ağırlıklı olmak üzere bazı kütüphaneler, bir Java platformu ve bazı uygulamalardan oluşan, cep telefonları ve diğer aygıtlar için bir işletim sistemidir. Linux bir yana Android'in 1. ve 2. sürümünün yazılımı çoğunlukla Google tarafından geliştirildi; Google, copyleft olmayan, esnek bir yazılım lisansı olan Apache 2.0 lisansı altında yayımladı.

Android'de bulunan Linux sürümü tamamen özgür bir yazılım değildir çünkü bazıları bazı Android aygıtlarda gerçekten kullanılan özgür olmayan “ikili blob'lar” (Torvalds'ın Linux sürümü gibi) içerir. Android platformları; diğer özgür olmayan aygıt yazılımlarını ve özgür olmayan kütüphaneleri de kullanır. Bunların yanı sıra Google tarafından yayımlanan Android'in 1. ve 2. sürümünün kaynak kodu özgür bir yazılımdır, ancak bu kod aygıtı çalıştırmak için yetersizdir. Genellikle Android ile birlikte gelen uygulamalardan bazıları da özgür değildir.

Android, GNU/Linux işletim sisteminden çok farklı çünkü çok az GNU içeriyor. Gerçekten de Android ve GNU/Linux arasında ortak olan tek bileşen çekirdek olan Linux'tur. Yanlışlıkla “Linux”un tüm GNU/Linux bileşimine atıfta bulunduğunu düşünen insanlar; bu gerçeklerle düğüm düğüm bağlanır ve “Android Linux içerir ancak Linux değil.” gibi çelişkili açıklamalar yaparlar.(1) Bir karışıklık yok, durum basit: Android, Linux içeriyor ancak GNU içermiyor; dolayısıyla Android ve GNU/Linux çoğunlukla farklıdır çünkü tek ortak noktaları Linux'tur.

Android'in bünyesindeki Linux, çekirdek, GNU GPL'nin 2. sürümü altında kaynak kodu ile ayrı bir program olmaya devam ediyor. Linux'u Apache 2.0 lisansı altında kodla birleştirmek; GPL'nin 2. sürümü ve Apache 2.0 uyumsuz olduğundan telif hakkı ihlali anlamına gelir. Google'nin bir şekilde Linux'u Apache lisansına dönüştürdüğü söylentileri hatalı; Google'nin, Linux'un kodundaki lisansı değiştirme yetkisi yoktur ve denememiştir. Linux'un yazarları, onun GPL'nin 3. sürümü altında kullanılmasına izin verdiyse bu kod Apache lisanslı kodla birleştirilebilir ve bileşim GPL'nin 3. sürümü altında yayımlanabilir. Ancak Linux bu şekilde yayımlanmadı.

Google; Linux için GNU Genel Kamu Lisansı gerekliliklerine uymuştur ancak Android'in geri kalanındaki Apache lisansı için kaynak yayımı gerekmez. Google, Android 3.0'ın kaynak kodunu (Linux dışında) asla yayımlamayacağını söyledi. Android 3.1 kaynak kodu da saklandı, bu da Android 3'ü, Linux dışında, saf ve basitçe özgür olmayan yazılım hâline getiriyordu.

Google; 3.0 kaynak kodunu hata dolu olduğu için sakladığını ve insanların bir sonraki sürümü beklemesi gerektiğini söyledi. Bu, Android sistemini çalıştırmak isteyen insanlar için iyi bir öneri olabilir ancak kullanıcılar buna karar verecek olanlar olmalıdır. Aslında, kendi sürümlerindeki değişikliklerin bazılarını dâhil etmek isteyen geliştiriciler ve onarıcılar bu kodu iyi kullanabilirlerdi.

Neyse ki Google daha sonra Android 3.* için kaynak kodunu 4. sürümü yayımladığında (kaynak koduyla da) yayımladı. Yukarıdaki sorunun politika değişikliğinden ziyade geçici bir sapma olduğu ortaya çıktı. Bununla birlikte bir kez olan şey tekrar da olabilir.

Her durumda Android'in çeşitli sürümlerinin kaynak kodlarının çoğu özgür yazılım olarak yayımlandı. Bu, bu Android sürümlerini kullanan ürünlerin kullanıcıların özgürlüğüne saygı gösterdiği anlamına mı geliyor? Bir kaç nedenden dolayı bu anlama gelmiyor.

Her şeyden önce onların çoğu YouTube ve Google Haritalar gibi hizmetlerle konuşmak için özgür olmayan Google uygulamalarını içerir. Bunlar resmen Android'in bir parçası değil ancak bu, ürünü iyi yapmıyor. Android'in daha önceki sürümleri için kullanılabilen özgür uygulamaların çoğu, özgür olmayan uygulamalarla değiştirildi; 2013 yılında özgür olmayan bir Google+ uygulaması dışında fotoğrafları görüntülemenin bir yolunu sağlamayan Android aygıtlar ortaya çıktı. 2014 yılında Google; TV'ler, saatler ve arabalar için Android sürümlerinin büyük ölçüde özgür olmayacağını duyurdu.

Çoğu Android aygıtı, özgür olmayan Google Play yazılımı (eskiden “Android Market”) ile birlikte gelir. Bu yazılım, bir Google hesabı olan kullanıcıları özgür olmayan uygulamalar kurmaya davet eder. Ayrıca Google'nin uygulamaları zorla kurabileceği veya kaldırabileceği bir arka kapısı vardır. (Bu muhtemelen onu evrensel bir arka kapı yaratır ancak bu kanıtlanmamıştır.) Google Play resmî olarak Android'in bir parçası değildir ancak bu onun kötülüğünü azaltmaz.

Google; birçok temel genel işlevi özgür olmayan Google Play Hizmetleri kütüphanesine taşıdı. Bir uygulamanın kendi kodu özgür bir yazılımsa ancak Google Play Hizmetleri'ne bağlıysa bu uygulama bir bütün olarak etkili bir şekilde özgür değildir; Android'in Replicant gibi özgür bir sürümünde çalışamaz.

Özgürlüğe değer veriyorsanız Google Play'ın sunduğu özgür olmayan uygulamaları istemezsiniz. Özgür Android uygulamaları kurmak için Google Play'e ihtiyacınız yoktur çünkü bunları f-droid.org adresinden edinebilirsiniz.

Android ürünleri ayrıca özgür olmayan kütüphanelerle birlikte gelir. Bunlar resmen Android'in bir parçası değil ancak çeşitli Android işlevleri onlara bağlı olduğundan herhangi bir gerçek Android kurulumunun bir parçasıdırlar.

Resmî olarak Android'in bir parçası olan programlar bile Google'nin yayımladığı kaynak koduna karşılık gelmeyebilir. Üreticiler bu kodu değiştirebilir ve genellikle kendi sürümlerinin kaynak kodunu yayımlamazlar. GNU GPL, uygun oldukları varsayılarak, Linux'un sürümleri için kodu dağıtmalarını gerektirir. Kodun geri kalanı esnek Apache lisansı altında, gerçekten kullandıkları kaynak sürümü yayımlamalarını gerektirmez.

Bir kullanıcı, Android sistemindeki telefonuyla birlikte gelen birçok programın Motorola'ya kişisel veri gönderecek şekilde değiştirildiğini keşfetti. Bazı üreticiler Carrier IQ gibi gizli bir genel gözetim paketi ekler.

Replicant, Android'in özgür sürümüdür. Replicant geliştiricileri, bazı telefon modelleri için birçok özgür olmayan kütüphaneyi başkalarıyla değiştirmiştir. Özgür olmayan uygulamalar hariç tutulur ancak kesinlikle bunları kullanmak istemezsiniz. Buna karşılık CyanogenMod (Android'in değiştirilmiş başka bir sürümü), bazı özgür olmayan programlar içerdiği için özgür değildir.

Birçok Android aygıtı “zalim”dir: Kullanıcılar kendi değiştirilmiş yazılımlarını kuramayacak ve çalıştıramayacak, yalnızca bazı şirketler tarafından onaylanan sürümleri kurabilecek ve çalıştırabilecek şekilde tasarlanmışlardır. Bu durumda çalıştırılabilir dosyalar sizin için özgür ve kullanılabilir kaynaklardan yapılmış olsalar bile özgür değildir. Bununla birlikte bazı Android aygıtlara “root atılabilir”, böylece kullanıcılar farklı yazılımlar kurabilir.

Önemli aygıt yazılımı veya sürücüler de genellikle özel mülktür. Bunlar; hücresel ağ radyosunu, WiFi'yi, bluetooth'u, GPS'yi, 3B grafikleri, kamerayı, hoparlörü ve bazı durumlarda mikrofonu da idare eder. Bazı modellerde bu sürücülerden birkaçı özgürdür ve onsuz yapabileceğiniz bazıları vardır, ancak mikrofon veya hücresel ağ radyosu olmadan yapamazsınız.

Hücresel ağ aygıt yazılımı önceden kurulmuş olarak gelir. Tek yaptığı orada durmak ve istediğiniz zaman hücresel ağla haberleşmek olsaydı bunu bir devreye eş değer olarak görebilirdik. Bir bilgisayar aygıtındaki yazılımın özgür olması gerektiğinde ısrar ettiğimizde, yükseltilmeyecek önceden kurulmuş aygıt yazılımını hiçbir zaman göz ardı edemeyiz, çünkü kullanıcı için bir devre yerine bir program olması fark etmez.

Ne yazık ki bu durumda kötücül bir devre olacaktır. Kötücül özellikler nasıl uygulanırsa uygulansınlar kabul edilemez.

Çoğu Android aygıtta bu aygıt yazılımı o kadar fazla denetime sahiptir ki ürünü bir dinleme aygıtına dönüştürebilir. Bazılarında mikrofonu denetler. Bazılarında paylaşımlı bellek yoluyla ana bilgisayarın bütün denetimini ele geçirebilir ve böylece kurduğunuz özgür yazılımı geçersiz kılabilir veya değiştirebilir. Bazı, belki de tüm, modellerde aygıttaki yazılımın geri kalanının üzerine yazmak için bu aygıt yazılımının uzaktan denetimini yapmak mümkündür. Özgür yazılımın amacı; yazılımımızı ve bilişimimizi kendimizin denetlemesidir; arka kapılı bir sistem buna uygun değildir. Herhangi bir bilişim sisteminde hata olabilirken bu aygıtların kendisi hata olabilir. (Semerkant'taki Cinayet'teki Craig Murray, kuşkulanmayan bir hedefin Android olmayan taşınabilir telefonunu uzaktan dinleme aygıtına dönüştüren bir istihbarat operasyonuna katılımını anlatıyor.)

Her durumda bir Android telefondaki hücresel ağ aygıt yazılımı bir devreye eş değer değildir çünkü donanım yeni sürümlerin kurulmasına izin verir ve bu aslında yapılır. Özel mülk aygıt yazılımı olduğundan pratikte yalnızca üretici yeni sürümler yapabilir, kullanıcılar yapamaz.

Bu noktaları bir araya getirerek yeni sürümlerinin yüklenmemesi koşuluyla özgür olmayan hücresel ağ aygıt yazılımına katlanabiliriz, ana bilgisayarın denetimini alamaz ve yalnızca özgür işletim sistemi iletişim kurmayı seçtiğinde iletişim kurabilir. Başka bir deyişle devre ile eş değer olmalıdır ve bu devre kötücül olmamalıdır. Bu özelliklere sahip bir Android telefon oluşturmak için teknik bir engel yoktur ancak hiçbirinden haberdar değiliz.

Android kendi kendini barındıran bir sistem değildir; Android için geliştirmenin başka bir sistemde yapılması gerekiyor. Google'nin “yazılım geliştirme takımı”ndaki (SDK) araçlar, özgür gibi gözüküyor ancak bunu doğrulamak zor. Belirli Google API'ları için tanım dosyaları özgür değildir. SDK'yi kurmak, imzalamayı reddetmeniz gereken özel mülk bir yazılım lisansının imzalanmasını gerektiriyor. Replicant'ın SDK'si özgür bir ikamedir.

Android'in son basın haberleri patent savaşlarına odaklanıyor. Yazılım patentlerinin kaldırılmasına yönelik 20 yıllık kampanya boyunca bu tür savaşların olabileceği konusunda uyardık. Yazılım patentleri Android'den özelliklerin kaldırılmasına zorlayabilir veya hatta kullanılamaz hâle getirebilir. Yazılım patentlerinin neden kaldırılması gerektiği hakkında daha fazla bilgi için endsoftpatents.org adresine bakabilirsiniz.

Bununla birlikte patent saldırıları ve Google'nin yanıtları bu yazının konusuyla doğrudan ilgili değildir, bu yazının konusu Android ürünlerinin kısmen etik bir dağıtım sistemine nasıl yaklaştığı ve nasıl yetersiz kaldığıdır. Bu sorun, basının da ilgisine layıktır.

Android; etik, kullanıcı denetimli, özgür yazılım taşınabilir bir telefona doğru atılan önemli bir adımdır ancak gidecek daha çok yol var ve Google yanlış yönde ilerliyor. Üstatlar [1], Replicant üzerinde çalışıyor ancak yeni bir aygıt modelini desteklemek büyük bir iş ve aygıt yazılımı sorunu devam ediyor. Bugünün Android telefonları, Apple veya Windows telefonlardan çok daha az kötü olsa da özgürlüğünüze saygı duydukları söylenemez.

Dipnotlar

  1. Bu karışıklığın en uç örneği, “Android aygıtlarınıza Linux [sic] kurulumu” için yardım sunan linuxonandroid.com sitesinde yer almaktadır. Bu tamamen yanlıştır: Kurdukları şey Android'in bir parçası olarak zaten mevcut olan, Linux hariç, GNU sisteminin bir sürümüdür. Bu site yalnızca özgür olmayan GNU/Linux dağıtımlarını desteklediğinden önermiyoruz.
[1] Burada kullanılan hacker, üstat anlamındadır: teknik beceri sahibi, problem çözmeden zevk alan ve sınırları aşan kişiler, belirli bir konuda sahip olduğu bilgiyi kullanıp daha fazlasını öğrenmeye meraklı kişiler.