Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >最全详解Android设备UDID还是唯一ID?

最全详解Android设备UDID还是唯一ID?

作者头像
iOS Magician
发布于 2023-03-22 12:59:17
发布于 2023-03-22 12:59:17
4.2K02
代码可运行
举报
运行总次数:2
代码可运行

这篇文章主要介绍了Android设备UDID还是唯一ID?我觉得挺不错的,现在分享给大家,也给大家做个参考。

我想为我的 Android应用程序生成android设备唯一ID,以根据用户设备udid创建收藏夹. 所有设备都有唯一的ID. import android.provider.Settings.Secure; private String android_id = Secure.getString(getContext().getContentResolver(),,下方主要介绍关于Android设备UDID还是唯一ID?的全文内容,希望对你有所帮助。

一、ID 体系:你只是一串代码

想要了解 OAID,我们首先需要明白 ID 体系:想要追踪一个用户就必须先找到用户,在这个过程中,标识符(ID)就像我们的另一张身份证,它们就代表了数字化之后的你和我。

不同 App 可能通过某些唯一标识符对你进行强制跟踪,广告平台则会通过这个唯一标识符对你进行用户画像描绘,进而共享给相关 App 及其后台,一旦「你」打开了其中的某个 App,那么你就会被识别到——你点了什么、看过什么、可能需要什么,它们比你自己都清楚。

而在智能设备的 ID 体系中存在许许多多不同种类的标识符,下面是一小部分 Android 设备内的 ID,它们可能会用于不同方面的跟踪或标识:

1.IMEI

IMEI 应该是大家最熟悉的一种 ID了,它是手机的身份证,也是运营商识别入网设备信息的代码,是一种不可重置的永久标识符,作用域为设备。

在广告跟踪方面,由于 iOS 的权限管控,iOS 上的第三方 App 并不能通过 IMEI 跟踪用户,但目前 Android 平台中绝大部分 App(尤其是在国内)都通过 IMEI 来追踪用户,开篇所举的例子在 Android 平台上大多也通过 IMEI 跟踪来实现。

与 IMEI 类似的还有一个叫做 IMSI 的标识符,但它主要用于 SIM 卡的身份标识,这里不做展开。

2.Android ID(SSAID)

顾名思义,Android ID 是 Android 设备里不依赖于硬件的一种「半永久标识符」,在系统生命周期内不会改变,但系统重置或刷机后会发生变化,其作用域为一组有关联的应用。

Android 开发者文档和谷歌开发者中文博客对 Android 8.0 后的隐私性和 SSAID 变化做出了说明:

从图中不难看出,在 Android 8.0 以后,签名不同的 App 所获取的 Android ID(SSAID)是不一样的,但同一个开发者可以根据自己的数字签名,将所开发的不同 App 进行关联。

3.Device ID

在 Android 平台,Device ID 是一种统称,与硬件相关的 ID 都可以称之为 Device ID,一般是一种不可重置的永久标识符,作用域为设备。

根据设备、厂家或者 App 调用需求的不同,读取 Device ID 时可能会返回 IMEI 或其他硬件编码,但也有可能因为设备中没有相关硬件而无法获取 Device ID 或返回无效值;与之形成对应的,iOS 设备中也有类似的永久标识符叫做 UDID,但在 iOS 6 之后,苹果已经不允许需要获取 UDID 的 App 上架 App Store 以防止这种不可重置的 ID 被用于追踪或滥用,取而代之的是 IDFA 标识符,即 iOS 设备广告标识符。

另外还有一种叫做 openUDID 的设备唯一标识符,它在 iOS 和 Android 系统内都可以使用,但由于不是系统官方提供的 ID 体系,且依赖于第三方 App 生成,所以应用并不广泛,而随着系统迭代升级,openUDID 也逐渐被边缘化甚至被废弃。

4.UUID、GUID

UUID 也叫做实例 ID,这两个 ID 可以说是在计算机体系内的通用标识符(详细了解 UUID 和 GUID 可以阅读 维基百科 相关内容)。

根据所面向对象的不同,其意义也有微小差别。如果说前面三个 ID 可以用来识别设备,那么这两个 ID 在 Android 系统中的作用主要是识别 App 进程、元素或数据。

因为它们的作用域仅仅是单个应用内,如果用户卸载了该 App 并重新安装,那么 UUID 也会发生变化。不过 App 开发者可以通过存储 UUID 或与其他 ID、用户信息进行组合、绑定、计算等方式,实现 UUID 标识符的「准永久化」。

根据 Android 开发者指南:

标识运行在设备上的应用实例最简单明了的方法就是使用实例

ID,在大多数非广告用例中,这是建议的解决方案。只有进行了针对性配置的应用实例才能访问该标识符,并且标识符重置起来(相对)容易,因为它只存在于应用的安装期。

因此,与无法重置的设备级硬件 ID 相比,实例 ID 具有更好的隐私权属性。

5.AAID

AAID 与 IDFA 作用相同——IDFA 是 iOS 平台内的广告跟踪 ID,AAID 则用于 Android 平台。

它们都是一种非永久、可重置的标识符,专门提供给 App 以进行广告行为,用户随时可以重置该类 ID,或通过系统设置关闭个性化广告跟踪。但 AAID 依托于 Google 服务框架,因此如果手机没有内置该框架、或框架不完整、或无法连接到相关服务,这些情况都有可能导致 AAID 不可用。

除了以上这些 ID 标识符以外,某些硬件 ID(例如 MAC 地址)也可能会被用于追踪。

二、国内 Android 的广告追踪之道

这么多 ID 标识符,每一个都各司其职。而理论上来说,只有 AAID 和 IDFA 是真正用于广告行为的。

但现实状况显然不是这样。

一方面,Android 平台的不少 App 普遍存在违反 Android 开发规范、绕过 Google Play 审查,通过滥用 ID 来追踪用户,以此达到为广告流量、营销分析等商业利益服务的目的。

另一方面,由于 AAID 依托于 Google 服务框架,但在国内使用 Google 服务并不太可行,或者大部分国行手机内置的 Google 服务不完整,App 开发者需要寻找另一个方式去标识用户。

UUID、GUID 作用域太小,不适合广告跟踪;Android ID 可以通过某些方式被改变或因为 bug 导致不可用,第三方 App 无保证可用性;MAC 地址虽然精准,但在Android 6.0(API 23)到 Android 9(API 28)中,系统限制了第三方 API 获取MAC 地址;再加上早些时候,大部分「非玩机用户」对此类功能并没有太多概念,第三方 App 为了能以更加精准持久的方式来跟踪用户,将 IMEI 变成了用于广告跟踪的首选 ID(在 Google Play 帮助中心,获取永久标识符是一种有条件的、退而求其次的广告投放方法,所以在此之前这种方式也不算完全违规)。

这也是我们看到很多 App 提示必须获取「电话」权限才能运行的原因——因为获取 IMEI 必须获得「电话」权限,可是由此也带来了一些隐私问题:允许「电话」权限可能导致 App 读取到很多种其他信息,就像我需要你给我身份证来查询身份证号,但与此同时你的姓名、住址、生日也暴露给我了。

我们可以在 这个网站 查询到部分 App 所需要的权限、资源以及它可能会发送的隐私信息。例如微信,在网站中收录的 6.7.3 版本中,微信获取了如下权限,但并没有检测到发送以下隐私数据。

随着时代发展,用户逐渐认识到手机 App 疯狂获取权限的行为有可能会侵犯隐私,加之近几年 Android 系统的权限和隐私管理逐渐收紧,Android 10(API 29)终于对第三方 App 获取不可重置永久设备标识符(包括 IMEI)的行为做出了 限制。

具体到用户层面,在 Android 10 之后应用即便能够获取到「电话」权限,系统返回给应用的 IMEI 信息值也为空(你可以通过 My IMEI 这款应用进行测试)。

我想为我的 Android应用程序生成androID设备唯一ID,以根据用户设备udID创建收藏夹.

解决方法

所有设备都有唯一的ID.

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
1.import androID.provIDer.Settings.Secure;
2. private String androID_ID = Secure.getString(getContext().getContentResolver(),Secure.ANDROID_ID);

总结

收集整理的Android设备UDID还是唯一ID?全部内容,希望文章能够帮你解决Android设备UDID还是唯一ID?所遇到的程序开发问题

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-08-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
2022Android设备唯一标识(AndroidID,OAID等 )
想要了解 OAID,我们首先需要明白 ID 体系:想要追踪一个用户就必须先找到用户,在这个过程中,标识符(ID)就像我们的另一张身份证,它们就代表了数字化之后的你和我。
iOS Magician
2023/03/21
6.4K0
2022Android设备唯一标识(AndroidID,OAID等 )
2022最新手机设备标识码(IMEI、MEID、UDID、UUID、ANDROID_ID、GAID、IDFA等)教程
(International Mobile Equipment Identity) 是国际移动设备身份码的缩写,国际移动装备辨识码,只有Android手机才获取的到,是由15位数字组成的"电子串号",比如像这样 359881030314356,它与每台移动电话机一一对应,而且该码是全世界唯一的。
爱学iOS的小麦子
2023/05/09
4.9K0
2022最新手机设备标识码(IMEI、MEID、UDID、UUID、ANDROID_ID、GAID、IDFA等)教程
(International Mobile Equipment Identity) 是国际移动设备身份码的缩写,国际移动装备辨识码,只有Android手机才获取的到,是由15位数字组成的"电子串号",比如像这样 359881030314356,它与每台移动电话机一一对应,而且该码是全世界唯一的。
iOS Magician
2023/03/21
5.2K0
2022最新手机设备标识码(IMEI、MEID、UDID、UUID、ANDROID_ID、GAID、IDFA等)教程
移动设备(手机)的唯一ID详解
平台支持:Android - 2.2+ (支持): 与设备的imei号一致。注意:如果无法获取设备imei则使用设备wifi的mac地址,如果无法获取设备mac地址则随机生成设备标识号,确保不同App在同一台设备上获取的值一致。iOS - 4.5+ (支持): 根据包名随机生成的设备标识号。注意:在设备重置后会重新生成。
php007
2019/08/05
5.4K0
移动设备(手机)的唯一ID详解
移动设备(手机)的唯一ID有哪些
对于APP自身产品而言,使用设备唯一ID可以追踪到用户从下载到激活、注册、使用、流失、回归的全流程数据,对产品运营工作非常有帮助。
奎哥
2018/08/31
2.2K0
开发是如何追踪定位到你的?
前言 逛淘宝时如果你搜索了某个品牌的某款鞋子,它接下来就会给你推送该品牌的其他款鞋子或者其他品牌的类似鞋款,类似的广告你一定收到过很多,那么广告商是如何对你的设备精准投放你感兴趣的内容?手机上有不同的APP,搜狗地图APP的推送为何没有推送到搜狗录音助手APP上呢?如何保证能精准推送到你的设备,且不同APP之间不会错乱? 问题明确下就是开发是如何追踪定位到具体的设备和APP呢?这就需要对设备和APP进行唯一标识来进行区分,在此对各种标识符的标识内容和作用进行梳理~ 常见的设备ID标识符 1) IMEI I
用户5521279
2020/04/20
2.3K0
各种获取设备唯一标识的方法介绍
//现在苹果对隐私方面很严 很难获取一种较好的设备唯一标识符方法,下面几篇博文仅做参考:
全栈程序员站长
2022/09/14
3.9K0
各种获取设备唯一标识的方法介绍
获取iOS设备唯一标识的演进UDID, MAC Address,UUID,IDFA,IDFV,OpenUDID
==== Apple公司于2013年5月1日开始,拒绝采集UDID的App上架App Store ==== iOS 5.0 之后uniqueIdentifier方法就被废弃掉了; ==== iOS 7.0 中苹果又封杀mac地址。 ==== iOS 7.0 系统把粘贴板的访问权限限制在了同一个开发者的范围内OpenUDID失效.
conanma
2021/11/04
6.4K0
是谁送你来到我身边--广告归因介绍
归因,也叫Attribution,广义地说是指人们对他人或自己行为原因的推论过程。
netkiddy
2021/09/27
3.7K0
是谁送你来到我身边--广告归因介绍
iOS小技能:设备ID除了使用_idfa、_idfv 还可使用其他替代方案(使用Keychain 存储UUID)
设备信息的获取:除了使用_idfa、_idfv, 还使用sysctl 获取cpu、macaddress信息,以及使用sysctlbyname获取设备型号等信息、 使用CNCopyCurrentNetworkInfo获取ssid、bssid
公众号iOS逆向
2022/08/22
1.7K0
2022最新android设备uuid、udid使用教程​
UDID是Unique Device Identifier的缩写,中文意思是设备唯一标识.​
iOS程序应用
2022/12/05
2.5K0
事关财富密码,字节和腾讯会向苹果低头吗?
这个一直在坊间流传着的选择题,再一次被拉到了台面上讨论。说起来也颇有意思,国民级社交应用、现象级短视频App是软件提供商,而手机行业巨头苹果则是硬件提供商,在业务不交叉的情况下,两者似乎不应该存在矛盾。
用户2908108
2021/04/09
7000
事关财富密码,字节和腾讯会向苹果低头吗?
IDFA、IMEI、OAID 是什么,区别是什么
IDFA、IMEI 和 OAID 都是用于设备标识和追踪的标识符,但它们有不同的用途和适用范围。以下是对这三者的详细介绍及其区别:
蓓蕾心晴
2024/06/04
8.3K0
论设备指纹的唯一性:始于硬件ID,终于云端交互
互联网时代,用户拉新几乎是所有公司必须面对的话题,从投入运营的初期阶段到快速成长期,再到稳定的成熟阶段,拉新贯穿了产品的整个生命周期,毕竟有了新用户才能创造出价值。
顶象技术
2022/08/30
1.7K0
论设备指纹的唯一性:始于硬件ID,终于云端交互
从苹果IDFA新政看iOS手机操作系统的平台权力边界
2020年6月,苹果在WWDC开发者大会宣布,将在iOS14及后续系统中启用ATT框架(App Tracking Transparency,苹果系统默认的授权弹窗),限制应用读取用户设备的广告标识符IDFA,以保护用户隐私。苹果IDFA新政的主要变化即在于,此前在系统层面默认开启的IDFA权限将下沉到应用层面,且默认关闭。苹果此举意味着一旦用户拒绝授权,精准营销就将彻底丧失生命力。
刘旷
2021/04/24
6360
从苹果IDFA新政看iOS手机操作系统的平台权力边界
iOS设备唯一标识的前世今生
设备唯一标识 ----       估计很多开发都有被要求过获取一下设备的唯一标识,获取设备的唯一标识经常使用在我们做统计或者是在保证一台设备登录亦或者是做IM的时候可能会考虑去使用它,这一次在自己的需求当中就有一个“账号绑定设备”的需求,这个需求不讨论它的实用性怎样,需求还是需要我们自己去完成。       按照自己的理解针对这个设备的唯一标识,我还是建议少拿!当然说的是针对iOS的设备。下面就来总结一下这个唯一标识的发展过程。 一: UDID ----       UDID是什么?       你手机连
Mr.RisingSun
2018/03/19
3.7K0
iOS设备唯一标识的前世今生
相关推荐
2022Android设备唯一标识(AndroidID,OAID等 )
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验