问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

OAID:Android设备标识新方案,兼顾隐私与广告需求

创作时间:
2025-01-22 07:23:41
作者:
@小白创作中心

OAID:Android设备标识新方案,兼顾隐私与广告需求

随着移动互联网的快速发展,用户隐私保护已成为各大操作系统和应用开发者关注的重点。在Android系统中,设备标识符是广告业务和用户行为统计的重要基础,但传统的设备标识符(如IMEI)存在隐私泄露风险。为了解决这一问题,移动安全联盟与中国信通院联合推出了OAID(开放匿名标识符),为Android设备提供了一种既满足业务需求又保护用户隐私的解决方案。

01

OAID的技术原理与背景

OAID的出现源于Android系统对隐私保护的不断加强。从Android 10开始,系统限制了非厂商系统应用获取IMEI、MAC等敏感设备信息的权限。这一变化给广告业务和数据分析带来了挑战,因为这些业务需要设备标识符来追踪用户行为和投放广告。为了解决这一问题,移动安全联盟推出了OAID作为替代方案。

OAID是一种匿名设备标识符,设计初衷是在保护用户隐私的同时,为广告和数据分析提供必要的设备标识信息。与IMEI等传统标识符不同,OAID具有以下特点:

  • 匿名性:OAID不直接关联用户的个人身份信息,降低了隐私泄露的风险。
  • 可重置性:用户可以选择重置OAID,进一步增强了隐私保护。
  • 统一性:作为行业标准,OAID得到了主要Android设备制造商的支持,确保了广泛的适用性。

02

OAID的应用场景与开发者接入指南

OAID主要应用于广告业务和用户行为统计两大场景。在广告业务中,OAID用于精准投放和效果评估;在用户行为统计中,OAID帮助开发者分析用户使用习惯,优化产品体验。

对于开发者而言,接入OAID相对简单。以下是一个基本的接入流程:

  1. 添加依赖:在项目的build.gradle文件中添加OAID SDK的依赖。

    implementation files('libs/oaid_sdk_1.0.25.aar')
    
  2. 初始化SDK:在应用初始化时调用SDK的初始化方法。

    var error = MdidSdkHelper.InitSdk(this, true, object : IIdentifierListener {
        override fun OnSupport(p0: Boolean, _supplier: IdSupplier?) {
            if (_supplier == null) {
                runOnUiThread {
                    SpUtil.getSpUtil().put("mOaid","")
                }
                return
            }
            val oaid: String? = _supplier.oaid ?: ""
            val vaid: String = _supplier.vaid
            val aaid: String = _supplier.aaid
            Log.d("twen","oaid=$oaid" +
                    "\n vaid=$vaid" +
                    "\n aaid=$aaid")
            runOnUiThread {
                SpUtil.getSpUtil().put("mOaid",if (oaid.isNullOrEmpty() && (oaid?.length ?: 0) > 4) "" else oaid)
            }
        }
    })
    
  3. 配置混淆规则:在proguard-rules.pro文件中添加必要的混淆规则,确保SDK正常运行。

    # oaid_sdk_1.0.25混淆如下:
    -keep class XI.CA.XI.*{*;}
    -keep class XI.K0.XI.*{*;}
    -keep class XI.XI.K0.*{*;}
    -keep class XI.xo.XI.XI.*{*;}
    -keep class com.asus.msa.** { *; }
    -keep class com.bun.lib.*{*;}
    -keep class com.bun.miitmdid.*{*;}
    -keep class com.huawei.hms.ads.identifier.*{*;}
    -keep class com.samsung.android.deviceidservice.*{*;}
    -keep class com.zui.opendeviceidlibrary.*{*;}
    -keep class org.json.*{*;}
    -keep public class com.netease.nis.sdkwrapper.Utils {public
    <methods>;}
    -keep public class com.bun.miitmdid.** {
        *;
    }
    -keep public class com.bun.miitmdid.supplier.** {
        *;
    }
    
03

OAID的隐私保护机制

OAID在设计时充分考虑了用户隐私保护的需求。与IMEI等固定标识符不同,OAID具有以下隐私保护特性:

  • 可重置性:用户可以选择重置OAID,减少被持续跟踪的可能性。
  • 匿名性:OAID不直接关联用户的个人身份信息,降低了隐私泄露的风险。
  • 用户控制:在获取OAID前,开发者需要获得用户的明确同意,尊重用户的隐私选择。

以欧路软件为例,该公司在隐私政策中明确表示,会采取一切合理可行的措施保护用户个人信息,包括SSL加密、访问权限控制等。在实际应用中,开发者应遵循以下最佳实践:

  • 最小权限原则:仅在必要时申请权限,尽可能减少对用户信息的收集。
  • 透明度:明确告知用户数据收集的目的和方式,获得用户同意。
  • 数据安全:采用加密等安全措施保护数据传输和存储的安全。

OAID的推出,不仅解决了Android 10及以上版本中设备标识符获取的难题,更为重要的是,它在保护用户隐私和满足业务需求之间找到了平衡点。对于开发者而言,OAID提供了一个合规、安全的设备标识解决方案;对于用户而言,OAID增强了对个人隐私的控制权。随着移动互联网的不断发展,OAID必将在Android生态中发挥越来越重要的作用。

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号