Pull to refresh

Comments 37

Получить id очень просто: при первом запуске генерируете случайное число и сохраняете в папку приложения. Вот и id.

Я вообще не понимаю, почему все эти идентификаторы доступны приложениям. Они должны быть с самого начала не доступны, а если приложения на них полагаются, то должны генерироваться фейковые id.

В Линуксе какие-то аппаратные идентификаторы могут быть в /sys или /proc, думаю, на Андроиде так же.
А если пользователь удалит приложение? А если пользователь запретит write external storage?
Если он удалит приложение, то, значит, он не хочет пользоваться вашими услугами и вам больше не нужен id его устройства. Писать надо не на внешнюю память, а в личную папку приложения, туда по моему доступ всегда есть.
Когда у приложения есть триальный период, вот тогда и нужно идентифицировать пользователя по уникальным константным меткам, чтоб понимать использовал пользователь пробный период или нет
Для этого есть Play Services. Всё, что за пределами Google Play, существенной прибыли не приносит, потому не критично
Доступ то есть. Но ведь подобное- требования заказчика. Чего хочет или не хочет пользователь не волнует никого

А почему-бы не использовать старую добрую регистрацию с логином и паролем? Если пользовать хочет сохранить свои данные у вас на серверах — он зарегистрируется

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

А если его телефон украдут?


К тому же к примеру у вас два приложения и у пользователя два разных логина и пароля в них. И есть частый кейс, когда в таком случае нужно понять, что это один и тот же пользователь, а не два разных.

Неужели в андроиде нету возможности приложениям коммуницировать друг с другом? А вообще на стороне сервера такие вопросы решаются историей входов с логированием айпи/времени входа.


А если мы говорим совсем серьезно — вы никак не защититесь от мультиакка, если человек захочет этим заниматься. Он и телефон под рутом перепрошьет чтобы все ваши идентификаторы менять и несколько виртуальных девайсов на пк запустит с разными слепками ПО, и что только не сделает. Защиту от мультиакка нужно продумывать не технически, а логически, с точки зрения поведения приложения

А если его телефон украдут?

Его нужно для начала разлочить, а потом войти в приложение, где тоже может быть пароль. И человек скорее всего заметит, что у него украли девайс, у него будет время заблокировать акк.
Неужели в андроиде нету возможности приложениям коммуницировать друг с другом?

Есть, content provider. Можно решить эту проблему таким образом, да. Но если приложение одно и его удалили, потом, когда его вновь поставят нельзя легко понять, что оно на этом девайсе уже было.
А если мы говорим совсем серьезно — вы никак не защититесь от мультиакка, если человек захочет этим заниматься.

Довольно популярное мнение в последнее время:) Действительно, зачем ставить забор, если его можно переехать танком:))
Его нужно для начала разлочить, а потом войти в приложение, где тоже может быть пароль. И человек скорее всего заметит, что у него украли девайс, у него будет время заблокировать акк.

А если у него телефон без лока?


Я не говорил, что не нужно ставить забор. Я говорил, что не имеет смысла ставить что-то кроме обычного забора. Для большинства случаев вам хватит этих самых ненадежных идентификаторов. А те случаи которые вы не словите при этом — ну, они у вас возникнут при любом механизме

иногда хочется забанить пользователя так что бы он не возвращался под другими логинами. Тут очень нужно определить девайс точно.
Возможность отслеживания пользователя после удаления приложения должна отсутствовать по соображениям приватности. Если вы боитесь злоупотреблений, берите плату за регистрацию. Или спрашивайте email.
Так мне не нужно после удаления. Мне нужно после повторной установки узнать что этот пользователь мне уже знаком.
Если он удалит и не установит — я буду только рад.
email/sms — достать временные в интернете стоит чуть менее чем ничего.
Плата за регистрацию? — без комментариев.
Если пользователь хочет, чтобы вы не могли его узнать, его право на приватность должно иметь приоритет над вашим любопытством. Кстати, закон «О персональных данных» содержит похожие положения.
Это не любопытство. Пользователь зарегестировался и принял условия пользования моего приложения. И там есть разрешение собирать его ПД с девайса. А кто-то согласился и с GDPR.
Ну и условия использования моего приложения не позволяют им пользоваться приватно. Не устраивают условия — попрошу на выход.
Пользователь может запросить удаление своих ПД у нас в соответствии с законом указанным Вами. И тогда мы их удалим.
А есть кстати требования государства по выявлению мошенничества и идентификаторов устройства, если в политике пдн четко прописана цель почему нет?
Сервис дает знать, что обрабатывает ПД, имеет политику конфидециальности. Если Вы не готовы поделиться данными, то с Вами сервис работать не будет.

Нельзя принудить оказывать услуги тому, кому их оказывать не хотят. За исключением монополии и прочего.

Потому нужды сервиса часто перевешивают нужды пользователя. Особенно когда сервис- один из лидеров и Вам его услуги очень нужны или необходимы.
Хорошо это или плохо, но GDPR как раз запрещает ограничивать доступ к сервису даже при отказе предоставить ему персональные данные. Кроме того, если вы первоначально согласились на его условия, то потом можете передумать и заставить сервис забыть всё, что он о вас знает.
>> Но если приложение будет удалено, а затем заново установлено — Android_ID будет разным
Это реально проверяли? В документации по другому написано. Для смены нужен factory reset или смена APK signing key
Проверка производилась на Nexus 5X. Не все приложения привязаны к гугловым сервисам. Использовали factory reset. Так что в любом случае идентифицировать однозначно нельзя.
В принципе это они правильно сделали что Android_ID меняется при Factory Reset, потому что дальше может быть уже другое физ-лицо пользоваться устройством (продан, подарен, и т.д.)

А нельзя ли запросить данные учётки Google привязанной к телефону? Вопрос конечно что делать если учётка не привязана, но там и Google Play Store и сервисов не будет конечно.
Ну слава богу хоть после Factory Reset ничего нельзя идентифицировать. Иначе вообще бред получается: Factory Reset должен сделать телефон «как новый» и готовый к продаже — а тут кто-то будет знать что и когда я на нём устанавливал. Непорядок.
А как же FRP? Factory Reset уже не делает телефон «как новый», увы.
Отключите FRP перед тем, как делать Factory Reset. Можно просто удалить аккаунт.
Advertising ID любой пользователь может легко сбросить через настройки Google на устройстве.
И это хорошо. Не должно быть неизменяемых идентификаторов и возможности слежки за пользователем.
Дополнение(предостережение) к Advertising ID:
если испольтзовать этот id и в прайваси полиси ничего не указать, то гугл через некоторое время удалит приложение из гугл стора
Автору спасибо за труд. Тоже решал эту проблему, но у сервиса была регистрация и оставалось ее дополнить данными хардвари.

Мне, как и многим, тоже не нравится идея однозначной идентификации девайса или пользователя по девайсу. Но тут вопросы не к автору, а к бизнесу. Почти всегда подобное- требование заказчика\работодателя. При том не все и не всегда понимают, что это по сути- тоже ПД. А недавние скандалы об утечках показали что бывает с ПД когда их собирают.

Мы, разрабы, в большинстве случаев- люди подневольные. Клиент хочет- мы делаем. Последствия для пользователя нас не касаются.

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

В ином случае- это к лучшему, что Google не оставили решения этого вопроса.

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

Custom Rom без Gapps'ов ставите…
дальше сами.

Возможно было бы не лишним указать, что смена IMEI влечет за собой уголовную ответственность, так что скорее всего просто для развлечения никто не будет менять IMEI :)
Спасибо за поправку, до этого не так глубоко погружался, сейчас освежил знания. В России не ввели, но попытки привести к ответственности за модификацию IMEI бывают. А вот в некоторых странах уголовная ответственность за это дело действительно есть.
Я почему-то думаю, что текущая практика в России — не наказание за конкретно смену идентификаторов, а за связку этого действия с какими-либо мошенничествами. Типа, сменил IMEI у украденного телефона и продал как новый. Или у вас есть другие примеры?
Личных примеров нет. Видел обсуждения на форумах, о людях, меняющих IMEI на заказ, которых пытались привлечь, исход этих историй мне неизвестен.
ANDROID_ID не является уникальным, т.к. некоторые производители делают один ID на всю партию смартфонов
Sign up to leave a comment.

Articles