Lisanslamaya Genel Bakış

Google Play Lisanslama, uygulamaların güvenilir bir Google Play lisanslama sunucusunu sorgulayarak uygulamanın geçerli cihaz kullanıcısına lisanslanıp lisanslanmadığını belirlemesine olanak tanıyan ağ tabanlı bir hizmettir. Lisanslama hizmeti, Google Play lisanslama sunucusunun belirli bir kullanıcının belirli bir uygulamayı kullanmak için lisansa sahip olup olmadığını belirleme yeteneğine dayanır. Kullanıcı, uygulamayı kayıtlı bir şekilde satın alan bir kullanıcıysa Google Play bu kullanıcıyı lisanslı kabul eder.

Bu istek, uygulamanız Google Play istemci uygulaması tarafından barındırılan bir hizmete istekte bulunduğunda başlar. Daha sonra Google Play uygulaması, lisanslama sunucusuna bir istek gönderir ve sonucu alır. Google Play uygulaması, sonucu uygulamanıza gönderir ve böylece uygulamanın gerektiğinde tekrar kullanılmasına izin verebilir veya vermeyebilir.

Not: Bir uygulamanın sürümü kapalı veya açık test kanalındaysa söz konusu uygulamayı indirme ve yükleme yetkisi olan 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 konusuna bakın.

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

Not: Önceden, bir uygulamayı yayınlanmamış "taslak" sürümünü yükleyerek test edebiliyordunuz. Bu işlev artık desteklenmemektedir. Bunun yerine işlevi kapalı veya açık test kanallarına yayınlamanız gerekir. Daha fazla bilgi için Taslak Uygulamalar Artık Desteklenmiyor bölümüne bakın.

Lisanslama sunucusu, kullanıcıyı doğru bir şekilde tanımlamak ve lisans durumunu belirlemek için uygulama ve kullanıcıyla ilgili bilgilere ihtiyaç duyar. Uygulamanız ve Google Play istemcisi, bilgileri birleştirmek için birlikte çalışır ve Google Play istemcisi bu bilgileri sunucuya iletir.

Uygulamanıza lisanslama özelliği eklemenize yardımcı olmak için Android SDK'sı, uygulama projenize ekleyebileceğiniz indirilebilir bir dizi kitaplık kaynağı sağlar: Google Market Lisanslama paketi. Lisans Doğrulama Kitaplığı (LVL), uygulamanıza ekleyebileceğiniz bir kitaplıktır. Bu kitaplık, Google Play lisanslama hizmetiyle lisansla ilgili tüm iletişimi yönetir. LVL uygulamanıza eklendikten sonra uygulamanız, bir yöntem çağırıp durum yanıtı alan bir geri çağırmayı uygulayarak mevcut kullanıcının lisanslama durumunu belirleyebilir.

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

  • Uygulamanız şunları sağlar: Paket adı, daha sonra sunucudan gelen yanıtları doğrulamak için kullanılan tek seferlik bir sayı ve yanıtın eşzamansız olarak döndürülebileceği bir geri çağırma.
  • Google Play istemcisi, kullanıcı ve cihaz hakkında cihazın birincil Google hesabı kullanıcı adı, IMSI gibi gerekli bilgileri ve diğer bilgileri toplar. Daha sonra lisans denetimi 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 bir güven düzeyine ulaşmaya çalışır. Sunucu daha sonra kullanıcı kimliğini uygulamanızın satın alma kayıtlarıyla karşılaştırarak kontrol eder ve Google Play istemcisinin IPC geri çağırması üzerinden uygulamanıza döndürdüğü lisans yanıtı döndürür.

Uygulamanızın lisansını ne zaman ve ne sıklıkta kontrol etmesini istediğinizi seçebilirsiniz. Uygulamanın yanıtı işleme, imzalı yanıt verilerini doğrulama ve erişim denetimlerini uygulama şekli üzerinde tam kontrole sahip olursunuz.

Lisans kontrolü sırasında, uygulamanızın Android platformundaki hiçbir ağ bağlantısını yönetmediğine veya lisanslamayla ilgili API'leri kullanmadığına dikkat edin.

Lisans Yanıtları Güvenli

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 ortak anahtarı, uygulamanızın Play Console'daki Hizmetler ve API'ler sayfasında gösterir. Ortak anahtarı Play Console'dan kopyalayıp uygulama kaynak kodunuza yerleştirmeniz gerekir. Sunucu özel anahtarı dahili olarak saklar ve bu hesapla yayınladığınız uygulamalara yönelik lisans yanıtlarını imzalamak için bu anahtarı kullanır.

Uygulamanız imzalı bir yanıt aldığında, verileri doğrulamak için yerleşik ortak anahtarı kullanır. Lisanslama hizmetinde ortak anahtar kriptografisinin kullanılması, uygulamanın kurcalanmış veya adres sahteciliği yapan yanıtları algılamasına olanak tanır.

Lisanslama Doğrulama Kitaplığı

Android SDK, Google Market Lisanslama paketi adı verilen ve Lisans Doğrulama Kitaplığı'nı (LVL) içeren 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 ve sağlam bir uygulama oluşturulmasına yardımcı olur. LVL, lisans sorgusundaki standart işlemlerin çoğunu (ör. lisans isteği başlatmak için Google Play istemcisiyle iletişime geçme ve yanıtların doğrulanması ve doğrulanması gibi) yürüten dahili sınıflar sunar. Ayrıca, lisanslama politikasını tanımlamak ve uygulamanızın gerektirdiği erişimi yönetmek için özel kodunuzu kolayca bağlamanızı sağlayan 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 alınan) 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. Uygulama, ağ hataları gibi hatalarla sonuçlanan lisans kontrollerinin yönetimini de yönetmenizi sağlar.
LicenseCheckerCallback
Uygulamanız, Policy nesnesinin lisans yanıtını işlemesine bağlı olarak uygulamaya erişimi yönetir. Uygulamanız, lisans sonucunu kullanıcı arayüzünde görüntüleme veya kullanıcıyı uygulamayı satın almaya yönlendirme (halihazırda lisanslı değilse) dahil, erişimi gereken her şekilde yönetebilir.

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

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

LVL, Android SDK'nın indirilebilir bir paketi olarak sunulur. Paket, hem LVL'nin kendisini 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 koşullarını nasıl yönetmesi gerektiğini gösteren örnek bir uygulama içerir.

LVL kaynakları, Android kitaplık projesi olarak sağlanır. Diğer bir deyişle, tek bir kitaplık kaynağı grubunu saklayabilir ve bunları birden fazla uygulamada paylaşabilirsiniz. SDK aracılığıyla tam bir test ortamı da mevcuttur. Böylece, fiziksel bir cihaza erişiminiz olmasa bile uygulamalarınızdaki lisanslama uygulamasını, yayınlamadan önce geliştirip test edebilirsiniz.

Şartlar ve Sınırlamalar

Google Play Lisanslama, Google Play üzerinden yayınladığınız uygulamalara lisans denetimleri uygulayabilmeniz için tasarlanmıştır. Bu hizmet, Google Play üzerinden yayınlanmamış veya Google Play istemcisini sunmayan cihazlarda çalıştırılan uygulamalara erişimi kontrol edebilmenizi sağlayacak şekilde tasarlanmamıştır.

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

  • Bir uygulama, hizmeti yalnızca ana makine cihazına Google Play istemcisi yüklüyse ve cihazın Android 1.5 (API düzeyi 3) veya sonraki bir sürümünü çalıştırıyorsa kullanabilir.
  • Lisans kontrolünü tamamlamak için lisanslama 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, nihayetinde 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 belgelerde yer alan en iyi uygulamaları izleyerek uygulamanızın güvenli olduğundan emin olabilirsiniz.
  • Bir uygulamaya lisans eklemek, Google Play'i sunmayan bir cihazda çalıştırıldığında uygulamanın çalışma şeklini etkilemez.
  • Hizmeti yalnızca APK genişletme dosyaları sağlamak için kullanıyorsanız ücretsiz uygulamalar için lisanslama denetimlerini uygulayabilirsiniz.

Kopya Koruması için Değiştirme

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

Lisanslama, Google Play'e erişimi olan tüm cihazlarda geçerli olan lisansa dayalı bir modele geçmenize olanak tanır. Erişim, ana makine cihazının özelliklerine değil, Google Play'deki uygulamanıza (uygulamanın ortak anahtarı üzerinden) ve tanımladığınız lisanslama politikasına bağlıdır. Uygulamanız, SD kart da 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 önleyemese de lisanslama hizmeti, kilitli veya kilidi açık tüm uyumlu cihazlar genelindeki çoğu normal kullanım türüne erişimi kontrol etmenize olanak tanır.

Uygulamanıza uygulama lisanslaması eklemeye başlamak için Lisanslama Ayarlama bölümüne gidin.