Android'deki izinler

Uygulama izinleri, aşağıdakilere erişimi koruyarak kullanıcı gizliliğinin desteklenmesine yardımcı olur:

  • Sistem durumu ve kullanıcıların iletişim bilgileri gibi kısıtlanmış veriler
  • Eşlenen bir cihaza bağlanma ve ses kaydetme gibi kısıtlı işlemler

Bu sayfada, izin kullanımı için üst düzey iş akışı, farklı izin türlerinin açıklamaları ve uygulamanızda izinleri kullanmayla ilgili bazı en iyi uygulamalar da dahil olmak üzere Android izinlerinin işleyiş şekli hakkında genel bilgiler verilmektedir. Diğer sayfalarda, uygulamanızın izin isteklerini en aza indirme, izinleri belirtme, çalışma zamanı izinleri isteme ve diğer uygulamaların uygulamanızın bileşenleriyle etkileşimde bulunma şeklini kısıtlama açıklanmaktadır.

Android uygulama izinlerinin tam listesini görüntülemek için permissions API referans sayfasını ziyaret edin.

İzin iş akışını gösteren bazı örnek uygulamaları görüntülemek için GitHub'daki Android izin örnekleri deposunu ziyaret edin.

İzinleri kullanma iş akışı

Uygulamanız kısıtlanmış verilere veya kısıtlanmış işlemlere erişim gerektirebilecek işlevler sunuyorsa izin beyan etmek zorunda kalmadan bilgileri alıp alamayacağınızı veya işlemleri gerçekleştirip gerçekleştiremeyeceğinizi belirleyin. Uygulamanızda fotoğraf çekme, medya oynatmayı duraklatma ve alakalı reklamlar görüntüleme gibi pek çok kullanım örneğini izin beyan etmeden yerine getirebilirsiniz.

Uygulamanızın bir kullanım alanını yerine getirmek için kısıtlanmış verilere erişmesi veya kısıtlanmış işlemler gerçekleştirmesi gerektiğine karar verirseniz uygun izinleri beyan edin. Yükleme zamanı izinleri olarak bilinen bazı izinler, uygulamanız yüklendiğinde otomatik olarak verilir. Çalışma zamanı izinleri olarak bilinen diğer izinler, uygulamanızın bir adım daha ileri gitmesini ve çalışma zamanında izin istemesini gerektirir.

Şekil 1'de uygulama izinlerini kullanma iş akışı gösterilmektedir:

Şekil 1. Android'de izinleri kullanmak için üst düzey iş akışı.

İzin türleri

Android; izinleri, yükleme zamanı izinleri, çalışma zamanı izinleri ve özel izinler gibi farklı kategorilere ayırır. Her bir izin türü, sistem uygulamanıza bu izni verdiğinde uygulamanızın erişebileceği kısıtlanmış verilerin kapsamını ve uygulamanızın yapabileceği kısıtlanmış işlemlerin kapsamını belirtir. Her bir iznin koruma düzeyi, türüne bağlıdır ve permissions API referansı sayfasında gösterilir.

Yükleme zamanı izinleri

Soldaki resimde, bir uygulamanın yükleme sırasındaki izinlerinin listesi gösterilmektedir. Sağdaki resimde, 2 seçenek içeren bir pop-up iletişim kutusu gösterilmektedir: izin ver ve reddet.
Şekil 2. Bir uygulamanın uygulama mağazasında görünen yükleme sırasındaki izinlerinin listesi.

Yükleme süresi izinleri, uygulamanızın kısıtlanmış verilere sınırlı erişmesine veya sistemi ya da diğer uygulamaları minimum düzeyde etkileyen kısıtlanmış işlemler gerçekleştirmesine izin verir. Uygulamanızda yükleme zamanı izinlerini beyan ettiğinizde uygulama mağazası, kullanıcı bir uygulamanın ayrıntılar sayfasını görüntülediğinde kullanıcıya Şekil 2'de gösterildiği gibi yükleme zamanı izni bildirimi sunar. Kullanıcı uygulamanızı yüklediğinde sistem, uygulamanıza bu izinleri otomatik olarak verir.

Android, normal izinler ve imza izinleri de dahil olmak üzere yükleme sırasındaki izinlerin birkaç alt türünü içerir.

Normal izinler

Bu izinler, uygulamanızın korumalı alanının ötesine geçen veri ve işlemlere erişim sağlar, ancak kullanıcının gizliliği ve diğer uygulamaların çalışması için çok az risk oluşturur.

Sistem, normal koruma düzeyini normal izinlere atar.

İmza izinleri

Sistem, yalnızca uygulama, izni tanımlayan uygulama veya işletim sistemi ile aynı sertifika tarafından imzalandığında uygulamaya imza izni verir.

Otomatik doldurma veya VPN hizmetleri gibi ayrıcalıklı hizmetler uygulayan uygulamalar da imza izinlerinden yararlanır. Hizmetlere yalnızca sistemin bağlanabilmesi için bu uygulamalar hizmet bağlama imza izinleri gerektirir.

Sistem, imza izinlerine signature koruma düzeyini atar.

Çalışma zamanı izinleri

2 seçenek içeren bir pop-up iletişim kutusu: izin ver ve reddet.
Şekil 3. Uygulamanız çalışma zamanı izni istediğinde görünen sistem izin istemi.

Tehlikeli izinler olarak da bilinen çalışma zamanı izinleri, uygulamanızın kısıtlanmış verilere ek erişmesine olanak tanır veya uygulamanızın sistemi ve diğer uygulamaları daha önemli ölçüde etkileyen kısıtlanmış işlemler yapmasına olanak tanır. Dolayısıyla, kısıtlanmış verilere erişebilmek veya kısıtlanmış işlemleri gerçekleştirebilmek için önce uygulamanızda çalışma zamanı izinleri istemeniz gerekir. Bu izinlerin daha önce verildiğini varsaymayın. Bunları kontrol edin ve gerekirse her erişimden önce isteyin.

Uygulamanız çalışma zamanı izni istediğinde sistem, Şekil 3'te gösterildiği gibi bir çalışma zamanı izni istemi sunar.

Birçok çalışma zamanı izni, hassas olabilecek bilgiler içeren özel bir kısıtlanmış veri türü olan gizli kullanıcı verilerine erişir. Gizli kullanıcı verilerine örnek olarak konum ve iletişim bilgileri verilebilir.

Mikrofon ve kamera, özellikle hassas bilgilere erişim sağlar. Dolayısıyla sistem, uygulamanızın bu bilgilere neden eriştiğini açıklamanıza yardımcı olur.

Sistem, dangerous koruma düzeyini çalışma zamanı izinlerine atar.

Özel izinler

Özel izinler belirli uygulama işlemlerine karşılık gelir. Yalnızca platform ve OEM'ler özel izinler tanımlayabilir. Buna ek olarak, platform ve OEM'ler, diğer uygulamaların üzerinde görüntüleme gibi özellikle güçlü işlemlere erişimi korumak istediklerinde genellikle özel izinler tanımlarlar.

Sistem ayarlarındaki Özel uygulama erişimi sayfası, kullanıcı tarafından açılıp kapatılabilen bir dizi işlem içerir. Bu işlemlerin çoğu özel izinler olarak uygulanır.

Özel izinler isteme hakkında daha fazla bilgi edinin.

Sistem, appop koruma düzeyini özel izinlere atar.

İzin grupları

İzinler, izin gruplarına ait olabilir. İzin grupları, mantıksal olarak birbiriyle alakalı izinlerden oluşur. Örneğin, SMS mesajı gönderme ve alma izinleri aynı gruba ait olabilir. Her iki özellik de uygulamanın SMS ile etkileşimiyle ilgilidir.

İzin grupları, bir uygulama yakından ilgili izinler istediğinde sistemin, kullanıcıya gösterilen sistem iletişim kutusu sayısını en aza indirmesine yardımcı olur. Kullanıcıya bir uygulama için izin vermesi istendiğinde aynı gruba ait izinler aynı arayüzde sunulur. Ancak izinler, gruplar önceden haber verilmeksizin değiştirilebilir. Bu nedenle, belirli bir iznin başka herhangi bir izinle birlikte gruplandırıldığını varsaymayın.

En iyi uygulamalar

Uygulama izinleri, sistem güvenlik özelliklerini temel alır ve Android'in kullanıcı gizliliğiyle ilgili aşağıdaki hedefleri desteklemesine yardımcı olur:

  • Kontrol: Kullanıcı, uygulamalarla paylaştığı veriler üzerinde kontrol sahibidir.
  • Şeffaflık: Kullanıcı, uygulamanın hangi verileri kullandığını ve uygulamanın bu verilere neden eriştiğini anlar.
  • Minimum veri toplama: Bir uygulama, yalnızca kullanıcının çağırdığı belirli bir görev veya işlem için gerekli olan verilere erişir ve bu verileri kullanır.

Bu bölümde, izinleri uygulamanızda etkili şekilde kullanmayla ilgili bir dizi temel en iyi uygulama sunulmaktadır. Android'de izinlerle nasıl çalışabileceğiniz hakkında daha ayrıntılı bilgi için uygulama izinleriyle ilgili en iyi uygulamalar sayfasını ziyaret edin.

Minimum sayıda izin isteyin

Kullanıcı, uygulamanızda belirli bir işlem istediğinde uygulamanız yalnızca bu işlemi tamamlamak için gereken izinleri istemelidir. İzinleri nasıl kullandığınıza bağlı olarak, hassas bilgilere erişime bağlı kalmadan uygulamanızın kullanım alanını yerine getirmenin alternatif bir yolu olabilir.

Çalışma zamanı izinlerini belirli işlemlerle ilişkilendirme

İzinleri, uygulamanızın kullanım alanı akışında mümkün olduğunca geç isteyin. Örneğin, uygulamanız kullanıcıların diğer kullanıcılara sesli mesaj göndermesine izin veriyorsa kullanıcı mesajlaşma ekranına gidip Sesli mesaj gönder düğmesine basana kadar bekleyin. Kullanıcı düğmeye bastıktan sonra uygulamanız mikrofona erişim isteğinde bulunabilir.

Uygulamanızın bağımlılıklarını göz önünde bulundurun

Eklediğiniz bir kitaplığın izin gereksinimlerini de devralırsınız. Her bir bağımlılığın gerektirdiği izinleri ve bu izinlerin ne için kullanıldığını göz önünde bulundurun.

Şeffaf olun

Kullanıcıların bilinçli kararlar alabilmeleri için izin isteğinde bulunurken neye eriştiğinizi, neden erişim sağladığınızı ve izinlerin reddedilmesi durumunda hangi işlevlerin etkileneceğini açıkça belirtin.

Sistem erişimlerini uygunsuz yap

Kamera veya mikrofon gibi hassas verilere ya da donanımlara eriştiğinizde, sistem bu göstergeleri zaten sağlamıyorsa uygulamanızda kesintisiz bir uyarı sağlayın. Bu hatırlatıcı, kullanıcıların uygulamanızın kısıtlanmış verilere tam olarak ne zaman eriştiğini veya kısıtlanmış işlemler gerçekleştirdiğini anlamalarına yardımcı olur.

Sistem bileşenlerindeki izinler

İzinler yalnızca sistem işlevselliği isteğinde bulunmak için değildir. Uygulamanızın sistem bileşenleri, diğer uygulamalarla etkileşimlerin nasıl kısıtlanacağı hakkında sayfada açıklandığı gibi, diğer uygulamaların uygulamanızla etkileşimde bulunabileceğini kısıtlayabilir.