<izin>

söz dizimi:
<permission android:description="string resource"
            android:icon="drawable resource"
            android:label="string resource"
            android:name="string"
            android:permissionGroup="string"
            android:protectionLevel=["normal" | "dangerous" |
                                     "signature" | ...] />
şunları içerir:
<manifest>
description:
Bu uygulamanın veya diğer uygulamaların belirli bileşenlerine ya da özelliklerine erişimi sınırlamak için kullanılan bir güvenlik izni beyan eder. İzinlerin işleyiş şekli hakkında daha fazla bilgi edinmek için uygulama manifesti genel bakışındaki İzinler bölümüne ve Güvenlik ipuçlarına göz atın.
özellikler:
android:description
İznin, etiketten daha uzun ve daha bilgilendirici olan, kullanıcı tarafından okunabilir bir açıklaması. Örneğin, kullanıcıdan başka bir uygulamaya izin vermesi istendiğinde, izni kullanıcıya açıklamak için görüntülenebilir.

Bu özellik, bir dize kaynağına başvuru olarak ayarlanır. label özelliğinden farklı olarak bu, ham dize olamaz.

android:icon
İzni temsil eden bir simge için çekilebilir kaynak referansı.
android:label
İzin için kullanıcı tarafından okunabilir bir ad.

Kolaylık sağlaması açısından etiket, uygulamayı geliştirirken doğrudan ham dize olarak ayarlanabilir. Ancak uygulama yayınlanmaya hazır olduğunda, kullanıcı arayüzündeki diğer dizeler gibi yerelleştirilebilmesi için bunu bir dize kaynağına referans olarak ayarlayın.

android:name
İzin vermek için kodda kullanılacak ad (ör. <uses-permission> öğesi veya uygulama bileşenlerinin permission özellikleri).

Not: Tüm paketler aynı sertifikayla imzalanmadığı sürece sistem, birden fazla paketin aynı ada sahip bir izni beyan etmesine izin vermez. Bir paket bir izin bildirirse sistem, bu paketler ilk paketle aynı sertifikayla imzalanmadığı sürece kullanıcının aynı izin adına sahip diğer paketleri yüklemesine izin vermez.

Bu nedenle Google, ters alan stilinde adlandırmayı kullanarak izinlerin önüne uygulamanın paket adını eklemenizi önerir. Bu ön eki .permission. ile takip edin ve ardından iznin üst SNAKE_CASE içinde temsil ettiği işlevin açıklamasını takip edin. Örneğin: com.example.myapp.permission.ENGAGE_HYPERSPACE.

Bu önerinin uygulanması, adlandırma çakışmalarını önler ve özel iznin sahibi ile amacını net bir şekilde belirlemeye yardımcı olur.

android:permissionGroup
Bu izni bir gruba atar. Bu özelliğin değeri, bu veya başka bir uygulamada <permission-group> öğesiyle tanımlanan grup adıdır. Bu özellik ayarlanmazsa izin bir gruba ait değildir.
android:protectionLevel

İzinde belirtilen potansiyel riski tanımlar ve izin isteyen bir uygulamaya iznin verilip verilmeyeceğini belirlerken sistemin uygulayacağı prosedürü belirtir.

Her koruma düzeyi, bir temel izin türü ve sıfır veya daha fazla işaretten oluşur. Örneğin, "dangerous" koruma seviyesinde işaret yoktur. Buna karşılık "signature|privileged" koruma seviyesi, "signature" temel izin türü ile "privileged" işaretinin bir kombinasyonudur.

Aşağıdaki tabloda tüm temel izin türleri gösterilmektedir. İşaretlerin listesi için protectionLevel adresine bakın.

Değer Anlamı
"normal" Varsayılan değer. İstekte bulunan uygulamaların diğer uygulamalar, sistem veya kullanıcılar için minimum riskle uygulama düzeyindeki izole özelliklere erişmesini sağlayan, daha düşük riskli bir izin. Sistem, istekte bulunan bir uygulamaya yükleme sırasında kullanıcıdan açık onay istemeden bu tür bir izni otomatik olarak verir. Bununla birlikte, kullanıcı her zaman için bu izinleri yüklemeden önce gözden geçirme seçeneğine sahiptir.
"dangerous" İstekte bulunan bir uygulamanın, kullanıcıyı olumsuz etkileyebilecek özel kullanıcı verilerine veya cihaz üzerinde kontrolüne erişmesine olanak tanıyan daha yüksek riskli bir izin. Bu izin türü potansiyel bir risk doğurduğundan sistem, isteği gönderen uygulamaya bu izni otomatik olarak vermeyebilir. Örneğin, bir uygulama tarafından istenen tehlikeli izinler kullanıcıya gösterilebilir ve devam etmeden önce onay gerekebilir ya da kullanıcının bu tür tesislerin kullanımına otomatik olarak izin vermemesi için başka bir yaklaşım uygulanabilir.
"signature" Sistemin yalnızca istekte bulunan uygulamanın, izni beyan eden uygulamayla aynı sertifikayla imzalanması durumunda verdiği izin. Sertifikalar eşleşirse sistem, kullanıcıyı bilgilendirmeden veya kullanıcının açık onayını istemeden otomatik olarak izni verir.
"knownSigner" Sistemin yalnızca istekte bulunan uygulamanın izin verilen bir sertifika ile imzalanması durumunda verdiği izin. İstekte bulunanın sertifikası listelenirse sistem, kullanıcıya haber vermeden veya kullanıcının açık onayını istemeden otomatik olarak izni verir.
"signatureOrSystem"

"signature|privileged" ile eski eş anlamlı kelime. API düzeyi 23'te kullanımdan kaldırılmıştır.

Sistemin yalnızca Android sistem görüntüsünde özel bir klasörde bulunan veya izni beyan eden uygulamayla aynı sertifikayla imzalanmış uygulamalara verdiği izin. "signature" koruma seviyesi çoğu ihtiyaç için yeterli olduğundan ve uygulamaların nereye yüklendiğine bakılmaksızın çalıştığından bu seçeneği kullanmaktan kaçının.

"signatureOrSystem" izni, birden fazla tedarikçi firmanın bir sistem görüntüsünde yerleşik uygulamalara sahip olduğu ve belirli özellikleri birlikte oluşturulduklarından açıkça paylaşmalarının gerektiği belirli özel durumlarda kullanılır.

kullanıma sunulduğu tarih:
API düzeyi 1
şuna da bakabilirsiniz:
<uses-permission>
<permission-tree>
<permission-group>