APK Yüklemeden Önce Android Uygulama İzinlerini Görüntüleme

A smartphone showing a list of app permissions with a magnifying glass

Google Play Store'dan bir uygulama yüklediğinizde Android, uygulamanın erişebileceği şeylerin basitleştirilmiş bir özetini gösterir. Bir APK'yı Play dışı bir kaynaktan yükleyin ve bildirimi kendiniz okumadığınız sürece böyle bir güvenlik ağınız olmaz. "Bir duvar kağıdı uygulamasının gerçekten SMS ve mikrofon erişimine ihtiyacı olmalı mı?" tam olarak bu kılavuzun cevaplamanıza yardımcı olacağı türden bir sorudur.

Aşağıda, tanıdık olmayan bir APK'yı tetiklerken ekibimizin kullandığı iş akışının aynısı yer almaktadır: açın, uses-permission girişlerini okuyun, koruma seviyelerinin kodunu çözün ve diyor uygulamasının ihtiyaç duyduğu şeyleri, kategorisinin genellikle gerektirdiği şeylerle karşılaştırın. çevrimiçi APK Bilgisi aracı ürünümüz ikili XML kod çözme işlemini sizin için yapar, böylece tüm süreç yaklaşık on saniye sürer.

Okuma süresi: ~9 dakika. Gerekli araçlar: bir tarayıcı; isteğe bağlı olarak apksigner Ve aapt2 Aynı kontrolleri bir terminalden yapmak istiyorsanız Android SDK'dan. Sonunda yapabilecekleriniz: herhangi bir APK'nın tam izin listesini okuyun, neredeyse her zaman soruna işaret eden dört veya beş "yüksek etkili" isteği tespit edin ve yüklemeden önce mi, sonra mı yükleyeceğinize karar verin.

Denetim İzinlerini Neden Rahatsız Ediyorsunuz?

Kötü niyetli geliştiriciler popüler ücretsiz uygulamaları alıp bunları değiştiriyor ve üçüncü taraf sitelerde yeniden yayınlıyor. Uygulama normal görünüp çalışsa da, gizli kodu kişi listenizi kopyalıyor veya arka plan sesinizi kaydediyor olabilir. ön kurulum izinlerini görüntüleyerek "izin kayması" ile ilgili bu kırmızı bayrakları görebilirsiniz.

Herhangi Bir APK Dosyası Nasıl Denetlenir (Çevrimiçi)

APK Bilgisi aracı ürünümüz dosyanızın bildirimini tamamen tarayıcınızda okur; dosya hiçbir zaman bir sunucuya yüklenmez ve hiçbir kod yürütülmez. İşte nasıl kullanılacağı:

İşlem:

  1. APK Bilgi sayfası'ye gidin.
  2. .apk dosyanızı seçin.
  3. Analizin bitmesini bekleyin (genellikle 5 saniye).
  4. İzinler Bölümü'ye doğru aşağı kaydırın.
  5. READ_SMS, PROCESS_OUTGOING_CALLS veya ACCESS_FINE_LOCATION gibi yüksek riskli işaretlere bakın.

İzin Kırmızı Bayrak Listesi

Bir Hesap Makinesi veya El feneri uygulaması READ_CONTACTS veya RECORD_AUDIO isterse dosyayı hemen silin. Bu uygulamaların bu verilere sahip olmasının hiçbir meşru nedeni yoktur.

Android İzin Düzeylerini Anlama

Tüm izinler eşit şekilde oluşturulmamıştır. Android bunları üç seviyeye ayırır:

Manuel Yöntem (ZIP Görüntüleyici Kullanarak)

Biraz teknik beceriniz varsa izinleri kendiniz denetleyebilirsiniz:

  1. app.apk'yi app.zip olarak yeniden adlandırın ve açın.
  2. AndroidManifest.xml'yi bulun. (Not: İkili biçimdedir ve bir metin düzenleyicide anlamsız gibi görünecektir).
  3. Okunabilir metne dönüştürmek için AXMLYazıcı gibi bir araç kullanın.
  4. <uses-permission> ile başlayan etiketleri arayın.

Öneri: Bunu sizin için anında çözen çevrimiçi araç ürünümüzü kullanmak çok daha hızlıdır.

Uygulamalarınızı Şimdi Denetleyin

Uygulamalarınızın tam olarak ne istediğini bilin. Sır yok, risk yok.

APK İzinlerini Kontrol Edin

AndroidManifest.xml'de Gerçekte Neler Saklanıyor?

Bildiri, bir uygulamanın beyan ettiği her izin, bileşen ve özellik için gerçeğin kaynağıdır. APK'nın içinde dosya, kaynak kodunda gördüğünüz düz metin değil, ikili XML biçimindedir, dolayısıyla normal bir metin düzenleyiciyle okunamaz. APK Bilgisi aracımız ikili XML'in kodunu çözer ve ilgili etiketleri ortaya çıkarır. En önemlileri şunlardır:

İzin Koruma Düzeyleri: Hile Sayfası

Android her izne bir "koruma düzeyi" atar. Bir isteğin hangi düzeye ait olduğunu bilmek, işletim sisteminin bu isteği ne kadar ciddiye alacağını gösterir.

Koruma seviyesi Kullanıcı deneyimi Örnekler
normal Kurulum sırasında sessizce verilir. İstem yok. İNTERNET, TİTREŞİM, ACCESS_NETWORK_STATE, WAKE_LOCK
tehlikeli Özellik ilk kez kullanıldığında çalışma zamanı istemi. Ayarlar'da iptal edilebilir. KAMERA, RECORD_AUDIO, READ_CONTACTS, ACCESS_FINE_LOCATION
imza Yalnızca, veren uygulama veya işletim sistemiyle aynı sertifikayla imzalanan uygulamalara verilir. BIND_VPN_SERVICE, INSTALL_PACKAGES (yalnızca sistem)
imza|ayrıcalıklı Yalnızca sistem görüntüsünün priv-app dizinindeki önceden yüklenmiş uygulamalar için kullanılabilir. MANAGE_USERS, READ_LOGS (yalnızca sistem)
uygulama / rol Etkinleştirmek için ayrı bir Ayarlar akışı gerekir. SYSTEM_ALERT_WINDOW, BIND_ACCESSIBILITY_SERVICE, MANAGE_EXTERNAL_STORAGE (özel erişim)

"Gizli" İzinlerin Gerçekte Anlamı Nedir?

Yaygın bir yanılgı, bazı izinlerin gizli olduğudur. Öyle değiller: Bir uygulamanın kullanabileceği her izin AndroidManifest.xml'de bildirilmelidir ve işletim sistemi burada listelenmeyen herhangi bir izni vermeyi reddeder. İnsanların genellikle "gizli" derken kastettiği şey iki şeyden biridir:

Her iki durumda da cevap aynı: manifestoyu okuyun, Play Store açıklamasına tek başına güvenmeyin.

Çözümlü Örnek: Gerçek APK'yı Denetleme

İndirilenler klasörünüzde example.apk bulunduğunu varsayalım. İşte tam iş akışı:

  1. APK Bilgisi aracı'yi tarayıcınızda açın.
  2. APK'yı yükleme alanına bırakın. İşleme yerel olarak gerçekleşir; dosya cihazınızdan ayrılmıyor.
  3. İzinler bölümünü okuyun. Her giriş, sabit adı (android.permission.READ_CONTACTS ve neye izin verdiğinin sade dildeki açıklamasını gösterir).
  4. Listeyi uygulamanın kategorisiyle karşılaştırın. Kabaca şunları bekliyoruz:
    • Kamera uygulamaları: KAMERA, RECORD_AUDIO (video için), DEPOLAMA/ORTAM yazma
    • Mesajlaşma uygulamaları: İNTERNET, READ_CONTACTS, SEND_SMS (yalnızca SMS tabanlıysa), RECORD_AUDIO (sesli notlar için), KAMERA (fotoğraf göndermek için)
    • Oyunlar: INTERNET, bazen RECORD_AUDIO (oyun içi sesli sohbet için), faturalandırmayla ilgili izinler; nadiren başka bir şey
    • Yardımcı uygulamalar (hesap makinesi, el feneri, hava durumu): İNTERNET (reklamlar için), ACCESS_NETWORK_STATE, muhtemelen KONUM (yalnızca hava durumu). Bunun ötesindeki her şey şüphelidir.
  5. Listedeki herhangi bir şey kategoriye uymuyorsa yüklemeyin. Bir hesap makinesinin SMS erişimine ihtiyaç duymasının iyi bir nedeni yoktur.

Aynı mantık, dosyanın bir APK, bir XAPK (burada iç temel APK'yı okuruz) veya bir APKS paketi (burada her bir bölümün bildirimini okuruz) olmasına bakılmaksızın geçerlidir.

Komut Satırından Yapmak

Terminal yolunu tercih ederseniz, Android SDK, herhangi bir APK'dan düz XML biçiminde bir manifesto döken aapt2'yi gönderir:

aapt2 dump badging example.apk | grep "uses-permission"

Veya aynı anda imzalama sertifikasını doğrulamak için apksigner'yi kullanın:

apksigner verify --print-certs example.apk

Tarayıcı aracı, yalnızca tek bir dosyayı incelemek için SDK yüklemeyi tercih etmeyen kullanıcılar için de aynı şeyi yapar.

Sıkça Sorulan Sorular (SSS)

APK yükledikten sonra izni reddedebilir miyim?

Evet. Android 6.0 ve sonraki sürümlerde, bireysel tehlikeli izinleri açmak veya kapatmak için Ayarlar > Uygulamalar > [Uygulama Adı] > İzinler'ye gidebilirsiniz.

XAPK dosyalarının farklı izinleri var mı?

Bir XAPK bir veya daha fazla APK içerir. İçerideki her APK'nın kendi bildirimi vardır. Aracımız size ilgili izinleri göstermek için paket içindeki Ana APK'yi analiz edecektir.

Neden her uygulama "Ağ Erişimi" istiyor?

Hemen hemen tüm uygulamaların analiz, hata raporlama veya reklamlar için internet erişimine ihtiyacı vardır. Yaygın olmasına rağmen, çalınan verilerin bilgisayar korsanının sunucusuna gönderilme şekli de budur.

Yükle'ye Dokunmadan Önce Bildirim İzinlerini İnceleme

Göremediğiniz şeyi yargılayamazsınız. Yan yükleme yapmadan önce APK'nın izinlerini görüntüle'ye on saniye harcamak, bir uygulamanın neye ulaşabileceğini bilmek ile sadece onun düzgün çalışmasını ummak arasındaki farktır. Önce listeyi okuyun ve ikincisini yükleyin.

Mst Shaefale Tarafından Tasarlandı ve Belgelendi Baş Geliştirici ve Android Paket Mimarı • Android 12–15'te Doğrulandı

Mst Shaefale, xapktoapk.com'de istemci tarafı XAPK/APKS birleştirmesini, ikili bildirim ayrıştırıcısını ve APK v1+v2 imzalama araçlarını korur. Eski bir komutu veya işletim sistemi değişikliğini mi fark ettiniz? Bir editör notu gönderin.