Wie funktioniert der "Market License Check" von Google Play?

23

Vor ungefähr einem Monat habe ich ein Spiel namens Whale Trail während eines Verkaufs bei Google Play gekauft. Als ich heute versuchte, das Spiel in der U-Bahn zu spielen, wurde ich gebeten, die Lizenz des Spiels zu überprüfen. Andernfalls (da in der U-Bahn keine Internetverbindung bestand) wurde das Spiel heruntergefahren. Als ich zu Hause ankam, schaute ich mir die Registerkarte mit den Berechtigungen des Spiels an und sah Folgendes:

Marktlizenzprüfung

Kann überprüfen, ob Sie eine Lizenz für diese Anwendung von Market haben

Dies scheint eine in Google Play integrierte Funktion zu sein. Meine Frage ist also, wie funktioniert diese "Lizenzprüfung"? Wie oft verwenden Apps dieses "Feature", um zu überprüfen, ob ich tatsächlich kein schmutziger Pirat bin, der die Apps dieser Entwickler stiehlt?

Yi Jiang
quelle
2
Ich bin kein Experte, werde also nicht antworten, aber Informationen sind hier . Die schnelle und schmutzige: Anwendung ist gekauft und die .apk-Datei ist für Sie lizenziert, es geht über das Netzwerk, um die Lizenz zu überprüfen. Es ist möglich, dass das Netzwerk zu diesem Zeitpunkt nicht verfügbar war und der Entwickler nichts gecacht oder damit umgegangen ist.
Doozer Blake
@DoozerBlake Die Antwort lautet also - "So oft der Entwickler wählt"? Ich denke, das ist als Antwort akzeptabel
Yi Jiang

Antworten:

18

Sie können auswählen, wann und wie oft Ihre Anwendung ihre Lizenz überprüfen soll, und Sie haben die volle Kontrolle darüber, wie sie die Antwort verarbeitet, die signierten Antwortdaten überprüft und Zugriffssteuerungen erzwingt.

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

Also ja im Grunde, wann immer der Entwickler es will. Ich würde mir vorstellen, dass der häufigste Zeitpunkt für die Überprüfung das Öffnen der Anwendung ist.

Ihre Anwendung fragt den Lizenzserver nicht direkt ab, sondern ruft den Google Play-Client über einen Remote-IPC auf, um eine Lizenzanforderung zu initiieren. In der Lizenzanfrage:

  • Ihre Anwendung stellt Folgendes bereit: den Paketnamen, eine Nonce, die später zum Überprüfen von Antworten vom Server verwendet wird, und einen Rückruf, über den die Antwort asynchron zurückgegeben werden kann.

  • Der Google Play-Client sammelt die erforderlichen Informationen über den Nutzer und das Gerät, z. B. den primären Nutzernamen des Google-Kontos, IMSI und andere Informationen. Anschließend wird die Lizenzprüfungsanforderung im Namen Ihrer Anwendung an den Server gesendet.

  • Der Google Play-Server wertet die Anfrage anhand aller verfügbaren Informationen aus und versucht, die Identität des Nutzers mit ausreichender Sicherheit festzustellen. Der Server überprüft dann die Benutzeridentität anhand der Kaufdatensätze für Ihre Anwendung und gibt eine Lizenzantwort zurück, die der Google Play-Client über den IPC-Rückruf an Ihre Anwendung zurückgibt.

So:

  1. Die Informationen über die Anwendung, das Gerät und den Benutzer werden an die Server von Google weitergeleitet.
  2. Google vergleicht dann Ihren Namen mit der Liste der Personen, von denen bekannt ist, dass sie für die Anwendung bei Google Play bezahlt haben. (Der Name der Anwendung kann auch mit einer Liste von Anwendungen verglichen werden, von denen bekannt ist, dass sie von Google Play heruntergeladen wurden.)
  3. Wenn angezeigt wird, dass Sie die Anwendung von Google Play heruntergeladen (und bezahlt) haben, wird zurückgesendet, dass Sie über eine Lizenz verfügen. Andernfalls wird der App mitgeteilt, dass Sie keine Lizenz besitzen.

Offensichtlich geschieht dies alles online. Wenn Sie also offline sind, funktioniert es nicht. Wenn ich die Anwendung schreibe, hätte ich einen Zähler, der es der Person erlaubt, sie 3 Mal oder so offline zu verwenden, bevor sie online gehen muss, um die Lizenzprüfung zu erhalten, um zu verhindern, dass Ihnen etwas passiert, wenn Sie nicht spielen können offline. Wenn sich jemand in der Datei umschaut, in der der Zähler gespeichert ist, kann er den Wert jedes Mal, wenn er ihn verwendet, auf 3 zurücksetzen und muss nie bezahlen, aber das liegt wahrscheinlich außerhalb der technischen Kompetenz der meisten Benutzer.

Erdnuss
quelle
Was passiert im folgenden Szenario? Eine kostenpflichtige App, die in ihrer ersten Version keine Lizenzprüfbibliothek implementiert hat, in ihrer zweiten Version jedoch eine Lizenzprüfbibliothek. Werden die Käufer der 1. Version als authentifizierte Benutzer betrachtet, wenn sie auf die 2. Version aktualisieren?
Mehul Joisar