UDID和OpenUDID

最近看友盟的SDK更新日志:

Apple公司于2013年5月1日开始,拒绝采集UDID的App上架App Store。 为适应Apple公司的这一政策,2013年4月23日之后,友盟统计分析iOS平台的SDK只提供OpenUDID版本。 OpenUDID版本SDK使用OpenUDID为统计标准,兼有mac地址的统计。同时,我们已经上线服务器端解决方案,避免大家在将SDK从UDID版本切换到OpenUDID版本时统计数据受到影响。

提到了UDID和OpenUDID,那么这两个有什么区别呢?

最近iOS7开始禁掉了UDID,不允许APP随便获取玩家的UDID信息,防止用作非法用途,如广告商广告分析,黑客盗用信用卡.
UDID与OpenUDID的不同之处

  • 每台iOS设备的UDID是唯一且永远不会改变;
  • 每台iOS设备的OpenUDID是通过第一个带有OpenUDID SDK包的App生成,如果你完全删除全部带有OpenUDID SDK包的App(比如恢复系统等),那么OpenUDID会重新生成,而且和之前的值会不同,相当于新设备;
是否足够替代
  • 普通的iOS设备用户不会没事就去恢复系统或者抹掉系统,所以一般OpenUDID的值是不会改变的;
  • 在iOS系统升级换代时,会产生较大的影响,毕竟95%以上的iOS设备用户都会选择升级到最新的系统;
是否足够替代就看你对UDID的需求是什么了,如果要求怎么都不能变,那OpenUDID可能还是不能满足你的需求!


如下是一位网友的

关于OpenUDID的测试分析(含Demo)

原文地址:http://blog.csdn.net/wwmusic/article/details/8929611

早前研究OpenUDID,最近整理资料,故贴出关于OpenUDID测试分析结果


1、OpenUDID测试结果

1)同一台设备下(黑色iPhone4)

a、  Demo1OfOpenUDID测试结果

线局域网下:

137891ec369c899b01cc3df6cad90360514827e7

GPRS下:

137891ec369c899b01cc3df6cad90360514827e7

飞行模式下:

137891ec369c899b01cc3df6cad90360514827e7

b、安装第二个Demo2OfOpenUDID测试结果【Demo1存在未删除】

线局域网下:

137891ec369c899b01cc3df6cad90360514827e7

GPRS下:

137891ec369c899b01cc3df6cad90360514827e7

飞行模式下:

137891ec369c899b01cc3df6cad90360514827e7

c、Demo1存在,删除Demo2应用并重装后:

137891ec369c899b01cc3df6cad90360514827e7

d、 将使用了LXF_OpenUDID方案的应用全部删除【关机重启iPhone,Xcode彻底清除并重启】重装Demo2

da0fd9abf16b6c8dade7e5228a6761b8adfc958b


2)不同设备

a、 黑色iPhone4:

3be23eac6a6fc0721c184a0acfd5d54af4431bb7

b、 白色iphone4

b6d314050e29bf9dd12574320bec8f03354d8547

c、 黑色iPhone4S

965e60bd2a95e3c350066f56a44420d40822df96

(以已有的三部设备分别交替重复测试)


2OpenUDID测试结果分析

1)优点:

a、没有用到MAC地址。MAC地址跟UDID一样,存在隐私问题。不能保证以后不会禁用MAC地址。

b、不同设备能够获取各自唯一的识别码,保证了唯一性,可以用于以往UDID的相关用途。

c、从代码分析OpenUDID的获取,识别码获取方便并且保存谨慎

OpenUDID生成唯一识别码的代码:

  1. unsigned char result[16];  
  2.         const charchar *cStr = [[[NSProcessInfo processInfo] globallyUniqueString] UTF8String];  
  3.         CC_MD5( cStr, strlen(cStr), result );  
  4.         _openUDID = [NSString stringWithFormat:  
  5.                      @"%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%08x",  
  6.                      result[0], result[1], result[2], result[3],   
  7.                      result[4], result[5], result[6], result[7],  
  8.                      result[8], result[9], result[10], result[11],  
  9.                      result[12], result[13], result[14], result[15],  
  10.                      arc4random() % 4294967295];   

当设备装上第一个使用OpenUDID方案的应用程序第一次调试时,会生成一个唯一识别码,追加8为随机数保持了40位的UDID,并且利用了NSUserDefaults类将识别码进行了保存。

     但是当应用删除,UserDefaults同样会被清空,为了避免重新生成唯一识别码,该方案还使用到了UIPasteboard类(设备剪切板),将识别码同时保存到了UIPasteboard中。


  1. UIPasteboard* slotPB = [UIPasteboard pasteboardWithName:availableSlotPBid create:YES];  
  2.         [LXF_OpenUDID _setDict:localDict forPasteboard:slotPB];  

d、当设备上安装第二个使用了OpenUDID方案的应用程序,将会从UIPasteboard中获取唯一识别码,这里取到的就是之前第一个应用保存到UIPasteboard中的。【前提:设备上有一个使用了OpenUDID的应用存在】


2)缺点

a、当将设备上所有使用了OpenUDID方案的应用程序删除,且设备关机重启,xcode彻底清除并重启,重装应用程序去获取OpenUDID,此时OpenUDID变化,与之前不一样了,从测试结果可看出。

b、由缺点1分析,所有OpenUDID应用卸载后,由UIPasteboard保存的数据即被清除,重装故会重新获取新的OpenUDID。

那么当因为用户干预或者恶意程序,致使UIPasteboard数据清除,从而导致OpenUDID被删除,重装也会获取新的OpenUDID。


想细究的同学可以参考网址:http://blog.csdn.net/wwmusic/article/details/8929611


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
UDID定制源码系统是一种用于生成设备唯一标识符(UDID)的定制化源码系统。UDID是一串由字母和数字组成的代码,能够唯一标识某个特定的设备。这个系统可以通过编码和算法来生成UDID,从而使每个设备都有一个独一无二的标识符。 UDID定制源码系统的实现需要编写一段特定的程序代码,并结合一些算法和设备信息来生成UDID。通常,UDID是根据设备的硬件信息和软件配置来生成的,其中包括设备的序列号、硬件型号、操作系统版本等。通过特定的编码和计算过程,将这些信息转化成一串唯一的UDID。 使用UDID定制源码系统可以带来一些好处。首先,它能够确保每个设备都有独一无二的标识符,从而在不同设备之间进行唯一标识和识别。其次,UDID可以用于设备的身份验证和授权,保护设备和信息的安全性。此外,UDID还可以用于设备追踪和统计,帮助开发者了解设备的使用情况和用户行为。 但需要注意的是,UDID的使用可能涉及一些隐私和安全问题。为了保护用户的隐私,现在很多系统都不再直接暴露UDID,取而代之的是使用更加安全和匿名的标识符。因此,在设计和使用UDID定制源码系统时,需要遵循相关的隐私法规和安全原则,确保用户信息的保护和合规性。 总之,UDID定制源码系统是一种用于生成设备唯一标识符的定制化源码系统,通过编码和算法将设备的硬件和软件信息转化为唯一的UDID。它可以用于设备识别、身份验证、授权和数据统计等应用领域,但在使用时需要注意用户隐私和安全保护的问题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值