[android] идентифицировать клиентский аппарат

marusya68

по каким признакам еще можно кроме IMEI идентифицировать что человек запускает приложение на том же самом телефоне?

carusya

А воспользоваться встроенным в google play управлением лицензиями?
Там вроде можно и "на учетку", и "на устройство"

nikola1956

по каким признакам еще можно кроме IMEI идентифицировать что человек запускает приложение на том же самом телефоне?
Краткий ответ: наверняка сделать такую проверку невозможно.
Помню, немного изучал эту тему, когда делали приложение для одной фин. организации, где требовалась особая защита и привязка приложения к аппарату-терминалу.
Приложение (apk) можно своровать (с рутованного устройства) и установить на другой смартфон. IMEI можно подделать. Приходится продумывать свой механизм проверки подлинности копии приложения на сервере.
В итоге на это забили и всю ответственность переложили на оператора, под чьим логином/паролем и на чьем устройстве будут осуществляться транзакции. Если приложение своровали с его смартфона (который был рутован), узнали IMEI его телефона, и установили на другой, в котором поменяли IMEI на его, то вина оператора. Т.о. для проверки может использоваться тройка: логин, пароль, imei. Можно добавить еще что-то, но смысл тот же.
Все это управляется с сервера, через который идет работа приложения. В частности, если телефон украдут, можно будет сразу заблокировать соответствующего юзера с его imei, логином и паролем.

uncle17

а что делать с IMEI на планшетах без GSM-модуля?

nikola1956

Для такого планшета можно взять другой идентификатор железа. Не знаю точно, не изучал этот вопрос.

marusya68

я неправильно выразился. я хочу не разработать приложение а наоборот защититься от того что оно проверяет что я это я.
хочу понять какими способами оно может это делать.
например - IMEI. в каком аккаунте в гугле я сейчас залогинен - может проверить? может какой то уникальный айди хранилища? А может куда то записать свой файл в корневую директорию, который не очистится при удалении приложения? какие еще есть варианты?

viktor954

http://stackoverflow.com/questions/16869482/how-to-get-uniqu...
Conclusion For the vast majority of applications, the requirement is to identify a particular installation, not a physical device. Fortunately, doing so is straightforward.
There are many good reasons for avoiding the attempt to identify a particular device. For those who want to try, the best approach is probably the use of ANDROID_ID on anything reasonably modern, with some fallback heuristics for legacy devices

и ответ на вопрос "какой эккаунт?"
http://stackoverflow.com/questions/2245545/accessing-google-...
The account manager class has access to this.

Собственно, для всего этого нужны соответствующие permissions, о которых дроид предупреждает при установке

marusya68

кстати вполне логичный вопрос - имея рут права, можно ли запретить эти пермиссион для конкретного приложения либо подменять выдаваемую системой инфу на другую. то есть понятно что можно ибо при наличии рут прав можно всё - вопрос в том как именно?)

marusya68

а как подменять отдаваемые гуглоакк и IMEI?
Оставить комментарий
Имя или ник:
Комментарий: