Come funziona il "controllo della licenza di mercato" di Google Play?


23

Circa un mese fa ho acquistato un gioco chiamato Whale Trail durante una vendita su Google Play. Oggi, quando ho provato a giocare in metropolitana, mi è stato chiesto di verificare la licenza del gioco e, non riuscendo a farlo (poiché non c'era connessione a Internet in metropolitana), ho chiuso il gioco. Quando sono tornato a casa, ho dato un'occhiata alla scheda delle autorizzazioni del gioco e ho visto questo:

Verifica della licenza di mercato

Può verificare se disponi di una licenza per questa applicazione da Market

Sembra che questa sia una funzionalità integrata in Google Play. Quindi la mia domanda è: come funziona questo "controllo della licenza"? Con quale frequenza le app che utilizzano questa "funzionalità" telefonano a casa per verificare che in realtà non sono un pirata sporco che ruba queste app per sviluppatori?


2
Non ne sono esperto, quindi non risponderò, ma l' informazione è qui . Il veloce e sporco: l'applicazione viene acquistata e il file .apk viene concesso in licenza all'utente, passa attraverso la rete per controllare la licenza. È possibile che la rete non fosse disponibile per te in quel momento e lo sviluppatore non ha memorizzato nella cache nulla o gestito.
Doozer Blake,

@DoozerBlake Quindi la risposta è: "Ogni volta che lo sviluppatore sceglie"? Penso che sia accettabile come risposta
Yi Jiang,

Risposte:


18

Puoi scegliere quando e con quale frequenza desideri che l'applicazione verifichi la sua licenza e hai il pieno controllo su come gestisce la risposta, verifica i dati di risposta firmati e applica i controlli di accesso.

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

Quindi sì praticamente ogni volta che lo sviluppatore lo vuole. Immagino che il momento più comune per verificare è quando l'applicazione viene aperta per la prima volta.

L'applicazione non interroga direttamente il server delle licenze, ma chiama invece il client Google Play tramite IPC remoto per avviare una richiesta di licenza. Nella richiesta di licenza:

  • L'applicazione fornisce: il nome del pacchetto, un nonce che verrà successivamente utilizzato per convalidare qualsiasi risposta dal server e un callback su cui la risposta può essere restituita in modo asincrono.

  • Il client Google Play raccoglie le informazioni necessarie sull'utente e sul dispositivo, come il nome utente dell'account Google principale del dispositivo, l'IMSI e altre informazioni. Invia quindi la richiesta di controllo della licenza al server per conto dell'applicazione.

  • Il server di Google Play valuta la richiesta utilizzando tutte le informazioni disponibili, tentando di stabilire l'identità dell'utente con un livello di sicurezza sufficiente. Il server verifica quindi l'identità dell'utente rispetto ai record di acquisto per l'applicazione e restituisce una risposta di licenza, che il client Google Play restituisce all'applicazione tramite il callback IPC.

Così:

  1. Le informazioni sull'applicazione, sul dispositivo e sull'utente passano ai server di Google.
  2. Google controlla quindi il tuo nome nell'elenco delle persone che sa di aver pagato per l'applicazione su Google Play. (Potrebbe anche verificare il nome dell'applicazione rispetto a un elenco di applicazioni che sa che hai scaricato da Google Play)
  3. Se riesce a vedere che hai scaricato (e pagato) l'applicazione da Google Play, ti restituisce di avere una licenza, in caso contrario informa l'app che non hai.

Ovviamente questo è tutto online, quindi se sei offline non funzionerà. Se stavo scrivendo l'applicazione, avrei un contatore per consentire alla persona di utilizzarlo offline 3 volte circa prima di andare online per ottenere il controllo della licenza al fine di interrompere il tipo di cose che ti accadono dove non puoi giocare disconnesso. Ovviamente se qualcuno scava nel file in cui è memorizzato il contatore, potrebbe riportare il valore a 3 tentativi ogni volta che lo usano e non devono mai pagare, ma questo è probabilmente al di là delle competenze tecniche della maggior parte degli utenti.


cosa succede nel seguente scenario, un'app a pagamento che non ha implementato la libreria di controllo delle licenze nella sua prima versione ma ha implementato la libreria di controllo delle licenze nella sua seconda versione. Gli acquirenti della prima versione saranno considerati utenti autenticati quando eseguiranno l'aggiornamento alla seconda versione?
Mehul Joisar,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.