что такое google id в android как узнать

Подводные камни идентификации Android-устройства

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

Гугл говорит, что идентифицировать устройство очень просто. Но мы же говорим об Android:)

Данная статья ориентирована на приложения или библиотеки, которые не хотят привязываться к гугловым сервисам.

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

Тут мы видим несколько путей:

Advertising ID

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

Вывод: мы не идентифицируем устройство во всех случаях.

Но мы же хотим наверняка, верно? Тогда идем дальше.

Это международный идентификатор мобильного оборудования, используемый на телефонах стандарта GSM. Номер IMEI используется сетями для идентификации смартфонов и блокировки доступа в сеть украденных или занесенных в черный список девайсов. Но к сожалению с IMEI может возникнуть ряд проблем:

Вывод: мы не идентифицируем устройство во всех случаях и нас еще и могут обмануть:C

MAC-address

It may be possible to retrieve a Mac address from a device’s WiFi or Bluetooth hardware. We do not recommend using this as a unique identifier. To start with, not all devices have WiFi. Also, if the WiFi is not turned on, the hardware may not report the Mac address.

Serial Number

Считается уникальным серийным номером устройства, который остается с ним до “самого конца”. Получить его можно таким способом:

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

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

Android ID

— Вот оно! — должны завопить мы. — Решение всех наших бед!

Android ID — это тоже уникальный идентификатор устройства. Представляет из себя 64-разрядную величину, которая генерируется и сохраняется при первой загрузке устройства.
Получить его можно вот так:

Казалось бы, такая короткая строчка избавляет нас от головной боли по идентификации устройства. Даже ребята из гугл использую Android_ID для LVL в примере.

И тут наши надежды рушатся и ничто уже не будет прежним. После обновления на Android 8 Android_ID теперь стал уникальным для каждого установленного приложения. Но, помимо этого, гугл ведь заботится о нас, так что приложения, которые были установлены до обновления останутся с прежними одинаковыми идентификаторами, которые гугл сохраняет с помощью специально написанного для этого сервиса. Но если приложение будет удалено, а затем заново установлено — Android_ID будет разным. Для того чтобы это не произошло, нужно использовать KeyValueBackup.


Но этот backup сервис нужно зарегистрировать, еще и package name указать. Более того, в документации написано, что это может не сработать по любой причине. И кто в этом виноват? Да никто, просто вот так.

Общий вывод

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

Источник

Как рекламщики узнают, какие приложения вы используете

Рассказываем про идентификаторы устройств на Android и про то, как приложения злоупотребляют ими, чтобы больше зарабатывать на рекламе.

О том, как работает реклама в Интернете и как рекламные сети (и не только они) узнают, какие сайты вы посещаете, мы уже рассказывали. Но ваша виртуальная жизнь вряд ли ограничивается веб-страницами. Скорее всего, заметная ее часть проходит в мобильных приложениях, которые тоже нередко зарабатывают на рекламе. Для этого они, как и сайты, сотрудничают с рекламными сетями.

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

Какая информация позволяет отследить ваше Android-устройство

Что приложения могут рассказать рекламной сети о вашем смартфоне? В первую очередь — то, что они на нем установлены. Получив такую информацию от нескольких программ, рекламная сеть в состоянии сделать вывод о том, чем вы интересуетесь и какие объявления могут вас «зацепить». Например, если вы пользуетесь селфи-камерой, Instagram и Snapchat, вам покажут приложения с фильтрами и эффектами для фото.

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

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

Читайте также:  что значит уважать друг друга

Еще один уникальный идентификатор, MAC-адрес, нужен для подключения устройства к сети, а заодно может быть использован, чтобы ограничить набор гаджетов, которые имеют право подключаться к вашему домашнему WiFi. Наконец, Android ID (он же SSAID) разработчики приложений используют, чтобы продавать лицензии на ограниченное количество копий для платных версий своих продуктов.

Долгое время какого-то отдельного идентификатора для рекламы вообще не существовало, поэтому приложения отправляли своим партнерам те, к которым имели доступ. При этом спрятаться от объявлений по интересам пользователь практически не мог: те же IMEI или MAC-адреса — это уникальные номера, по которым устройство опознается однозначно. Каждый раз, когда очередное приложение передает в рекламную сеть один из них, та понимает, что его установили именно вы.

Теоретически существует возможность изменить эти номера — в том числе при помощи специальных приложений, но это непросто, и, что хуже, подвергает опасности ваш телефон. Дело в том, что для подобных экспериментов нужны root-права, а получая их, вы делаете устройство уязвимым. К тому же в некоторых странах манипуляции вроде смены IMEI запрещены законом.

Android ID поменять проще — для этого достаточно сбросить смартфон или планшет до заводских настроек. Но после этого придется заново задавать все параметры, устанавливать приложения, авторизоваться в каждом из них и так далее. В общем, куча мороки, так что желающих делать это часто, мягко говоря, не очень много.

Рекламный идентификатор — ожидание

В 2013 году в качестве компромисса между интересами пользователей Android и рекламщиков компания Google ввела специальный рекламный идентификатор. Его задают сервисы Google Play, и пользователь при желании может сбросить его и создать новый. Делается это в меню Настройки > Google > Реклама > Сброс рекламного идентификатора. С одной стороны, такой идентификатор позволяет рекламным сетям отслеживать привычки и увлечения владельцев устройств. С другой — если же хочется избавиться от слежки рекламщиков, вы можете в любой момент без лишних трудностей его сбросить.

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

В теории это должно работать так: если вам нравится реклама по интересам, вы не трогаете рекламный идентификатор и можете даже разрешить приложениям объединять его с чем угодно. Если же нет, вы запрещаете связывать эту метку с другими и периодически сбрасываете ее, таким образом отвязывая свое устройство от собранного на него досье.

Увы, в действительности все несколько иначе.

Рекламный идентификатор — реальность

Как обнаружил исследователь Серж Эгельман (Serge Egelman), более 70% приложений в Google Play используют хотя бы один дополнительный идентификатор без предупреждения. Некоторые из них, например 3D Bowling, Clean Master и CamScanner, скачали многие миллионы человек.

Чаще всего в ход идет Android ID, хотя IMEI, MAC-адреса и серийные номера разработчики тоже задействуют. Некоторые приложения отправляют партнерам сразу три идентификатора и более. Так, игра 3D Bowling — видимо, для верности — использует и рекламный идентификатор, и IMEI, и Android ID.

Такой подход делает саму идею специального рекламного идентификатора бессмысленной. Даже если вы против слежки и регулярно сбрасываете его, маркетологи при помощи более стабильной метки легко привяжут к существующему профилю новый идентификатор.

Несмотря на то что подобное поведение не соответствует правилам Google Play, вовремя отловить злоупотребляющих идентификаторами разработчиков не так-то просто. Все приложения проверяют перед публикацией, но многие не совсем честные авторы успешно обходят эту проверку. Даже майнеры то и дело попадают в магазин — что уж говорить о программах, в которых нет откровенно вредоносных функций.

При этом просто запретить приложениям доступ к идентификаторам устройства Google не может: как мы уже говорили, их используют не только для рекламы. Лишая мобильные программы, например, возможности считывать Android ID, компания Google помешала бы разработчикам защищать свой продукт от нелегального копирования, а значит, нарушила бы их права.

Борьба с навязчивой рекламой

Конечно, Google не бездействует. Компания принимает меры, чтобы ограничить возможность злоупотребления идентификаторами. Например, начиная с Android Oreo тот же Android ID для каждого приложения задается свой, так что в глазах рекламной сети, полагающейся на этот ID вместо рекламного, ваш Instagram будет установлен на одном устройстве, а Snapchat — на другом.

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

Источник

Как правильно идентифицировать Android-устройства

Всем привет! Если вам нужно создать уникальный и стабильный идентификатор Android-устройства для использования внутри приложения, то вы наверняка заметили тот хаос, который присутствует в документации и в ответах на stackoverflow. Давайте рассмотрим, как решить эту задачу в 2020 году. О том, где взять идентификатор, стойкий к переустановкам вашего приложения, и какие могут быть сложности в будущем — в этом кратком обзоре. Поехали!

Зачем нужна идентификация

В последнее время обсуждения конфиденциальности пользовательских данных стремительно набирают популярность. Возможно, это спровоцировано ростом выручки рекламных гигантов. Возможно, под этими обсуждениями скрывается обеспокоенность монополиями, которые идентифицируют пользователей и их устройства. Так, Apple, борясь со слежкой и ограничивая всем разработчикам использование IDFA, в то же самое время нисколько не ограничивает его себе. Что можно сказать точно: процесс идентификации пользователя приложения для разработчиков усложнился.

Читайте также:  что значит ндс к уплате простыми словами

В задачах, опирающихся на идентификацию, встречаются: аналитика возвратов, персонализация контента и рекламы, предотвращение мошенничества.

Среди последних можно выделить несколько актуальных проблем:

Общие аккаунты в сервисах с платной подпиской или уникальным платным контентом. Только представьте сколько теряют сервисы вроде Netflix или Coursera от того, что пользователи заводят один аккаунт на нескольких человек.

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

Основные способы идентификации

Использование аппаратных идентификаторов

Устаревший и нежизнеспособный в настоящее время способ. Google хорошо поработала над тем, чтобы закрыть доступ к ним, поскольку они не меняются даже после сброса к заводским настройкам. Среди таких идентификаторов:

В настоящее время они недоступны без явного запроса разрешений. Более того, если приложению нужно ими пользоваться, оно может не попасть в Play Market. Оно должно основным функционалом опираться на эти разрешения, иначе будут трудности с прохождением ревью. Поэтому сейчас эта опция доступна приложениям для работы со звонками или голосовым ассистентам.

Такие идентификаторы не меняются после сброса к заводским настройкам, и здесь кроется неочевидный недостаток: люди могут продавать свои устройства, и в таком случае идентификатор будет указывать на другого человека.

Генерация UUID с первым запуском

Данный способ схож с использованием cookie: создаем файл со сгенерированной строкой, сохраняем его в песочнице нашего приложения (например с помощью SharedPreferences), и используем как идентификатор. Недостаток тот же, что и у cookie — вся песочница удаляется вместе с приложением. Еще она может быть очищена пользователем явно из настроек.

При наличии у приложения разрешений к хранилищу вне песочницы можно сохранить идентификатор где-то на устройстве и постараться поискать его после переустановки. Будет ли в тот момент нужное разрешение у приложения — неизвестно. Этот идентификатор можно использовать как идентификатор установки приложения (app instance ID).

Использование идентификаторов, предоставляемых системой

В документации для разработчиков представлен идентификатор ANDROID_ID. Он уникален для каждой комбинации устройства, пользователя, и ключа, которым подписано приложение. До Android 8.0 идентификатор был общим для всех приложений, после — уникален только в рамках ключа подписи. Этот вариант в целом годится для идентификации пользователей в своих приложениях (которые подписаны вашим сертификатом).

Существует и менее известный способ получить идентификатор общий для всех приложений, независимо от сертификата подписи. При первичной настройке устройства (или после сброса к заводским) сервисы Google генерируют идентификатор. Вы не найдете о нем никакой информации в документации, но тем не менее можете попробовать код ниже, он будет работать (по состоянию на конец 2020 года).

Добавляем строчку в файл манифеста нужного модуля:

И вот так достаем идентификатор:

В коде происходит следующее: мы делаем запрос к данным из определенного ContentProvider-a, что поставляется с сервисами Google. Вполне возможно, что Google закроет к нему доступ простым обновлением сервисов. И это даже не обновление самой операционки, а пакета внутри нее, т.е. доступ закроется с обычным обновлением приложений из Play Market.

Но это не самое плохое. Самый большой недостаток в том, что такие фреймворки, как Xposed, позволяют с помощью расширений в пару кликов подменить как ANDROID_ID, так и GSF_ID. Подменить локально сохраненный идентификатор из предыдущего способа сложнее, поскольку это предполагает как минимум базовое изучение работы приложения.

Приложение Device ID Changer в связке с Xposed позволяет подменять практически любой идентификатор. В бесплатной версии — только ANDROID_ID

Создание цифрового отпечатка (fingerprint) устройства

Идея device-fingerprinting не новая, и активно используется в вебе. У самой популярной библиотеки для создания отпечатка — FingerprintJS — 13 тысяч звезд на GitHub. Она позволяет идентифицировать пользователя без использования cookie.

Рассмотрим идею на примере (цифры взяты приблизительные для иллюстрации).

Возьмем ежедневную аудиторию какого-нибудь Android-приложения. Допустим она составляет 4 миллиона. Сколько среди них устройств марки Samsung? Гораздо меньше, примерно 600 тысяч. А сколько среди устройств Samsung таких, что находятся под управлением Android 9? Уже около 150 тысяч. Выделим среди последних такие, что используют сканер отпечатков пальцев? Это множество устройств еще меньше, ведь у многих планшетов нет сканера отпечатков пальцев, а современные модели опираются на распознавание лица. Получим 25000 устройств. Добавляя больше условий и получая больше информации, можно добиться множеств малых размеров. В идеальном случае — с единственным элементом внутри, что и позволит идентифицировать пользователя. Чем больше пользователей можно различить, тем выше энтропия этой информации.

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

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

Из достоинств метода — его независимость от приложения (в отличие от ANDROID_ID), поскольку при одинаковых показаниях с источников отпечатки будут одинаковыми. Отсюда же вытекает первый недостаток — разные устройства с некоторой вероятностью могут иметь одинаковый отпечаток.

Еще одна особенность отпечатка — не все источники информации стабильны. Например, установленные приложения дадут много энтропии. Возьмите устройство друга, и проверьте, одинаков ли у вас набор приложений. Скорее всего — нет, к тому же приложения могут устанавливаться и удаляться почти каждый день.

Читайте также:  что такое wps office на андроиде и для чего он нужен

Таким образом, метод будет работать при правильном соотношении стабильности и уникальности источников энтропии.

Какой метод выбрать

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

Разумный вариант — использовать сторонние решения с открытыми исходниками. В этом случае за изменениями в политике конфиденциальности будет следить сообщество, вовремя поставляя нужные изменения. За столько лет существования проблемы до сих пор нет популярной библиотеки для ее решения, как это есть для веба. Но среди того, что можно найти на android-arsenal, можно выделить две, обе с открытым исходным кодом.

Android-device-identification — библиотека для получения идентификатора. Судя по коду класса, ответственного за идентификацию, используются аппаратные идентификаторы, ANDROID_ID, и цифровой отпечаток полей из класса Build. Увы, проект уже 2 года как не поддерживается, и в настоящий момент скорее неактуален. Но, возможно, у него еще будет развитие.

Fingerprint-android — совсем новая библиотека. Предоставляет 2 метода: getDeviceId и getFingerprint. Первый опирается на GSF_ID и ANDROID_ID, а второй отдает отпечаток, основанный на информации с аппаратного обеспечения, прошивки и некоторых стабильных настроек устройства. Какая точность у метода getFingerprint — пока неясно. Несмотря на это библиотека начинает набирать популярность. Она проста в интеграции, написана на Kotlin, и не несет за собой никаких зависимостей.

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

Если у вас есть вопросы или дополнения — делитесь ими в комментариях. А на этом все, спасибо за внимание!

Источник

Определение Android Device ID на мобильном телефоне

Android ID выполняет функцию уникального идентификатора мобильного устройства. Данный код нередко используется при настройке фирменного софта, а также может потребоваться при обращении в службу техподдержки для решения того или иного вопроса. Давайте рассмотрим, как узнать device ID телефона, работающего под управлением ОС Андроид.

Определение ID с помощью цифровой клавиатуры

Несмотря на то, что в разделе «О телефоне» представлено много полезных данных как о самом «железе», так и о программном обеспечении, ID идентификатор там не вписан. Поэтому для его поиска необходимо прибегать к другим методам.

Самый простой способ получить информацию об ID коде – воспользоваться специальной циферно-символьной комбинацией. Для этого нужно войти в меню набора номера, а затем с помощью появившейся клавиатуры ввести *#*#8255#*#* и нажать кнопку вызова. После этого на экране смартфона должен высветиться искомый идентификатор.

Данная комбинация работает далеко не на всех гаджетах. Поэтому если ее ввод ни к чему не привел, попробуйте другой вариант определения Android ID.

Для быстрого получения ID-кода следует снять заднюю крышку смартфона, изъять аккумулятор и посмотреть на наклейку, находящуюся за ним. Там может быть напечатана требуемая информация. Все больше современных телефонов выпускаются с несъемными батареями, поэтому если ваш девайс не поддается разборке, узнать ID Android таким способом вы не сможете.

Приложения для определения ID Андроида

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

Разблокировать доступ superuser поможет утилита Kingo Root. Ее предварительно нужно скачать и установить на компьютере. Дальнейший порядок действий будет следующим:

После перезагрузки мобильного устройства и открытия прав Суперпользователя можно приступать непосредственно к определению Android Device ID. Одной из программ, позволяющих это сделать, является Mobileuncle Tools. Работает она следующим образом:

Аналогом Mobileuncle Tools является приложение Android Device ID. Скачивается и работает оно точно так же, поэтому дополнительно на нем останавливаться не стоит. Единственное, что следует отметить – с помощью данного софта полученный идентификатор можно сразу же переслать на почтовый ящик.

Как изменить Android ID?

Если вам требуется не просто узнать, а поменять ID идентификатор, сделать это можно через программу Android ID Changer. Для этого нужно:

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

Источник

Поиск своего Google ID

Hangouts — мессенджер с поддержкой звонков. Через его версию для ПК можно узнать идентификатор пользователя Google, но для этого необходимо обладать двумя учётными записями в системе.

Важно! Авторизоваться нужно не в ту же учётную запись, ID которой требуется узнать. Необходимо обладать двумя учетными записями в сервисе, а если еще одной нет, ничто не мешает создать новую.


Аналогичным образом можно узнать Google ID любого пользователя сервисов компании. При этом не важно, заходил ли человек в Hangouts хотя бы один раз или нет.

Помимо этой статьи, на сайте еще 12426 инструкций.
Добавьте сайт Lumpics.ru в закладки (CTRL+D) и мы точно еще пригодимся вам.

Отблагодарите автора, поделитесь статьей в социальных сетях.

Источник

Строительный портал