Как работает Google Play «Проверка рыночной лицензии»?

23

Около месяца назад я купил игру под названием Whale Trail во время продажи в Google Play. Сегодня, когда я попытался поиграть в игру в метро, ​​он попросил подтвердить лицензию на игру, но не смог этого сделать (так как в метро не было подключения к интернету) выключил игру. Когда я вернулся домой, я взглянул на вкладку разрешений игры и увидел следующее:

Проверка лицензии на рынке

Можете проверить, есть ли у вас лицензия на это приложение от Маркета

Похоже, это функция, встроенная в Google Play. Итак, мой вопрос, как работает эта «проверка лицензии»? Как часто приложения, использующие эту «функцию», звонят домой, чтобы убедиться, что я действительно не грязный пират, крадущий приложения этих разработчиков?

И Цзян
источник
2
Я не специалист по этому вопросу, поэтому не буду отвечать, но информация здесь . Быстро и грязно: приложение куплено, и файл .apk лицензирован для вас, он проходит по сети, чтобы проверить лицензию. Возможно, в то время сеть была недоступна для вас, и разработчик ничего не кэшировал и не обрабатывал.
Doozer Blake
@DoozerBlake Итак, ответ таков: «Как часто выбирает разработчик»? Я думаю, что это приемлемо в качестве ответа
И Цзян

Ответы:

18

Вы можете выбрать, когда и как часто вы хотите, чтобы ваше приложение проверяло свою лицензию, и у вас есть полный контроль над тем, как оно обрабатывает ответ, проверяет подписанные данные ответа и обеспечивает контроль доступа.

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

Так что да, в основном, когда разработчик этого хочет. Я предполагаю, что наиболее распространенное время для проверки - это когда приложение впервые открывается.

Ваше приложение не запрашивает сервер лицензирования напрямую, а вместо этого вызывает клиент Google Play через удаленный IPC, чтобы инициировать запрос лицензии. В запросе лицензии:

  • Ваше приложение предоставляет: имя пакета, одноразовый номер, который позже используется для проверки любого ответа от сервера, и обратный вызов, по которому ответ может быть возвращен асинхронно.

  • Клиент Google Play собирает необходимую информацию о пользователе и устройстве, такую ​​как имя пользователя основной учетной записи Google, IMSI и другую информацию. Затем он отправляет запрос проверки лицензии на сервер от имени вашего приложения.

  • Сервер Google Play оценивает запрос, используя всю доступную информацию, пытаясь установить личность пользователя с достаточным уровнем достоверности. Затем сервер проверяет личность пользователя по записям покупки для вашего приложения и возвращает лицензионный ответ, который клиент Google Play возвращает вашему приложению через обратный вызов IPC.

Так:

  1. Информация о приложении, устройстве и пользователе отправляется на серверы Google.
  2. Затем Google проверяет ваше имя по списку людей, которые, как известно, заплатили за приложение в Google Play. (Он также может проверить название приложения по списку приложений, которые он знает, что вы скачали из Google Play)
  3. Если он увидит, что вы загрузили (и оплатили) приложение из Google Play, он отправит обратно, что у вас есть лицензия, если нет, то сообщит, что приложение у вас нет.

Очевидно, все это делается онлайн, поэтому, если вы не в сети, это не сработает. Если бы я писал заявление, у меня был бы счетчик, позволяющий человеку использовать его в автономном режиме 3 раза или около того, прежде чем выходить в интернет, чтобы получить проверку лицензии, чтобы предотвратить то, что с вами происходит, когда вы не можете играть не в сети. Конечно, если кто-то копает файл, в котором хранится счетчик, он может изменить значение обратно на 3 попытки каждый раз, когда он его использует, и ему никогда не придется платить, но это, вероятно, выходит за рамки технической компетенции большинства пользователей.

арахис
источник
что происходит в следующем сценарии: платное приложение, которое не реализовало библиотеку проверки лицензий в своей 1-й версии, но внедрило библиотеку проверки лицензий в своей 2-й версии. Будут ли покупатели 1-й версии считаться аутентифицированными при обновлении до 2-й версии?
Мехул Джойсар