- Список кодовых имен устройств Android — List of Android device codenames
- СОДЕРЖАНИЕ
- Кодовые имена от поставщика
- Motorola
- Рекомендации
- Как правильно идентифицировать Android-устройства
- Зачем нужна идентификация
- Основные способы идентификации
- Использование аппаратных идентификаторов
- Генерация UUID с первым запуском
- Использование идентификаторов, предоставляемых системой
- Создание цифрового отпечатка (fingerprint) устройства
- Какой метод выбрать
- Android Codenames
- Breadcrumb
- benwaffle
- Dark lord me
- IntelSoftApps
- sad25kag
- orangekid
- killall
- soraxd
- AnAm85
- cdesai
- lowandbehold
- armyofbear136
- TJBunch1228
- trevanddev
- optimus x
- Rblacula
- zackj3
- baconatorXVI
- kickyoace
- taz1458
- Archer
Список кодовых имен устройств Android — List of Android device codenames
Список имеет формат [[Торговое название как ссылка на основную статью]]: Rom Codename — Кодовое имя модели.
СОДЕРЖАНИЕ
Кодовые имена от поставщика
- Android One 2-го поколения: сид
- Пиксельный парусник
- Pixel XL: Марлин
- Pixel 2 Walleye
- Pixel 2XL: Таймень
- Pixel 3 Blueline
- Pixel 3XL: штриховка
- Pixel 3a Sargo
- Pixel 3a XL: Бонито
- Пиксель 4: пламя
- Pixel 4XL: коралловый
- Pixel 4a Sunfish
- Pixel 4a XL: Bramble
- Pixel 5 Redfin
- Пиксель C: дракон
- Nexus One passion / passion_vf — Страсть
- Nexus S соджу / соджуа / соджук / соджус — Crespo / crespo4g
- Galaxy Nexus якжу / такжу / мисид / сикацеа — Maguro / Toro / Toroplus
- Nexus 4 occam — мако
- Nexus 5 Hammerhead — Hammerhead
- Nexus 6 Шаму — Шаму
- Nexus 5X Bullhead — Бычья голова
- Nexus 6P Angler — Рыболов
- Nexus 7 (2012 г.) —
- Nexus 7 (2013 г.) : dev / flo / flox
- Nexus 10 : манта
- Nexus 9 : камбала / flounder_tle
- Nexus Q —
- Nexus Player : фугу
- Chromecast
Motorola
- Moto G (1-е поколение) : сокол / сапсан
- Moto G (2-е поколение) : Titan / Thea
- Moto G (2015) : скопа
- Moto G3 Turbo: мерлин
- Moto C : Watson
- Moto C Plus: Намат
- Moto G4 : Афина
- Moto G4 Play: гарпия
- Moto E4 : Энди
- Moto E4 Plus: Джордж
- Moto G5 : седрик
- Moto G5 Plus: гончар
- Moto G5s: монтана
- Moto G5s Plus: шлифовальные машины
- Moto G6 : Али — Блейн
- Moto G6 Plus: evert — кассир
- Moto G6 Play: jeter — Эшли
- Moto G7 Play: канал
- Moto G7 Power: океан
- Moto G7 : река
- Moto G7 Plus: озеро
- Moto One Power: повар
- Moto E6 : Sorfna
- Moto G8 Play:
- Мощность Moto G8:
- Moto G8 : Рав
- Moto G8 Plus: Брелок
- Moto X : призрак
- Moto X 2014: виктара
- Moto X Play: люкс
- Moto X Pure Edition: Кларк
- Moto X4 : Пэйтон
- Moto One Action: Тройка
- Moto One Vision: Робуста2
- Moto Z : Griffin
- Moto Z Play: аддисон
- Moto Z2 Force: Нэш
- Moto Z2 Play: Альбус
- Moto Z3 Play: Бекхэм
- Moto Z4 : Odin
Рекомендации
Эта статья о мобильных технологиях незавершена . Вы можете помочь Википедии, расширив ее .
Источник
Как правильно идентифицировать 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), поскольку при одинаковых показаниях с источников отпечатки будут одинаковыми. Отсюда же вытекает первый недостаток — разные устройства с некоторой вероятностью могут иметь одинаковый отпечаток.
Еще одна особенность отпечатка — не все источники информации стабильны. Например, установленные приложения дадут много энтропии. Возьмите устройство друга, и проверьте, одинаков ли у вас набор приложений. Скорее всего — нет, к тому же приложения могут устанавливаться и удаляться почти каждый день.
Таким образом, метод будет работать при правильном соотношении стабильности и уникальности источников энтропии.
Какой метод выбрать
Итак, мы рассмотрели доступные способы идентификации. Какой же выбрать? Как и в большинстве инженерных задач, единственного правильного решения не существует. Все зависит от ваших требований к идентификатору и от требований к безопасности приложения.
Разумный вариант — использовать сторонние решения с открытыми исходниками. В этом случае за изменениями в политике конфиденциальности будет следить сообщество, вовремя поставляя нужные изменения. За столько лет существования проблемы до сих пор нет популярной библиотеки для ее решения, как это есть для веба. Но среди того, что можно найти на 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 Codenames
Breadcrumb
benwaffle
Senior Member
Apple Pie (not released)
Banana Split (not released)
Cupcake 1.5
Donut 1.6
Eclair 1.7
Froyo 2.2
Gingerbread 2.3
Honeycomb 3.0
Ice Cream Sandwich 4.0
Jelly Bean 5.0
Any comments? lol
Dark lord me
Senior Member
A = Astro
B = Bender
And I’m pretty sure that everyone on here knows what the different versions of android are
IntelSoftApps
Retired Recognized Developer
A = Astro
B = Bender
And I’m pretty sure that everyone on here knows what the different versions of android are
sad25kag
Senior Member
Apple Pie (not released)
Banana Split (not released)
Cupcake 1.5
Donut 1.6
Eclair 1.7
Froyo 2.2
Gingerbread 2.3
Honeycomb 3.0
Ice Cream Sandwich 4.0
Jelly Bean 5.0
Any comments? lol
Sent from my . using xda premium
orangekid
Senior Moderator / Mod Committee
killall
Senior Member
soraxd
Senior Member
Apple Pie (not released)
Banana Split (not released)
Cupcake 1.5
Donut 1.6
Eclair 1.7
Froyo 2.2
Gingerbread 2.3
Honeycomb 3.0
Ice Cream Sandwich 4.0
Jelly Bean 5.0
Any comments? lol
AnAm85
Senior Member
cdesai
Inactive Recognized Developer
Also, the Cyanogenmod naming scheme uses the number for the first alphabet of the codename, gingerbread = cm7, ics = cm9
From my fingers to your eyez
lowandbehold
Senior Member
armyofbear136
Senior Member
Ice cream sandwich is still the most delicious of the list. Nobody’s gonna want a crappy old jelly bean after eating an ice cream sandwich xD
My SGSII HercuDom needs more w00t. It always needs more w00t!
TJBunch1228
Senior Member
Any comments? lol
I lul’d at this fail.
Sent from my SGH-T989 using XDA App
trevanddev
Senior Member
Ice cream sandwich is still the most delicious of the list. Nobody’s gonna want a crappy old jelly bean after eating an ice cream sandwich xD
My SGSII HercuDom needs more w00t. It always needs more w00t!
Ill take a cupcake over a ice cream sandwich anyday
Sent from my LG-P925 using XDA App
optimus x
Senior Member
Rblacula
Senior Member
Beta (Not Released)
Astro 1.0
Bender 1.1
Cupcake 1.5
Donut 1.6
Eclair 2.0, 2.1
Froyo 2.2
Gingerbread 2.3
Honeycomb 3.0, 3.1, 3.2
Ice Cream Sandwich 4.0
Jelly Bean ? 5.0?
Any comments? lol
zackj3
Member
baconatorXVI
Senior Member
This was from the Google Developers Google Plus page
kickyoace
Senior Member
Jb is android 4.1 I believe
Sent from my PG86100 using xda premium
taz1458
Senior Member
Jb is android 4.1 I believe
Sent from my PG86100 using xda premium
All speculation at this point. It depends how much they add to it really.
Sent from my Motorola Droid X2 w/ CM7 using XDA Premium
Archer
Inactive Recognized Developer / Retired Senior Mod
From what I’ve gathered, they do a major release and then an update release 6-12 months after that. We had Froyo and then Gingerbread (both v2), and now Ice Cream Sandwich and Jelly Bean (both v4). So Key Lime Pie (if the rumours are correct) will be next and will be v5.whatever.
Источник