Bagaimana cara kerja "Pemeriksaan lisensi Pasar" Google Play?

23

Sekitar sebulan yang lalu saya membeli sebuah game bernama Whale Trail selama penjualan di Google Play. Hari ini, ketika saya mencoba untuk memainkan permainan di kereta bawah tanah, ia meminta untuk memverifikasi lisensi permainan, dan gagal melakukannya (karena tidak ada koneksi internet di kereta bawah tanah), matikan permainan. Ketika sampai di rumah, saya melihat tab permisi permainan dan melihat ini:

Pemeriksaan lisensi pasar

Dapat memeriksa apakah Anda memiliki lisensi untuk aplikasi ini dari Market

Sepertinya ini adalah fitur bawaan Google Play. Jadi pertanyaan saya adalah, bagaimana cara kerja "pemeriksaan lisensi" ini? Seberapa sering aplikasi yang menggunakan ponsel "fitur" ini memverifikasi bahwa memang saya bukan bajak laut yang mencuri aplikasi pengembang ini?

Yi Jiang
sumber
2
Saya bukan ahli dalam hal itu, jadi tidak akan menjawab, tetapi informasinya ada di sini . Cepat dan kotor: Aplikasi dibeli dan file .apk dilisensikan kepada Anda, ia masuk ke jaringan untuk memeriksa lisensi. Mungkin saja jaringan tidak tersedia untuk Anda saat itu dan pengembang tidak menembolok apa pun atau menanganinya.
Doozer Blake
@ DozerBlake Jadi jawabannya adalah - "Sesering pengembang memilih"? Saya pikir itu dapat diterima sebagai jawaban
Yi Jiang

Jawaban:

18

Anda dapat memilih kapan, dan seberapa sering, Anda ingin aplikasi Anda memeriksa lisensinya dan Anda memiliki kontrol penuh atas bagaimana ia menangani respons, memverifikasi data respons yang ditandatangani, dan menegakkan kontrol akses.

Dari http://developer.android.com/guide/market/licensing/overview.html

Jadi ya pada dasarnya setiap kali pengembang menginginkannya. Saya membayangkan waktu paling umum untuk memeriksa adalah ketika aplikasi pertama kali dibuka.

Aplikasi Anda tidak meminta server lisensi secara langsung, tetapi sebaliknya memanggil klien Google Play melalui IPC jarak jauh untuk memulai permintaan lisensi. Dalam permintaan lisensi:

  • Aplikasi Anda menyediakan: nama paketnya, suatu nonce yang nantinya digunakan untuk memvalidasi respons apa pun dari server, dan panggilan balik yang darinya respons dapat dikembalikan secara tidak sinkron.

  • Klien Google Play mengumpulkan informasi yang diperlukan tentang pengguna dan perangkat, seperti nama pengguna akun Google utama, IMSI, dan informasi lainnya. Kemudian mengirimkan permintaan pemeriksaan lisensi ke server atas nama aplikasi Anda.

  • Server Google Play mengevaluasi permintaan menggunakan semua informasi yang tersedia, berusaha untuk menetapkan identitas pengguna ke tingkat kepercayaan yang memadai. Server kemudian memeriksa identitas pengguna terhadap catatan pembelian untuk aplikasi Anda dan mengembalikan respons lisensi, yang dikembalikan oleh klien Google Play ke aplikasi Anda melalui panggilan balik IPC.

Begitu:

  1. Informasi tentang aplikasi, perangkat, dan pengguna pergi ke server Google.
  2. Google kemudian memeriksa nama Anda terhadap daftar orang yang tahu telah membayar aplikasi tersebut di Google Play. (Bisa juga memeriksa nama aplikasi terhadap daftar aplikasi yang ia tahu telah Anda unduh dari Google Play)
  3. Jika dapat melihat bahwa Anda telah mengunduh (dan membayar) aplikasi dari Google Play, ia mengirimkan kembali bahwa Anda memiliki lisensi, jika tidak maka itu memberitahu aplikasi yang tidak Anda miliki.

Jelas ini semua dilakukan secara online jadi jika Anda offline maka itu tidak akan berhasil. Jika saya sedang menulis aplikasi saya akan memiliki counter untuk membiarkan orang itu menggunakannya offline 3 kali atau lebih sebelum harus online untuk mendapatkan cek lisensi untuk menghentikan hal-hal yang terjadi pada Anda di mana Anda tidak dapat bermain offline. Tentu saja jika seseorang menggali file tempat penghitung disimpan, mereka dapat mengubah nilainya kembali menjadi 3 kali mencoba setiap kali mereka menggunakannya dan tidak pernah harus membayar tetapi itu mungkin di luar kompetensi teknis sebagian besar pengguna.

Kacang
sumber
apa yang terjadi dalam skenario berikut, aplikasi berbayar yang belum menerapkan perpustakaan pemeriksaan lisensi dalam versi 1 tetapi menerapkan perpustakaan pemeriksaan lisensi dalam versi 2. Apakah pembeli versi 1 akan dianggap sebagai pengguna yang diautentikasi ketika mereka memperbarui ke versi ke-2?
Mehul Joisar