Google Play Lisanslama, bir uygulamanın güvenilir bir Google Play lisanslama sunucusunu sorgulayarak uygulamanın mevcut cihaz kullanıcısı için lisanslı olup olmadığı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 lisanslı olup olmadığını belirleme özelliğine dayanır. Google Play, kullanıcının uygulamanın kayıtlı alıcısı olması durumunda kullanıcının lisanslı olduğunu kabul eder.
İstek, uygulamanız Google Play istemci uygulaması tarafından barındırılan bir hizmete istekte bulunduğunda başlar. Google Play uygulaması daha sonra lisanslama sunucusuna bir istek gönderir ve sonucu alır. Google Play uygulaması, sonucu uygulamanıza gönderir. Bu sonuç, uygulamanın gerektiği şekilde daha fazla kullanılmasına izin verebilir veya vermeyebilir.
Not: Bir uygulamanın sürümü kapalı veya açık test kanallarındaysa bu 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 başlıklı makaleyi inceleyin.

1.şekil Uygulamanız, Google Play sunucusuyla iletişimi sağlayan Lisans Doğrulama Kitaplığı ve Google Play istemcisi aracılığıyla 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, 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.
Lisans sunucusu, kullanıcıyı düzgün bir şekilde tanımlamak ve lisans durumunu belirlemek için uygulama ve kullanıcı hakkında bilgi gerektirir. Uygulamanız ve Google Play istemcisi, bilgileri bir araya getirmek için birlikte çalışır ve Google Play istemcisi bu bilgileri sunucuya iletir.
Android SDK, uygulamanıza lisanslama eklemenize yardımcı olmak için uygulama projenize dahil edebileceğiniz indirilebilir bir kitaplık kaynakları grubu (Google Market Licensing paketi) sağlar. Lisans Doğrulama Kitaplığı (LVL), uygulamanıza ekleyebileceğiniz ve Google Play lisanslama hizmetiyle ilgili tüm lisanslama iletişimini yöneten bir kitaplıktır. Uygulamanıza LVL eklendiğinde, uygulamanız yalnızca bir yöntemi çağırıp durum yanıtını alan bir geri çağırma işlevi uygulayarak mevcut kullanıcının lisanslama durumunu belirleyebilir.
Uygulamanız, lisanslama sunucusunu doğrudan sorgulamıyor ancak bunun yerine lisans isteği başlatmak için uzak IPC üzerinden Google Play istemcisini çağırıyor. Lisans isteğinde:
- Uygulamanız; paket adını, daha sonra sunucudan gelen yanıtları doğrulamak için kullanılan bir nonce'ı ve yanıtın eşzamansız olarak döndürülebileceği bir geri çağırma sağlar.
- 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, isteği mevcut tüm bilgileri kullanarak değerlendirir ve kullanıcının kimliğini yeterli düzeyde güvenle belirlemeye çalışır. Sunucu daha sonra kullanıcı kimliğini uygulamanızın satın alma kayıtlarına göre kontrol eder ve Google Play istemcisinin IPC geri çağırması üzerinden uygulamanıza döndürdüğü bir lisans yanıtı döndürür.
Uygulamanızın lisansını ne zaman ve ne sıklıkta kontrol etmesini istediğinizi seçebilir, yanıtı nasıl işleyeceğini, imzalı yanıt verilerini nasıl doğrulayacağını ve erişim kontrollerini nasıl uygulayacağını tamamen kontrol edebilirsiniz.
Lisans kontrolü sırasında uygulamanızın herhangi bir ağ bağlantısını yönetmediğini veya Android platformunda lisanslamayla ilgili API'ler kullanmadığını unutmayın.
Lisans Yanıtları Güvenlidir
Her lisans sorgusunun bütünlüğünü sağlamak için sunucu, yalnızca Google Play sunucusu ile sizin aranızda paylaşılan bir RSA anahtar çifti kullanarak lisans yanıtı verilerini imzalar.
Lisanslama hizmeti, her uygulama için tek bir lisanslama anahtar çifti oluşturur ve herkese açık anahtarı, Play Console'daki uygulamanızın Hizmetler ve API'ler sayfasında kullanıma sunar. Play Console'daki genel anahtarı kopyalayıp uygulama kaynak kodunuza yerleştirmeniz gerekir. Sunucu, özel anahtarı dahili olarak saklar ve bu anahtarı, söz konusu 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ştirilmiş genel anahtarı kullanır. Lisanslama hizmetinde ortak anahtar kriptografisinin kullanılması, uygulamanın kurcalanmış veya sahte yanıtları algılamasını sağlar.
Lisans Doğrulama Kitaplığı
Android SDK, Lisans Doğrulama Kitaplığı'nı (LVL) içeren Google Market Lisanslama paketi adlı indirilebilir bir paket sunar. 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 sağlar. LVL, lisans isteği başlatmak için Google Play istemcisiyle iletişime geçme ve yanıtları doğrulama gibi lisans sorgusunun standart işlemlerinin çoğunu işleyen dahili sınıflar sağlar. Ayrıca, lisanslama politikasını tanımlamak ve uygulamanızın ihtiyaç duyduğu şekilde erişimi yönetmek için özel kodunuzu kolayca eklemenize olanak tanıyan arayüzler de sunar. Temel LVL arayüzleri şunlardır:
Policy
- Uygulamanıza erişime izin verilip verilmeyeceğini, sunucudan alınan lisans yanıtına ve mevcut diğer verilere (ör. uygulamanızla ilişkili bir arka uç sunucusundan alınan veriler) göre uygulamanız 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 yönetmenize de olanak tanır.
LicenseCheckerCallback
- Uygulamanız,
Policy
nesnesinin lisans yanıtını işlemesinin sonucuna göre uygulamaya erişimi yönetir. Uygulamanız, lisans sonucunu kullanıcı arayüzünde gösterme veya kullanıcıyı uygulamayı satın almaya yönlendirme (şu anda lisanslı değilse) dahil olmak üzere erişimi gerektiği şekilde yönetebilir.
Policy
ile çalışmaya başlamanıza yardımcı olmak için LVL, iki tam Policy
uygulaması sunar. Bu uygulamaları değiştirmeden kullanabilir veya ihtiyaçlarınıza göre uyarlayabilirsiniz:
ServerManagedPolicy
- Lisans sunucusu tarafından sağlanan ayarları kullanarak yanıt önbelleğe almayı yöneten ve cihaz çevrimdışı durumdayken (ör. kullanıcı uçaktayken) uygulamaya erişimi sağlayan esnek bir
Policy
yapı. Çoğu uygulama içinServerManagedPolicy
kullanılması önemle tavsiye edilir. StrictPolicy
- Yanıt verilerini önbelleğe almayan ve sunucu lisanslı bir yanıt döndürdüğünde uygulamaya yalnızca erişim izni veren kısıtlayıcı bir
Policy
.
LVL, Android SDK'nın indirilebilir bir paketi olarak sunulur. Paket, LVL'nin kendisini ve kitaplığın uygulamanıza nasıl entegre edilmesi gerektiğini, 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 uygulamayı içerir.
LVL kaynakları, Android kitaplık projesi olarak sağlanır. Bu sayede, tek bir kitaplık kaynağı grubu tutabilir ve bunları birden fazla uygulamada paylaşabilirsiniz. SDK aracılığıyla tam bir test ortamı da sunulur. Böylece, fiziksel bir cihaza erişiminiz olmasa bile uygulamalarınızı yayınlamadan önce lisanslama uygulamasını geliştirip test edebilirsiniz.
Şartlar ve sınırlamalar
Google Play Lisanslama, Google Play üzerinden yayınladığınız uygulamalara lisans kontrolleri uygulamanıza olanak tanımak için tasarlanmıştır. 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 Google Play istemcisi ana makine cihazına yüklendiyse ve cihazda Android 1.5 (API düzeyi 3) veya sonraki bir sürüm çalışıyorsa kullanabilir.
- Lisans kontrolünün tamamlanması için lisans sunucusuna ağ üzerinden erişilebilmesi gerekir. 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 kontrollerinin 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ı sunar ancak lisansın fiili olarak uygulanması ve işlenmesi sizin sorumluluğunuzdadır. Aşağıdaki belgelerde yer alan en iyi uygulamaları izleyerek uygulamanızın güvenli olmasını sağlayabilirsiniz.
- Bir uygulamaya lisans eklemek, Google Play'in sunulmadığı bir cihazda çalıştırıldığında uygulamanın işlevini etkilemez.
- Ücretsiz bir uygulama için lisanslama kontrolleri uygulayabilirsiniz ancak yalnızca hizmeti APK genişletme dosyaları sağlamak için kullanıyorsanız.
Kopyalama Koruması'nın yerine
Google Play Lisanslama, uygulamalarınıza erişimi kontrol etmek için kullanılan esnek ve güvenli bir mekanizmadır. Bu özellik, Google Play'de daha önce sunulan ve artık desteklenmeyen Kopya Koruması 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, lisansa dayalı bir modele geçmenizi sağlar. Erişim, ana makine 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 da dahil olmak üzere herhangi bir depolama alanında herhangi bir cihaza yüklenebilir ve yönetilebilir.
Hiçbir lisans mekanizması tüm yetkisiz kullanımları tamamen engelleyemese de lisanslama hizmeti, kilitli veya kilidi açık tüm uyumlu cihazlarda, normal kullanımın çoğu türü için erişimi kontrol etmenize olanak tanır.
Uygulamanıza uygulama lisanslamayı eklemeye başlamak için Lisanslama için Ayarları Yapma bölümüne geçin.