迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
开源软件名称:Android_CN_OAID开源软件地址:https://gitee.com/li_yu_jiang/Android_CN_OAID开源软件介绍:Android_CN_OAID安卓设备唯一标识解决方案,可作为移动安全联盟统一 SDK (miit_mdid_xxx.aar)的替代方案。本项目提供了国内各大手机厂商获取 OAID(开放匿名设备标识)及海外手机平台获取 AAID(安卓广告标识)的便携接口,另外也提供了 IMEI/MEID、AndroidID、WidevineID、PseudoID、GUID 等常见的设备标识的获取方法。
接入指引依赖配置allprojects { repositories { maven { url 'https://www.jitpack.io' } }} 4.0.0 以前的版本 不建议再使用,请尽快升级到最新版本。4.0.0 版本以后重新调整了与移动安全联盟 SDK 共存的方案 ,直接使用如下依赖即可: dependencies { implementation 'com.github.gzu-liyujiang:Android_CN_OAID:<version>'} 自 4.1.1 开始默认加入了 <manifest> <uses-permission android:name="android.permission.READ_PHONE_STATE" tools:node="remove" /> <uses-permission android:name="android.permission.WRITE_SETTINGS" tools:node="remove" /></manifest> 注意事项
代码示例获取多个可能的设备标识,结合服务端引入拜占庭容错方案得到可靠的稳定的设备唯一标识:
// 在`Application#onCreate`里初始化,注意APP合规性,若最终用户未同意隐私政策则不要调用 @Override public void onCreate() { super.onCreate(); if (privacyPolicyAgreed) { DeviceIdentifier.register(this); } }
// 获取IMEI,只支持Android 10之前的系统,需要READ_PHONE_STATE权限,可能为空 DeviceIdentifier.getIMEI(this); // 获取安卓ID,可能为空 DeviceIdentifier.getAndroidID(this); // 获取数字版权管理ID,可能为空 DeviceIdentifier.getWidevineID(); // 获取伪造ID,根据硬件信息生成,不会为空,有大概率会重复 DeviceIdentifier.getPseudoID(); // 获取GUID,随机生成,不会为空 DeviceIdentifier.getGUID(this); // 是否支持OAID/AAID DeviceID.supportedOAID(this); // 获取OAID/AAID,同步调用 DeviceIdentifier.getOAID(this); // 获取OAID/AAID,异步回调 DeviceID.getOAID(this, new IGetter() { @Override public void onOAIDGetComplete(String result) { // 不同厂商的OAID/AAID格式是不一样的,可进行MD5、SHA1之类的哈希运算统一 } @Override public void onOAIDGetError(Exception error) { // 获取OAID/AAID失败 } }); 混淆规则本库自带 -keep class repeackage.com.uodis.opendevice.aidl.** { *; }-keep interface repeackage.com.uodis.opendevice.aidl.** { *; }-keep class repeackage.com.asus.msa.SupplementaryDID.** { *; }-keep interface repeackage.com.asus.msa.SupplementaryDID.** { *; }-keep class repeackage.com.bun.lib.** { *; }-keep interface repeackage.com.bun.lib.** { *; }-keep class repeackage.com.heytap.openid.** { *; }-keep interface repeackage.com.heytap.openid.** { *; }-keep class repeackage.com.samsung.android.deviceidservice.** { *; }-keep interface repeackage.com.samsung.android.deviceidservice.** { *; }-keep class repeackage.com.zui.deviceidservice.** { *; }-keep interface repeackage.com.zui.deviceidservice.** { *; }-keep class repeackage.com.coolpad.deviceidsupport.** { *; }-keep interface repeackage.com.coolpad.deviceidsupport.** { *; }-keep class repeackage.com.android.creator.** { *; }-keep interface repeackage.com.android.creator.** { *; } 支持情况
效果预览OAID(开放匿名设备标识符)
AAID(安卓广告标识符)
不支持 OAID 或 AAID
锤子(Smartisan)、360(360)、奇酷(QiKu)、海信(Hisense)、金立(Gionee)、美图(Meitu)、糖果(SOAP)、格力(Gree)、朵唯(Doov)、优思(Uniscope)、夏普(SHARP)、乐视(LeTV)、维图(VOTO)、宏碁(Acer)、TCL(TCL)、…… 参考资料OAID 是移动智能终端补充设备标识体系中的一员,官方定义为 Open Anonymous Device Identifier(开放匿名设备标识符), 华为称之为 Open Advertising ID (开放广告标识符),谷歌称之为 Android Advertising ID (安卓广告标识符)。
远程真机
许可协议Copyright (c) 2019-2021 gzu-liyujiang <[email protected]>The software is licensed under the Mulan PSL v2.You can use this software according to the terms and conditions of the Mulan PSL v2.You may obtain a copy of Mulan PSL v2 at: http://license.coscl.org.cn/MulanPSL2THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND, EITHER EXPRESS ORIMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT, MERCHANTABILITY OR FIT FOR A PARTICULARPURPOSE.See the Mulan PSL v2 for more details. ![]() |
请发表评论