Lisanslamaya Genel Bakış

Google Play lisanslama, bir uygulamanın mevcut cihaz kullanıcısına lisanslanıp lisanslanmadığını belirlemek için güvenilir bir Google Play lisanslama sunucusunu sorgulamasına olanak tanıyan, ağa dayalı bir hizmettir. Lisanslama hizmeti, Google Play lisanslama sunucusunun belirli bir kullanıcının belirli bir uygulamayı kullanma lisansına sahip olup olmadığını belirleme özelliğine dayanır. Google Play, uygulamayı satın aldığını kayıtlara geçirmiş kullanıcıları lisanslı olarak kabul eder.

İstek, uygulamanız Google Play istemci uygulaması tarafından barındırılan bir hizmete istek gönderdiğinde başlar. Ardından Google Play uygulaması, lisanslama sunucusuna bir istek gönderir ve sonucu alır. Google Play uygulaması sonucu uygulamanıza gönderir. Bu sayede uygulamanın gerektiğinde daha fazla kullanımına izin verilebilir veya izin verilmeyebilir.

Not: Bir uygulamanın sürümü kapalı veya açık test kanallarındaysa bu uygulamayı indirip yükleme yetkisine sahip tüm kullanıcılar, uygulamanın lisanslı kullanıcıları olarak kabul edilir. Daha fazla bilgi için Kullanıcılardan değerli erken geri bildirimler almak için test kanallarını kullanma başlıklı makaleyi inceleyin.

Şekil 1. Uygulamanız, Lisans Doğrulama Kitaplığı ve Google Play sunucusuyla iletişimi yöneten Google Play istemcisi aracılığıyla bir lisans kontrolü başlatır.

Not: Daha önce, yayınlanmamış bir "taslak" sürümü yükleyerek uygulamaları test edebiliyordunuz. Bu işlev artık desteklenmiyor. Bunun yerine, uygulamanızı kapalı veya açık test kanallarında yayınlamanız gerekir. Daha fazla bilgi için Taslak Uygulamalar Artık Desteklenmiyor başlıklı makaleyi inceleyin.

Lisanslama sunucusunun kullanıcıyı doğru şekilde tanımlaması ve lisans durumunu belirlemesi için uygulama ve kullanıcıyla ilgili bilgiler gerekir. Uygulamanız ve Google Play istemcisi birlikte çalışarak bilgileri toplar ve Google Play istemcisi bilgileri sunucuya iletir.

Android SDK'sı, uygulamanıza lisans eklemenize yardımcı olmak için uygulama projenize dahil edebileceğiniz indirilebilir bir kitaplık kaynağı grubu sağlar: Google Market Lisanslama paketi. Lisans Doğrulama Kitaplığı (LVL), Google Play lisanslama hizmetiyle lisanslamayla ilgili tüm iletişimi yöneten ve uygulamanıza ekleyebileceğiniz bir kitaplıktır. Uygulamanıza eklenen LVL ile uygulamanız, yalnızca bir yöntem çağırarak ve durum yanıtını alan bir geri çağırma uygulayarak geçerli kullanıcı için lisanslama durumunu belirleyebilir.

Uygulamanız, lisanslama sunucusunu doğrudan sorgulamıyor. Bunun yerine, lisans isteği başlatmak için uzak IPC üzerinden Google Play istemcisini çağırıyor. Lisans isteğinde:

  • Uygulamanız şu bilgileri sağlar: paket adı, sunucudan gelen yanıtları doğrulamak için daha sonra kullanılan tek seferlik bir sayı ve yanıtın ayarlanan zaman aralığında iade edilebileceği bir geri çağırma işlevi.
  • Google Play istemcisi, kullanıcı ve cihazla ilgili gerekli bilgileri (ör. cihazın birincil Google Hesabı kullanıcı adı, IMSI ve diğer bilgiler) toplar. Ardından, lisans kontrol isteğini uygulamanız adına sunucuya gönderir.
  • Google Play sunucusu, mevcut tüm bilgileri kullanarak isteği değerlendirir ve kullanıcının kimliğini yeterli güven düzeyinde belirlemeye çalışır. Ardından sunucu, kullanıcı kimliğini uygulamanızın satın alma kayıtlarıyla karşılaştırır ve bir lisans yanıtı döndürür. Google Play istemcisi, IPC geri çağırma üzerinden bu yanıtı uygulamanıza döndürür.

Uygulamanızın lisansını ne zaman ve ne sıklıkta kontrol etmesini istediğinizi seçebilirsiniz. Ayrıca, yanıtı nasıl işleyeceği, imzalanmış yanıt verilerini nasıl doğrulayacağı ve erişim denetimlerini nasıl uygulayacağı üzerinde tam kontrole sahip olursunuz.

Lisans kontrolü sırasında uygulamanızın herhangi bir ağ bağlantısını yönetmediğini veya Android platformunda lisanslamayla ilgili API'leri kullanmadığını unutmayın.

Lisans yanıtları güvenlidir

Sunucu, her lisans sorgusunun bütünlüğünü sağlamak için lisans yanıt verilerini, yalnızca Google Play sunucusu ile sizin aranızda paylaşılan bir RSA anahtar çifti kullanarak imzalar.

Lisanslama hizmeti, her uygulama için tek bir lisanslama anahtarı çifti oluşturur ve herkese açık anahtarı uygulamanızın Play Console'daki Hizmetler ve API'ler sayfasında gösterir. Play Console'dan herkese açık anahtarı kopyalayıp uygulamanızın kaynak koduna yerleştirmeniz gerekir. Sunucu, özel anahtarı dahili olarak saklar ve bu hesapla yayınladığınız uygulamaların lisans yanıtlarını imzalamak için kullanır.

Uygulamanız imzalı bir yanıt aldığında verileri doğrulamak için yerleşik genel anahtarı kullanır. Lisanslama hizmetinde ortak anahtar kriptografisinin kullanılması, uygulamanın üzerinde oynanmış veya taklit edilmiş yanıtları algılamasını sağlar.

Lisanslama Doğrulama Kitaplığı

Android SDK'sı, Lisans Doğrulama Kitaplığı'nı (LVL) içeren Google Market Lisanslama paketi adlı indirilebilir bir paket sağlar. LVL, uygulamanıza lisans ekleme sürecini büyük ölçüde basitleştirir ve uygulamanız için daha güvenli, sağlam bir uygulama sağlamaya yardımcı olur. LVL, lisans sorgusunun standart işlemlerinin çoğunu (ör. lisans isteği başlatmak için Google Play istemciyle iletişime geçme ve yanıtları doğrulama) gerçekleştiren dahili sınıflar sağlar. Ayrıca lisanslama politikasını tanımlamak ve erişimi uygulamanızın ihtiyacına göre yönetmek için özel kodunuzu kolayca eklemenize olanak tanıyan arayüzler de sunar. Temel LVL arayüzleri şunlardır:

Policy
Uygulamanız, sunucudan alınan lisans yanıtına ve mevcut diğer verilere (ör. uygulamanızla ilişkili bir arka uç sunucusundan) göre uygulamaya erişime izin verilip verilmeyeceğini belirler. Uygulama, lisans yanıtının çeşitli alanlarını değerlendirebilir ve gerekirse başka kısıtlamalar uygulayabilir. Bu uygulama, ağ hataları gibi hatalara neden olan lisans kontrollerinin işlenmesini de yönetmenize olanak tanır.
LicenseCheckerCallback
Uygulamanız, Policy nesnesinin lisans yanıtını işleme sonucuna göre uygulamaya erişimi yönetir. Uygulamanız, lisans sonucunu kullanıcı arayüzünde göstermek veya kullanıcıyı uygulamayı satın almaya yönlendirmek (şu anda lisanslı değilse) de dahil olmak üzere erişimi gerektiği şekilde yönetebilir.

LVL, Policy kullanmaya başlamanıza yardımcı olmak için değişiklik yapmadan kullanabileceğiniz veya ihtiyaçlarınıza göre uyarlayabileceğiniz iki tam Policy uygulaması sağlar:

ServerManagedPolicy
Cihaz çevrimdışıyken (ör. kullanıcı uçaktayken) yanıt önbelleğe alma işlemini ve uygulamaya erişimi yönetmek için lisanslama sunucusu tarafından sağlanan ayarları kullanan esnek bir Policy. Çoğu uygulama için ServerManagedPolicy kullanılması önemle tavsiye edilir.
StrictPolicy
Yanıt verilerini önbelleğe almayan ve uygulamanın yalnızca sunucu lisanslı bir yanıt döndürdüğünde erişmesine izin veren kısıtlayıcı bir Policy.

LVL, Android SDK'sının indirilebilir bir paketi olarak kullanılabilir. Paket, hem LVL'yi hem de kitaplığın uygulamanızla nasıl entegre edilmesi gerektiğini ve uygulamanızın yanıt verilerini, kullanıcı arayüzü etkileşimini ve hata durumlarını nasıl yönetmesi gerektiğini gösteren bir örnek uygulama içerir.

LVL kaynakları, Android kitaplık projesi olarak sağlanır. Bu sayede, tek bir kitaplık kaynağı grubunu koruyabilir ve birden fazla uygulamada paylaşabilirsiniz. SDK'da tam bir test ortamı da mevcuttur. Bu sayede, fiziksel bir cihaza erişiminiz olmasa bile uygulamalarınızı yayınlamadan önce lisanslama uygulamasını geliştirebilir ve test edebilirsiniz.

Şartlar ve Sınırlılıklar

Google Play Lisanslama, Google Play üzerinden yayınladığınız uygulamalara lisans denetimleri uygulamanıza olanak tanıyacak şekilde tasarlanmıştır. Bu hizmet, Google Play üzerinden yayınlanmayan veya Google Play istemcisini sunmayan cihazlarda çalıştırılan uygulamalara erişimi kontrol etmenize olanak tanımak için tasarlanmamıştır.

Uygulamanızda lisanslamayı uygularken göz önünde bulundurmanız gereken bazı noktalar aşağıda verilmiştir:

  • Bir uygulama, hizmeti yalnızca ana cihazına Google Play istemcisi yüklüyse ve cihazda Android 1.5 (API düzeyi 3) veya sonraki bir sürüm yüklüyse kullanabilir.
  • Lisans kontrolünün tamamlanması için lisans sunucusuna ağ üzerinden erişilebilmelidir. Ağ bağlantısı olmadığında uygulamanıza erişimi yönetmek için lisans önbelleğe alma davranışlarını uygulayabilirsiniz.
  • Uygulamanızın lisanslama denetimlerinin güvenliği, temel olarak uygulamanızın tasarımına bağlıdır. Hizmet, lisanslamayı güvenli bir şekilde kontrol etmenizi sağlayan yapı taşlarını sağlar ancak lisansın gerçek yaptırımı ve kullanımı size bağlıdır. Aşağıdaki belgelerdeki en iyi uygulamaları izleyerek uygulamanızın güvenli olmasını sağlayabilirsiniz.
  • Bir uygulamaya lisans eklemek, uygulamanın Google Play'i sunmayan bir cihazda çalıştırıldığında işleyiş şeklini etkilemez.
  • Ücretsiz bir uygulama için lisanslama denetimleri uygulayabilirsiniz ancak yalnızca hizmeti APK genişletme dosyaları sağlamak için kullanıyorsanız.

Kopya Koruması için Değişim

Google Play Lisanslama, uygulamalarınıza erişimi kontrol etmek için esnek ve güvenli bir mekanizmadır. Daha önce Google Play'de sunulan ve artık desteklenmeyen Kopya Koruma mekanizmasının yerini etkili bir şekilde alır ve uygulamalarınız için daha geniş bir dağıtım potansiyeli sunar.

Lisanslama, Google Play'e erişimi olan tüm cihazlarda uygulanabilir bir lisans tabanlı modele geçmenize olanak tanır. Erişim, ana cihazın özelliklerine değil, Google Play'deki uygulamanıza (uygulamanın herkese açık anahtarı aracılığıyla) ve tanımladığınız lisanslama politikasına bağlıdır. Uygulamanız, SD kart dahil olmak üzere herhangi bir depolama alanındaki herhangi bir cihaza yüklenebilir ve yönetilebilir.

Hiçbir lisans mekanizması tüm yetkisiz kullanımları tamamen engelleyemez. Ancak lisanslama hizmeti, kilitli veya kilidi açık tüm uyumlu cihazlarda normal kullanım türlerinin çoğuna erişimi kontrol etmenize olanak tanır.

Uygulamanıza uygulama lisanslama eklemeye başlamak için Lisanslama için ayarlama bölümüne geçin.