├── .gitattributes
├── .gitignore
├── Doc
├── 1.0.23
│ └── oaid_sdk_1.0.23.aar
├── 1.0.25
│ ├── DemoHelper.java
│ ├── oaid_sdk_1.0.25.aar
│ ├── release note.txt
│ ├── supplierconfig.json
│ ├── 移动智能终端补充设备标识体系统一调用SDK F&Qv2.4.pdf
│ └── 移动智能终端补充设备标识体系统一调用SDK开发者说明文档v1.0.25.pdf
├── 1.0.26
│ ├── DemoHelper.java
│ ├── example_batch.csv
│ ├── oaid_sdk_1.0.26.aar
│ ├── oaid_sdk_1.0.26_demo.apk
│ ├── oaid_sdk_1.0.26_demo_src.zip
│ ├── release note.txt
│ ├── supplierconfig.json
│ ├── 团体标准-移动智能终端补充设备标识规范-v20190516.pdf
│ ├── 移动智能终端补充设备标识体系统一调用SDK F&Qv2.4.pdf
│ └── 移动智能终端补充设备标识体系统一调用SDK开发者说明文档v1.0.26.pdf
├── 1.0.27
│ ├── DemoHelper.java
│ ├── example_batch.csv
│ ├── oaid_sdk_1.0.27.aar
│ ├── oaid_sdk_1.0.27_demo.apk
│ ├── oaid_sdk_1.0.27_demo_src.zip
│ ├── release note.txt
│ ├── supplierconfig.json
│ ├── 团体标准-移动智能终端补充设备标识规范-v20190516.pdf
│ ├── 混淆配置.txt
│ ├── 移动智能终端补充设备标识体系统一调用SDK F&Qv2.5.pdf
│ └── 移动智能终端补充设备标识体系统一调用SDK开发者说明文档v1.0.27.pdf
├── 1.0.29
│ ├── DemoHelper.java
│ ├── example_batch.csv
│ ├── oaid_sdk_1.0.29.aar
│ ├── oaid_sdk_1.0.29_demo_src.zip
│ ├── release note.txt
│ ├── supplierconfig.json
│ ├── 团体标准-移动智能终端补充设备标识规范-v20190516.pdf
│ ├── 混淆配置.txt
│ ├── 移动智能终端补充设备标识体系统一调用SDK F&Qv2.5.pdf
│ └── 移动智能终端补充设备标识体系统一调用SDK开发者说明文档v1.0.29.pdf
├── 1.0.30
│ ├── DemoHelper.java
│ ├── example_batch.csv
│ ├── oaid_sdk_1.0.30.aar
│ ├── oaid_sdk_1.0.30_demo_src.zip
│ ├── release note.txt
│ ├── supplierconfig.json
│ ├── 团体标准-移动智能终端补充设备标识规范-v20190516.pdf
│ ├── 混淆配置.txt
│ ├── 移动智能终端补充设备标识体系统一调用SDK F&Qv2.6.pdf
│ └── 移动智能终端补充设备标识体系统一调用SDK开发者说明文档v1.0.30.pdf
├── 1.1.0
│ ├── DemoHelper.java
│ ├── example_batch.csv
│ ├── oaid_sdk_1.1.0.aar
│ ├── oaid_sdk_1.1.0_demo.apk
│ ├── oaid_sdk_1.1.0_demo_src.zip
│ ├── release note.txt
│ ├── supplierconfig.json
│ ├── 团体标准-移动智能终端补充设备标识规范-v20190516.pdf
│ ├── 混淆配置.txt
│ ├── 移动智能终端补充设备标识体系统一调用SDK F&Qv2.7.pdf
│ └── 移动智能终端补充设备标识体系统一调用SDK开发者说明文档v1.1.0.pdf
├── 1.2.0
│ ├── DemoHelper.java
│ ├── example_batch.csv
│ ├── oaid_sdk_1.2.0.aar
│ ├── oaid_sdk_1.2.0_demo.apk
│ ├── oaid_sdk_1.2.0_demo_src.zip
│ ├── release note.txt
│ ├── supplierconfig.json
│ ├── 混淆配置.txt
│ ├── 移动智能终端补充设备标识体系统一调用SDK F&Qv2.9.pdf
│ ├── 移动智能终端补充设备标识体系统一调用SDK开发者说明文档v1.2.0.pdf
│ └── 移动智能终端补充设备标识规范-v20190516.pdf
├── 1.2.1
│ ├── DemoHelper.java
│ ├── example_batch.csv
│ ├── oaid_sdk_1.2.1.aar
│ ├── oaid_sdk_1.2.1_demo.apk
│ ├── oaid_sdk_1.2.1_demo_src.zip
│ ├── release note.txt
│ ├── supplierconfig.json
│ ├── 混淆配置.txt
│ ├── 移动智能终端补充设备标识体系统一调用SDK F&Qv2.9.pdf
│ ├── 移动智能终端补充设备标识体系统一调用SDK开发者说明文档v1.2.1.pdf
│ └── 移动智能终端补充设备标识规范-v20190516.pdf
├── 2.0.0
│ ├── DemoHelper.java
│ ├── example_batch.csv
│ ├── oaid_sdk_2.0.0.aar
│ ├── oaid_sdk_2.0.0_demo_src.zip
│ ├── oaid_sdk_demo_release_20220901.apk
│ ├── release note.txt
│ ├── supplierconfig.json
│ ├── 混淆配置.txt
│ ├── 移动智能终端补充设备标识体系统一调用SDK F&Qv3.0.pdf
│ ├── 移动智能终端补充设备标识体系统一调用SDK开发者说明文档v2.0.0.pdf
│ └── 移动智能终端补充设备标识规范-v20190516.pdf
├── 2.1.0
│ ├── DemoHelper.java
│ ├── example_batch.csv
│ ├── oaid-sdk-demo.zip
│ ├── oaid_sdk_2.1.0.aar
│ ├── oaid_sdk_2.1.0_demo.apk
│ ├── release note.txt
│ ├── supplierconfig.json
│ ├── 混淆配置.txt
│ ├── 移动智能终端补充设备标识体系统一调用SDK F&Qv3.1.pdf
│ └── 移动智能终端补充设备标识体系统一调用SDK开发者说明文档v2.1.0.pdf
├── 2.2.0
│ ├── DemoHelper.java
│ ├── example_batch.csv
│ ├── oaid_sdk_2.2.0.aar
│ ├── oaid_sdk_demo_release_20230522.apk
│ ├── release note.txt
│ ├── supplierconfig.json
│ ├── 混淆配置.txt
│ ├── 移动智能终端补充设备标识体系统一调用SDK F&Qv3.2.pdf
│ ├── 移动智能终端补充设备标识体系统一调用SDK开发者说明文档v2.2.0.pdf
│ └── 移动智能终端补充设备标识规范-v20190516.pdf
├── 2.3.0
│ ├── DemoHelper.java
│ ├── TTAF 095-2023 移动智能终端补充设备标识规范.pdf
│ ├── example_batch.csv
│ ├── oaid_sdk_2.3.0.aar
│ ├── oaid_sdk_2.3.0_demo_src.zip
│ ├── release note.txt
│ ├── supplierconfig.json
│ ├── 混淆配置.txt
│ ├── 移动智能终端补充设备标识体系统一调用SDK F&Qv3.2.pdf
│ └── 移动智能终端补充设备标识体系统一调用SDK开发者说明文档v2.3.0.pdf
├── 2.4.0
│ ├── DemoHelper.java
│ ├── TTAF 095-2023 移动智能终端补充设备标识规范.pdf
│ ├── example_batch.csv
│ ├── oaid_sdk_2.4.0.aar
│ ├── oaid_sdk_2.4.0_demo_src.zip
│ ├── oaid_sdk_demo_release_20240129.apk
│ ├── release note.txt
│ ├── supplierconfig.json
│ ├── 混淆配置.txt
│ ├── 移动智能终端补充设备标识体系统一调用SDK F&Qv3.2.pdf
│ └── 移动智能终端补充设备标识体系统一调用SDK开发者说明文档v2.4.0.pdf
├── 2.5.0
│ ├── DemoHelper.java
│ ├── TTAF 095-2023 移动智能终端补充设备标识规范.pdf
│ ├── example_batch.csv
│ ├── oaid_sdk_2.5.0.aar
│ ├── oaid_sdk_2.5.0_demo_src.zip
│ ├── oaid_sdk_demo_release_20240521.apk
│ ├── release note.txt
│ ├── supplierconfig.json
│ ├── 混淆配置.txt
│ ├── 移动智能终端补充设备标识体系统一调用SDK F&Qv3.3.pdf
│ └── 移动智能终端补充设备标识体系统一调用SDK开发者说明文档v2.5.0.pdf
└── 2.5.1
│ ├── DemoHelper.java
│ ├── TTAF 095-2023 移动智能终端补充设备标识规范.pdf
│ ├── example_batch.csv
│ ├── oaid_sdk_2.5.1.aar
│ ├── oaid_sdk_2.5.1_demo_src.zip
│ ├── oaid_sdk_demo_release_20240726.apk
│ ├── release note.txt
│ ├── supplierconfig.json
│ ├── 混淆配置.txt
│ ├── 移动智能终端补充设备标识体系统一调用SDK F&Qv3.3.pdf
│ └── 移动智能终端补充设备标识体系统一调用SDK开发者说明文档v2.5.1.pdf
├── Readme.md
├── app
├── .gitignore
├── build.gradle.kts
├── proguard-rules.pro
└── src
│ └── main
│ ├── AndroidManifest.xml
│ ├── assets
│ ├── com.example.oaidtest2.cert.pem
│ └── supplierconfig.json
│ ├── java
│ └── com
│ │ └── mai
│ │ └── oaidviewer
│ │ └── MainActivity.kt
│ └── res
│ ├── drawable-v24
│ └── ic_launcher_foreground.xml
│ ├── drawable
│ └── ic_launcher_background.xml
│ ├── layout
│ └── activity_main.xml
│ ├── mipmap-anydpi-v26
│ ├── ic_launcher.xml
│ └── ic_launcher_round.xml
│ ├── mipmap-hdpi
│ ├── ic_launcher.png
│ └── ic_launcher_round.png
│ ├── mipmap-mdpi
│ ├── ic_launcher.png
│ └── ic_launcher_round.png
│ ├── mipmap-xhdpi
│ ├── ic_launcher.png
│ └── ic_launcher_round.png
│ ├── mipmap-xxhdpi
│ ├── ic_launcher.png
│ └── ic_launcher_round.png
│ ├── mipmap-xxxhdpi
│ ├── ic_launcher.png
│ └── ic_launcher_round.png
│ ├── values-night
│ └── themes.xml
│ └── values
│ ├── colors.xml
│ ├── strings.xml
│ └── themes.xml
├── build-logic
├── .gitignore
├── build.gradle.kts
├── settings.gradle.kts
└── src
│ └── main
│ └── java
│ └── com
│ └── mai
│ └── build_logic
│ ├── BuildLogic.kt
│ └── LibraryExt.kt
├── build.gradle.kts
├── gradle.properties
├── gradle
├── libs.versions.toml
└── wrapper
│ ├── gradle-wrapper.jar
│ └── gradle-wrapper.properties
├── gradlew
├── gradlew.bat
├── imgs
├── 1.jpg
├── 2.png
└── 3.png
├── library
├── impl
│ ├── .gitignore
│ ├── build.gradle.kts
│ └── src
│ │ └── main
│ │ ├── AndroidManifest.xml
│ │ └── java
│ │ └── com
│ │ └── mai
│ │ └── oaidviewer
│ │ └── library
│ │ ├── CertUtil.kt
│ │ ├── OAIDCallback.kt
│ │ ├── OAIDImpl.kt
│ │ ├── OAIDSupplier.kt
│ │ └── RequestPermissionCallback.kt
├── lib_1023
│ ├── .gitignore
│ ├── build.gradle.kts
│ └── src
│ │ └── main
│ │ ├── AndroidManifest.xml
│ │ └── java
│ │ └── com
│ │ └── mai
│ │ └── oaidviewer
│ │ └── library
│ │ └── OAIDHelper.kt
├── lib_1025
│ ├── .gitignore
│ ├── build.gradle.kts
│ └── src
│ │ └── main
│ │ ├── AndroidManifest.xml
│ │ └── java
│ │ └── com
│ │ └── mai
│ │ └── oaidviewer
│ │ └── library
│ │ └── OAIDHelper.kt
├── lib_1026
│ ├── .gitignore
│ ├── build.gradle.kts
│ └── src
│ │ └── main
│ │ ├── AndroidManifest.xml
│ │ └── java
│ │ └── com
│ │ └── mai
│ │ └── oaidviewer
│ │ └── library
│ │ └── OAIDHelper.kt
├── lib_1027
│ ├── .gitignore
│ ├── build.gradle.kts
│ └── src
│ │ └── main
│ │ ├── AndroidManifest.xml
│ │ └── java
│ │ └── com
│ │ └── mai
│ │ └── oaidviewer
│ │ └── library
│ │ └── OAIDHelper.kt
├── lib_1029
│ ├── .gitignore
│ ├── build.gradle.kts
│ └── src
│ │ └── main
│ │ ├── AndroidManifest.xml
│ │ └── java
│ │ └── com
│ │ └── mai
│ │ └── oaidviewer
│ │ └── library
│ │ └── OAIDHelper.kt
├── lib_1030
│ ├── .gitignore
│ ├── build.gradle.kts
│ └── src
│ │ └── main
│ │ ├── AndroidManifest.xml
│ │ └── java
│ │ └── com
│ │ └── mai
│ │ └── oaidviewer
│ │ └── library
│ │ └── OAIDHelper.kt
├── lib_1100
│ ├── .gitignore
│ ├── build.gradle.kts
│ └── src
│ │ └── main
│ │ ├── AndroidManifest.xml
│ │ └── java
│ │ └── com
│ │ └── mai
│ │ └── oaidviewer
│ │ └── library
│ │ └── OAIDHelper.kt
├── lib_1200
│ ├── .gitignore
│ ├── build.gradle.kts
│ └── src
│ │ └── main
│ │ ├── AndroidManifest.xml
│ │ └── java
│ │ └── com
│ │ └── mai
│ │ └── oaidviewer
│ │ └── library
│ │ └── OAIDHelper.kt
├── lib_1201
│ ├── .gitignore
│ ├── build.gradle.kts
│ └── src
│ │ └── main
│ │ ├── AndroidManifest.xml
│ │ └── java
│ │ └── com
│ │ └── mai
│ │ └── oaidviewer
│ │ └── library
│ │ └── OAIDHelper.kt
├── lib_2000
│ ├── .gitignore
│ ├── build.gradle.kts
│ └── src
│ │ └── main
│ │ ├── AndroidManifest.xml
│ │ └── java
│ │ └── com
│ │ └── mai
│ │ └── oaidviewer
│ │ └── library
│ │ └── OAIDHelper.kt
├── lib_2100
│ ├── .gitignore
│ ├── build.gradle.kts
│ └── src
│ │ └── main
│ │ ├── AndroidManifest.xml
│ │ └── java
│ │ └── com
│ │ └── mai
│ │ └── oaidviewer
│ │ └── library
│ │ └── OAIDHelper.kt
├── lib_2200
│ ├── .gitignore
│ ├── build.gradle.kts
│ └── src
│ │ └── main
│ │ ├── AndroidManifest.xml
│ │ └── java
│ │ └── com
│ │ └── mai
│ │ └── oaidviewer
│ │ └── library
│ │ └── OAIDHelper.kt
├── lib_2300
│ ├── .gitignore
│ ├── build.gradle.kts
│ └── src
│ │ └── main
│ │ ├── AndroidManifest.xml
│ │ └── java
│ │ └── com
│ │ └── mai
│ │ └── oaidviewer
│ │ └── library
│ │ └── OAIDHelper.kt
├── lib_2400
│ ├── .gitignore
│ ├── build.gradle.kts
│ └── src
│ │ └── main
│ │ ├── AndroidManifest.xml
│ │ └── java
│ │ └── com
│ │ └── mai
│ │ └── oaidviewer
│ │ └── library
│ │ └── OAIDHelper.kt
├── lib_2500
│ ├── .gitignore
│ ├── build.gradle.kts
│ └── src
│ │ └── main
│ │ ├── AndroidManifest.xml
│ │ └── java
│ │ └── com
│ │ └── mai
│ │ └── oaidviewer
│ │ └── library
│ │ └── OAIDHelper.kt
└── lib_2501
│ ├── .gitignore
│ ├── build.gradle.kts
│ └── src
│ └── main
│ ├── AndroidManifest.xml
│ └── java
│ └── com
│ └── mai
│ └── oaidviewer
│ └── library
│ └── OAIDHelper.kt
└── settings.gradle.kts
/.gitattributes:
--------------------------------------------------------------------------------
1 | # Auto detect text files and perform LF normalization
2 | * text=auto
3 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | # Built application files
2 | *.apk
3 | *.ap_
4 | *.aab
5 |
6 | # Files for the ART/Dalvik VM
7 | *.dex
8 |
9 | # Java class files
10 | *.class
11 |
12 | # Generated files
13 | bin/
14 | gen/
15 | out/
16 | # Uncomment the following line in case you need and you don't have the release build type files in your app
17 | # release/
18 |
19 | # Gradle files
20 | .gradle/
21 | build/
22 |
23 | # Local configuration file (sdk path, etc)
24 | local.properties
25 |
26 | # Proguard folder generated by Eclipse
27 | proguard/
28 |
29 | # Log Files
30 | *.log
31 |
32 | # Android Studio Navigation editor temp files
33 | .navigation/
34 |
35 | # Android Studio captures folder
36 | captures/
37 |
38 | # IntelliJ
39 | *.iml
40 | .idea/
41 | .idea/workspace.xml
42 | .idea/tasks.xml
43 | .idea/gradle.xml
44 | .idea/assetWizardSettings.xml
45 | .idea/dictionaries
46 | .idea/libraries
47 | # Android Studio 3 in .gitignore file.
48 | .idea/caches
49 | .idea/modules.xml
50 | # Comment next line if keeping position of elements in Navigation Editor is relevant for you
51 | .idea/navEditor.xml
52 |
53 | # Keystore files
54 | # Uncomment the following lines if you do not want to check your keystore files in.
55 | #*.jks
56 | #*.keystore
57 |
58 | # External native build folder generated in Android Studio 2.2 and later
59 | .externalNativeBuild
60 |
61 | # Google Services (e.g. APIs or Firebase)
62 | # google-services.json
63 |
64 | # Freeline
65 | freeline.py
66 | freeline/
67 | freeline_project_description.json
68 |
69 | # fastlane
70 | fastlane/report.xml
71 | fastlane/Preview.html
72 | fastlane/screenshots
73 | fastlane/test_output
74 | fastlane/readme.md
75 |
76 | # Version control
77 | vcs.xml
78 |
79 | # lint
80 | lint/intermediates/
81 | lint/generated/
82 | lint/outputs/
83 | lint/tmp/
84 | # lint/reports/
85 |
--------------------------------------------------------------------------------
/Doc/1.0.23/oaid_sdk_1.0.23.aar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MaYiFei1995/OAIDViewer/397f55443ba74b5a3439431c13bf956b3baa09b8/Doc/1.0.23/oaid_sdk_1.0.23.aar
--------------------------------------------------------------------------------
/Doc/1.0.25/DemoHelper.java:
--------------------------------------------------------------------------------
1 | package com.mdid.msa;
2 |
3 | import android.content.Context;
4 | import android.support.annotation.NonNull;
5 | import android.util.Log;
6 |
7 | import com.bun.miitmdid.core.ErrorCode;
8 | import com.bun.miitmdid.core.MdidSdkHelper;
9 | import com.bun.supplier.IIdentifierListener;
10 | import com.bun.supplier.IdSupplier;
11 |
12 | /**
13 | * Created by caict on 2020/6/8.
14 | */
15 |
16 | public class DemoHelper implements IIdentifierListener {
17 |
18 | private AppIdsUpdater _listener;
19 | public DemoHelper(AppIdsUpdater callback){
20 | _listener=callback;
21 |
22 | }
23 |
24 | public void getDeviceIds(Context cxt){
25 |
26 | long timeb=System.currentTimeMillis();
27 | // 方法调用
28 | int nres = CallFromReflect(cxt);
29 |
30 | long timee=System.currentTimeMillis();
31 | long offset=timee-timeb;
32 | if(nres == ErrorCode.INIT_ERROR_DEVICE_NOSUPPORT){//不支持的设备
33 |
34 | }else if( nres == ErrorCode.INIT_ERROR_LOAD_CONFIGFILE){//加载配置文件出错
35 |
36 | }else if(nres == ErrorCode.INIT_ERROR_MANUFACTURER_NOSUPPORT){//不支持的设备厂商
37 |
38 | }else if(nres == ErrorCode.INIT_ERROR_RESULT_DELAY){//获取接口是异步的,结果会在回调中返回,回调执行的回调可能在工作线程
39 |
40 | }else if(nres == ErrorCode.INIT_HELPER_CALL_ERROR){//反射调用出错
41 |
42 | }
43 | Log.d(getClass().getSimpleName(),"return value: "+String.valueOf(nres));
44 |
45 | }
46 |
47 | /*
48 | * 方法调用
49 | *
50 | * */
51 | private int CallFromReflect(Context cxt){
52 | return MdidSdkHelper.InitSdk(cxt,true,this);
53 | }
54 |
55 | /*
56 | * 获取相应id
57 | *
58 | * */
59 | @Override
60 | public void OnSupport(boolean isSupport, IdSupplier _supplier) {
61 | if(_supplier==null) {
62 | return;
63 | }
64 | String oaid=_supplier.getOAID();
65 | String vaid=_supplier.getVAID();
66 | String aaid=_supplier.getAAID();
67 | StringBuilder builder=new StringBuilder();
68 | builder.append("support: ").append(isSupport?"true":"false").append("\n");
69 | builder.append("OAID: ").append(oaid).append("\n");
70 | builder.append("VAID: ").append(vaid).append("\n");
71 | builder.append("AAID: ").append(aaid).append("\n");
72 | String idstext=builder.toString();
73 | if(_listener!=null){
74 | _listener.OnIdsAvalid(idstext);
75 | }
76 | }
77 |
78 | public interface AppIdsUpdater{
79 | void OnIdsAvalid(@NonNull String ids);
80 | }
81 |
82 | }
83 |
--------------------------------------------------------------------------------
/Doc/1.0.25/oaid_sdk_1.0.25.aar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MaYiFei1995/OAIDViewer/397f55443ba74b5a3439431c13bf956b3baa09b8/Doc/1.0.25/oaid_sdk_1.0.25.aar
--------------------------------------------------------------------------------
/Doc/1.0.25/release note.txt:
--------------------------------------------------------------------------------
1 | 2019年8月6日 miit_mdid_sdk_v1.0.5
2 | 1、去掉所有非必需数据的采集;
3 | 2、兼容AndroidX;
4 | 3、修改小米部分手机上取udid的问题;
5 | 4、更新OPPO接口调用;
6 | 5、增加联想接口支持;
7 | 6、优化SDK包体积。
8 |
9 | 2019年8月16日 miit_mdid_sdk_v1.0.6
10 | 1、去掉所有非必需数据的采集;
11 | 2、兼容AndroidX;
12 | 3、修改小米部分手机上取udid的问题;
13 | 4、更新OPPO接口调用;
14 | 5、增加联想接口支持;
15 | 6、优化SDK包体积;
16 | 7、支持armeabi。
17 |
18 | 2019年8月28日 miit_mdid_sdk_v1.0.8
19 | 1、增加华硕接口支持;
20 | 2、解决动态加载和插件化;
21 | 3、优化代码,支持反射调用;
22 | 4、解决android9以上找不到方法的问题;
23 | 5、更新说明文档。
24 |
25 | 2019年9月18日 miit_mdid_sdk_v1.0.9
26 | 1、解决部分APP、机型崩溃问题;
27 | 2、增加了部分使用建议和F&Q。
28 |
29 |
30 | vertion 1.0.10 2019-10-14
31 | 1.支持三星,魅族,nubia手机设备
32 | 2.更新华硕,vivo 支持代码。
33 | 3.调整AsyncTask使用并行线程池,改进性能。
34 | 4.调整输出异常为输出调试信息,避免开发者疑问
35 | 5.vivo改为异步,改进性能
36 | 6.修改加固内联定义,解决崩溃
37 | 7.不再提供udid接口。
38 |
39 | version 1.0.11 2019-12-02
40 | 1.修复三星,联想在不支持的手机上不回调的bug
41 | 2.修复webview依赖导致的问题
42 | 3.初始化过程中,出现任何问题都会走回调
43 | 4.sdk里做初始化检查,避免重复初始化
44 | 5.vivo 9.0以下不调用获取oaid
45 | 6.去掉默认aaid的生成
46 | 7.修改华为空指针的bug
47 |
48 | verstion 1.0.13 2020-02-04
49 | 1.调整sdk包架构,支持系统级接入,目前只在部分手机上支持,开发者不用更新sdk,即可享受sdk的升级。
50 | 2.支持freemeos,ssuios,致濮os
51 | 3.支持一加和黑鲨手机
52 | 4.sdk android sdk提升到28
53 | 5.修复vivo,oppo在低版本不支持的手机上引起的崩溃
54 | 6.部分类不加固,修复部分手机的加固崩溃问题
55 |
56 | version 1.0.22 2020-07-10
57 | 1.为解决之前加固引起的问题,更新加固方式
58 | 2.去除不必要的信息收集问题
59 | 3.更新部分厂家的接口方式
60 |
61 | version 1.0.23 2020-09-07
62 | 1.修改OPPO获取接口
63 | 2.更新混淆字典
64 | 3.修改已知加固方案产生的bug
65 |
66 | vertion 1.0.25 2020-12-04
67 | 1.修复特定情况下会出现“检测到试用版运行”的bug;
68 | 2.解决了联想反射找不到类的问题。
69 |
--------------------------------------------------------------------------------
/Doc/1.0.25/supplierconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "supplier":{
3 | "vivo":{
4 | "appid":"100215079"
5 | },
6 | "xiaomi":{
7 |
8 | },
9 | "huawei":{
10 |
11 | },
12 | "oppo":{
13 |
14 | }
15 | }
16 |
17 | }
18 |
--------------------------------------------------------------------------------
/Doc/1.0.25/移动智能终端补充设备标识体系统一调用SDK F&Qv2.4.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MaYiFei1995/OAIDViewer/397f55443ba74b5a3439431c13bf956b3baa09b8/Doc/1.0.25/移动智能终端补充设备标识体系统一调用SDK F&Qv2.4.pdf
--------------------------------------------------------------------------------
/Doc/1.0.25/移动智能终端补充设备标识体系统一调用SDK开发者说明文档v1.0.25.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MaYiFei1995/OAIDViewer/397f55443ba74b5a3439431c13bf956b3baa09b8/Doc/1.0.25/移动智能终端补充设备标识体系统一调用SDK开发者说明文档v1.0.25.pdf
--------------------------------------------------------------------------------
/Doc/1.0.26/example_batch.csv:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MaYiFei1995/OAIDViewer/397f55443ba74b5a3439431c13bf956b3baa09b8/Doc/1.0.26/example_batch.csv
--------------------------------------------------------------------------------
/Doc/1.0.26/oaid_sdk_1.0.26.aar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MaYiFei1995/OAIDViewer/397f55443ba74b5a3439431c13bf956b3baa09b8/Doc/1.0.26/oaid_sdk_1.0.26.aar
--------------------------------------------------------------------------------
/Doc/1.0.26/oaid_sdk_1.0.26_demo.apk:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MaYiFei1995/OAIDViewer/397f55443ba74b5a3439431c13bf956b3baa09b8/Doc/1.0.26/oaid_sdk_1.0.26_demo.apk
--------------------------------------------------------------------------------
/Doc/1.0.26/oaid_sdk_1.0.26_demo_src.zip:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MaYiFei1995/OAIDViewer/397f55443ba74b5a3439431c13bf956b3baa09b8/Doc/1.0.26/oaid_sdk_1.0.26_demo_src.zip
--------------------------------------------------------------------------------
/Doc/1.0.26/release note.txt:
--------------------------------------------------------------------------------
1 | 2019年8月6日 miit_mdid_sdk_v1.0.5
2 | 1、去掉所有非必需数据的采集;
3 | 2、兼容AndroidX;
4 | 3、修改小米部分手机上取udid的问题;
5 | 4、更新OPPO接口调用;
6 | 5、增加联想接口支持;
7 | 6、优化SDK包体积。
8 |
9 | 2019年8月16日 miit_mdid_sdk_v1.0.6
10 | 1、去掉所有非必需数据的采集;
11 | 2、兼容AndroidX;
12 | 3、修改小米部分手机上取udid的问题;
13 | 4、更新OPPO接口调用;
14 | 5、增加联想接口支持;
15 | 6、优化SDK包体积;
16 | 7、支持armeabi。
17 |
18 | 2019年8月28日 miit_mdid_sdk_v1.0.8
19 | 1、增加华硕接口支持;
20 | 2、解决动态加载和插件化;
21 | 3、优化代码,支持反射调用;
22 | 4、解决android9以上找不到方法的问题;
23 | 5、更新说明文档。
24 |
25 | 2019年9月18日 miit_mdid_sdk_v1.0.9
26 | 1、解决部分APP、机型崩溃问题;
27 | 2、增加了部分使用建议和F&Q。
28 |
29 |
30 | version 1.0.10 2019-10-14
31 | 1.支持三星,魅族,nubia手机设备
32 | 2.更新华硕,vivo 支持代码。
33 | 3.调整AsyncTask使用并行线程池,改进性能。
34 | 4.调整输出异常为输出调试信息,避免开发者疑问
35 | 5.vivo改为异步,改进性能
36 | 6.修改加固内联定义,解决崩溃
37 | 7.不再提供udid接口。
38 |
39 | version 1.0.11 2019-12-02
40 | 1.修复三星,联想在不支持的手机上不回调的bug
41 | 2.修复webview依赖导致的问题
42 | 3.初始化过程中,出现任何问题都会走回调
43 | 4.sdk里做初始化检查,避免重复初始化
44 | 5.vivo 9.0以下不调用获取oaid
45 | 6.去掉默认aaid的生成
46 | 7.修改华为空指针的bug
47 |
48 | version 1.0.13 2020-02-04
49 | 1.调整sdk包架构,支持系统级接入,目前只在部分手机上支持,开发者不用更新sdk,即可享受sdk的升级。
50 | 2.支持freemeos,ssuios,致濮os
51 | 3.支持一加和黑鲨手机
52 | 4.sdk android sdk提升到28
53 | 5.修复vivo,oppo在低版本不支持的手机上引起的崩溃
54 | 6.部分类不加固,修复部分手机的加固崩溃问题
55 |
56 | version 1.0.22 2020-07-10
57 | 1.为解决之前加固引起的问题,更新加固方式
58 | 2.去除不必要的信息收集问题
59 | 3.更新部分厂家的接口方式
60 |
61 | version 1.0.23 2020-09-07
62 | 1.修改OPPO获取接口
63 | 2.更新混淆字典
64 | 3.修改已知加固方案产生的bug
65 |
66 | version 1.0.25 2020-12-04
67 | 1.修复特定情况下会出现“检测到试用版运行”的bug;
68 | 2.解决了联想反射找不到类的问题。
69 |
70 | version 1.0.26 2021-6-16
71 | 1.增加支持荣耀、realme、酷赛、Cool OS
72 | 2.增加包名校验机制
73 | 3.更新加固方案
74 | 4.增加补充设备标识符开关接口
--------------------------------------------------------------------------------
/Doc/1.0.26/supplierconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "supplier":{
3 | "vivo":{
4 | "appid":"100215079"
5 | },
6 | "xiaomi":{
7 |
8 | },
9 | "huawei":{
10 |
11 | },
12 | "oppo":{
13 |
14 | }
15 | }
16 |
17 | }
18 |
--------------------------------------------------------------------------------
/Doc/1.0.26/团体标准-移动智能终端补充设备标识规范-v20190516.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MaYiFei1995/OAIDViewer/397f55443ba74b5a3439431c13bf956b3baa09b8/Doc/1.0.26/团体标准-移动智能终端补充设备标识规范-v20190516.pdf
--------------------------------------------------------------------------------
/Doc/1.0.26/移动智能终端补充设备标识体系统一调用SDK F&Qv2.4.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MaYiFei1995/OAIDViewer/397f55443ba74b5a3439431c13bf956b3baa09b8/Doc/1.0.26/移动智能终端补充设备标识体系统一调用SDK F&Qv2.4.pdf
--------------------------------------------------------------------------------
/Doc/1.0.26/移动智能终端补充设备标识体系统一调用SDK开发者说明文档v1.0.26.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MaYiFei1995/OAIDViewer/397f55443ba74b5a3439431c13bf956b3baa09b8/Doc/1.0.26/移动智能终端补充设备标识体系统一调用SDK开发者说明文档v1.0.26.pdf
--------------------------------------------------------------------------------
/Doc/1.0.27/DemoHelper.java:
--------------------------------------------------------------------------------
1 | package com.example.oaidtest2;
2 |
3 | import android.content.Context;
4 | import android.util.Log;
5 |
6 | import com.bun.miitmdid.core.InfoCode;
7 | import com.bun.miitmdid.core.MdidSdkHelper;
8 | import com.bun.miitmdid.interfaces.IIdentifierListener;
9 | import com.bun.miitmdid.interfaces.IdSupplier;
10 | import com.bun.miitmdid.pojo.IdSupplierImpl;
11 |
12 | import java.io.BufferedReader;
13 | import java.io.IOException;
14 | import java.io.InputStream;
15 | import java.io.InputStreamReader;
16 |
17 | public class DemoHelper implements IIdentifierListener {
18 |
19 | public static final String TAG = "DemoHelper";
20 | public static final int HELPER_VERSION_CODE = 20210801; // DemoHelper版本号
21 | private final AppIdsUpdater appIdsUpdater;
22 | private boolean isCertInit = false;
23 |
24 | public boolean isSDKLogOn = true; // TODO (1)设置 是否开启sdk日志
25 | public static final String ASSET_FILE_NAME_CERT = "com.example.oaidtest2.cert.pem"; // TODO (2)设置 asset证书文件名
26 |
27 | public DemoHelper(AppIdsUpdater appIdsUpdater){
28 | System.loadLibrary("nllvm1630571663641560568"); // TODO (3)加固版本在调用前必须载入SDK安全库
29 | // DemoHelper版本建议与SDK版本一致
30 | if(MdidSdkHelper.SDK_VERSION_CODE != HELPER_VERSION_CODE){
31 | Log.w(TAG,"SDK version not match.");
32 | }
33 | this.appIdsUpdater = appIdsUpdater;
34 | }
35 |
36 |
37 | /**
38 | * 获取OAID
39 | * @param cxt
40 | */
41 | public void getDeviceIds(Context cxt){
42 | // TODO (4)初始化SDK证书
43 | if(!isCertInit){ // 证书只需初始化一次
44 | // 证书为PEM文件中的所有文本内容(包括首尾行、换行符)
45 | isCertInit = MdidSdkHelper.InitCert(cxt, loadPemFromAssetFile(cxt, ASSET_FILE_NAME_CERT));
46 | if(!isCertInit){
47 | Log.w(TAG, "getDeviceIds: cert init failed");
48 | }
49 | }
50 |
51 | //(可选)设置InitSDK接口回调超时时间(仅适用于接口为异步),默认值为5000ms.
52 | // 注:请在调用前设置一次后就不再更改,否则可能导致回调丢失、重复等问题
53 | MdidSdkHelper.setGlobalTimeout(5000);
54 |
55 | // TODO (5)调用SDK获取ID
56 | int code = MdidSdkHelper.InitSdk(cxt, isSDKLogOn, this);
57 |
58 | // TODO (6)根据SDK返回的code进行不同处理
59 | IdSupplierImpl unsupportedIdSupplier = new IdSupplierImpl();
60 | if(code == InfoCode.INIT_ERROR_CERT_ERROR){ // 证书未初始化或证书无效,SDK内部不会回调onSupport
61 | // APP自定义逻辑
62 | Log.w(TAG,"cert not init or check not pass");
63 | onSupport(unsupportedIdSupplier);
64 | }else if(code == InfoCode.INIT_ERROR_DEVICE_NOSUPPORT){ // 不支持的设备, SDK内部不会回调onSupport
65 | // APP自定义逻辑
66 | Log.w(TAG,"device not supported");
67 | onSupport(unsupportedIdSupplier);
68 | }else if( code == InfoCode.INIT_ERROR_LOAD_CONFIGFILE){ // 加载配置文件出错, SDK内部不会回调onSupport
69 | // APP自定义逻辑
70 | Log.w(TAG,"failed to load config file");
71 | onSupport(unsupportedIdSupplier);
72 | }else if(code == InfoCode.INIT_ERROR_MANUFACTURER_NOSUPPORT){ // 不支持的设备厂商, SDK内部不会回调onSupport
73 | // APP自定义逻辑
74 | Log.w(TAG,"manufacturer not supported");
75 | onSupport(unsupportedIdSupplier);
76 | }else if(code == InfoCode.INIT_ERROR_SDK_CALL_ERROR){ // sdk调用出错, SSDK内部不会回调onSupport
77 | // APP自定义逻辑
78 | Log.w(TAG,"sdk call error");
79 | onSupport(unsupportedIdSupplier);
80 | } else if(code == InfoCode.INIT_INFO_RESULT_DELAY) { // 获取接口是异步的,SDK内部会回调onSupport
81 | Log.i(TAG, "result delay (async)");
82 | }else if(code == InfoCode.INIT_INFO_RESULT_OK){ // 获取接口是同步的,SDK内部会回调onSupport
83 | Log.i(TAG, "result ok (sync)");
84 | }else {
85 | // sdk版本高于DemoHelper代码版本可能出现的情况,无法确定是否调用onSupport
86 | // 不影响成功的OAID获取
87 | Log.w(TAG,"getDeviceIds: unknown code: " + code);
88 | }
89 | }
90 |
91 | /**
92 | * APP自定义的getDeviceIds(Context cxt)的接口回调
93 | * @param supplier
94 | */
95 | @Override
96 | public void onSupport(IdSupplier supplier) {
97 | if(supplier==null) {
98 | Log.w(TAG, "onSupport: supplier is null");
99 | return;
100 | }
101 | if(appIdsUpdater ==null) {
102 | Log.w(TAG, "onSupport: callbackListener is null");
103 | return;
104 | }
105 | // 获取Id信息
106 | // 注:IdSupplier中的内容为本次调用MdidSdkHelper.InitSdk()的结果,不会实时更新。 如需更新,需调用MdidSdkHelper.InitSdk()
107 | boolean isSupported = supplier.isSupported();
108 | boolean isLimited = supplier.isLimited();
109 | String oaid=supplier.getOAID();
110 | String vaid=supplier.getVAID();
111 | String aaid=supplier.getAAID();
112 |
113 | //TODO (7) 自定义后续流程,以下显示到UI的示例
114 | String idsText= "support: " + (isSupported ? "true" : "false") +
115 | "\nlimit: " + (isLimited ? "true" : "false") +
116 | "\nOAID: " + oaid +
117 | "\nVAID: " + vaid +
118 | "\nAAID: " + aaid + "\n";
119 | Log.d(TAG, "onSupport: ids: \n" + idsText);
120 | appIdsUpdater.onIdsValid(idsText);
121 | }
122 |
123 | public interface AppIdsUpdater{
124 | void onIdsValid(String ids);
125 | }
126 |
127 | /**
128 | * 从asset文件读取证书内容
129 | * @param context
130 | * @param assetFileName
131 | * @return 证书字符串
132 | */
133 | public static String loadPemFromAssetFile(Context context, String assetFileName){
134 | try {
135 | InputStream is = context.getAssets().open(assetFileName);
136 | BufferedReader in = new BufferedReader(new InputStreamReader(is));
137 | StringBuilder builder = new StringBuilder();
138 | String line;
139 | while ((line = in.readLine()) != null){
140 | builder.append(line);
141 | builder.append('\n');
142 | }
143 | return builder.toString();
144 | } catch (IOException e) {
145 | Log.e(TAG, "loadPemFromAssetFile failed");
146 | return "";
147 | }
148 | }
149 | }
150 |
151 |
--------------------------------------------------------------------------------
/Doc/1.0.27/example_batch.csv:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MaYiFei1995/OAIDViewer/397f55443ba74b5a3439431c13bf956b3baa09b8/Doc/1.0.27/example_batch.csv
--------------------------------------------------------------------------------
/Doc/1.0.27/oaid_sdk_1.0.27.aar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MaYiFei1995/OAIDViewer/397f55443ba74b5a3439431c13bf956b3baa09b8/Doc/1.0.27/oaid_sdk_1.0.27.aar
--------------------------------------------------------------------------------
/Doc/1.0.27/oaid_sdk_1.0.27_demo.apk:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MaYiFei1995/OAIDViewer/397f55443ba74b5a3439431c13bf956b3baa09b8/Doc/1.0.27/oaid_sdk_1.0.27_demo.apk
--------------------------------------------------------------------------------
/Doc/1.0.27/oaid_sdk_1.0.27_demo_src.zip:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MaYiFei1995/OAIDViewer/397f55443ba74b5a3439431c13bf956b3baa09b8/Doc/1.0.27/oaid_sdk_1.0.27_demo_src.zip
--------------------------------------------------------------------------------
/Doc/1.0.27/release note.txt:
--------------------------------------------------------------------------------
1 | 2019年8月6日 miit_mdid_sdk_v1.0.5
2 | 1、去掉所有非必需数据的采集;
3 | 2、兼容AndroidX;
4 | 3、修改小米部分手机上取udid的问题;
5 | 4、更新OPPO接口调用;
6 | 5、增加联想接口支持;
7 | 6、优化SDK包体积。
8 |
9 | 2019年8月16日 miit_mdid_sdk_v1.0.6
10 | 1、去掉所有非必需数据的采集;
11 | 2、兼容AndroidX;
12 | 3、修改小米部分手机上取udid的问题;
13 | 4、更新OPPO接口调用;
14 | 5、增加联想接口支持;
15 | 6、优化SDK包体积;
16 | 7、支持armeabi。
17 |
18 | 2019年8月28日 miit_mdid_sdk_v1.0.8
19 | 1、增加华硕接口支持;
20 | 2、解决动态加载和插件化;
21 | 3、优化代码,支持反射调用;
22 | 4、解决android9以上找不到方法的问题;
23 | 5、更新说明文档。
24 |
25 | 2019年9月18日 miit_mdid_sdk_v1.0.9
26 | 1、解决部分APP、机型崩溃问题;
27 | 2、增加了部分使用建议和F&Q。
28 |
29 |
30 | version 1.0.10 2019-10-14
31 | 1.支持三星,魅族,nubia手机设备
32 | 2.更新华硕,vivo 支持代码。
33 | 3.调整AsyncTask使用并行线程池,改进性能。
34 | 4.调整输出异常为输出调试信息,避免开发者疑问
35 | 5.vivo改为异步,改进性能
36 | 6.修改加固内联定义,解决崩溃
37 | 7.不再提供udid接口。
38 |
39 | version 1.0.11 2019-12-02
40 | 1.修复三星,联想在不支持的手机上不回调的bug
41 | 2.修复webview依赖导致的问题
42 | 3.初始化过程中,出现任何问题都会走回调
43 | 4.sdk里做初始化检查,避免重复初始化
44 | 5.vivo 9.0以下不调用获取oaid
45 | 6.去掉默认aaid的生成
46 | 7.修改华为空指针的bug
47 |
48 | version 1.0.13 2020-02-04
49 | 1.调整sdk包架构,支持系统级接入,目前只在部分手机上支持,开发者不用更新sdk,即可享受sdk的升级。
50 | 2.支持freemeos,ssuios,致濮os
51 | 3.支持一加和黑鲨手机
52 | 4.sdk android sdk提升到28
53 | 5.修复vivo,oppo在低版本不支持的手机上引起的崩溃
54 | 6.部分类不加固,修复部分手机的加固崩溃问题
55 |
56 | version 1.0.22 2020-07-10
57 | 1.为解决之前加固引起的问题,更新加固方式
58 | 2.去除不必要的信息收集问题
59 | 3.更新部分厂家的接口方式
60 |
61 | version 1.0.23 2020-09-07
62 | 1.修改OPPO获取接口
63 | 2.更新混淆字典
64 | 3.修改已知加固方案产生的bug
65 |
66 | version 1.0.25 2020-12-04
67 | 1.修复特定情况下会出现“检测到试用版运行”的bug;
68 | 2.解决了联想反射找不到类的问题。
69 |
70 | version 1.0.26 2021-6-16
71 | 1.增加支持荣耀、realme、酷赛、Cool OS
72 | 2.增加包名校验机制
73 | 3.更新加固方案
74 | 4.增加补充设备标识符开关接口
75 |
76 | version 1.0.27 2021-9-9
77 | 1. 更新魅族、OPPO接口
78 | 2. 增加异步获取超时时间设定功能
79 | 3. 更新加固方案,兼容 Android 12
80 | 4. 兼容旧版本DemoHelper(可以集成和运行,但会返回不支持)
81 | 5. 修复其他已知问题
--------------------------------------------------------------------------------
/Doc/1.0.27/supplierconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "supplier":{
3 | "vivo":{
4 | "appid":"100215079"
5 | }
6 | }
7 | }
8 |
--------------------------------------------------------------------------------
/Doc/1.0.27/团体标准-移动智能终端补充设备标识规范-v20190516.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MaYiFei1995/OAIDViewer/397f55443ba74b5a3439431c13bf956b3baa09b8/Doc/1.0.27/团体标准-移动智能终端补充设备标识规范-v20190516.pdf
--------------------------------------------------------------------------------
/Doc/1.0.27/混淆配置.txt:
--------------------------------------------------------------------------------
1 | # sdk
2 | -keep class com.bun.miitmdid.** { *; }
3 | -keep interface com.bun.supplier.** { *; }
4 |
5 | # asus
6 | -keep class com.asus.msa.SupplementaryDID.** { *; }
7 | -keep class com.asus.msa.sdid.** { *; }
8 | # freeme
9 | -keep class com.android.creator.** { *; }
10 | -keep class com.android.msasdk.** { *; }
11 | # huawei
12 | -keep class com.huawei.hms.ads.** { *; }
13 | -keep interface com.huawei.hms.ads.** {*; }
14 | # lenovo
15 | -keep class com.zui.deviceidservice.** { *; }
16 | -keep class com.zui.opendeviceidlibrary.** { *; }
17 | # meizu
18 | -keep class com.meizu.flyme.openidsdk.** { *; }
19 | # nubia
20 | -keep class com.bun.miitmdid.provider.nubia.NubiaIdentityImpl { *; }
21 | # oppo
22 | -keep class com.heytap.openid.** { *; }
23 | # samsung
24 | -keep class com.samsung.android.deviceidservice.** { *; }
25 | # vivo
26 | -keep class com.vivo.identifier.** { *; }
27 | # xiaomi
28 | -keep class com.bun.miitmdid.provider.xiaomi.IdentifierManager { *; }
29 | # zte
30 | -keep class com.bun.lib.** { *; }
31 | # coolpad
32 | -keep class com.coolpad.deviceidsupport.** { *; }
33 |
--------------------------------------------------------------------------------
/Doc/1.0.27/移动智能终端补充设备标识体系统一调用SDK F&Qv2.5.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MaYiFei1995/OAIDViewer/397f55443ba74b5a3439431c13bf956b3baa09b8/Doc/1.0.27/移动智能终端补充设备标识体系统一调用SDK F&Qv2.5.pdf
--------------------------------------------------------------------------------
/Doc/1.0.27/移动智能终端补充设备标识体系统一调用SDK开发者说明文档v1.0.27.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MaYiFei1995/OAIDViewer/397f55443ba74b5a3439431c13bf956b3baa09b8/Doc/1.0.27/移动智能终端补充设备标识体系统一调用SDK开发者说明文档v1.0.27.pdf
--------------------------------------------------------------------------------
/Doc/1.0.29/example_batch.csv:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MaYiFei1995/OAIDViewer/397f55443ba74b5a3439431c13bf956b3baa09b8/Doc/1.0.29/example_batch.csv
--------------------------------------------------------------------------------
/Doc/1.0.29/oaid_sdk_1.0.29.aar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MaYiFei1995/OAIDViewer/397f55443ba74b5a3439431c13bf956b3baa09b8/Doc/1.0.29/oaid_sdk_1.0.29.aar
--------------------------------------------------------------------------------
/Doc/1.0.29/oaid_sdk_1.0.29_demo_src.zip:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MaYiFei1995/OAIDViewer/397f55443ba74b5a3439431c13bf956b3baa09b8/Doc/1.0.29/oaid_sdk_1.0.29_demo_src.zip
--------------------------------------------------------------------------------
/Doc/1.0.29/release note.txt:
--------------------------------------------------------------------------------
1 | 2019年8月6日 miit_mdid_sdk_v1.0.5
2 | 1、去掉所有非必需数据的采集;
3 | 2、兼容AndroidX;
4 | 3、修改小米部分手机上取udid的问题;
5 | 4、更新OPPO接口调用;
6 | 5、增加联想接口支持;
7 | 6、优化SDK包体积。
8 |
9 | 2019年8月16日 miit_mdid_sdk_v1.0.6
10 | 1、去掉所有非必需数据的采集;
11 | 2、兼容AndroidX;
12 | 3、修改小米部分手机上取udid的问题;
13 | 4、更新OPPO接口调用;
14 | 5、增加联想接口支持;
15 | 6、优化SDK包体积;
16 | 7、支持armeabi。
17 |
18 | 2019年8月28日 miit_mdid_sdk_v1.0.8
19 | 1、增加华硕接口支持;
20 | 2、解决动态加载和插件化;
21 | 3、优化代码,支持反射调用;
22 | 4、解决android9以上找不到方法的问题;
23 | 5、更新说明文档。
24 |
25 | 2019年9月18日 miit_mdid_sdk_v1.0.9
26 | 1、解决部分APP、机型崩溃问题;
27 | 2、增加了部分使用建议和F&Q。
28 |
29 |
30 | version 1.0.10 2019-10-14
31 | 1.支持三星,魅族,nubia手机设备
32 | 2.更新华硕,vivo 支持代码。
33 | 3.调整AsyncTask使用并行线程池,改进性能。
34 | 4.调整输出异常为输出调试信息,避免开发者疑问
35 | 5.vivo改为异步,改进性能
36 | 6.修改加固内联定义,解决崩溃
37 | 7.不再提供udid接口。
38 |
39 | version 1.0.11 2019-12-02
40 | 1.修复三星,联想在不支持的手机上不回调的bug
41 | 2.修复webview依赖导致的问题
42 | 3.初始化过程中,出现任何问题都会走回调
43 | 4.sdk里做初始化检查,避免重复初始化
44 | 5.vivo 9.0以下不调用获取oaid
45 | 6.去掉默认aaid的生成
46 | 7.修改华为空指针的bug
47 |
48 | version 1.0.13 2020-02-04
49 | 1.调整sdk包架构,支持系统级接入,目前只在部分手机上支持,开发者不用更新sdk,即可享受sdk的升级。
50 | 2.支持freemeos,ssuios,致濮os
51 | 3.支持一加和黑鲨手机
52 | 4.sdk android sdk提升到28
53 | 5.修复vivo,oppo在低版本不支持的手机上引起的崩溃
54 | 6.部分类不加固,修复部分手机的加固崩溃问题
55 |
56 | version 1.0.22 2020-07-10
57 | 1.为解决之前加固引起的问题,更新加固方式
58 | 2.去除不必要的信息收集问题
59 | 3.更新部分厂家的接口方式
60 |
61 | version 1.0.23 2020-09-07
62 | 1.修改OPPO获取接口
63 | 2.更新混淆字典
64 | 3.修改已知加固方案产生的bug
65 |
66 | version 1.0.25 2020-12-04
67 | 1.修复特定情况下会出现“检测到试用版运行”的bug;
68 | 2.解决了联想反射找不到类的问题。
69 |
70 | version 1.0.26 2021-6-16
71 | 1.增加支持荣耀、realme、酷赛、Cool OS
72 | 2.增加包名校验机制
73 | 3.更新加固方案
74 | 4.增加补充设备标识符开关接口
75 |
76 | version 1.0.27 2021-9-9
77 | 1. 更新魅族、OPPO接口
78 | 2. 增加异步获取超时时间设定功能
79 | 3. 更新加固方案,兼容 Android 12
80 | 4. 兼容旧版本DemoHelper(可以集成和运行,但会返回不支持)
81 | 5. 修复其他已知问题
82 |
83 | version 1.0.29 2021-09-28
84 | 1. 增加支持步步高(小天才)接口
85 | 2. 捕获第三方SDK接口方法实现报错,修复崩溃问题
86 | 3. 更新加固方案,减小加固包体积
87 | 4. 修复已知问题
--------------------------------------------------------------------------------
/Doc/1.0.29/supplierconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "supplier":{
3 | "vivo":{
4 | "appid":"100215079"
5 | }
6 | }
7 | }
8 |
--------------------------------------------------------------------------------
/Doc/1.0.29/团体标准-移动智能终端补充设备标识规范-v20190516.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MaYiFei1995/OAIDViewer/397f55443ba74b5a3439431c13bf956b3baa09b8/Doc/1.0.29/团体标准-移动智能终端补充设备标识规范-v20190516.pdf
--------------------------------------------------------------------------------
/Doc/1.0.29/混淆配置.txt:
--------------------------------------------------------------------------------
1 | # sdk
2 | -keep class com.bun.miitmdid.** { *; }
3 | -keep interface com.bun.supplier.** { *; }
4 |
5 | # asus
6 | -keep class com.asus.msa.SupplementaryDID.** { *; }
7 | -keep class com.asus.msa.sdid.** { *; }
8 | # freeme
9 | -keep class com.android.creator.** { *; }
10 | -keep class com.android.msasdk.** { *; }
11 | # huawei
12 | -keep class com.huawei.hms.ads.** { *; }
13 | -keep interface com.huawei.hms.ads.** {*; }
14 | # lenovo
15 | -keep class com.zui.deviceidservice.** { *; }
16 | -keep class com.zui.opendeviceidlibrary.** { *; }
17 | # meizu
18 | -keep class com.meizu.flyme.openidsdk.** { *; }
19 | # nubia
20 | -keep class com.bun.miitmdid.provider.nubia.NubiaIdentityImpl { *; }
21 | # oppo
22 | -keep class com.heytap.openid.** { *; }
23 | # samsung
24 | -keep class com.samsung.android.deviceidservice.** { *; }
25 | # vivo
26 | -keep class com.vivo.identifier.** { *; }
27 | # xiaomi
28 | -keep class com.bun.miitmdid.provider.xiaomi.IdentifierManager { *; }
29 | # zte
30 | -keep class com.bun.lib.** { *; }
31 | # coolpad
32 | -keep class com.coolpad.deviceidsupport.** { *; }
33 |
--------------------------------------------------------------------------------
/Doc/1.0.29/移动智能终端补充设备标识体系统一调用SDK F&Qv2.5.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MaYiFei1995/OAIDViewer/397f55443ba74b5a3439431c13bf956b3baa09b8/Doc/1.0.29/移动智能终端补充设备标识体系统一调用SDK F&Qv2.5.pdf
--------------------------------------------------------------------------------
/Doc/1.0.29/移动智能终端补充设备标识体系统一调用SDK开发者说明文档v1.0.29.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MaYiFei1995/OAIDViewer/397f55443ba74b5a3439431c13bf956b3baa09b8/Doc/1.0.29/移动智能终端补充设备标识体系统一调用SDK开发者说明文档v1.0.29.pdf
--------------------------------------------------------------------------------
/Doc/1.0.30/example_batch.csv:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MaYiFei1995/OAIDViewer/397f55443ba74b5a3439431c13bf956b3baa09b8/Doc/1.0.30/example_batch.csv
--------------------------------------------------------------------------------
/Doc/1.0.30/oaid_sdk_1.0.30.aar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MaYiFei1995/OAIDViewer/397f55443ba74b5a3439431c13bf956b3baa09b8/Doc/1.0.30/oaid_sdk_1.0.30.aar
--------------------------------------------------------------------------------
/Doc/1.0.30/oaid_sdk_1.0.30_demo_src.zip:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MaYiFei1995/OAIDViewer/397f55443ba74b5a3439431c13bf956b3baa09b8/Doc/1.0.30/oaid_sdk_1.0.30_demo_src.zip
--------------------------------------------------------------------------------
/Doc/1.0.30/release note.txt:
--------------------------------------------------------------------------------
1 | 2019年8月6日 miit_mdid_sdk_v1.0.5
2 | 1、去掉所有非必需数据的采集;
3 | 2、兼容AndroidX;
4 | 3、修改小米部分手机上取udid的问题;
5 | 4、更新OPPO接口调用;
6 | 5、增加联想接口支持;
7 | 6、优化SDK包体积。
8 |
9 | 2019年8月16日 miit_mdid_sdk_v1.0.6
10 | 1、去掉所有非必需数据的采集;
11 | 2、兼容AndroidX;
12 | 3、修改小米部分手机上取udid的问题;
13 | 4、更新OPPO接口调用;
14 | 5、增加联想接口支持;
15 | 6、优化SDK包体积;
16 | 7、支持armeabi。
17 |
18 | 2019年8月28日 miit_mdid_sdk_v1.0.8
19 | 1、增加华硕接口支持;
20 | 2、解决动态加载和插件化;
21 | 3、优化代码,支持反射调用;
22 | 4、解决android9以上找不到方法的问题;
23 | 5、更新说明文档。
24 |
25 | 2019年9月18日 miit_mdid_sdk_v1.0.9
26 | 1、解决部分APP、机型崩溃问题;
27 | 2、增加了部分使用建议和F&Q。
28 |
29 |
30 | version 1.0.10 2019-10-14
31 | 1.支持三星,魅族,nubia手机设备
32 | 2.更新华硕,vivo 支持代码。
33 | 3.调整AsyncTask使用并行线程池,改进性能。
34 | 4.调整输出异常为输出调试信息,避免开发者疑问
35 | 5.vivo改为异步,改进性能
36 | 6.修改加固内联定义,解决崩溃
37 | 7.不再提供udid接口。
38 |
39 | version 1.0.11 2019-12-02
40 | 1.修复三星,联想在不支持的手机上不回调的bug
41 | 2.修复webview依赖导致的问题
42 | 3.初始化过程中,出现任何问题都会走回调
43 | 4.sdk里做初始化检查,避免重复初始化
44 | 5.vivo 9.0以下不调用获取oaid
45 | 6.去掉默认aaid的生成
46 | 7.修改华为空指针的bug
47 |
48 | version 1.0.13 2020-02-04
49 | 1.调整sdk包架构,支持系统级接入,目前只在部分手机上支持,开发者不用更新sdk,即可享受sdk的升级。
50 | 2.支持freemeos,ssuios,致濮os
51 | 3.支持一加和黑鲨手机
52 | 4.sdk android sdk提升到28
53 | 5.修复vivo,oppo在低版本不支持的手机上引起的崩溃
54 | 6.部分类不加固,修复部分手机的加固崩溃问题
55 |
56 | version 1.0.22 2020-07-10
57 | 1.为解决之前加固引起的问题,更新加固方式
58 | 2.去除不必要的信息收集问题
59 | 3.更新部分厂家的接口方式
60 |
61 | version 1.0.23 2020-09-07
62 | 1.修改OPPO获取接口
63 | 2.更新混淆字典
64 | 3.修改已知加固方案产生的bug
65 |
66 | version 1.0.25 2020-12-04
67 | 1.修复特定情况下会出现“检测到试用版运行”的bug;
68 | 2.解决了联想反射找不到类的问题。
69 |
70 | version 1.0.26 2021-6-16
71 | 1.增加支持荣耀、realme、酷赛、Cool OS
72 | 2.增加包名校验机制
73 | 3.更新加固方案
74 | 4.增加补充设备标识符开关接口
75 |
76 | version 1.0.27 2021-9-9
77 | 1. 更新魅族、OPPO接口
78 | 2. 增加异步获取超时时间设定功能
79 | 3. 更新加固方案,兼容 Android 12
80 | 4. 兼容旧版本DemoHelper(可以集成和运行,但会返回不支持)
81 | 5. 修复其他已知问题
82 |
83 | version 1.0.29 2021-09-28
84 | 1. 增加支持步步高(小天才)接口
85 | 2. 捕获第三方SDK接口方法实现报错,修复崩溃问题
86 | 3. 更新加固方案,减小加固包体积
87 | 4. 修复已知问题
88 |
89 | version 1.0.30 2021-10-21
90 | 1. 更新魅族接口
91 | 2. 更新加固方案,固定加固包中so文件名称
92 | 3. 修复已知问题
--------------------------------------------------------------------------------
/Doc/1.0.30/supplierconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "supplier":{
3 | "vivo":{
4 | "appid":"100215079"
5 | }
6 | }
7 | }
8 |
--------------------------------------------------------------------------------
/Doc/1.0.30/团体标准-移动智能终端补充设备标识规范-v20190516.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MaYiFei1995/OAIDViewer/397f55443ba74b5a3439431c13bf956b3baa09b8/Doc/1.0.30/团体标准-移动智能终端补充设备标识规范-v20190516.pdf
--------------------------------------------------------------------------------
/Doc/1.0.30/混淆配置.txt:
--------------------------------------------------------------------------------
1 | # sdk
2 | -keep class com.bun.miitmdid.** { *; }
3 | -keep interface com.bun.supplier.** { *; }
4 |
5 | # asus
6 | -keep class com.asus.msa.SupplementaryDID.** { *; }
7 | -keep class com.asus.msa.sdid.** { *; }
8 | # freeme
9 | -keep class com.android.creator.** { *; }
10 | -keep class com.android.msasdk.** { *; }
11 | # huawei
12 | -keep class com.huawei.hms.ads.** { *; }
13 | -keep interface com.huawei.hms.ads.** {*; }
14 | # lenovo
15 | -keep class com.zui.deviceidservice.** { *; }
16 | -keep class com.zui.opendeviceidlibrary.** { *; }
17 | # meizu
18 | -keep class com.meizu.flyme.openidsdk.** { *; }
19 | # nubia
20 | -keep class com.bun.miitmdid.provider.nubia.NubiaIdentityImpl { *; }
21 | # oppo
22 | -keep class com.heytap.openid.** { *; }
23 | # samsung
24 | -keep class com.samsung.android.deviceidservice.** { *; }
25 | # vivo
26 | -keep class com.vivo.identifier.** { *; }
27 | # xiaomi
28 | -keep class com.bun.miitmdid.provider.xiaomi.IdentifierManager { *; }
29 | # zte
30 | -keep class com.bun.lib.** { *; }
31 | # coolpad
32 | -keep class com.coolpad.deviceidsupport.** { *; }
33 |
--------------------------------------------------------------------------------
/Doc/1.0.30/移动智能终端补充设备标识体系统一调用SDK F&Qv2.6.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MaYiFei1995/OAIDViewer/397f55443ba74b5a3439431c13bf956b3baa09b8/Doc/1.0.30/移动智能终端补充设备标识体系统一调用SDK F&Qv2.6.pdf
--------------------------------------------------------------------------------
/Doc/1.0.30/移动智能终端补充设备标识体系统一调用SDK开发者说明文档v1.0.30.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MaYiFei1995/OAIDViewer/397f55443ba74b5a3439431c13bf956b3baa09b8/Doc/1.0.30/移动智能终端补充设备标识体系统一调用SDK开发者说明文档v1.0.30.pdf
--------------------------------------------------------------------------------
/Doc/1.1.0/example_batch.csv:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MaYiFei1995/OAIDViewer/397f55443ba74b5a3439431c13bf956b3baa09b8/Doc/1.1.0/example_batch.csv
--------------------------------------------------------------------------------
/Doc/1.1.0/oaid_sdk_1.1.0.aar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MaYiFei1995/OAIDViewer/397f55443ba74b5a3439431c13bf956b3baa09b8/Doc/1.1.0/oaid_sdk_1.1.0.aar
--------------------------------------------------------------------------------
/Doc/1.1.0/oaid_sdk_1.1.0_demo.apk:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MaYiFei1995/OAIDViewer/397f55443ba74b5a3439431c13bf956b3baa09b8/Doc/1.1.0/oaid_sdk_1.1.0_demo.apk
--------------------------------------------------------------------------------
/Doc/1.1.0/oaid_sdk_1.1.0_demo_src.zip:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MaYiFei1995/OAIDViewer/397f55443ba74b5a3439431c13bf956b3baa09b8/Doc/1.1.0/oaid_sdk_1.1.0_demo_src.zip
--------------------------------------------------------------------------------
/Doc/1.1.0/release note.txt:
--------------------------------------------------------------------------------
1 | 2019年8月6日 miit_mdid_sdk_v1.0.5
2 | 1、去掉所有非必需数据的采集;
3 | 2、兼容AndroidX;
4 | 3、修改小米部分手机上取udid的问题;
5 | 4、更新OPPO接口调用;
6 | 5、增加联想接口支持;
7 | 6、优化SDK包体积。
8 |
9 | 2019年8月16日 miit_mdid_sdk_v1.0.6
10 | 1、去掉所有非必需数据的采集;
11 | 2、兼容AndroidX;
12 | 3、修改小米部分手机上取udid的问题;
13 | 4、更新OPPO接口调用;
14 | 5、增加联想接口支持;
15 | 6、优化SDK包体积;
16 | 7、支持armeabi。
17 |
18 | 2019年8月28日 miit_mdid_sdk_v1.0.8
19 | 1、增加华硕接口支持;
20 | 2、解决动态加载和插件化;
21 | 3、优化代码,支持反射调用;
22 | 4、解决android9以上找不到方法的问题;
23 | 5、更新说明文档。
24 |
25 | 2019年9月18日 miit_mdid_sdk_v1.0.9
26 | 1、解决部分APP、机型崩溃问题;
27 | 2、增加了部分使用建议和F&Q。
28 |
29 |
30 | version 1.0.10 2019-10-14
31 | 1.支持三星,魅族,nubia手机设备
32 | 2.更新华硕,vivo 支持代码。
33 | 3.调整AsyncTask使用并行线程池,改进性能。
34 | 4.调整输出异常为输出调试信息,避免开发者疑问
35 | 5.vivo改为异步,改进性能
36 | 6.修改加固内联定义,解决崩溃
37 | 7.不再提供udid接口。
38 |
39 | version 1.0.11 2019-12-02
40 | 1.修复三星,联想在不支持的手机上不回调的bug
41 | 2.修复webview依赖导致的问题
42 | 3.初始化过程中,出现任何问题都会走回调
43 | 4.sdk里做初始化检查,避免重复初始化
44 | 5.vivo 9.0以下不调用获取oaid
45 | 6.去掉默认aaid的生成
46 | 7.修改华为空指针的bug
47 |
48 | version 1.0.13 2020-02-04
49 | 1.调整sdk包架构,支持系统级接入,目前只在部分手机上支持,开发者不用更新sdk,即可享受sdk的升级。
50 | 2.支持freemeos,ssuios,致濮os
51 | 3.支持一加和黑鲨手机
52 | 4.sdk android sdk提升到28
53 | 5.修复vivo,oppo在低版本不支持的手机上引起的崩溃
54 | 6.部分类不加固,修复部分手机的加固崩溃问题
55 |
56 | version 1.0.22 2020-07-10
57 | 1.为解决之前加固引起的问题,更新加固方式
58 | 2.去除不必要的信息收集问题
59 | 3.更新部分厂家的接口方式
60 |
61 | version 1.0.23 2020-09-07
62 | 1.修改OPPO获取接口
63 | 2.更新混淆字典
64 | 3.修改已知加固方案产生的bug
65 |
66 | version 1.0.25 2020-12-04
67 | 1.修复特定情况下会出现“检测到试用版运行”的bug;
68 | 2.解决了联想反射找不到类的问题。
69 |
70 | version 1.0.26 2021-6-16
71 | 1.增加支持荣耀、realme、酷赛、Cool OS
72 | 2.增加包名校验机制
73 | 3.更新加固方案
74 | 4.增加补充设备标识符开关接口
75 |
76 | version 1.0.27 2021-9-9
77 | 1. 更新魅族、OPPO接口
78 | 2. 增加异步获取超时时间设定功能
79 | 3. 更新加固方案,兼容 Android 12
80 | 4. 兼容旧版本DemoHelper(可以集成和运行,但会返回不支持)
81 | 5. 修复其他已知问题
82 |
83 | version 1.0.29 2021-09-28
84 | 1. 增加支持步步高(小天才)接口
85 | 2. 捕获第三方SDK接口方法实现报错,修复崩溃问题
86 | 3. 更新加固方案,减小加固包体积
87 | 4. 修复已知问题
88 |
89 | version 1.0.30 2021-10-21
90 | 1. 更新魅族接口
91 | 2. 更新加固方案,固定加固包中so文件名称
92 | 3. 修复已知问题
93 |
94 | version 1.1.0 2021-12-14
95 | 1. 优化魅族标识判断逻辑
96 | 2. 升级vivo厂商和oppo厂商集成包
97 | 3. 修复代码安全问题
--------------------------------------------------------------------------------
/Doc/1.1.0/supplierconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "supplier":{
3 | "vivo":{
4 | "appid":"100215079"
5 | }
6 | }
7 | }
8 |
--------------------------------------------------------------------------------
/Doc/1.1.0/团体标准-移动智能终端补充设备标识规范-v20190516.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MaYiFei1995/OAIDViewer/397f55443ba74b5a3439431c13bf956b3baa09b8/Doc/1.1.0/团体标准-移动智能终端补充设备标识规范-v20190516.pdf
--------------------------------------------------------------------------------
/Doc/1.1.0/混淆配置.txt:
--------------------------------------------------------------------------------
1 | # sdk
2 | -keep class com.bun.miitmdid.** { *; }
3 | -keep interface com.bun.supplier.** { *; }
4 |
5 | # asus
6 | -keep class com.asus.msa.SupplementaryDID.** { *; }
7 | -keep class com.asus.msa.sdid.** { *; }
8 | # freeme
9 | -keep class com.android.creator.** { *; }
10 | -keep class com.android.msasdk.** { *; }
11 | # huawei
12 | -keep class com.huawei.hms.ads.** { *; }
13 | -keep interface com.huawei.hms.ads.** {*; }
14 | # lenovo
15 | -keep class com.zui.deviceidservice.** { *; }
16 | -keep class com.zui.opendeviceidlibrary.** { *; }
17 | # meizu
18 | -keep class com.meizu.flyme.openidsdk.** { *; }
19 | # nubia
20 | -keep class com.bun.miitmdid.provider.nubia.NubiaIdentityImpl { *; }
21 | # oppo
22 | -keep class com.heytap.openid.** { *; }
23 | # samsung
24 | -keep class com.samsung.android.deviceidservice.** { *; }
25 | # vivo
26 | -keep class com.vivo.identifier.** { *; }
27 | # xiaomi
28 | -keep class com.bun.miitmdid.provider.xiaomi.IdentifierManager { *; }
29 | # zte
30 | -keep class com.bun.lib.** { *; }
31 | # coolpad
32 | -keep class com.coolpad.deviceidsupport.** { *; }
33 |
--------------------------------------------------------------------------------
/Doc/1.1.0/移动智能终端补充设备标识体系统一调用SDK F&Qv2.7.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MaYiFei1995/OAIDViewer/397f55443ba74b5a3439431c13bf956b3baa09b8/Doc/1.1.0/移动智能终端补充设备标识体系统一调用SDK F&Qv2.7.pdf
--------------------------------------------------------------------------------
/Doc/1.1.0/移动智能终端补充设备标识体系统一调用SDK开发者说明文档v1.1.0.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MaYiFei1995/OAIDViewer/397f55443ba74b5a3439431c13bf956b3baa09b8/Doc/1.1.0/移动智能终端补充设备标识体系统一调用SDK开发者说明文档v1.1.0.pdf
--------------------------------------------------------------------------------
/Doc/1.2.0/example_batch.csv:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MaYiFei1995/OAIDViewer/397f55443ba74b5a3439431c13bf956b3baa09b8/Doc/1.2.0/example_batch.csv
--------------------------------------------------------------------------------
/Doc/1.2.0/oaid_sdk_1.2.0.aar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MaYiFei1995/OAIDViewer/397f55443ba74b5a3439431c13bf956b3baa09b8/Doc/1.2.0/oaid_sdk_1.2.0.aar
--------------------------------------------------------------------------------
/Doc/1.2.0/oaid_sdk_1.2.0_demo.apk:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MaYiFei1995/OAIDViewer/397f55443ba74b5a3439431c13bf956b3baa09b8/Doc/1.2.0/oaid_sdk_1.2.0_demo.apk
--------------------------------------------------------------------------------
/Doc/1.2.0/oaid_sdk_1.2.0_demo_src.zip:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MaYiFei1995/OAIDViewer/397f55443ba74b5a3439431c13bf956b3baa09b8/Doc/1.2.0/oaid_sdk_1.2.0_demo_src.zip
--------------------------------------------------------------------------------
/Doc/1.2.0/release note.txt:
--------------------------------------------------------------------------------
1 | 2019年8月6日 miit_mdid_sdk_v1.0.5
2 | 1、去掉所有非必需数据的采集;
3 | 2、兼容AndroidX;
4 | 3、修改小米部分手机上取udid的问题;
5 | 4、更新OPPO接口调用;
6 | 5、增加联想接口支持;
7 | 6、优化SDK包体积。
8 |
9 | 2019年8月16日 miit_mdid_sdk_v1.0.6
10 | 1、去掉所有非必需数据的采集;
11 | 2、兼容AndroidX;
12 | 3、修改小米部分手机上取udid的问题;
13 | 4、更新OPPO接口调用;
14 | 5、增加联想接口支持;
15 | 6、优化SDK包体积;
16 | 7、支持armeabi。
17 |
18 | 2019年8月28日 miit_mdid_sdk_v1.0.8
19 | 1、增加华硕接口支持;
20 | 2、解决动态加载和插件化;
21 | 3、优化代码,支持反射调用;
22 | 4、解决android9以上找不到方法的问题;
23 | 5、更新说明文档。
24 |
25 | 2019年9月18日 miit_mdid_sdk_v1.0.9
26 | 1、解决部分APP、机型崩溃问题;
27 | 2、增加了部分使用建议和F&Q。
28 |
29 |
30 | version 1.0.10 2019-10-14
31 | 1.支持三星,魅族,nubia手机设备
32 | 2.更新华硕,vivo 支持代码。
33 | 3.调整AsyncTask使用并行线程池,改进性能。
34 | 4.调整输出异常为输出调试信息,避免开发者疑问
35 | 5.vivo改为异步,改进性能
36 | 6.修改加固内联定义,解决崩溃
37 | 7.不再提供udid接口。
38 |
39 | version 1.0.11 2019-12-02
40 | 1.修复三星,联想在不支持的手机上不回调的bug
41 | 2.修复webview依赖导致的问题
42 | 3.初始化过程中,出现任何问题都会走回调
43 | 4.sdk里做初始化检查,避免重复初始化
44 | 5.vivo 9.0以下不调用获取oaid
45 | 6.去掉默认aaid的生成
46 | 7.修改华为空指针的bug
47 |
48 | version 1.0.13 2020-02-04
49 | 1.调整sdk包架构,支持系统级接入,目前只在部分手机上支持,开发者不用更新sdk,即可享受sdk的升级。
50 | 2.支持freemeos,ssuios,致濮os
51 | 3.支持一加和黑鲨手机
52 | 4.sdk android sdk提升到28
53 | 5.修复vivo,oppo在低版本不支持的手机上引起的崩溃
54 | 6.部分类不加固,修复部分手机的加固崩溃问题
55 |
56 | version 1.0.22 2020-07-10
57 | 1.为解决之前加固引起的问题,更新加固方式
58 | 2.去除不必要的信息收集问题
59 | 3.更新部分厂家的接口方式
60 |
61 | version 1.0.23 2020-09-07
62 | 1.修改OPPO获取接口
63 | 2.更新混淆字典
64 | 3.修改已知加固方案产生的bug
65 |
66 | version 1.0.25 2020-12-04
67 | 1.修复特定情况下会出现“检测到试用版运行”的bug;
68 | 2.解决了联想反射找不到类的问题。
69 |
70 | version 1.0.26 2021-6-16
71 | 1.增加支持荣耀、realme、酷赛、Cool OS
72 | 2.增加包名校验机制
73 | 3.更新加固方案
74 | 4.增加补充设备标识符开关接口
75 |
76 | version 1.0.27 2021-9-9
77 | 1. 更新魅族、OPPO接口
78 | 2. 增加异步获取超时时间设定功能
79 | 3. 更新加固方案,兼容 Android 12
80 | 4. 兼容旧版本DemoHelper(可以集成和运行,但会返回不支持)
81 | 5. 修复其他已知问题
82 |
83 | version 1.0.29 2021-09-28
84 | 1. 增加支持步步高(小天才)接口
85 | 2. 捕获第三方SDK接口方法实现报错,修复崩溃问题
86 | 3. 更新加固方案,减小加固包体积
87 | 4. 修复已知问题
88 |
89 | version 1.0.30 2021-10-21
90 | 1. 更新魅族接口
91 | 2. 更新加固方案,固定加固包中so文件名称
92 | 3. 修复已知问题
93 |
94 | version 1.1.0 2021-12-14
95 | 1. 优化魅族标识判断逻辑
96 | 2. 升级vivo厂商和oppo厂商集成包
97 | 3. 修复代码安全问题
98 |
99 | verstion 1.2.0 2022-04-24
100 | 1. 更新OPPO sdk,优化获取id超时问题
101 | 2. 更新加固方案,修复Android13版本不兼容问题
102 | 3. 新增获取单个id的接口
--------------------------------------------------------------------------------
/Doc/1.2.0/supplierconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "supplier":{
3 | "vivo":{
4 | "appid":"100215079"
5 | }
6 | }
7 | }
8 |
--------------------------------------------------------------------------------
/Doc/1.2.0/混淆配置.txt:
--------------------------------------------------------------------------------
1 | # sdk
2 | -keep class com.bun.miitmdid.** { *; }
3 | -keep interface com.bun.supplier.** { *; }
4 |
5 | # asus
6 | -keep class com.asus.msa.SupplementaryDID.** { *; }
7 | -keep class com.asus.msa.sdid.** { *; }
8 | # freeme
9 | -keep class com.android.creator.** { *; }
10 | -keep class com.android.msasdk.** { *; }
11 | # huawei
12 | -keep class com.huawei.hms.ads.** { *; }
13 | -keep interface com.huawei.hms.ads.** {*; }
14 | # lenovo
15 | -keep class com.zui.deviceidservice.** { *; }
16 | -keep class com.zui.opendeviceidlibrary.** { *; }
17 | # meizu
18 | -keep class com.meizu.flyme.openidsdk.** { *; }
19 | # nubia
20 | -keep class com.bun.miitmdid.provider.nubia.NubiaIdentityImpl { *; }
21 | # oppo
22 | -keep class com.heytap.openid.** { *; }
23 | # samsung
24 | -keep class com.samsung.android.deviceidservice.** { *; }
25 | # vivo
26 | -keep class com.vivo.identifier.** { *; }
27 | # xiaomi
28 | -keep class com.bun.miitmdid.provider.xiaomi.IdentifierManager { *; }
29 | # zte
30 | -keep class com.bun.lib.** { *; }
31 | # coolpad
32 | -keep class com.coolpad.deviceidsupport.** { *; }
33 |
--------------------------------------------------------------------------------
/Doc/1.2.0/移动智能终端补充设备标识体系统一调用SDK F&Qv2.9.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MaYiFei1995/OAIDViewer/397f55443ba74b5a3439431c13bf956b3baa09b8/Doc/1.2.0/移动智能终端补充设备标识体系统一调用SDK F&Qv2.9.pdf
--------------------------------------------------------------------------------
/Doc/1.2.0/移动智能终端补充设备标识体系统一调用SDK开发者说明文档v1.2.0.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MaYiFei1995/OAIDViewer/397f55443ba74b5a3439431c13bf956b3baa09b8/Doc/1.2.0/移动智能终端补充设备标识体系统一调用SDK开发者说明文档v1.2.0.pdf
--------------------------------------------------------------------------------
/Doc/1.2.0/移动智能终端补充设备标识规范-v20190516.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MaYiFei1995/OAIDViewer/397f55443ba74b5a3439431c13bf956b3baa09b8/Doc/1.2.0/移动智能终端补充设备标识规范-v20190516.pdf
--------------------------------------------------------------------------------
/Doc/1.2.1/example_batch.csv:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MaYiFei1995/OAIDViewer/397f55443ba74b5a3439431c13bf956b3baa09b8/Doc/1.2.1/example_batch.csv
--------------------------------------------------------------------------------
/Doc/1.2.1/oaid_sdk_1.2.1.aar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MaYiFei1995/OAIDViewer/397f55443ba74b5a3439431c13bf956b3baa09b8/Doc/1.2.1/oaid_sdk_1.2.1.aar
--------------------------------------------------------------------------------
/Doc/1.2.1/oaid_sdk_1.2.1_demo.apk:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MaYiFei1995/OAIDViewer/397f55443ba74b5a3439431c13bf956b3baa09b8/Doc/1.2.1/oaid_sdk_1.2.1_demo.apk
--------------------------------------------------------------------------------
/Doc/1.2.1/oaid_sdk_1.2.1_demo_src.zip:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MaYiFei1995/OAIDViewer/397f55443ba74b5a3439431c13bf956b3baa09b8/Doc/1.2.1/oaid_sdk_1.2.1_demo_src.zip
--------------------------------------------------------------------------------
/Doc/1.2.1/release note.txt:
--------------------------------------------------------------------------------
1 | 2019年8月6日 miit_mdid_sdk_v1.0.5
2 | 1、去掉所有非必需数据的采集;
3 | 2、兼容AndroidX;
4 | 3、修改小米部分手机上取udid的问题;
5 | 4、更新OPPO接口调用;
6 | 5、增加联想接口支持;
7 | 6、优化SDK包体积。
8 |
9 | 2019年8月16日 miit_mdid_sdk_v1.0.6
10 | 1、去掉所有非必需数据的采集;
11 | 2、兼容AndroidX;
12 | 3、修改小米部分手机上取udid的问题;
13 | 4、更新OPPO接口调用;
14 | 5、增加联想接口支持;
15 | 6、优化SDK包体积;
16 | 7、支持armeabi。
17 |
18 | 2019年8月28日 miit_mdid_sdk_v1.0.8
19 | 1、增加华硕接口支持;
20 | 2、解决动态加载和插件化;
21 | 3、优化代码,支持反射调用;
22 | 4、解决android9以上找不到方法的问题;
23 | 5、更新说明文档。
24 |
25 | 2019年9月18日 miit_mdid_sdk_v1.0.9
26 | 1、解决部分APP、机型崩溃问题;
27 | 2、增加了部分使用建议和F&Q。
28 |
29 |
30 | version 1.0.10 2019-10-14
31 | 1.支持三星,魅族,nubia手机设备
32 | 2.更新华硕,vivo 支持代码。
33 | 3.调整AsyncTask使用并行线程池,改进性能。
34 | 4.调整输出异常为输出调试信息,避免开发者疑问
35 | 5.vivo改为异步,改进性能
36 | 6.修改加固内联定义,解决崩溃
37 | 7.不再提供udid接口。
38 |
39 | version 1.0.11 2019-12-02
40 | 1.修复三星,联想在不支持的手机上不回调的bug
41 | 2.修复webview依赖导致的问题
42 | 3.初始化过程中,出现任何问题都会走回调
43 | 4.sdk里做初始化检查,避免重复初始化
44 | 5.vivo 9.0以下不调用获取oaid
45 | 6.去掉默认aaid的生成
46 | 7.修改华为空指针的bug
47 |
48 | version 1.0.13 2020-02-04
49 | 1.调整sdk包架构,支持系统级接入,目前只在部分手机上支持,开发者不用更新sdk,即可享受sdk的升级。
50 | 2.支持freemeos,ssuios,致濮os
51 | 3.支持一加和黑鲨手机
52 | 4.sdk android sdk提升到28
53 | 5.修复vivo,oppo在低版本不支持的手机上引起的崩溃
54 | 6.部分类不加固,修复部分手机的加固崩溃问题
55 |
56 | version 1.0.22 2020-07-10
57 | 1.为解决之前加固引起的问题,更新加固方式
58 | 2.去除不必要的信息收集问题
59 | 3.更新部分厂家的接口方式
60 |
61 | version 1.0.23 2020-09-07
62 | 1.修改OPPO获取接口
63 | 2.更新混淆字典
64 | 3.修改已知加固方案产生的bug
65 |
66 | version 1.0.25 2020-12-04
67 | 1.修复特定情况下会出现“检测到试用版运行”的bug;
68 | 2.解决了联想反射找不到类的问题。
69 |
70 | version 1.0.26 2021-6-16
71 | 1.增加支持荣耀、realme、酷赛、Cool OS
72 | 2.增加包名校验机制
73 | 3.更新加固方案
74 | 4.增加补充设备标识符开关接口
75 |
76 | version 1.0.27 2021-9-9
77 | 1. 更新魅族、OPPO接口
78 | 2. 增加异步获取超时时间设定功能
79 | 3. 更新加固方案,兼容 Android 12
80 | 4. 兼容旧版本DemoHelper(可以集成和运行,但会返回不支持)
81 | 5. 修复其他已知问题
82 |
83 | version 1.0.29 2021-09-28
84 | 1. 增加支持步步高(小天才)接口
85 | 2. 捕获第三方SDK接口方法实现报错,修复崩溃问题
86 | 3. 更新加固方案,减小加固包体积
87 | 4. 修复已知问题
88 |
89 | version 1.0.30 2021-10-21
90 | 1. 更新魅族接口
91 | 2. 更新加固方案,固定加固包中so文件名称
92 | 3. 修复已知问题
93 |
94 | version 1.1.0 2021-12-14
95 | 1. 优化魅族标识判断逻辑
96 | 2. 升级vivo厂商和oppo厂商集成包
97 | 3. 修复代码安全问题
98 |
99 | verstion 1.2.0 2022-04-24
100 | 1. 更新OPPO sdk,优化获取id超时问题
101 | 2. 更新加固方案,修复Android13版本不兼容问题
102 | 3. 新增获取单个id的接口
103 |
104 | verstion 1.2.1 2022-05-20
105 | 1. 修复isLimited接口问题
--------------------------------------------------------------------------------
/Doc/1.2.1/supplierconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "supplier":{
3 | "vivo":{
4 | "appid":"100215079"
5 | }
6 | }
7 | }
8 |
--------------------------------------------------------------------------------
/Doc/1.2.1/混淆配置.txt:
--------------------------------------------------------------------------------
1 | # sdk
2 | -keep class com.bun.miitmdid.** { *; }
3 | -keep interface com.bun.supplier.** { *; }
4 |
5 | # asus
6 | -keep class com.asus.msa.SupplementaryDID.** { *; }
7 | -keep class com.asus.msa.sdid.** { *; }
8 | # freeme
9 | -keep class com.android.creator.** { *; }
10 | -keep class com.android.msasdk.** { *; }
11 | # huawei
12 | -keep class com.huawei.hms.ads.** { *; }
13 | -keep interface com.huawei.hms.ads.** {*; }
14 | # lenovo
15 | -keep class com.zui.deviceidservice.** { *; }
16 | -keep class com.zui.opendeviceidlibrary.** { *; }
17 | # meizu
18 | -keep class com.meizu.flyme.openidsdk.** { *; }
19 | # nubia
20 | -keep class com.bun.miitmdid.provider.nubia.NubiaIdentityImpl { *; }
21 | # oppo
22 | -keep class com.heytap.openid.** { *; }
23 | # samsung
24 | -keep class com.samsung.android.deviceidservice.** { *; }
25 | # vivo
26 | -keep class com.vivo.identifier.** { *; }
27 | # xiaomi
28 | -keep class com.bun.miitmdid.provider.xiaomi.IdentifierManager { *; }
29 | # zte
30 | -keep class com.bun.lib.** { *; }
31 | # coolpad
32 | -keep class com.coolpad.deviceidsupport.** { *; }
33 |
--------------------------------------------------------------------------------
/Doc/1.2.1/移动智能终端补充设备标识体系统一调用SDK F&Qv2.9.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MaYiFei1995/OAIDViewer/397f55443ba74b5a3439431c13bf956b3baa09b8/Doc/1.2.1/移动智能终端补充设备标识体系统一调用SDK F&Qv2.9.pdf
--------------------------------------------------------------------------------
/Doc/1.2.1/移动智能终端补充设备标识体系统一调用SDK开发者说明文档v1.2.1.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MaYiFei1995/OAIDViewer/397f55443ba74b5a3439431c13bf956b3baa09b8/Doc/1.2.1/移动智能终端补充设备标识体系统一调用SDK开发者说明文档v1.2.1.pdf
--------------------------------------------------------------------------------
/Doc/1.2.1/移动智能终端补充设备标识规范-v20190516.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MaYiFei1995/OAIDViewer/397f55443ba74b5a3439431c13bf956b3baa09b8/Doc/1.2.1/移动智能终端补充设备标识规范-v20190516.pdf
--------------------------------------------------------------------------------
/Doc/2.0.0/example_batch.csv:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MaYiFei1995/OAIDViewer/397f55443ba74b5a3439431c13bf956b3baa09b8/Doc/2.0.0/example_batch.csv
--------------------------------------------------------------------------------
/Doc/2.0.0/oaid_sdk_2.0.0.aar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MaYiFei1995/OAIDViewer/397f55443ba74b5a3439431c13bf956b3baa09b8/Doc/2.0.0/oaid_sdk_2.0.0.aar
--------------------------------------------------------------------------------
/Doc/2.0.0/oaid_sdk_2.0.0_demo_src.zip:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MaYiFei1995/OAIDViewer/397f55443ba74b5a3439431c13bf956b3baa09b8/Doc/2.0.0/oaid_sdk_2.0.0_demo_src.zip
--------------------------------------------------------------------------------
/Doc/2.0.0/oaid_sdk_demo_release_20220901.apk:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MaYiFei1995/OAIDViewer/397f55443ba74b5a3439431c13bf956b3baa09b8/Doc/2.0.0/oaid_sdk_demo_release_20220901.apk
--------------------------------------------------------------------------------
/Doc/2.0.0/release note.txt:
--------------------------------------------------------------------------------
1 | 2019年8月6日 miit_mdid_sdk_v1.0.5
2 | 1、去掉所有非必需数据的采集;
3 | 2、兼容AndroidX;
4 | 3、修改小米部分手机上取udid的问题;
5 | 4、更新OPPO接口调用;
6 | 5、增加联想接口支持;
7 | 6、优化SDK包体积。
8 |
9 | 2019年8月16日 miit_mdid_sdk_v1.0.6
10 | 1、去掉所有非必需数据的采集;
11 | 2、兼容AndroidX;
12 | 3、修改小米部分手机上取udid的问题;
13 | 4、更新OPPO接口调用;
14 | 5、增加联想接口支持;
15 | 6、优化SDK包体积;
16 | 7、支持armeabi。
17 |
18 | 2019年8月28日 miit_mdid_sdk_v1.0.8
19 | 1、增加华硕接口支持;
20 | 2、解决动态加载和插件化;
21 | 3、优化代码,支持反射调用;
22 | 4、解决android9以上找不到方法的问题;
23 | 5、更新说明文档。
24 |
25 | 2019年9月18日 miit_mdid_sdk_v1.0.9
26 | 1、解决部分APP、机型崩溃问题;
27 | 2、增加了部分使用建议和F&Q。
28 |
29 |
30 | version 1.0.10 2019-10-14
31 | 1.支持三星,魅族,nubia手机设备
32 | 2.更新华硕,vivo 支持代码。
33 | 3.调整AsyncTask使用并行线程池,改进性能。
34 | 4.调整输出异常为输出调试信息,避免开发者疑问
35 | 5.vivo改为异步,改进性能
36 | 6.修改加固内联定义,解决崩溃
37 | 7.不再提供udid接口。
38 |
39 | version 1.0.11 2019-12-02
40 | 1.修复三星,联想在不支持的手机上不回调的bug
41 | 2.修复webview依赖导致的问题
42 | 3.初始化过程中,出现任何问题都会走回调
43 | 4.sdk里做初始化检查,避免重复初始化
44 | 5.vivo 9.0以下不调用获取oaid
45 | 6.去掉默认aaid的生成
46 | 7.修改华为空指针的bug
47 |
48 | version 1.0.13 2020-02-04
49 | 1.调整sdk包架构,支持系统级接入,目前只在部分手机上支持,开发者不用更新sdk,即可享受sdk的升级。
50 | 2.支持freemeos,ssuios,致濮os
51 | 3.支持一加和黑鲨手机
52 | 4.sdk android sdk提升到28
53 | 5.修复vivo,oppo在低版本不支持的手机上引起的崩溃
54 | 6.部分类不加固,修复部分手机的加固崩溃问题
55 |
56 | version 1.0.22 2020-07-10
57 | 1.为解决之前加固引起的问题,更新加固方式
58 | 2.去除不必要的信息收集问题
59 | 3.更新部分厂家的接口方式
60 |
61 | version 1.0.23 2020-09-07
62 | 1.修改OPPO获取接口
63 | 2.更新混淆字典
64 | 3.修改已知加固方案产生的bug
65 |
66 | version 1.0.25 2020-12-04
67 | 1.修复特定情况下会出现“检测到试用版运行”的bug;
68 | 2.解决了联想反射找不到类的问题。
69 |
70 | version 1.0.26 2021-6-16
71 | 1.增加支持荣耀、realme、酷赛、Cool OS
72 | 2.增加包名校验机制
73 | 3.更新加固方案
74 | 4.增加补充设备标识符开关接口
75 |
76 | version 1.0.27 2021-9-9
77 | 1. 更新魅族、OPPO接口
78 | 2. 增加异步获取超时时间设定功能
79 | 3. 更新加固方案,兼容 Android 12
80 | 4. 兼容旧版本DemoHelper(可以集成和运行,但会返回不支持)
81 | 5. 修复其他已知问题
82 |
83 | version 1.0.29 2021-09-28
84 | 1. 增加支持步步高(小天才)接口
85 | 2. 捕获第三方SDK接口方法实现报错,修复崩溃问题
86 | 3. 更新加固方案,减小加固包体积
87 | 4. 修复已知问题
88 |
89 | version 1.0.30 2021-10-21
90 | 1. 更新魅族接口
91 | 2. 更新加固方案,固定加固包中so文件名称
92 | 3. 修复已知问题
93 |
94 | version 1.1.0 2021-12-14
95 | 1. 优化魅族标识判断逻辑
96 | 2. 升级vivo厂商和oppo厂商集成包
97 | 3. 修复代码安全问题
98 |
99 | verstion 1.2.0 2022-04-24
100 | 1. 更新OPPO sdk,优化获取id超时问题
101 | 2. 更新加固方案,修复Android13版本不兼容问题
102 | 3. 新增获取单个id的接口
103 |
104 | verstion 1.2.1 2022-05-20
105 | 1. 修复isLimited接口返回错误状态而导致的OAID可获取判断错误问题
106 |
107 | verstion 2.0.0 2022-09-01
108 | 1. 增加支持360OS接口
109 | 2. 新增freeme支持品牌名称
110 | 3. 修复在部分5.0手机上接口异常问题
111 | 4. 优化获取华为oaid接口逻辑
--------------------------------------------------------------------------------
/Doc/2.0.0/supplierconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "supplier":{
3 | "vivo":{
4 | "appid":"100215079"
5 | }
6 | }
7 | }
8 |
--------------------------------------------------------------------------------
/Doc/2.0.0/混淆配置.txt:
--------------------------------------------------------------------------------
1 | # sdk
2 | -keep class com.bun.miitmdid.** { *; }
3 | -keep interface com.bun.supplier.** { *; }
4 |
5 | # asus
6 | -keep class com.asus.msa.SupplementaryDID.** { *; }
7 | -keep class com.asus.msa.sdid.** { *; }
8 | # freeme
9 | -keep class com.android.creator.** { *; }
10 | -keep class com.android.msasdk.** { *; }
11 | # huawei
12 | -keep class com.huawei.hms.ads.** { *; }
13 | -keep interface com.huawei.hms.ads.** {*; }
14 | # lenovo
15 | -keep class com.zui.deviceidservice.** { *; }
16 | -keep class com.zui.opendeviceidlibrary.** { *; }
17 | # meizu
18 | -keep class com.meizu.flyme.openidsdk.** { *; }
19 | # nubia
20 | -keep class com.bun.miitmdid.provider.nubia.NubiaIdentityImpl { *; }
21 | # oppo
22 | -keep class com.heytap.openid.** { *; }
23 | # samsung
24 | -keep class com.samsung.android.deviceidservice.** { *; }
25 | # vivo
26 | -keep class com.vivo.identifier.** { *; }
27 | # xiaomi
28 | -keep class com.bun.miitmdid.provider.xiaomi.IdentifierManager { *; }
29 | # zte
30 | -keep class com.bun.lib.** { *; }
31 | # coolpad
32 | -keep class com.coolpad.deviceidsupport.** { *; }
33 |
--------------------------------------------------------------------------------
/Doc/2.0.0/移动智能终端补充设备标识体系统一调用SDK F&Qv3.0.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MaYiFei1995/OAIDViewer/397f55443ba74b5a3439431c13bf956b3baa09b8/Doc/2.0.0/移动智能终端补充设备标识体系统一调用SDK F&Qv3.0.pdf
--------------------------------------------------------------------------------
/Doc/2.0.0/移动智能终端补充设备标识体系统一调用SDK开发者说明文档v2.0.0.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MaYiFei1995/OAIDViewer/397f55443ba74b5a3439431c13bf956b3baa09b8/Doc/2.0.0/移动智能终端补充设备标识体系统一调用SDK开发者说明文档v2.0.0.pdf
--------------------------------------------------------------------------------
/Doc/2.0.0/移动智能终端补充设备标识规范-v20190516.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MaYiFei1995/OAIDViewer/397f55443ba74b5a3439431c13bf956b3baa09b8/Doc/2.0.0/移动智能终端补充设备标识规范-v20190516.pdf
--------------------------------------------------------------------------------
/Doc/2.1.0/example_batch.csv:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MaYiFei1995/OAIDViewer/397f55443ba74b5a3439431c13bf956b3baa09b8/Doc/2.1.0/example_batch.csv
--------------------------------------------------------------------------------
/Doc/2.1.0/oaid-sdk-demo.zip:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MaYiFei1995/OAIDViewer/397f55443ba74b5a3439431c13bf956b3baa09b8/Doc/2.1.0/oaid-sdk-demo.zip
--------------------------------------------------------------------------------
/Doc/2.1.0/oaid_sdk_2.1.0.aar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MaYiFei1995/OAIDViewer/397f55443ba74b5a3439431c13bf956b3baa09b8/Doc/2.1.0/oaid_sdk_2.1.0.aar
--------------------------------------------------------------------------------
/Doc/2.1.0/oaid_sdk_2.1.0_demo.apk:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MaYiFei1995/OAIDViewer/397f55443ba74b5a3439431c13bf956b3baa09b8/Doc/2.1.0/oaid_sdk_2.1.0_demo.apk
--------------------------------------------------------------------------------
/Doc/2.1.0/release note.txt:
--------------------------------------------------------------------------------
1 | 2019年8月6日 miit_mdid_sdk_v1.0.5
2 | 1、去掉所有非必需数据的采集;
3 | 2、兼容AndroidX;
4 | 3、修改小米部分手机上取udid的问题;
5 | 4、更新OPPO接口调用;
6 | 5、增加联想接口支持;
7 | 6、优化SDK包体积。
8 |
9 | 2019年8月16日 miit_mdid_sdk_v1.0.6
10 | 1、去掉所有非必需数据的采集;
11 | 2、兼容AndroidX;
12 | 3、修改小米部分手机上取udid的问题;
13 | 4、更新OPPO接口调用;
14 | 5、增加联想接口支持;
15 | 6、优化SDK包体积;
16 | 7、支持armeabi。
17 |
18 | 2019年8月28日 miit_mdid_sdk_v1.0.8
19 | 1、增加华硕接口支持;
20 | 2、解决动态加载和插件化;
21 | 3、优化代码,支持反射调用;
22 | 4、解决android9以上找不到方法的问题;
23 | 5、更新说明文档。
24 |
25 | 2019年9月18日 miit_mdid_sdk_v1.0.9
26 | 1、解决部分APP、机型崩溃问题;
27 | 2、增加了部分使用建议和F&Q。
28 |
29 |
30 | version 1.0.10 2019-10-14
31 | 1.支持三星,魅族,nubia手机设备
32 | 2.更新华硕,vivo 支持代码。
33 | 3.调整AsyncTask使用并行线程池,改进性能。
34 | 4.调整输出异常为输出调试信息,避免开发者疑问
35 | 5.vivo改为异步,改进性能
36 | 6.修改加固内联定义,解决崩溃
37 | 7.不再提供udid接口。
38 |
39 | version 1.0.11 2019-12-02
40 | 1.修复三星,联想在不支持的手机上不回调的bug
41 | 2.修复webview依赖导致的问题
42 | 3.初始化过程中,出现任何问题都会走回调
43 | 4.sdk里做初始化检查,避免重复初始化
44 | 5.vivo 9.0以下不调用获取oaid
45 | 6.去掉默认aaid的生成
46 | 7.修改华为空指针的bug
47 |
48 | version 1.0.13 2020-02-04
49 | 1.调整sdk包架构,支持系统级接入,目前只在部分手机上支持,开发者不用更新sdk,即可享受sdk的升级。
50 | 2.支持freemeos,ssuios,致濮os
51 | 3.支持一加和黑鲨手机
52 | 4.sdk android sdk提升到28
53 | 5.修复vivo,oppo在低版本不支持的手机上引起的崩溃
54 | 6.部分类不加固,修复部分手机的加固崩溃问题
55 |
56 | version 1.0.22 2020-07-10
57 | 1.为解决之前加固引起的问题,更新加固方式
58 | 2.去除不必要的信息收集问题
59 | 3.更新部分厂家的接口方式
60 |
61 | version 1.0.23 2020-09-07
62 | 1.修改OPPO获取接口
63 | 2.更新混淆字典
64 | 3.修改已知加固方案产生的bug
65 |
66 | version 1.0.25 2020-12-04
67 | 1.修复特定情况下会出现“检测到试用版运行”的bug;
68 | 2.解决了联想反射找不到类的问题。
69 |
70 | version 1.0.26 2021-6-16
71 | 1.增加支持荣耀、realme、酷赛、Cool OS
72 | 2.增加包名校验机制
73 | 3.更新加固方案
74 | 4.增加补充设备标识符开关接口
75 |
76 | version 1.0.27 2021-9-9
77 | 1. 更新魅族、OPPO接口
78 | 2. 增加异步获取超时时间设定功能
79 | 3. 更新加固方案,兼容 Android 12
80 | 4. 兼容旧版本DemoHelper(可以集成和运行,但会返回不支持)
81 | 5. 修复其他已知问题
82 |
83 | version 1.0.29 2021-09-28
84 | 1. 增加支持步步高(小天才)接口
85 | 2. 捕获第三方SDK接口方法实现报错,修复崩溃问题
86 | 3. 更新加固方案,减小加固包体积
87 | 4. 修复已知问题
88 |
89 | version 1.0.30 2021-10-21
90 | 1. 更新魅族接口
91 | 2. 更新加固方案,固定加固包中so文件名称
92 | 3. 修复已知问题
93 |
94 | version 1.1.0 2021-12-14
95 | 1. 优化魅族标识判断逻辑
96 | 2. 升级vivo厂商和oppo厂商集成包
97 | 3. 修复代码安全问题
98 |
99 | verstion 1.2.0 2022-04-24
100 | 1. 更新OPPO sdk,优化获取id超时问题
101 | 2. 更新加固方案,修复Android13版本不兼容问题
102 | 3. 新增获取单个id的接口
103 |
104 | verstion 1.2.1 2022-05-20
105 | 1. 修复isLimited接口返回错误状态而导致的OAID可获取判断错误问题
106 |
107 | verstion 2.0.0 2022-09-01
108 | 1. 增加支持360OS接口
109 | 2. 新增freeme支持品牌名称
110 | 3. 修复在部分5.0手机上接口异常问题
111 | 4. 优化获取华为oaid接口逻辑
112 |
113 | verstion 2.1.0 2023-02-02
114 | 1. 优化360手机厂商判断逻辑
115 | 2. 完善360手机上在Android10以下版本获取OAID开关标志位的逻辑
116 | 3. 修复已知问题
--------------------------------------------------------------------------------
/Doc/2.1.0/supplierconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "supplier":{
3 | "vivo":{
4 | "appid":"100215079"
5 | }
6 | }
7 | }
8 |
--------------------------------------------------------------------------------
/Doc/2.1.0/混淆配置.txt:
--------------------------------------------------------------------------------
1 | # Add project specific ProGuard rules here.
2 | # You can control the set of applied configuration files using the
3 | # proguardFiles setting in build.gradle.
4 | #
5 | # For more details, see
6 | # http://developer.android.com/guide/developing/tools/proguard.html
7 |
8 | # If your project uses WebView with JS, uncomment the following
9 | # and specify the fully qualified class name to the JavaScript interface
10 | # class:
11 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview {
12 | # public *;
13 | #}
14 |
15 | # Uncomment this to preserve the line number information for
16 | # debugging stack traces.
17 | #-keepattributes SourceFile,LineNumberTable
18 |
19 | # If you keep the line number information, uncomment this to
20 | # hide the original source file name.
21 | #-renamesourcefileattribute SourceFile
22 | # sdk
23 | -keep class com.bun.miitmdid.** { *; }
24 | -keep interface com.bun.supplier.** { *; }
25 |
26 | # asus
27 | -keep class com.asus.msa.SupplementaryDID.** { *; }
28 | -keep class com.asus.msa.sdid.** { *; }
29 | # freeme
30 | -keep class com.android.creator.** { *; }
31 | -keep class com.android.msasdk.** { *; }
32 | # huawei
33 | -keep class com.huawei.hms.ads.identifier.** { *; }
34 | #-keep class com.uodis.opendevice.aidl.** { *; }
35 | # lenovo
36 | -keep class com.zui.deviceidservice.** { *; }
37 | -keep class com.zui.opendeviceidlibrary.** { *; }
38 | # meizu
39 | -keep class com.meizu.flyme.openidsdk.** { *; }
40 | # nubia
41 | -keep class com.bun.miitmdid.provider.nubia.NubiaIdentityImpl
42 | # oppo
43 | -keep class com.heytap.openid.** { *; }
44 | # samsung
45 | -keep class com.samsung.android.deviceidservice.** { *; }
46 | # vivo
47 | -keep class com.vivo.identifier.** { *; }
48 | # xiaomi
49 | -keep class com.bun.miitmdid.provider.xiaomi.IdentifierManager
50 | # zte
51 | -keep class com.bun.lib.** { *; }
52 | # coolpad
53 | -keep class com.coolpad.deviceidsupport.** { *; }
54 |
--------------------------------------------------------------------------------
/Doc/2.1.0/移动智能终端补充设备标识体系统一调用SDK F&Qv3.1.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MaYiFei1995/OAIDViewer/397f55443ba74b5a3439431c13bf956b3baa09b8/Doc/2.1.0/移动智能终端补充设备标识体系统一调用SDK F&Qv3.1.pdf
--------------------------------------------------------------------------------
/Doc/2.1.0/移动智能终端补充设备标识体系统一调用SDK开发者说明文档v2.1.0.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MaYiFei1995/OAIDViewer/397f55443ba74b5a3439431c13bf956b3baa09b8/Doc/2.1.0/移动智能终端补充设备标识体系统一调用SDK开发者说明文档v2.1.0.pdf
--------------------------------------------------------------------------------
/Doc/2.2.0/example_batch.csv:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MaYiFei1995/OAIDViewer/397f55443ba74b5a3439431c13bf956b3baa09b8/Doc/2.2.0/example_batch.csv
--------------------------------------------------------------------------------
/Doc/2.2.0/oaid_sdk_2.2.0.aar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MaYiFei1995/OAIDViewer/397f55443ba74b5a3439431c13bf956b3baa09b8/Doc/2.2.0/oaid_sdk_2.2.0.aar
--------------------------------------------------------------------------------
/Doc/2.2.0/oaid_sdk_demo_release_20230522.apk:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MaYiFei1995/OAIDViewer/397f55443ba74b5a3439431c13bf956b3baa09b8/Doc/2.2.0/oaid_sdk_demo_release_20230522.apk
--------------------------------------------------------------------------------
/Doc/2.2.0/release note.txt:
--------------------------------------------------------------------------------
1 | 2019年8月6日 miit_mdid_sdk_v1.0.5
2 | 1、去掉所有非必需数据的采集;
3 | 2、兼容AndroidX;
4 | 3、修改小米部分手机上取udid的问题;
5 | 4、更新OPPO接口调用;
6 | 5、增加联想接口支持;
7 | 6、优化SDK包体积。
8 |
9 | 2019年8月16日 miit_mdid_sdk_v1.0.6
10 | 1、去掉所有非必需数据的采集;
11 | 2、兼容AndroidX;
12 | 3、修改小米部分手机上取udid的问题;
13 | 4、更新OPPO接口调用;
14 | 5、增加联想接口支持;
15 | 6、优化SDK包体积;
16 | 7、支持armeabi。
17 |
18 | 2019年8月28日 miit_mdid_sdk_v1.0.8
19 | 1、增加华硕接口支持;
20 | 2、解决动态加载和插件化;
21 | 3、优化代码,支持反射调用;
22 | 4、解决android9以上找不到方法的问题;
23 | 5、更新说明文档。
24 |
25 | 2019年9月18日 miit_mdid_sdk_v1.0.9
26 | 1、解决部分APP、机型崩溃问题;
27 | 2、增加了部分使用建议和F&Q。
28 |
29 |
30 | version 1.0.10 2019-10-14
31 | 1.支持三星,魅族,nubia手机设备
32 | 2.更新华硕,vivo 支持代码。
33 | 3.调整AsyncTask使用并行线程池,改进性能。
34 | 4.调整输出异常为输出调试信息,避免开发者疑问
35 | 5.vivo改为异步,改进性能
36 | 6.修改加固内联定义,解决崩溃
37 | 7.不再提供udid接口。
38 |
39 | version 1.0.11 2019-12-02
40 | 1.修复三星,联想在不支持的手机上不回调的bug
41 | 2.修复webview依赖导致的问题
42 | 3.初始化过程中,出现任何问题都会走回调
43 | 4.sdk里做初始化检查,避免重复初始化
44 | 5.vivo 9.0以下不调用获取oaid
45 | 6.去掉默认aaid的生成
46 | 7.修改华为空指针的bug
47 |
48 | version 1.0.13 2020-02-04
49 | 1.调整sdk包架构,支持系统级接入,目前只在部分手机上支持,开发者不用更新sdk,即可享受sdk的升级。
50 | 2.支持freemeos,ssuios,致濮os
51 | 3.支持一加和黑鲨手机
52 | 4.sdk android sdk提升到28
53 | 5.修复vivo,oppo在低版本不支持的手机上引起的崩溃
54 | 6.部分类不加固,修复部分手机的加固崩溃问题
55 |
56 | version 1.0.22 2020-07-10
57 | 1.为解决之前加固引起的问题,更新加固方式
58 | 2.去除不必要的信息收集问题
59 | 3.更新部分厂家的接口方式
60 |
61 | version 1.0.23 2020-09-07
62 | 1.修改OPPO获取接口
63 | 2.更新混淆字典
64 | 3.修改已知加固方案产生的bug
65 |
66 | version 1.0.25 2020-12-04
67 | 1.修复特定情况下会出现“检测到试用版运行”的bug;
68 | 2.解决了联想反射找不到类的问题。
69 |
70 | version 1.0.26 2021-6-16
71 | 1.增加支持荣耀、realme、酷赛、Cool OS
72 | 2.增加包名校验机制
73 | 3.更新加固方案
74 | 4.增加补充设备标识符开关接口
75 |
76 | version 1.0.27 2021-9-9
77 | 1. 更新魅族、OPPO接口
78 | 2. 增加异步获取超时时间设定功能
79 | 3. 更新加固方案,兼容 Android 12
80 | 4. 兼容旧版本DemoHelper(可以集成和运行,但会返回不支持)
81 | 5. 修复其他已知问题
82 |
83 | version 1.0.29 2021-09-28
84 | 1. 增加支持步步高(小天才)接口
85 | 2. 捕获第三方SDK接口方法实现报错,修复崩溃问题
86 | 3. 更新加固方案,减小加固包体积
87 | 4. 修复已知问题
88 |
89 | version 1.0.30 2021-10-21
90 | 1. 更新魅族接口
91 | 2. 更新加固方案,固定加固包中so文件名称
92 | 3. 修复已知问题
93 |
94 | version 1.1.0 2021-12-14
95 | 1. 优化魅族标识判断逻辑
96 | 2. 升级vivo厂商和oppo厂商集成包
97 | 3. 修复代码安全问题
98 |
99 | verstion 1.2.0 2022-04-24
100 | 1. 更新OPPO sdk,优化获取id超时问题
101 | 2. 更新加固方案,修复Android13版本不兼容问题
102 | 3. 新增获取单个id的接口
103 |
104 | verstion 1.2.1 2022-05-20
105 | 1. 修复isLimited接口返回错误状态而导致的OAID可获取判断错误问题
106 |
107 | verstion 2.0.0 2022-09-01
108 | 1. 增加支持360OS接口
109 | 2. 新增freeme支持品牌名称
110 | 3. 修复在部分5.0手机上接口异常问题
111 | 4. 优化获取华为oaid接口逻辑
112 |
113 | verstion 2.1.0 2023-02-02
114 | 1. 优化360手机厂商判断逻辑
115 | 2. 完善360手机上在Android10以下版本获取OAID开关标志位的逻辑
116 | 3. 修复已知问题
117 |
118 | version 2.2.0 2023-05-16
119 | 1. 升级华为接口,解决HMS Core 6.10.4.302版本以上获取不到OAID问题
120 | 2.升级Freeme厂商集成包,能适配Freeme 系统老版本
121 | 3.修复其他已知问题
--------------------------------------------------------------------------------
/Doc/2.2.0/supplierconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "supplier":{
3 | "vivo":{
4 | "appid":"100215079"
5 | }
6 | }
7 | }
8 |
--------------------------------------------------------------------------------
/Doc/2.2.0/混淆配置.txt:
--------------------------------------------------------------------------------
1 | # Add project specific ProGuard rules here.
2 | # You can control the set of applied configuration files using the
3 | # proguardFiles setting in build.gradle.
4 | #
5 | # For more details, see
6 | # http://developer.android.com/guide/developing/tools/proguard.html
7 |
8 | # If your project uses WebView with JS, uncomment the following
9 | # and specify the fully qualified class name to the JavaScript interface
10 | # class:
11 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview {
12 | # public *;
13 | #}
14 |
15 | # Uncomment this to preserve the line number information for
16 | # debugging stack traces.
17 | #-keepattributes SourceFile,LineNumberTable
18 |
19 | # If you keep the line number information, uncomment this to
20 | # hide the original source file name.
21 | #-renamesourcefileattribute SourceFile
22 | # sdk
23 | -keep class com.bun.miitmdid.** { *; }
24 | -keep interface com.bun.supplier.** { *; }
25 |
26 | # asus
27 | -keep class com.asus.msa.SupplementaryDID.** { *; }
28 | -keep class com.asus.msa.sdid.** { *; }
29 | # freeme
30 | -keep class com.android.creator.** { *; }
31 | -keep class com.android.msasdk.** { *; }
32 | # huawei
33 | -keep class com.huawei.hms.ads.identifier.** { *; }
34 | #-keep class com.uodis.opendevice.aidl.** { *; }
35 | # lenovo
36 | -keep class com.zui.deviceidservice.** { *; }
37 | -keep class com.zui.opendeviceidlibrary.** { *; }
38 | # meizu
39 | -keep class com.meizu.flyme.openidsdk.** { *; }
40 | # nubia
41 | -keep class com.bun.miitmdid.provider.nubia.NubiaIdentityImpl
42 | # oppo
43 | -keep class com.heytap.openid.** { *; }
44 | # samsung
45 | -keep class com.samsung.android.deviceidservice.** { *; }
46 | # vivo
47 | -keep class com.vivo.identifier.** { *; }
48 | # xiaomi
49 | -keep class com.bun.miitmdid.provider.xiaomi.IdentifierManager
50 | # zte
51 | -keep class com.bun.lib.** { *; }
52 | # coolpad
53 | -keep class com.coolpad.deviceidsupport.** { *; }
54 |
--------------------------------------------------------------------------------
/Doc/2.2.0/移动智能终端补充设备标识体系统一调用SDK F&Qv3.2.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MaYiFei1995/OAIDViewer/397f55443ba74b5a3439431c13bf956b3baa09b8/Doc/2.2.0/移动智能终端补充设备标识体系统一调用SDK F&Qv3.2.pdf
--------------------------------------------------------------------------------
/Doc/2.2.0/移动智能终端补充设备标识体系统一调用SDK开发者说明文档v2.2.0.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MaYiFei1995/OAIDViewer/397f55443ba74b5a3439431c13bf956b3baa09b8/Doc/2.2.0/移动智能终端补充设备标识体系统一调用SDK开发者说明文档v2.2.0.pdf
--------------------------------------------------------------------------------
/Doc/2.2.0/移动智能终端补充设备标识规范-v20190516.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MaYiFei1995/OAIDViewer/397f55443ba74b5a3439431c13bf956b3baa09b8/Doc/2.2.0/移动智能终端补充设备标识规范-v20190516.pdf
--------------------------------------------------------------------------------
/Doc/2.3.0/TTAF 095-2023 移动智能终端补充设备标识规范.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MaYiFei1995/OAIDViewer/397f55443ba74b5a3439431c13bf956b3baa09b8/Doc/2.3.0/TTAF 095-2023 移动智能终端补充设备标识规范.pdf
--------------------------------------------------------------------------------
/Doc/2.3.0/example_batch.csv:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MaYiFei1995/OAIDViewer/397f55443ba74b5a3439431c13bf956b3baa09b8/Doc/2.3.0/example_batch.csv
--------------------------------------------------------------------------------
/Doc/2.3.0/oaid_sdk_2.3.0.aar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MaYiFei1995/OAIDViewer/397f55443ba74b5a3439431c13bf956b3baa09b8/Doc/2.3.0/oaid_sdk_2.3.0.aar
--------------------------------------------------------------------------------
/Doc/2.3.0/oaid_sdk_2.3.0_demo_src.zip:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MaYiFei1995/OAIDViewer/397f55443ba74b5a3439431c13bf956b3baa09b8/Doc/2.3.0/oaid_sdk_2.3.0_demo_src.zip
--------------------------------------------------------------------------------
/Doc/2.3.0/release note.txt:
--------------------------------------------------------------------------------
1 | 2019年8月6日 miit_mdid_sdk_v1.0.5
2 | 1、去掉所有非必需数据的采集;
3 | 2、兼容AndroidX;
4 | 3、修改小米部分手机上取udid的问题;
5 | 4、更新OPPO接口调用;
6 | 5、增加联想接口支持;
7 | 6、优化SDK包体积。
8 |
9 | 2019年8月16日 miit_mdid_sdk_v1.0.6
10 | 1、去掉所有非必需数据的采集;
11 | 2、兼容AndroidX;
12 | 3、修改小米部分手机上取udid的问题;
13 | 4、更新OPPO接口调用;
14 | 5、增加联想接口支持;
15 | 6、优化SDK包体积;
16 | 7、支持armeabi。
17 |
18 | 2019年8月28日 miit_mdid_sdk_v1.0.8
19 | 1、增加华硕接口支持;
20 | 2、解决动态加载和插件化;
21 | 3、优化代码,支持反射调用;
22 | 4、解决android9以上找不到方法的问题;
23 | 5、更新说明文档。
24 |
25 | 2019年9月18日 miit_mdid_sdk_v1.0.9
26 | 1、解决部分APP、机型崩溃问题;
27 | 2、增加了部分使用建议和F&Q。
28 |
29 |
30 | version 1.0.10 2019-10-14
31 | 1.支持三星,魅族,nubia手机设备
32 | 2.更新华硕,vivo 支持代码。
33 | 3.调整AsyncTask使用并行线程池,改进性能。
34 | 4.调整输出异常为输出调试信息,避免开发者疑问
35 | 5.vivo改为异步,改进性能
36 | 6.修改加固内联定义,解决崩溃
37 | 7.不再提供udid接口。
38 |
39 | version 1.0.11 2019-12-02
40 | 1.修复三星,联想在不支持的手机上不回调的bug
41 | 2.修复webview依赖导致的问题
42 | 3.初始化过程中,出现任何问题都会走回调
43 | 4.sdk里做初始化检查,避免重复初始化
44 | 5.vivo 9.0以下不调用获取oaid
45 | 6.去掉默认aaid的生成
46 | 7.修改华为空指针的bug
47 |
48 | version 1.0.13 2020-02-04
49 | 1.调整sdk包架构,支持系统级接入,目前只在部分手机上支持,开发者不用更新sdk,即可享受sdk的升级。
50 | 2.支持freemeos,ssuios,致濮os
51 | 3.支持一加和黑鲨手机
52 | 4.sdk android sdk提升到28
53 | 5.修复vivo,oppo在低版本不支持的手机上引起的崩溃
54 | 6.部分类不加固,修复部分手机的加固崩溃问题
55 |
56 | version 1.0.22 2020-07-10
57 | 1.为解决之前加固引起的问题,更新加固方式
58 | 2.去除不必要的信息收集问题
59 | 3.更新部分厂家的接口方式
60 |
61 | version 1.0.23 2020-09-07
62 | 1.修改OPPO获取接口
63 | 2.更新混淆字典
64 | 3.修改已知加固方案产生的bug
65 |
66 | version 1.0.25 2020-12-04
67 | 1.修复特定情况下会出现“检测到试用版运行”的bug;
68 | 2.解决了联想反射找不到类的问题。
69 |
70 | version 1.0.26 2021-6-16
71 | 1.增加支持荣耀、realme、酷赛、Cool OS
72 | 2.增加包名校验机制
73 | 3.更新加固方案
74 | 4.增加补充设备标识符开关接口
75 |
76 | version 1.0.27 2021-9-9
77 | 1. 更新魅族、OPPO接口
78 | 2. 增加异步获取超时时间设定功能
79 | 3. 更新加固方案,兼容 Android 12
80 | 4. 兼容旧版本DemoHelper(可以集成和运行,但会返回不支持)
81 | 5. 修复其他已知问题
82 |
83 | version 1.0.29 2021-09-28
84 | 1. 增加支持步步高(小天才)接口
85 | 2. 捕获第三方SDK接口方法实现报错,修复崩溃问题
86 | 3. 更新加固方案,减小加固包体积
87 | 4. 修复已知问题
88 |
89 | version 1.0.30 2021-10-21
90 | 1. 更新魅族接口
91 | 2. 更新加固方案,固定加固包中so文件名称
92 | 3. 修复已知问题
93 |
94 | version 1.1.0 2021-12-14
95 | 1. 优化魅族标识判断逻辑
96 | 2. 升级vivo厂商和oppo厂商集成包
97 | 3. 修复代码安全问题
98 |
99 | verstion 1.2.0 2022-04-24
100 | 1. 更新OPPO sdk,优化获取id超时问题
101 | 2. 更新加固方案,修复Android13版本不兼容问题
102 | 3. 新增获取单个id的接口
103 |
104 | verstion 1.2.1 2022-05-20
105 | 1. 修复isLimited接口返回错误状态而导致的OAID可获取判断错误问题
106 |
107 | verstion 2.0.0 2022-09-01
108 | 1. 增加支持360OS接口
109 | 2. 新增freeme支持品牌名称
110 | 3. 修复在部分5.0手机上接口异常问题
111 | 4. 优化获取华为oaid接口逻辑
112 |
113 | verstion 2.1.0 2023-02-02
114 | 1. 优化360手机厂商判断逻辑
115 | 2. 完善360手机上在Android10以下版本获取OAID开关标志位的逻辑
116 | 3. 修复已知问题
117 |
118 | version 2.2.0 2023-05-16
119 | 1. 升级华为接口,解决HMS Core 6.10.4.302版本以上获取不到OAID问题
120 | 2.升级Freeme厂商集成包,能适配Freeme 系统老版本
121 | 3.修复其他已知问题
122 |
123 | version 2.3.0 2023-11-20
124 | 1.升级OPPO厂商集成包,实现OPPO手机上应用级管控功能
125 | 2.完善vivo获取VAID接口逻辑
126 | 3.增加荣耀手机厂商集成包
127 | 4.增加华为手机上获取VAID和AAID标识功能
--------------------------------------------------------------------------------
/Doc/2.3.0/supplierconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "supplier":{
3 | "vivo":{
4 | "appid":"100215079"
5 | }
6 | }
7 | }
8 |
--------------------------------------------------------------------------------
/Doc/2.3.0/混淆配置.txt:
--------------------------------------------------------------------------------
1 | # Add project specific ProGuard rules here.
2 | # You can control the set of applied configuration files using the
3 | # proguardFiles setting in build.gradle.
4 | #
5 | # For more details, see
6 | # http://developer.android.com/guide/developing/tools/proguard.html
7 |
8 | # If your project uses WebView with JS, uncomment the following
9 | # and specify the fully qualified class name to the JavaScript interface
10 | # class:
11 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview {
12 | # public *;
13 | #}
14 |
15 | # Uncomment this to preserve the line number information for
16 | # debugging stack traces.
17 | #-keepattributes SourceFile,LineNumberTable
18 |
19 | # If you keep the line number information, uncomment this to
20 | # hide the original source file name.
21 | #-renamesourcefileattribute SourceFile
22 | # sdk
23 | -keep class com.bun.miitmdid.** { *; }
24 | -keep interface com.bun.supplier.** { *; }
25 |
26 | # asus
27 | -keep class com.asus.msa.SupplementaryDID.** { *; }
28 | -keep class com.asus.msa.sdid.** { *; }
29 | # freeme
30 | -keep class com.android.creator.** { *; }
31 | -keep class com.android.msasdk.** { *; }
32 | # huawei
33 | -keep class com.huawei.hms.** {*;}
34 | -keep interface com.huawei.hms.** {*;}
35 | # lenovo
36 | -keep class com.zui.deviceidservice.** { *; }
37 | -keep class com.zui.opendeviceidlibrary.** { *; }
38 | # meizu
39 | -keep class com.meizu.flyme.openidsdk.** { *; }
40 | # nubia
41 | -keep class com.bun.miitmdid.provider.nubia.NubiaIdentityImpl
42 | # oppo
43 | -keep class com.heytap.openid.** { *; }
44 | # samsung
45 | -keep class com.samsung.android.deviceidservice.** { *; }
46 | # vivo
47 | -keep class com.vivo.identifier.** { *; }
48 | # xiaomi
49 | -keep class com.bun.miitmdid.provider.xiaomi.IdentifierManager
50 | # zte
51 | -keep class com.bun.lib.** { *; }
52 | # coolpad
53 | -keep class com.coolpad.deviceidsupport.** { *; }
54 | # EEBBK
55 | #None
56 | # honor
57 | -keep class com.hihonor.ads.** {*; }
58 |
--------------------------------------------------------------------------------
/Doc/2.3.0/移动智能终端补充设备标识体系统一调用SDK F&Qv3.2.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MaYiFei1995/OAIDViewer/397f55443ba74b5a3439431c13bf956b3baa09b8/Doc/2.3.0/移动智能终端补充设备标识体系统一调用SDK F&Qv3.2.pdf
--------------------------------------------------------------------------------
/Doc/2.3.0/移动智能终端补充设备标识体系统一调用SDK开发者说明文档v2.3.0.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MaYiFei1995/OAIDViewer/397f55443ba74b5a3439431c13bf956b3baa09b8/Doc/2.3.0/移动智能终端补充设备标识体系统一调用SDK开发者说明文档v2.3.0.pdf
--------------------------------------------------------------------------------
/Doc/2.4.0/TTAF 095-2023 移动智能终端补充设备标识规范.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MaYiFei1995/OAIDViewer/397f55443ba74b5a3439431c13bf956b3baa09b8/Doc/2.4.0/TTAF 095-2023 移动智能终端补充设备标识规范.pdf
--------------------------------------------------------------------------------
/Doc/2.4.0/example_batch.csv:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MaYiFei1995/OAIDViewer/397f55443ba74b5a3439431c13bf956b3baa09b8/Doc/2.4.0/example_batch.csv
--------------------------------------------------------------------------------
/Doc/2.4.0/oaid_sdk_2.4.0.aar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MaYiFei1995/OAIDViewer/397f55443ba74b5a3439431c13bf956b3baa09b8/Doc/2.4.0/oaid_sdk_2.4.0.aar
--------------------------------------------------------------------------------
/Doc/2.4.0/oaid_sdk_2.4.0_demo_src.zip:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MaYiFei1995/OAIDViewer/397f55443ba74b5a3439431c13bf956b3baa09b8/Doc/2.4.0/oaid_sdk_2.4.0_demo_src.zip
--------------------------------------------------------------------------------
/Doc/2.4.0/oaid_sdk_demo_release_20240129.apk:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MaYiFei1995/OAIDViewer/397f55443ba74b5a3439431c13bf956b3baa09b8/Doc/2.4.0/oaid_sdk_demo_release_20240129.apk
--------------------------------------------------------------------------------
/Doc/2.4.0/release note.txt:
--------------------------------------------------------------------------------
1 | 2024年1月25日 version 2.4.0
2 | 1. 升级vivo厂商集成包,实现vivo手机上应用级管控功能
3 | 2. 新增小度厂商集成包,实现小度智能屏上获取OAID标识功能
4 | 3. 升级OPPO厂商集成包,提升OPPO手机上获取标识成功率
5 |
6 | 2023年11月20日 version 2.3.0
7 | 1.升级OPPO厂商集成包,实现OPPO手机上应用级管控功能
8 | 2.完善vivo获取VAID接口逻辑
9 | 3.增加荣耀手机厂商集成包
10 | 4.增加华为手机上获取VAID和AAID标识功能
11 |
12 | 2023年5月16日 version 2.2.0
13 | 1. 升级华为接口,解决HMS Core 6.10.4.302版本以上获取不到OAID问题
14 | 2.升级Freeme厂商集成包,能适配Freeme 系统老版本
15 | 3.修复其他已知问题
16 |
17 | 2023年2月14日 version 2.1.0
18 | 1. 优化360手机厂商判断逻辑
19 | 2. 完善360手机上在Android10以下版本获取OAID开关标志位的逻辑
20 | 3. 修复已知问题
21 |
22 | 2022年9月5日 version 2.0.0
23 | 1. 增加支持360OS接口
24 | 2. 新增freeme支持品牌名称
25 | 3. 修复在部分5.0手机上接口异常问题
26 | 4. 优化获取华为oaid接口逻辑
27 |
28 | 2022年5月20日 version 1.2.1
29 | 1. 修复isLimited接口返回错误状态而导致的OAID可获取判断错误问题
30 |
31 | 2022年4月28日 version 1.2.0
32 | 1. 更新OPPO sdk,优化获取id超时问题
33 | 2. 更新加固方案,修复Android13版本不兼容问题
34 | 3. 新增获取单个id的接口
35 |
36 | 2021年12月21日 version 1.1.0
37 | 1. 优化魅族标识判断逻辑
38 | 2. 升级vivo厂商和oppo厂商集成包
39 | 3. 修复代码安全问题
40 |
41 | 2021年10月21日 version 1.0.30
42 | 1. 更新魅族接口
43 | 2. 更新加固方案,固定加固包中so文件名称
44 | 3. 修复已知问题
45 |
46 | 2021年9月30日 version 1.0.29
47 | 1. 增加支持步步高(小天才)接口
48 | 2. 捕获第三方SDK接口方法实现报错,修复崩溃问题
49 | 3. 更新加固方案,减小加固包体积
50 | 4. 修复已知问题
51 |
52 | 2021年9月9日 version 1.0.27
53 | 1. 更新魅族、OPPO接口;
54 | 2. 增加异步获取超时时间设定功能;
55 | 3. 更新加固方案,兼容 Android 12;
56 | 4. 兼容旧版本DemoHelper(可以集成和运行,但会返回不支持);
57 | 5. 修复其他已知问题。
58 |
59 | 2021年7月2日 version 1.0.26
60 | 1.增加支持荣耀、realme、酷赛、Cool OS;
61 | 2.增加包名校验机制;
62 | 3.更新加固方案;
63 | 4.增加补充设备标识符开关接口。
64 |
65 | 2020年12月4日 version 1.0.25
66 | 1.修复了特定情况下会出现“检测到试用版运行”的bug;
67 | 2.解决了联想反射找不到类的问题。
68 |
69 | 2020年9月7日 version 1.0.23
70 | 1.修改OPPO获取接口;
71 | 2.更新混淆字典;
72 | 3.修改已知加固方案产生的bug。
73 |
74 | 2020年7月21日 version 1.0.22
75 | 1.为解决之前加固引起的问题,更新加固方式;
76 | 2.去除不必要的信息收集;
77 | 3.更新部分厂家的接口方式。
78 |
79 | 2020年2月6日 version 1.0.13
80 | 1.调整sdk包架构,支持系统级接入,目前只在部分手机上支持,开发者不用更新sdk,即可享受sdk的升级;
81 | 2.支持freemeos,ssuios,致濮os;
82 | 3.支持一加和黑鲨手机;
83 | 4.sdk android sdk提升到28;
84 | 5.修复vivo,oppo在低版本不支持的手机上引起的崩溃;
85 | 6.部分类不加固,修复部分手机的加固崩溃问题。
86 |
87 | 2019年12月2日 version 1.0.11
88 | 1.修复三星,联想在不支持的手机上不回调的bug;
89 | 2.修复webview依赖导致的问题;
90 | 3.初始化过程中,出现任何问题都会走回调;
91 | 4.sdk里做初始化检查,避免重复初始化;
92 | 5.vivo 9.0以下不调用获取oaid;
93 | 6.去掉默认aaid的生成;
94 | 7.修改华为空指针的bug。
95 |
96 | 2019年10月14日 version 1.0.10
97 | 1.支持三星,魅族,nubia手机设备;
98 | 2.更新华硕,vivo 支持代码;
99 | 3.调整AsyncTask使用并行线程池,改进性能;
100 | 4.调整输出异常为输出调试信息,避免开发者疑问;
101 | 5.vivo改为异步,改进性能;
102 | 6.修改加固内联定义,解决崩溃;
103 | 7.不再提供udid接口,避免造成误解。
104 |
105 | 2019年9月18日 version 1.0.9
106 | 1、解决部分APP、机型崩溃问题;
107 | 2、增加了部分使用建议和F&Q。
108 |
109 | 2019年8月28日 version 1.0.8
110 | 1、增加华硕接口支持;
111 | 2、解决动态加载和插件化;
112 | 3、优化代码,支持反射调用;
113 | 4、解决android9以上找不到方法的问题;
114 | 5、更新说明文档。
115 |
116 | 2019年8月16日 version 1.0.6
117 | 1、去掉所有非必需数据的采集;
118 | 2、兼容AndroidX;
119 | 3、修改小米部分手机上取udid的问题;
120 | 4、更新OPPO接口调用;
121 | 5、增加联想接口支持;
122 | 6、优化SDK包体积;
123 | 7、支持armeabi。
124 |
125 | 2019年8月6日 version 1.0.5
126 | 1、去掉所有非必需数据的采集;
127 | 2、兼容AndroidX;
128 | 3、修改小米部分手机上取udid的问题;
129 | 4、更新OPPO接口调用;
130 | 5、增加联想接口支持;
131 | 6、优化SDK包体积。
--------------------------------------------------------------------------------
/Doc/2.4.0/supplierconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "supplier":{
3 | "vivo":{
4 | "appid":"100215079"
5 | }
6 | }
7 | }
8 |
--------------------------------------------------------------------------------
/Doc/2.4.0/混淆配置.txt:
--------------------------------------------------------------------------------
1 | # Add project specific ProGuard rules here.
2 | # You can control the set of applied configuration files using the
3 | # proguardFiles setting in build.gradle.
4 | #
5 | # For more details, see
6 | # http://developer.android.com/guide/developing/tools/proguard.html
7 |
8 | # If your project uses WebView with JS, uncomment the following
9 | # and specify the fully qualified class name to the JavaScript interface
10 | # class:
11 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview {
12 | # public *;
13 | #}
14 |
15 | # Uncomment this to preserve the line number information for
16 | # debugging stack traces.
17 | #-keepattributes SourceFile,LineNumberTable
18 |
19 | # If you keep the line number information, uncomment this to
20 | # hide the original source file name.
21 | #-renamesourcefileattribute SourceFile
22 | # sdk
23 | -keep class com.bun.miitmdid.** { *; }
24 | -keep interface com.bun.supplier.** { *; }
25 | -keep class androidx.core.**{*;}
26 | # asus
27 | -keep class com.asus.msa.SupplementaryDID.** { *; }
28 | -keep class com.asus.msa.sdid.** { *; }
29 | # freeme
30 | -keep class com.android.creator.** { *; }
31 | -keep class com.android.msasdk.** { *; }
32 | # huawei
33 | -keep class com.huawei.hms.** {*;}
34 | -keep interface com.huawei.hms.** {*;}
35 | # lenovo
36 | -keep class com.zui.deviceidservice.** { *; }
37 | -keep class com.zui.opendeviceidlibrary.** { *; }
38 | # meizu
39 | -keep class com.meizu.flyme.openidsdk.** { *; }
40 | # nubia
41 | -keep class com.bun.miitmdid.provider.nubia.NubiaIdentityImpl
42 | # oppo
43 | -keep class com.heytap.openid.** { *; }
44 | # samsung
45 | -keep class com.samsung.android.deviceidservice.** { *; }
46 | # vivo
47 | -keep class com.vivo.identifier.** { *; }
48 | # xiaomi
49 | -keep class com.bun.miitmdid.provider.xiaomi.IdentifierManager
50 | # zte
51 | -keep class com.bun.lib.** { *; }
52 | # coolpad
53 | -keep class com.coolpad.deviceidsupport.** { *; }
54 | # EEBBK
55 | #None
56 | # honor
57 | -keep class com.hihonor.ads.** {*; }
58 |
--------------------------------------------------------------------------------
/Doc/2.4.0/移动智能终端补充设备标识体系统一调用SDK F&Qv3.2.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MaYiFei1995/OAIDViewer/397f55443ba74b5a3439431c13bf956b3baa09b8/Doc/2.4.0/移动智能终端补充设备标识体系统一调用SDK F&Qv3.2.pdf
--------------------------------------------------------------------------------
/Doc/2.4.0/移动智能终端补充设备标识体系统一调用SDK开发者说明文档v2.4.0.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MaYiFei1995/OAIDViewer/397f55443ba74b5a3439431c13bf956b3baa09b8/Doc/2.4.0/移动智能终端补充设备标识体系统一调用SDK开发者说明文档v2.4.0.pdf
--------------------------------------------------------------------------------
/Doc/2.5.0/TTAF 095-2023 移动智能终端补充设备标识规范.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MaYiFei1995/OAIDViewer/397f55443ba74b5a3439431c13bf956b3baa09b8/Doc/2.5.0/TTAF 095-2023 移动智能终端补充设备标识规范.pdf
--------------------------------------------------------------------------------
/Doc/2.5.0/example_batch.csv:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MaYiFei1995/OAIDViewer/397f55443ba74b5a3439431c13bf956b3baa09b8/Doc/2.5.0/example_batch.csv
--------------------------------------------------------------------------------
/Doc/2.5.0/oaid_sdk_2.5.0.aar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MaYiFei1995/OAIDViewer/397f55443ba74b5a3439431c13bf956b3baa09b8/Doc/2.5.0/oaid_sdk_2.5.0.aar
--------------------------------------------------------------------------------
/Doc/2.5.0/oaid_sdk_2.5.0_demo_src.zip:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MaYiFei1995/OAIDViewer/397f55443ba74b5a3439431c13bf956b3baa09b8/Doc/2.5.0/oaid_sdk_2.5.0_demo_src.zip
--------------------------------------------------------------------------------
/Doc/2.5.0/oaid_sdk_demo_release_20240521.apk:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MaYiFei1995/OAIDViewer/397f55443ba74b5a3439431c13bf956b3baa09b8/Doc/2.5.0/oaid_sdk_demo_release_20240521.apk
--------------------------------------------------------------------------------
/Doc/2.5.0/release note.txt:
--------------------------------------------------------------------------------
1 | 2024年5月23日 version 2.5.0
2 | 1. 升级荣耀厂商集成包,实现荣耀手机上应用级管控功能
3 | 2. 新增腾讯厂商集成包,实现腾讯应用宝电脑版上获取OAID标识功能
4 |
5 | 2024年4月10日 version 2.4.1
6 | 1. 升级360厂商集成包,优化360手机上获取OAID功能逻辑
7 | 2. 修复已知问题
8 |
9 | 2024年1月25日 version 2.4.0
10 | 1. 升级vivo厂商集成包,实现vivo手机上应用级管控功能
11 | 2. 新增小度厂商集成包,实现小度智能屏上获取OAID标识功能
12 | 3. 升级OPPO厂商集成包,提升OPPO手机上获取标识成功率
13 |
14 | 2023年11月20日 version 2.3.0
15 | 1.升级OPPO厂商集成包,实现OPPO手机上应用级管控功能
16 | 2.完善vivo获取VAID接口逻辑
17 | 3.增加荣耀手机厂商集成包
18 | 4.增加华为手机上获取VAID和AAID标识功能
19 |
20 | 2023年5月16日 version 2.2.0
21 | 1. 升级华为接口,解决HMS Core 6.10.4.302版本以上获取不到OAID问题
22 | 2.升级Freeme厂商集成包,能适配Freeme 系统老版本
23 | 3.修复其他已知问题
24 |
25 | 2023年2月14日 version 2.1.0
26 | 1. 优化360手机厂商判断逻辑
27 | 2. 完善360手机上在Android10以下版本获取OAID开关标志位的逻辑
28 | 3. 修复已知问题
29 |
30 | 2022年9月5日 version 2.0.0
31 | 1. 增加支持360OS接口
32 | 2. 新增freeme支持品牌名称
33 | 3. 修复在部分5.0手机上接口异常问题
34 | 4. 优化获取华为oaid接口逻辑
35 |
36 | 2022年5月20日 version 1.2.1
37 | 1. 修复isLimited接口返回错误状态而导致的OAID可获取判断错误问题
38 |
39 | 2022年4月28日 version 1.2.0
40 | 1. 更新OPPO sdk,优化获取id超时问题
41 | 2. 更新加固方案,修复Android13版本不兼容问题
42 | 3. 新增获取单个id的接口
43 |
44 | 2021年12月21日 version 1.1.0
45 | 1. 优化魅族标识判断逻辑
46 | 2. 升级vivo厂商和oppo厂商集成包
47 | 3. 修复代码安全问题
48 |
49 | 2021年10月21日 version 1.0.30
50 | 1. 更新魅族接口
51 | 2. 更新加固方案,固定加固包中so文件名称
52 | 3. 修复已知问题
53 |
54 | 2021年9月30日 version 1.0.29
55 | 1. 增加支持步步高(小天才)接口
56 | 2. 捕获第三方SDK接口方法实现报错,修复崩溃问题
57 | 3. 更新加固方案,减小加固包体积
58 | 4. 修复已知问题
59 |
60 | 2021年9月9日 version 1.0.27
61 | 1. 更新魅族、OPPO接口;
62 | 2. 增加异步获取超时时间设定功能;
63 | 3. 更新加固方案,兼容 Android 12;
64 | 4. 兼容旧版本DemoHelper(可以集成和运行,但会返回不支持);
65 | 5. 修复其他已知问题。
66 |
67 | 2021年7月2日 version 1.0.26
68 | 1.增加支持荣耀、realme、酷赛、Cool OS;
69 | 2.增加包名校验机制;
70 | 3.更新加固方案;
71 | 4.增加补充设备标识符开关接口。
72 |
73 | 2020年12月4日 version 1.0.25
74 | 1.修复了特定情况下会出现“检测到试用版运行”的bug;
75 | 2.解决了联想反射找不到类的问题。
76 |
77 | 2020年9月7日 version 1.0.23
78 | 1.修改OPPO获取接口;
79 | 2.更新混淆字典;
80 | 3.修改已知加固方案产生的bug。
81 |
82 | 2020年7月21日 version 1.0.22
83 | 1.为解决之前加固引起的问题,更新加固方式;
84 | 2.去除不必要的信息收集;
85 | 3.更新部分厂家的接口方式。
86 |
87 | 2020年2月6日 version 1.0.13
88 | 1.调整sdk包架构,支持系统级接入,目前只在部分手机上支持,开发者不用更新sdk,即可享受sdk的升级;
89 | 2.支持freemeos,ssuios,致濮os;
90 | 3.支持一加和黑鲨手机;
91 | 4.sdk android sdk提升到28;
92 | 5.修复vivo,oppo在低版本不支持的手机上引起的崩溃;
93 | 6.部分类不加固,修复部分手机的加固崩溃问题。
94 |
95 | 2019年12月2日 version 1.0.11
96 | 1.修复三星,联想在不支持的手机上不回调的bug;
97 | 2.修复webview依赖导致的问题;
98 | 3.初始化过程中,出现任何问题都会走回调;
99 | 4.sdk里做初始化检查,避免重复初始化;
100 | 5.vivo 9.0以下不调用获取oaid;
101 | 6.去掉默认aaid的生成;
102 | 7.修改华为空指针的bug。
103 |
104 | 2019年10月14日 version 1.0.10
105 | 1.支持三星,魅族,nubia手机设备;
106 | 2.更新华硕,vivo 支持代码;
107 | 3.调整AsyncTask使用并行线程池,改进性能;
108 | 4.调整输出异常为输出调试信息,避免开发者疑问;
109 | 5.vivo改为异步,改进性能;
110 | 6.修改加固内联定义,解决崩溃;
111 | 7.不再提供udid接口,避免造成误解。
112 |
113 | 2019年9月18日 version 1.0.9
114 | 1、解决部分APP、机型崩溃问题;
115 | 2、增加了部分使用建议和F&Q。
116 |
117 | 2019年8月28日 version 1.0.8
118 | 1、增加华硕接口支持;
119 | 2、解决动态加载和插件化;
120 | 3、优化代码,支持反射调用;
121 | 4、解决android9以上找不到方法的问题;
122 | 5、更新说明文档。
123 |
124 | 2019年8月16日 version 1.0.6
125 | 1、去掉所有非必需数据的采集;
126 | 2、兼容AndroidX;
127 | 3、修改小米部分手机上取udid的问题;
128 | 4、更新OPPO接口调用;
129 | 5、增加联想接口支持;
130 | 6、优化SDK包体积;
131 | 7、支持armeabi。
132 |
133 | 2019年8月6日 version 1.0.5
134 | 1、去掉所有非必需数据的采集;
135 | 2、兼容AndroidX;
136 | 3、修改小米部分手机上取udid的问题;
137 | 4、更新OPPO接口调用;
138 | 5、增加联想接口支持;
139 | 6、优化SDK包体积。
--------------------------------------------------------------------------------
/Doc/2.5.0/supplierconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "supplier":{
3 | "vivo":{
4 | "appid":"100215079"
5 | }
6 | }
7 | }
8 |
--------------------------------------------------------------------------------
/Doc/2.5.0/混淆配置.txt:
--------------------------------------------------------------------------------
1 | # Add project specific ProGuard rules here.
2 | # You can control the set of applied configuration files using the
3 | # proguardFiles setting in build.gradle.
4 | #
5 | # For more details, see
6 | # http://developer.android.com/guide/developing/tools/proguard.html
7 |
8 | # If your project uses WebView with JS, uncomment the following
9 | # and specify the fully qualified class name to the JavaScript interface
10 | # class:
11 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview {
12 | # public *;
13 | #}
14 |
15 | # Uncomment this to preserve the line number information for
16 | # debugging stack traces.
17 | #-keepattributes SourceFile,LineNumberTable
18 |
19 | # If you keep the line number information, uncomment this to
20 | # hide the original source file name.
21 | #-renamesourcefileattribute SourceFile
22 | # sdk
23 | -keep class com.bun.miitmdid.** { *; }
24 | -keep interface com.bun.supplier.** { *; }
25 | -keep class androidx.core.**{*;}
26 | # asus
27 | -keep class com.asus.msa.SupplementaryDID.** { *; }
28 | -keep class com.asus.msa.sdid.** { *; }
29 | # freeme
30 | -keep class com.android.creator.** { *; }
31 | -keep class com.android.msasdk.** { *; }
32 | # huawei
33 | -keep class com.huawei.hms.** {*;}
34 | -keep interface com.huawei.hms.** {*;}
35 | # lenovo
36 | -keep class com.zui.deviceidservice.** { *; }
37 | -keep class com.zui.opendeviceidlibrary.** { *; }
38 | # meizu
39 | -keep class com.meizu.flyme.openidsdk.** { *; }
40 | # nubia
41 | -keep class com.bun.miitmdid.provider.nubia.NubiaIdentityImpl
42 | # oppo
43 | -keep class com.heytap.openid.** { *; }
44 | # samsung
45 | -keep class com.samsung.android.deviceidservice.** { *; }
46 | # vivo
47 | -keep class com.vivo.identifier.** { *; }
48 | # xiaomi
49 | -keep class com.bun.miitmdid.provider.xiaomi.IdentifierManager
50 | # zte
51 | -keep class com.bun.lib.** { *; }
52 | # coolpad
53 | -keep class com.coolpad.deviceidsupport.** { *; }
54 | # EEBBK
55 | #None
56 | # honor
57 | -keep class com.hihonor.ads.** {*; }
58 |
--------------------------------------------------------------------------------
/Doc/2.5.0/移动智能终端补充设备标识体系统一调用SDK F&Qv3.3.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MaYiFei1995/OAIDViewer/397f55443ba74b5a3439431c13bf956b3baa09b8/Doc/2.5.0/移动智能终端补充设备标识体系统一调用SDK F&Qv3.3.pdf
--------------------------------------------------------------------------------
/Doc/2.5.0/移动智能终端补充设备标识体系统一调用SDK开发者说明文档v2.5.0.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MaYiFei1995/OAIDViewer/397f55443ba74b5a3439431c13bf956b3baa09b8/Doc/2.5.0/移动智能终端补充设备标识体系统一调用SDK开发者说明文档v2.5.0.pdf
--------------------------------------------------------------------------------
/Doc/2.5.1/TTAF 095-2023 移动智能终端补充设备标识规范.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MaYiFei1995/OAIDViewer/397f55443ba74b5a3439431c13bf956b3baa09b8/Doc/2.5.1/TTAF 095-2023 移动智能终端补充设备标识规范.pdf
--------------------------------------------------------------------------------
/Doc/2.5.1/example_batch.csv:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MaYiFei1995/OAIDViewer/397f55443ba74b5a3439431c13bf956b3baa09b8/Doc/2.5.1/example_batch.csv
--------------------------------------------------------------------------------
/Doc/2.5.1/oaid_sdk_2.5.1.aar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MaYiFei1995/OAIDViewer/397f55443ba74b5a3439431c13bf956b3baa09b8/Doc/2.5.1/oaid_sdk_2.5.1.aar
--------------------------------------------------------------------------------
/Doc/2.5.1/oaid_sdk_2.5.1_demo_src.zip:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MaYiFei1995/OAIDViewer/397f55443ba74b5a3439431c13bf956b3baa09b8/Doc/2.5.1/oaid_sdk_2.5.1_demo_src.zip
--------------------------------------------------------------------------------
/Doc/2.5.1/oaid_sdk_demo_release_20240726.apk:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MaYiFei1995/OAIDViewer/397f55443ba74b5a3439431c13bf956b3baa09b8/Doc/2.5.1/oaid_sdk_demo_release_20240726.apk
--------------------------------------------------------------------------------
/Doc/2.5.1/release note.txt:
--------------------------------------------------------------------------------
1 | 2024年7月29日 version 2.5.1
2 | 1. 更新荣耀手机上获取OAID功能逻辑
3 |
4 | 2024年5月23日 version 2.5.0
5 | 1. 升级荣耀厂商集成包,实现荣耀手机上应用级管控功能
6 | 2. 新增腾讯厂商集成包,实现腾讯应用宝电脑版上获取OAID标识功能
7 |
8 | 2024年4月10日 version 2.4.1
9 | 1. 升级360厂商集成包,优化360手机上获取OAID功能逻辑
10 | 2. 修复已知问题
11 |
12 | 2024年1月25日 version 2.4.0
13 | 1. 升级vivo厂商集成包,实现vivo手机上应用级管控功能
14 | 2. 新增小度厂商集成包,实现小度智能屏上获取OAID标识功能
15 | 3. 升级OPPO厂商集成包,提升OPPO手机上获取标识成功率
16 |
17 | 2023年11月20日 version 2.3.0
18 | 1.升级OPPO厂商集成包,实现OPPO手机上应用级管控功能
19 | 2.完善vivo获取VAID接口逻辑
20 | 3.增加荣耀手机厂商集成包
21 | 4.增加华为手机上获取VAID和AAID标识功能
22 |
23 | 2023年5月16日 version 2.2.0
24 | 1. 升级华为接口,解决HMS Core 6.10.4.302版本以上获取不到OAID问题
25 | 2.升级Freeme厂商集成包,能适配Freeme 系统老版本
26 | 3.修复其他已知问题
27 |
28 | 2023年2月14日 version 2.1.0
29 | 1. 优化360手机厂商判断逻辑
30 | 2. 完善360手机上在Android10以下版本获取OAID开关标志位的逻辑
31 | 3. 修复已知问题
32 |
33 | 2022年9月5日 version 2.0.0
34 | 1. 增加支持360OS接口
35 | 2. 新增freeme支持品牌名称
36 | 3. 修复在部分5.0手机上接口异常问题
37 | 4. 优化获取华为oaid接口逻辑
38 |
39 | 2022年5月20日 version 1.2.1
40 | 1. 修复isLimited接口返回错误状态而导致的OAID可获取判断错误问题
41 |
42 | 2022年4月28日 version 1.2.0
43 | 1. 更新OPPO sdk,优化获取id超时问题
44 | 2. 更新加固方案,修复Android13版本不兼容问题
45 | 3. 新增获取单个id的接口
46 |
47 | 2021年12月21日 version 1.1.0
48 | 1. 优化魅族标识判断逻辑
49 | 2. 升级vivo厂商和oppo厂商集成包
50 | 3. 修复代码安全问题
51 |
52 | 2021年10月21日 version 1.0.30
53 | 1. 更新魅族接口
54 | 2. 更新加固方案,固定加固包中so文件名称
55 | 3. 修复已知问题
56 |
57 | 2021年9月30日 version 1.0.29
58 | 1. 增加支持步步高(小天才)接口
59 | 2. 捕获第三方SDK接口方法实现报错,修复崩溃问题
60 | 3. 更新加固方案,减小加固包体积
61 | 4. 修复已知问题
62 |
63 | 2021年9月9日 version 1.0.27
64 | 1. 更新魅族、OPPO接口;
65 | 2. 增加异步获取超时时间设定功能;
66 | 3. 更新加固方案,兼容 Android 12;
67 | 4. 兼容旧版本DemoHelper(可以集成和运行,但会返回不支持);
68 | 5. 修复其他已知问题。
69 |
70 | 2021年7月2日 version 1.0.26
71 | 1.增加支持荣耀、realme、酷赛、Cool OS;
72 | 2.增加包名校验机制;
73 | 3.更新加固方案;
74 | 4.增加补充设备标识符开关接口。
75 |
76 | 2020年12月4日 version 1.0.25
77 | 1.修复了特定情况下会出现“检测到试用版运行”的bug;
78 | 2.解决了联想反射找不到类的问题。
79 |
80 | 2020年9月7日 version 1.0.23
81 | 1.修改OPPO获取接口;
82 | 2.更新混淆字典;
83 | 3.修改已知加固方案产生的bug。
84 |
85 | 2020年7月21日 version 1.0.22
86 | 1.为解决之前加固引起的问题,更新加固方式;
87 | 2.去除不必要的信息收集;
88 | 3.更新部分厂家的接口方式。
89 |
90 | 2020年2月6日 version 1.0.13
91 | 1.调整sdk包架构,支持系统级接入,目前只在部分手机上支持,开发者不用更新sdk,即可享受sdk的升级;
92 | 2.支持freemeos,ssuios,致濮os;
93 | 3.支持一加和黑鲨手机;
94 | 4.sdk android sdk提升到28;
95 | 5.修复vivo,oppo在低版本不支持的手机上引起的崩溃;
96 | 6.部分类不加固,修复部分手机的加固崩溃问题。
97 |
98 | 2019年12月2日 version 1.0.11
99 | 1.修复三星,联想在不支持的手机上不回调的bug;
100 | 2.修复webview依赖导致的问题;
101 | 3.初始化过程中,出现任何问题都会走回调;
102 | 4.sdk里做初始化检查,避免重复初始化;
103 | 5.vivo 9.0以下不调用获取oaid;
104 | 6.去掉默认aaid的生成;
105 | 7.修改华为空指针的bug。
106 |
107 | 2019年10月14日 version 1.0.10
108 | 1.支持三星,魅族,nubia手机设备;
109 | 2.更新华硕,vivo 支持代码;
110 | 3.调整AsyncTask使用并行线程池,改进性能;
111 | 4.调整输出异常为输出调试信息,避免开发者疑问;
112 | 5.vivo改为异步,改进性能;
113 | 6.修改加固内联定义,解决崩溃;
114 | 7.不再提供udid接口,避免造成误解。
115 |
116 | 2019年9月18日 version 1.0.9
117 | 1、解决部分APP、机型崩溃问题;
118 | 2、增加了部分使用建议和F&Q。
119 |
120 | 2019年8月28日 version 1.0.8
121 | 1、增加华硕接口支持;
122 | 2、解决动态加载和插件化;
123 | 3、优化代码,支持反射调用;
124 | 4、解决android9以上找不到方法的问题;
125 | 5、更新说明文档。
126 |
127 | 2019年8月16日 version 1.0.6
128 | 1、去掉所有非必需数据的采集;
129 | 2、兼容AndroidX;
130 | 3、修改小米部分手机上取udid的问题;
131 | 4、更新OPPO接口调用;
132 | 5、增加联想接口支持;
133 | 6、优化SDK包体积;
134 | 7、支持armeabi。
135 |
136 | 2019年8月6日 version 1.0.5
137 | 1、去掉所有非必需数据的采集;
138 | 2、兼容AndroidX;
139 | 3、修改小米部分手机上取udid的问题;
140 | 4、更新OPPO接口调用;
141 | 5、增加联想接口支持;
142 | 6、优化SDK包体积。
--------------------------------------------------------------------------------
/Doc/2.5.1/supplierconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "supplier":{
3 | "vivo":{
4 | "appid":"100215079"
5 | }
6 | }
7 | }
8 |
--------------------------------------------------------------------------------
/Doc/2.5.1/混淆配置.txt:
--------------------------------------------------------------------------------
1 | # Add project specific ProGuard rules here.
2 | # You can control the set of applied configuration files using the
3 | # proguardFiles setting in build.gradle.
4 | #
5 | # For more details, see
6 | # http://developer.android.com/guide/developing/tools/proguard.html
7 |
8 | # If your project uses WebView with JS, uncomment the following
9 | # and specify the fully qualified class name to the JavaScript interface
10 | # class:
11 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview {
12 | # public *;
13 | #}
14 |
15 | # Uncomment this to preserve the line number information for
16 | # debugging stack traces.
17 | #-keepattributes SourceFile,LineNumberTable
18 |
19 | # If you keep the line number information, uncomment this to
20 | # hide the original source file name.
21 | #-renamesourcefileattribute SourceFile
22 | # sdk
23 | -keep class com.bun.miitmdid.** { *; }
24 | -keep interface com.bun.supplier.** { *; }
25 | -keep class androidx.core.**{*;}
26 | # asus
27 | -keep class com.asus.msa.SupplementaryDID.** { *; }
28 | -keep class com.asus.msa.sdid.** { *; }
29 | # freeme
30 | -keep class com.android.creator.** { *; }
31 | -keep class com.android.msasdk.** { *; }
32 | # huawei
33 | -keep class com.huawei.hms.** {*;}
34 | -keep interface com.huawei.hms.** {*;}
35 | # lenovo
36 | -keep class com.zui.deviceidservice.** { *; }
37 | -keep class com.zui.opendeviceidlibrary.** { *; }
38 | # meizu
39 | -keep class com.meizu.flyme.openidsdk.** { *; }
40 | # nubia
41 | -keep class com.bun.miitmdid.provider.nubia.NubiaIdentityImpl
42 | # oppo
43 | -keep class com.heytap.openid.** { *; }
44 | # samsung
45 | -keep class com.samsung.android.deviceidservice.** { *; }
46 | # vivo
47 | -keep class com.vivo.identifier.** { *; }
48 | # xiaomi
49 | -keep class com.bun.miitmdid.provider.xiaomi.IdentifierManager
50 | # zte
51 | -keep class com.bun.lib.** { *; }
52 | # coolpad
53 | -keep class com.coolpad.deviceidsupport.** { *; }
54 | # EEBBK
55 | #None
56 | # honor
57 | -keep class com.hihonor.** {*; }
58 |
--------------------------------------------------------------------------------
/Doc/2.5.1/移动智能终端补充设备标识体系统一调用SDK F&Qv3.3.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MaYiFei1995/OAIDViewer/397f55443ba74b5a3439431c13bf956b3baa09b8/Doc/2.5.1/移动智能终端补充设备标识体系统一调用SDK F&Qv3.3.pdf
--------------------------------------------------------------------------------
/Doc/2.5.1/移动智能终端补充设备标识体系统一调用SDK开发者说明文档v2.5.1.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MaYiFei1995/OAIDViewer/397f55443ba74b5a3439431c13bf956b3baa09b8/Doc/2.5.1/移动智能终端补充设备标识体系统一调用SDK开发者说明文档v2.5.1.pdf
--------------------------------------------------------------------------------
/Readme.md:
--------------------------------------------------------------------------------
1 | # OAID 查看器
2 |
3 | 接入 OAID SDK 的 Demo 工程
4 |
5 | ***
6 |
7 | - [官方Demo](./Doc/2.5.1/oaid_sdk_demo_release_20240726.apk) 官方 2.5.1 版本 demo-apk 下载
8 |
9 | - [release](../..//releases) 提供 APK 下载
10 |
11 | - 支持设备见 [移动智能终端补充设备标识体系统一调用SDK开发者说明文档](./Doc/2.5.1/移动智能终端补充设备标识体系统一调用SDK开发者说明文档v2.5.1.pdf)
12 |
13 | - 常见问题见 [移动智能终端补充设备标识体系统一调用SDK F&Q](./Doc/2.5.1/移动智能终端补充设备标识体系统一调用SDK F&Qv3.3.pdf)
14 |
15 | - 标识规范见 [团体标准-移动智能终端补充设备标识规范](./Doc/2.5.1/TTAF 095-2023 移动智能终端补充设备标识规范.pdf)
16 | - 标识规范见 [团体标准-移动智能终端补充设备标识规范](./Doc/2.5.1/TTAF 095-2023 移动智能终端补充设备标识规范.pdf)
17 |
18 | - 增加了 IMEI 获取与权限申请
19 |
20 | ***
21 |
22 | ## 效果图
23 |
24 | 
25 |
26 | ---
27 |
28 | ## 感谢
29 |
30 | - [2tu/msa](https://github.com/2tu/mgitsa)
31 | - [逆水寒本尊/[持续更新] oaid_sdk 混淆及oaid_sdk_2.5.1,oaid_sdk_2.2.0......等等](https://juejin.cn/post/7222052147596329021)
--------------------------------------------------------------------------------
/app/.gitignore:
--------------------------------------------------------------------------------
1 | /build
--------------------------------------------------------------------------------
/app/build.gradle.kts:
--------------------------------------------------------------------------------
1 | import com.mai.build_logic.setupAppModule
2 |
3 | plugins {
4 | alias(libs.plugins.android.application)
5 | alias(libs.plugins.jetbrains.kotlin.android)
6 | id("build-logic")
7 | }
8 |
9 | setupAppModule {
10 | namespace = "com.mai.oaidviewer"
11 | }
12 |
13 | dependencies {
14 | implementation(libs.core.ktx)
15 | implementation(libs.appcompat)
16 | implementation(libs.material)
17 | implementation(libs.constraintlayout)
18 | }
--------------------------------------------------------------------------------
/app/proguard-rules.pro:
--------------------------------------------------------------------------------
1 | # Add project specific ProGuard rules here.
2 | # You can control the set of applied configuration files using the
3 | # proguardFiles setting in build.gradle.
4 | #
5 | # For more details, see
6 | # http://developer.android.com/guide/developing/tools/proguard.html
7 |
8 | # If your project uses WebView with JS, uncomment the following
9 | # and specify the fully qualified class name to the JavaScript interface
10 | # class:
11 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview {
12 | # public *;
13 | #}
14 |
15 | # Uncomment this to preserve the line number information for
16 | # debugging stack traces.
17 | #-keepattributes SourceFile,LineNumberTable
18 |
19 | # If you keep the line number information, uncomment this to
20 | # hide the original source file name.
21 | #-renamesourcefileattribute SourceFile
--------------------------------------------------------------------------------
/app/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
14 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
--------------------------------------------------------------------------------
/app/src/main/assets/com.example.oaidtest2.cert.pem:
--------------------------------------------------------------------------------
1 | -----BEGIN CERTIFICATE-----
2 | MIIFfDCCA2SgAwIBAgICA/EwDQYJKoZIhvcNAQELBQAwgYAxCzAJBgNVBAYTAkNO
3 | MRAwDgYDVQQIDAdCZWlqaW5nMQwwCgYDVQQKDANNU0ExETAPBgNVBAsMCE9BSURf
4 | U0RLMR4wHAYDVQQDDBVjb20uYnVuLm1paXRtZGlkLnNpZ24xHjAcBgkqhkiG9w0B
5 | CQEWD21zYUBjYWljdC5hYy5jbjAgFw0yMTA2MDgxODA2MDNaGA8yMTc2MDUwMjE4
6 | MDYwM1owbTELMAkGA1UEBhMCQ04xEDAOBgNVBAgMB0JlaWppbmcxEDAOBgNVBAcM
7 | B0JlaWppbmcxCTAHBgNVBAoMADEeMBwGA1UEAwwVY29tLmV4YW1wbGUub2FpZHRl
8 | c3QyMQ8wDQYJKoZIhvcNAQkBFgAwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIK
9 | AoICAQCyGC9T3GW4BSsvnVNqb8+HlnjJAQvTPd7H13m1f945uUsUYYMaaZuICYjb
10 | 4qefZUyQgyxBUTYfBOTpE7ccdcNoZgCp05RTng30zvkc4pjawJIkNeIC2NGlN7Rq
11 | uO4Ka/06LSuq5N+bfL78E0MwZAinoxSswf/yNY5R1LJ2b3I7BnW7rVSb7KbB0Q4z
12 | 5KmuJ04hPVl7BtSdfVnvnRVTBDRm/cMgyupEl+CCGW8HUejzPHdHeHRK1rx7fuwQ
13 | I+5jgMmDYRNXZD4AmJ0vClurQR5avN2xOuxB8HbtB+lQitsNnQCvYY1Xp4s7Ftfm
14 | T6JzDNQ//vRgXxYrOaVFfoY/ugrO+SfZtqej+mdKR3KgOaAA75t8zcJfM6WGrbPJ
15 | l3xHc2bhD4kGwRkTAcHJ7WQOIrWz85CPCfIoYh8nZlBlsCNamJJh6Pl2nAtmnfMt
16 | DuYZJo/2QK6J/KFtywsYIekU6fiRsJaaunBf5sD9IxbvJcRRB+HRCsySKYEg8z7X
17 | lh90fHimfUgT0Gt44/o+nzPh7Cq9Ay6dWtMxYFx78Z1epapOJdUNpZWIET8wQHri
18 | JmbJ18TlidGRAW85kW2ka2cr4u6Ed68JQa+nN+kbS0dDeuvOBGOsiqqCy5aeA0oz
19 | 88HRWWIga02PLTZbEs4PdYrNzHWCISjnk34KpwwxYJUn6Zpy1wIDAQABoxAwDjAM
20 | BgNVHRMBAf8EAjAAMA0GCSqGSIb3DQEBCwUAA4ICAQCEhPUIc+6sNQkVFCA/+ZvO
21 | LO5P/DEJ/WVJODF+HIWiwcilwLUGJuWV3b4jO4VAJiDvrNJH60BVhmV/jt7eYOHF
22 | 99hOucbZRo+q4TrloXVZN/rVXzKqfHjv6y8Ss/YN45KanE/IeOxByRsMpKYollcs
23 | DYOrF82uPHeurBuIqIVxYZO7qIM8y8G2TaMGL+//IpT8CnQBPCmI4OxHu3l0bnRp
24 | FBHQQQSrEZHhbD+sbKkTQL5BJJJkx4gnxB24t42wYdYgaluj76l6fvspveEiURVk
25 | J2Ag0oo8XWXC+kjK/+BedrLJ0b5fyGck/B+emgWPXNmkN26F3dgcDjx3ILpWGqI/
26 | amoyR4IA726IYXFQ1WBm/nOAiq7DZYbKhuNk2ZhS50+eLu030MqsuxMNeAjSXCvC
27 | AQowuHMANLgSxHWJDKuEIpQYErGHS2QmeOyEA7sdmemVhZ+EgiB2QzaP2E13LDfd
28 | xc0n+0IOYxdr3bT6HTvdhT02+H7Fl8aS3mp9adhAJ0IT1Xnh4o4rKuxlYH5fM+RG
29 | 4R4RaAB52tYxF6gOsud2KHWdQrt3gewP76FTzfizwJ8jkqBsIMAncQUHMyJwkLeg
30 | KEDOuPr+54bK8jJbo+g3VBQ760f7WGRdNZYcb2ml6+rbVKb8twd52ZNLdM51CA0Z
31 | mW2UsdCR0FgdAloOLI3KHQ==
32 | -----END CERTIFICATE-----
33 |
--------------------------------------------------------------------------------
/app/src/main/assets/supplierconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "supplier":{
3 | "vivo":{
4 | "appid":"100215079"
5 | },
6 | "xiaomi":{
7 |
8 | },
9 | "huawei":{
10 |
11 | },
12 | "oppo":{
13 |
14 | }
15 | }
16 |
17 | }
18 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable-v24/ic_launcher_foreground.xml:
--------------------------------------------------------------------------------
1 |
7 |
8 |
9 |
15 |
18 |
21 |
22 |
23 |
24 |
30 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/activity_main.xml:
--------------------------------------------------------------------------------
1 |
2 |
8 |
9 |
21 |
22 |
32 |
33 |
43 |
44 |
56 |
57 |
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-hdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MaYiFei1995/OAIDViewer/397f55443ba74b5a3439431c13bf956b3baa09b8/app/src/main/res/mipmap-hdpi/ic_launcher.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-hdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MaYiFei1995/OAIDViewer/397f55443ba74b5a3439431c13bf956b3baa09b8/app/src/main/res/mipmap-hdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-mdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MaYiFei1995/OAIDViewer/397f55443ba74b5a3439431c13bf956b3baa09b8/app/src/main/res/mipmap-mdpi/ic_launcher.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-mdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MaYiFei1995/OAIDViewer/397f55443ba74b5a3439431c13bf956b3baa09b8/app/src/main/res/mipmap-mdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MaYiFei1995/OAIDViewer/397f55443ba74b5a3439431c13bf956b3baa09b8/app/src/main/res/mipmap-xhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MaYiFei1995/OAIDViewer/397f55443ba74b5a3439431c13bf956b3baa09b8/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MaYiFei1995/OAIDViewer/397f55443ba74b5a3439431c13bf956b3baa09b8/app/src/main/res/mipmap-xxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MaYiFei1995/OAIDViewer/397f55443ba74b5a3439431c13bf956b3baa09b8/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MaYiFei1995/OAIDViewer/397f55443ba74b5a3439431c13bf956b3baa09b8/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MaYiFei1995/OAIDViewer/397f55443ba74b5a3439431c13bf956b3baa09b8/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/app/src/main/res/values-night/themes.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
16 |
--------------------------------------------------------------------------------
/app/src/main/res/values/colors.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | #FFBB86FC
4 | #FF6200EE
5 | #FF3700B3
6 | #FF03DAC5
7 | #FF018786
8 | #FF000000
9 | #FFFFFFFF
10 |
--------------------------------------------------------------------------------
/app/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | OAIDViewer
3 | Copy
4 |
--------------------------------------------------------------------------------
/app/src/main/res/values/themes.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
16 |
--------------------------------------------------------------------------------
/build-logic/.gitignore:
--------------------------------------------------------------------------------
1 | /build
--------------------------------------------------------------------------------
/build-logic/build.gradle.kts:
--------------------------------------------------------------------------------
1 | plugins {
2 | `kotlin-dsl`
3 | }
4 |
5 | repositories {
6 | google {
7 | content {
8 | includeGroupByRegex(".*google.*")
9 | includeGroupByRegex(".*android.*")
10 | }
11 | }
12 | mavenCentral()
13 | gradlePluginPortal()
14 | }
15 |
16 | gradlePlugin {
17 | plugins {
18 | register("BuildLogic") {
19 | id = "build-logic"
20 | implementationClass = "com.mai.build_logic.BuildLogic"
21 | }
22 | }
23 | }
24 |
25 | dependencies {
26 | implementation(libs.gradle.android)
27 | implementation(libs.gradle.kt)
28 | }
29 |
--------------------------------------------------------------------------------
/build-logic/settings.gradle.kts:
--------------------------------------------------------------------------------
1 | dependencyResolutionManagement {
2 | versionCatalogs {
3 | create("libs") {
4 | from(files("../gradle/libs.versions.toml"))
5 | }
6 | }
7 | }
8 |
--------------------------------------------------------------------------------
/build-logic/src/main/java/com/mai/build_logic/BuildLogic.kt:
--------------------------------------------------------------------------------
1 | package com.mai.build_logic
2 |
3 | import org.gradle.api.Plugin
4 | import org.gradle.api.Project
5 |
6 | class BuildLogic : Plugin {
7 |
8 | override fun apply(target: Project) {
9 |
10 | }
11 |
12 | }
--------------------------------------------------------------------------------
/build-logic/src/main/java/com/mai/build_logic/LibraryExt.kt:
--------------------------------------------------------------------------------
1 | package com.mai.build_logic
2 |
3 | import com.android.build.api.dsl.ApplicationBuildType
4 | import com.android.build.gradle.BaseExtension
5 | import com.android.build.gradle.LibraryExtension
6 | import com.android.build.gradle.internal.dsl.BaseAppModuleExtension
7 | import org.gradle.api.Project
8 | import org.jetbrains.kotlin.gradle.dsl.kotlinExtension
9 |
10 | fun Project.setupLibraryModule(version: String = "", block: LibraryExtension.() -> Unit = {}) {
11 | setupBaseModule {
12 | buildTypes {
13 | release {
14 | isMinifyEnabled = false
15 | }
16 | }
17 |
18 | block()
19 | }
20 | if (version.isNotEmpty()) {
21 | dependencies.add("compileOnly", project(":library:impl"))
22 | dependencies.add("compileOnly", files("$rootDir/Doc/$version/oaid_sdk_$version.aar"))
23 | }
24 | }
25 |
26 | val versionCodes = listOf(
27 | 1023, 1025, 1026, 1027, 1029, 1030, 1100, 1200, 1201, 2000, 2100, 2200, 2300, 2400, 2500, 2501
28 | )
29 |
30 | fun Project.setupAppModule(block: BaseAppModuleExtension.() -> Unit = {}) {
31 | setupBaseModule {
32 | defaultConfig {
33 | applicationId = "com.example.oaidtest2"
34 | flavorDimensions += "demo"
35 | }
36 | buildFeatures {
37 | viewBinding = true
38 | }
39 | buildTypes {
40 | debug { disableMinify() }
41 | release { disableMinify() }
42 | }
43 | versionCodes.forEach { version ->
44 | productFlavors.register("lib_$version") {
45 | dimension = "demo"
46 | versionCode = version
47 | versionName = parseVersionName(version)
48 | }
49 | }
50 | block()
51 | }
52 | dependencies.apply {
53 | add("implementation", project(":library:impl"))
54 | versionCodes.forEach { versionCode ->
55 | val flavorName = "lib_$versionCode"
56 | val versionName = parseVersionName(versionCode)
57 | add(flavorName + "Implementation", project(":library:$flavorName"))
58 | add(
59 | flavorName + "Implementation",
60 | files("$rootDir/Doc/$versionName/oaid_sdk_$versionName.aar")
61 | )
62 | }
63 | }
64 | }
65 |
66 | private fun parseVersionName(version: Int) = when {
67 | version < 1000 -> "0.${version / 100}.${version % 100}"
68 | version < 2000 -> "1.${version % 1000 / 100}.${version % 100}"
69 | else -> "${version / 1000}.${version % 1000 / 100}.${version % 100}"
70 | }
71 |
72 | private fun ApplicationBuildType.disableMinify() {
73 | isMinifyEnabled = false
74 | }
75 |
76 | private inline fun Project.setupBaseModule(crossinline block: T.() -> Unit = {}) {
77 | extensions.configure("android") {
78 | compileSdkVersion(34)
79 | defaultConfig {
80 | minSdk = 21
81 | targetSdk = 34
82 | }
83 | (this as T).block()
84 | }
85 | kotlinExtension.jvmToolchain(17)
86 | }
--------------------------------------------------------------------------------
/build.gradle.kts:
--------------------------------------------------------------------------------
1 | // Top-level build file where you can add configuration options common to all sub-projects/modules.
2 | plugins {
3 | alias(libs.plugins.android.application) apply false
4 | alias(libs.plugins.android.library) apply false
5 | alias(libs.plugins.jetbrains.kotlin.android) apply false
6 | alias(libs.plugins.jetbrains.kotlin.jvm) apply false
7 | }
--------------------------------------------------------------------------------
/gradle.properties:
--------------------------------------------------------------------------------
1 | # Project-wide Gradle settings.
2 | # IDE (e.g. Android Studio) users:
3 | # Gradle settings configured through the IDE *will override*
4 | # any settings specified in this file.
5 | # For more details on how to configure your build environment visit
6 | # http://www.gradle.org/docs/current/userguide/build_environment.html
7 | # Specifies the JVM arguments used for the daemon process.
8 | # The setting is particularly useful for tweaking memory settings.
9 | org.gradle.jvmargs=-Xmx2048m -Dfile.encoding=UTF-8
10 | android.useAndroidX=true
11 | # Kotlin code style for this project: "official" or "obsolete":
12 | android.nonTransitiveRClass=true
13 | android.nonFinalResIds=false
--------------------------------------------------------------------------------
/gradle/libs.versions.toml:
--------------------------------------------------------------------------------
1 | [versions]
2 | agp = "8.5.2"
3 | appcompat = "1.7.0"
4 | constraintlayout = "2.1.4"
5 | coreKtx = "1.13.1"
6 | kotlin = "1.9.0"
7 | jetbrainsKotlinJvm = "1.9.0"
8 | material = "1.12.0"
9 |
10 | [libraries]
11 | appcompat = { module = "androidx.appcompat:appcompat", version.ref = "appcompat" }
12 | constraintlayout = { module = "androidx.constraintlayout:constraintlayout", version.ref = "constraintlayout" }
13 | core-ktx = { module = "androidx.core:core-ktx", version.ref = "coreKtx" }
14 | gradle-android = { module = "com.android.tools.build:gradle", version.ref = "agp" }
15 | gradle-kt = { module = "org.jetbrains.kotlin:kotlin-gradle-plugin", version.ref = "kotlin" }
16 | material = { module = "com.google.android.material:material", version.ref = "material" }
17 |
18 | [plugins]
19 | android-application = { id = "com.android.application", version.ref = "agp" }
20 | android-library = { id = "com.android.library", version.ref = "agp" }
21 | jetbrains-kotlin-android = { id = "org.jetbrains.kotlin.android", version.ref = "kotlin" }
22 | jetbrains-kotlin-jvm = { id = "org.jetbrains.kotlin.jvm", version.ref = "jetbrainsKotlinJvm" }
--------------------------------------------------------------------------------
/gradle/wrapper/gradle-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MaYiFei1995/OAIDViewer/397f55443ba74b5a3439431c13bf956b3baa09b8/gradle/wrapper/gradle-wrapper.jar
--------------------------------------------------------------------------------
/gradle/wrapper/gradle-wrapper.properties:
--------------------------------------------------------------------------------
1 | #Fri Jan 22 17:25:52 CST 2021
2 | distributionBase=GRADLE_USER_HOME
3 | distributionPath=wrapper/dists
4 | zipStoreBase=GRADLE_USER_HOME
5 | zipStorePath=wrapper/dists
6 | distributionUrl=https\://services.gradle.org/distributions/gradle-8.7-bin.zip
7 |
--------------------------------------------------------------------------------
/gradlew:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env sh
2 |
3 | ##############################################################################
4 | ##
5 | ## Gradle start up script for UN*X
6 | ##
7 | ##############################################################################
8 |
9 | # Attempt to set APP_HOME
10 | # Resolve links: $0 may be a link
11 | PRG="$0"
12 | # Need this for relative symlinks.
13 | while [ -h "$PRG" ] ; do
14 | ls=`ls -ld "$PRG"`
15 | link=`expr "$ls" : '.*-> \(.*\)$'`
16 | if expr "$link" : '/.*' > /dev/null; then
17 | PRG="$link"
18 | else
19 | PRG=`dirname "$PRG"`"/$link"
20 | fi
21 | done
22 | SAVED="`pwd`"
23 | cd "`dirname \"$PRG\"`/" >/dev/null
24 | APP_HOME="`pwd -P`"
25 | cd "$SAVED" >/dev/null
26 |
27 | APP_NAME="Gradle"
28 | APP_BASE_NAME=`basename "$0"`
29 |
30 | # Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
31 | DEFAULT_JVM_OPTS=""
32 |
33 | # Use the maximum available, or set MAX_FD != -1 to use that value.
34 | MAX_FD="maximum"
35 |
36 | warn () {
37 | echo "$*"
38 | }
39 |
40 | die () {
41 | echo
42 | echo "$*"
43 | echo
44 | exit 1
45 | }
46 |
47 | # OS specific support (must be 'true' or 'false').
48 | cygwin=false
49 | msys=false
50 | darwin=false
51 | nonstop=false
52 | case "`uname`" in
53 | CYGWIN* )
54 | cygwin=true
55 | ;;
56 | Darwin* )
57 | darwin=true
58 | ;;
59 | MINGW* )
60 | msys=true
61 | ;;
62 | NONSTOP* )
63 | nonstop=true
64 | ;;
65 | esac
66 |
67 | CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
68 |
69 | # Determine the Java command to use to start the JVM.
70 | if [ -n "$JAVA_HOME" ] ; then
71 | if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
72 | # IBM's JDK on AIX uses strange locations for the executables
73 | JAVACMD="$JAVA_HOME/jre/sh/java"
74 | else
75 | JAVACMD="$JAVA_HOME/bin/java"
76 | fi
77 | if [ ! -x "$JAVACMD" ] ; then
78 | die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
79 |
80 | Please set the JAVA_HOME variable in your environment to match the
81 | location of your Java installation."
82 | fi
83 | else
84 | JAVACMD="java"
85 | which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
86 |
87 | Please set the JAVA_HOME variable in your environment to match the
88 | location of your Java installation."
89 | fi
90 |
91 | # Increase the maximum file descriptors if we can.
92 | if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then
93 | MAX_FD_LIMIT=`ulimit -H -n`
94 | if [ $? -eq 0 ] ; then
95 | if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then
96 | MAX_FD="$MAX_FD_LIMIT"
97 | fi
98 | ulimit -n $MAX_FD
99 | if [ $? -ne 0 ] ; then
100 | warn "Could not set maximum file descriptor limit: $MAX_FD"
101 | fi
102 | else
103 | warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT"
104 | fi
105 | fi
106 |
107 | # For Darwin, add options to specify how the application appears in the dock
108 | if $darwin; then
109 | GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
110 | fi
111 |
112 | # For Cygwin, switch paths to Windows format before running java
113 | if $cygwin ; then
114 | APP_HOME=`cygpath --path --mixed "$APP_HOME"`
115 | CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
116 | JAVACMD=`cygpath --unix "$JAVACMD"`
117 |
118 | # We build the pattern for arguments to be converted via cygpath
119 | ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null`
120 | SEP=""
121 | for dir in $ROOTDIRSRAW ; do
122 | ROOTDIRS="$ROOTDIRS$SEP$dir"
123 | SEP="|"
124 | done
125 | OURCYGPATTERN="(^($ROOTDIRS))"
126 | # Add a user-defined pattern to the cygpath arguments
127 | if [ "$GRADLE_CYGPATTERN" != "" ] ; then
128 | OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)"
129 | fi
130 | # Now convert the arguments - kludge to limit ourselves to /bin/sh
131 | i=0
132 | for arg in "$@" ; do
133 | CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -`
134 | CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option
135 |
136 | if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition
137 | eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"`
138 | else
139 | eval `echo args$i`="\"$arg\""
140 | fi
141 | i=$((i+1))
142 | done
143 | case $i in
144 | (0) set -- ;;
145 | (1) set -- "$args0" ;;
146 | (2) set -- "$args0" "$args1" ;;
147 | (3) set -- "$args0" "$args1" "$args2" ;;
148 | (4) set -- "$args0" "$args1" "$args2" "$args3" ;;
149 | (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
150 | (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
151 | (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
152 | (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
153 | (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
154 | esac
155 | fi
156 |
157 | # Escape application args
158 | save () {
159 | for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done
160 | echo " "
161 | }
162 | APP_ARGS=$(save "$@")
163 |
164 | # Collect all arguments for the java command, following the shell quoting and substitution rules
165 | eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS"
166 |
167 | # by default we should be in the correct project dir, but when run from Finder on Mac, the cwd is wrong
168 | if [ "$(uname)" = "Darwin" ] && [ "$HOME" = "$PWD" ]; then
169 | cd "$(dirname "$0")"
170 | fi
171 |
172 | exec "$JAVACMD" "$@"
173 |
--------------------------------------------------------------------------------
/gradlew.bat:
--------------------------------------------------------------------------------
1 | @if "%DEBUG%" == "" @echo off
2 | @rem ##########################################################################
3 | @rem
4 | @rem Gradle startup script for Windows
5 | @rem
6 | @rem ##########################################################################
7 |
8 | @rem Set local scope for the variables with windows NT shell
9 | if "%OS%"=="Windows_NT" setlocal
10 |
11 | set DIRNAME=%~dp0
12 | if "%DIRNAME%" == "" set DIRNAME=.
13 | set APP_BASE_NAME=%~n0
14 | set APP_HOME=%DIRNAME%
15 |
16 | @rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
17 | set DEFAULT_JVM_OPTS=
18 |
19 | @rem Find java.exe
20 | if defined JAVA_HOME goto findJavaFromJavaHome
21 |
22 | set JAVA_EXE=java.exe
23 | %JAVA_EXE% -version >NUL 2>&1
24 | if "%ERRORLEVEL%" == "0" goto init
25 |
26 | echo.
27 | echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
28 | echo.
29 | echo Please set the JAVA_HOME variable in your environment to match the
30 | echo location of your Java installation.
31 |
32 | goto fail
33 |
34 | :findJavaFromJavaHome
35 | set JAVA_HOME=%JAVA_HOME:"=%
36 | set JAVA_EXE=%JAVA_HOME%/bin/java.exe
37 |
38 | if exist "%JAVA_EXE%" goto init
39 |
40 | echo.
41 | echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
42 | echo.
43 | echo Please set the JAVA_HOME variable in your environment to match the
44 | echo location of your Java installation.
45 |
46 | goto fail
47 |
48 | :init
49 | @rem Get command-line arguments, handling Windows variants
50 |
51 | if not "%OS%" == "Windows_NT" goto win9xME_args
52 |
53 | :win9xME_args
54 | @rem Slurp the command line arguments.
55 | set CMD_LINE_ARGS=
56 | set _SKIP=2
57 |
58 | :win9xME_args_slurp
59 | if "x%~1" == "x" goto execute
60 |
61 | set CMD_LINE_ARGS=%*
62 |
63 | :execute
64 | @rem Setup the command line
65 |
66 | set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
67 |
68 | @rem Execute Gradle
69 | "%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS%
70 |
71 | :end
72 | @rem End local scope for the variables with windows NT shell
73 | if "%ERRORLEVEL%"=="0" goto mainEnd
74 |
75 | :fail
76 | rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
77 | rem the _cmd.exe /c_ return code!
78 | if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
79 | exit /b 1
80 |
81 | :mainEnd
82 | if "%OS%"=="Windows_NT" endlocal
83 |
84 | :omega
85 |
--------------------------------------------------------------------------------
/imgs/1.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MaYiFei1995/OAIDViewer/397f55443ba74b5a3439431c13bf956b3baa09b8/imgs/1.jpg
--------------------------------------------------------------------------------
/imgs/2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MaYiFei1995/OAIDViewer/397f55443ba74b5a3439431c13bf956b3baa09b8/imgs/2.png
--------------------------------------------------------------------------------
/imgs/3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MaYiFei1995/OAIDViewer/397f55443ba74b5a3439431c13bf956b3baa09b8/imgs/3.png
--------------------------------------------------------------------------------
/library/impl/.gitignore:
--------------------------------------------------------------------------------
1 | /build
--------------------------------------------------------------------------------
/library/impl/build.gradle.kts:
--------------------------------------------------------------------------------
1 | import com.mai.build_logic.setupLibraryModule
2 |
3 | plugins {
4 | alias(libs.plugins.android.library)
5 | alias(libs.plugins.jetbrains.kotlin.android)
6 | id("build-logic")
7 | }
8 |
9 | setupLibraryModule() {
10 | namespace = "com.mai.oaidviewer.library"
11 | }
--------------------------------------------------------------------------------
/library/impl/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/library/impl/src/main/java/com/mai/oaidviewer/library/CertUtil.kt:
--------------------------------------------------------------------------------
1 | package com.mai.oaidviewer.library
2 |
3 | import java.io.ByteArrayInputStream
4 | import java.io.InputStream
5 | import java.security.cert.*
6 | import java.text.SimpleDateFormat
7 |
8 | object CertUtil {
9 |
10 | fun getCertInfo(sdf: SimpleDateFormat, certFile: String): String {
11 | val fact: CertificateFactory
12 | val `in`: InputStream = ByteArrayInputStream(certFile.toByteArray())
13 | val appCert: X509Certificate
14 | try {
15 | fact = CertificateFactory.getInstance("X.509")
16 | appCert = fact.generateCertificate(`in`) as X509Certificate
17 | } catch (e: CertificateException) {
18 | return "[Cert Format Error]"
19 | }
20 |
21 | val certInfo = """
22 | Cert:
23 | SubjectName: ${appCert.subjectX500Principal.name}
24 | Not Before: ${sdf.format(appCert.notBefore)}
25 | Not After: ${sdf.format(appCert.notAfter)}
26 | """.trimIndent()
27 | try {
28 | appCert.checkValidity()
29 | } catch (e: CertificateExpiredException) {
30 | return "$certInfo\n[Expired]"
31 | } catch (e: CertificateNotYetValidException) {
32 | return "$certInfo\n[NotYetValid]"
33 | }
34 | return "$certInfo\n[Valid]"
35 | }
36 | }
--------------------------------------------------------------------------------
/library/impl/src/main/java/com/mai/oaidviewer/library/OAIDCallback.kt:
--------------------------------------------------------------------------------
1 | package com.mai.oaidviewer.library
2 |
3 | interface OAIDCallback {
4 |
5 | fun onText(msg: String)
6 |
7 | fun onSupport(_supplier: OAIDSupplier)
8 |
9 | }
--------------------------------------------------------------------------------
/library/impl/src/main/java/com/mai/oaidviewer/library/OAIDImpl.kt:
--------------------------------------------------------------------------------
1 | package com.mai.oaidviewer.library
2 |
3 | import android.content.Context
4 | import java.io.BufferedReader
5 | import java.io.IOException
6 | import java.io.InputStream
7 | import java.io.InputStreamReader
8 | import java.text.SimpleDateFormat
9 |
10 | abstract class OAIDImpl(protected val context: Context, protected val callback: OAIDCallback) {
11 |
12 | abstract fun init()
13 |
14 | val loadPemFromAssetFile: String by lazy {
15 | try {
16 | val `is`: InputStream = context.assets.open("com.example.oaidtest2.cert.pem")
17 | val `in` = BufferedReader(InputStreamReader(`is`))
18 | val builder = java.lang.StringBuilder()
19 | var line: String?
20 | while (`in`.readLine().also { line = it } != null) {
21 | builder.append(line)
22 | builder.append('\n')
23 | }
24 | builder.toString()
25 | } catch (e: IOException) {
26 | callback.onText("loadPemFromAssetFile failed")
27 | ""
28 | }
29 | }
30 |
31 | /**
32 | * 获取SDK版本号
33 | *
34 | * @return first versionName
35 | * second versionCode
36 | */
37 | abstract fun getSdkVersion(): Pair
38 |
39 | open fun getCertInfo(sdf: SimpleDateFormat): String {
40 | return CertUtil.getCertInfo(sdf, loadPemFromAssetFile)
41 | }
42 |
43 | /**
44 | * 2.3.0新增,在isSupportRequestOAIDPermission返回true时请求权限
45 | */
46 | open fun requestOAIDPermission(context: Context, callback: RequestPermissionCallback) {
47 | // ignore
48 | }
49 |
50 | }
--------------------------------------------------------------------------------
/library/impl/src/main/java/com/mai/oaidviewer/library/OAIDSupplier.kt:
--------------------------------------------------------------------------------
1 | package com.mai.oaidviewer.library
2 |
3 | interface OAIDSupplier {
4 |
5 | fun isSupported(): Boolean
6 |
7 | /**
8 | * 不支持的版本返回false
9 | */
10 | fun isLimited(): Boolean {
11 | return false
12 | }
13 |
14 | /**
15 | * 2.3.0新增,默认返回false
16 | */
17 | fun isSupportRequestOAIDPermission(): Boolean {
18 | return false
19 | }
20 |
21 | fun getOAID(): String
22 |
23 | fun getVAID(): String
24 |
25 | fun getAAID(): String
26 |
27 | }
--------------------------------------------------------------------------------
/library/impl/src/main/java/com/mai/oaidviewer/library/RequestPermissionCallback.kt:
--------------------------------------------------------------------------------
1 | package com.mai.oaidviewer.library
2 |
3 | interface RequestPermissionCallback {
4 |
5 | /**
6 | * 获取授权成功
7 | */
8 | fun onGranted(grPermission: Array?)
9 |
10 | /**
11 | * 获取授权失败
12 | */
13 | fun onDenied(dePermissions: List?)
14 |
15 | /**
16 | * 禁止再次询问
17 | */
18 | fun onAskAgain(asPermissions: List?)
19 |
20 | }
--------------------------------------------------------------------------------
/library/lib_1023/.gitignore:
--------------------------------------------------------------------------------
1 | /build
--------------------------------------------------------------------------------
/library/lib_1023/build.gradle.kts:
--------------------------------------------------------------------------------
1 | import com.mai.build_logic.setupLibraryModule
2 |
3 | plugins {
4 | alias(libs.plugins.android.library)
5 | alias(libs.plugins.jetbrains.kotlin.android)
6 | id("build-logic")
7 | }
8 |
9 | setupLibraryModule("1.0.23") {
10 | namespace = "com.mai.oaidviewer.library"
11 | }
--------------------------------------------------------------------------------
/library/lib_1023/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/library/lib_1023/src/main/java/com/mai/oaidviewer/library/OAIDHelper.kt:
--------------------------------------------------------------------------------
1 | package com.mai.oaidviewer.library
2 |
3 | import android.content.Context
4 | import com.bun.miitmdid.core.ErrorCode
5 | import com.bun.miitmdid.core.MdidSdkHelper
6 | import com.bun.miitmdid.interfaces.IIdentifierListener
7 | import com.bun.miitmdid.interfaces.IdSupplier
8 |
9 | class OAIDHelper(context: Context, callback: OAIDCallback) : OAIDImpl(context, callback) {
10 |
11 | override fun init() {
12 | val ret = MdidSdkHelper.InitSdk(context, true, object : IIdentifierListener {
13 | override fun OnSupport(isSupport: Boolean, _suppiler: IdSupplier?) {
14 | callback.onSupport(object : OAIDSupplier {
15 |
16 | override fun isSupported(): Boolean {
17 | return isSupport
18 | }
19 |
20 | override fun getOAID(): String {
21 | return _suppiler?.oaid ?: ""
22 | }
23 |
24 | override fun getVAID(): String {
25 | return _suppiler?.vaid ?: ""
26 | }
27 |
28 | override fun getAAID(): String {
29 | return _suppiler?.aaid ?: ""
30 | }
31 |
32 | })
33 | }
34 | })
35 |
36 | val errMsg: String = "$ret " + when (ret) {
37 | ErrorCode.INIT_ERROR_BEGIN ->
38 | "INIT_ERROR_BEGIN"
39 | ErrorCode.INIT_ERROR_DEVICE_NOSUPPORT ->
40 | "不支持的设备"
41 | ErrorCode.INIT_ERROR_LOAD_CONFIGFILE ->
42 | "加载配置文件失败"
43 | ErrorCode.INIT_ERROR_MANUFACTURER_NOSUPPORT ->
44 | "不支持的厂商"
45 | ErrorCode.INIT_ERROR_RESULT_DELAY ->
46 | "信息将会延迟返回,获取数据可能在异步线程,取决于设备"
47 | ErrorCode.INIT_HELPER_CALL_ERROR ->
48 | "反射调用出错"
49 | else ->
50 | ""
51 | }
52 | if (errMsg.isNotEmpty())
53 | callback.onText(errMsg)
54 | }
55 |
56 | override fun getSdkVersion(): Pair {
57 | return Pair("1.0.23", "20200702")
58 | }
59 |
60 | }
--------------------------------------------------------------------------------
/library/lib_1025/.gitignore:
--------------------------------------------------------------------------------
1 | /build
--------------------------------------------------------------------------------
/library/lib_1025/build.gradle.kts:
--------------------------------------------------------------------------------
1 | import com.mai.build_logic.setupLibraryModule
2 |
3 | plugins {
4 | alias(libs.plugins.android.library)
5 | alias(libs.plugins.jetbrains.kotlin.android)
6 | id("build-logic")
7 | }
8 |
9 | setupLibraryModule("1.0.25") {
10 | namespace = "com.mai.oaidviewer.library"
11 | }
--------------------------------------------------------------------------------
/library/lib_1025/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/library/lib_1025/src/main/java/com/mai/oaidviewer/library/OAIDHelper.kt:
--------------------------------------------------------------------------------
1 | package com.mai.oaidviewer.library
2 |
3 | import android.content.Context
4 | import com.bun.miitmdid.core.ErrorCode
5 | import com.bun.miitmdid.core.MdidSdkHelper
6 | import com.bun.miitmdid.interfaces.IIdentifierListener
7 | import com.bun.miitmdid.interfaces.IdSupplier
8 |
9 | class OAIDHelper(context: Context, callback: OAIDCallback) : OAIDImpl(context, callback) {
10 |
11 | override fun init() {
12 | val ret = MdidSdkHelper.InitSdk(context, true, object : IIdentifierListener {
13 | override fun OnSupport(isSupport: Boolean, _suppiler: IdSupplier?) {
14 | callback.onSupport(object : OAIDSupplier {
15 |
16 | override fun isSupported(): Boolean {
17 | return isSupport
18 | }
19 |
20 | override fun getOAID(): String {
21 | return _suppiler?.oaid ?: ""
22 | }
23 |
24 | override fun getVAID(): String {
25 | return _suppiler?.vaid ?: ""
26 | }
27 |
28 | override fun getAAID(): String {
29 | return _suppiler?.aaid ?: ""
30 | }
31 |
32 | })
33 | }
34 | })
35 |
36 | val errMsg: String = "$ret " + when (ret) {
37 | ErrorCode.INIT_ERROR_BEGIN ->
38 | "INIT_ERROR_BEGIN"
39 | ErrorCode.INIT_ERROR_DEVICE_NOSUPPORT ->
40 | "不支持的设备"
41 | ErrorCode.INIT_ERROR_LOAD_CONFIGFILE ->
42 | "加载配置文件失败"
43 | ErrorCode.INIT_ERROR_MANUFACTURER_NOSUPPORT ->
44 | "不支持的厂商"
45 | ErrorCode.INIT_ERROR_RESULT_DELAY ->
46 | "信息将会延迟返回,获取数据可能在异步线程,取决于设备"
47 | ErrorCode.INIT_HELPER_CALL_ERROR ->
48 | "反射调用出错"
49 | else ->
50 | ""
51 | }
52 | if (errMsg.isNotEmpty())
53 | callback.onText(errMsg)
54 | }
55 |
56 | override fun getSdkVersion(): Pair {
57 | return Pair("1.0.25", "20200702")
58 | }
59 |
60 | }
--------------------------------------------------------------------------------
/library/lib_1026/.gitignore:
--------------------------------------------------------------------------------
1 | /build
--------------------------------------------------------------------------------
/library/lib_1026/build.gradle.kts:
--------------------------------------------------------------------------------
1 | import com.mai.build_logic.setupLibraryModule
2 |
3 | plugins {
4 | alias(libs.plugins.android.library)
5 | alias(libs.plugins.jetbrains.kotlin.android)
6 | id("build-logic")
7 | }
8 |
9 | setupLibraryModule("1.0.26") {
10 | namespace = "com.mai.oaidviewer.library"
11 | }
--------------------------------------------------------------------------------
/library/lib_1026/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/library/lib_1026/src/main/java/com/mai/oaidviewer/library/OAIDHelper.kt:
--------------------------------------------------------------------------------
1 | package com.mai.oaidviewer.library
2 |
3 | import android.content.Context
4 | import com.bun.miitmdid.core.InfoCode
5 | import com.bun.miitmdid.core.MdidSdkHelper
6 | import com.bun.miitmdid.interfaces.IIdentifierListener
7 | import com.bun.miitmdid.interfaces.IdSupplier
8 |
9 | class OAIDHelper(context: Context, callback: OAIDCallback) : OAIDImpl(context, callback) {
10 |
11 | override fun init() {
12 | System.loadLibrary("nllvm1623827671")
13 | MdidSdkHelper.InitCert(context, loadPemFromAssetFile)
14 |
15 | val value = object : IIdentifierListener {
16 | override fun onSupport(_suppiler: IdSupplier?) {
17 | callback.onSupport(object : OAIDSupplier {
18 |
19 | override fun isSupported(): Boolean {
20 | return _suppiler?.isSupported ?: false
21 | }
22 |
23 | override fun isLimited(): Boolean {
24 | return _suppiler?.isLimited ?: false
25 | }
26 |
27 | override fun getOAID(): String {
28 | return _suppiler?.oaid ?: ""
29 | }
30 |
31 | override fun getVAID(): String {
32 | return _suppiler?.vaid ?: ""
33 | }
34 |
35 | override fun getAAID(): String {
36 | return _suppiler?.aaid ?: ""
37 | }
38 |
39 | })
40 | }
41 | }
42 | val ret = MdidSdkHelper.InitSdk(context, true, value)
43 |
44 | val errMsg: String = "$ret " + when (ret) {
45 | InfoCode.INIT_ERROR_CERT_ERROR -> {
46 | // 证书未初始化或证书无效,SDK内部不会回调onSupport
47 | "cert not init or check not pass"
48 | }
49 |
50 | InfoCode.INIT_ERROR_DEVICE_NOSUPPORT -> {
51 | // 不支持的设备, SDK内部不会回调onSupport
52 | "device not supported"
53 | }
54 | InfoCode.INIT_ERROR_LOAD_CONFIGFILE -> {
55 | // 加载配置文件出错, SDK内部不会回调onSupport
56 | "failed to load config file"
57 | }
58 | InfoCode.INIT_ERROR_MANUFACTURER_NOSUPPORT -> {
59 | // 不支持的设备厂商, SDK内部不会回调onSupport
60 | "manufacturer not supported"
61 | }
62 | InfoCode.INIT_ERROR_SDK_CALL_ERROR -> {
63 | // sdk调用出错, SSDK内部不会回调onSupport
64 | "sdk call error"
65 | }
66 | InfoCode.INIT_INFO_RESULT_DELAY -> {
67 | // 获取接口是异步的,SDK内部会回调onSupport
68 | "result delay (async)"
69 | }
70 | InfoCode.INIT_INFO_RESULT_OK -> {
71 | // 获取接口是同步的,SDK内部会回调onSupport
72 | "result ok (sync)"
73 | }
74 | else ->
75 | ""
76 | }
77 | if (errMsg.isNotEmpty())
78 | callback.onText(errMsg)
79 | }
80 |
81 | override fun getSdkVersion(): Pair {
82 | return Pair("1.0.26", MdidSdkHelper.SDK_VERSION_CODE.toString())
83 | }
84 |
85 | }
--------------------------------------------------------------------------------
/library/lib_1027/.gitignore:
--------------------------------------------------------------------------------
1 | /build
--------------------------------------------------------------------------------
/library/lib_1027/build.gradle.kts:
--------------------------------------------------------------------------------
1 | import com.mai.build_logic.setupLibraryModule
2 |
3 | plugins {
4 | alias(libs.plugins.android.library)
5 | alias(libs.plugins.jetbrains.kotlin.android)
6 | id("build-logic")
7 | }
8 |
9 | setupLibraryModule("1.0.27") {
10 | namespace = "com.mai.oaidviewer.library"
11 | }
--------------------------------------------------------------------------------
/library/lib_1027/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/library/lib_1027/src/main/java/com/mai/oaidviewer/library/OAIDHelper.kt:
--------------------------------------------------------------------------------
1 | package com.mai.oaidviewer.library
2 |
3 | import android.content.Context
4 | import android.util.Log
5 | import com.bun.miitmdid.core.InfoCode
6 | import com.bun.miitmdid.core.MdidSdkHelper
7 | import com.bun.miitmdid.interfaces.IIdentifierListener
8 | import com.bun.miitmdid.interfaces.IdSupplier
9 |
10 | class OAIDHelper(context: Context, callback: OAIDCallback) : OAIDImpl(context, callback) {
11 |
12 | override fun init() {
13 | System.loadLibrary("nllvm1630571663641560568")
14 | if (MdidSdkHelper.SDK_VERSION_CODE != 20210801) {
15 | Log.w("OAIDHelper", "SDK version not match.")
16 | }
17 |
18 | MdidSdkHelper.InitCert(context, loadPemFromAssetFile)
19 |
20 | val value = object : IIdentifierListener {
21 | override fun onSupport(_suppiler: IdSupplier?) {
22 | callback.onSupport(object : OAIDSupplier {
23 |
24 | override fun isSupported(): Boolean {
25 | return _suppiler?.isSupported ?: false
26 | }
27 |
28 | override fun isLimited(): Boolean {
29 | return _suppiler?.isLimited ?: false
30 | }
31 |
32 | override fun getOAID(): String {
33 | return _suppiler?.oaid ?: ""
34 | }
35 |
36 | override fun getVAID(): String {
37 | return _suppiler?.vaid ?: ""
38 | }
39 |
40 | override fun getAAID(): String {
41 | return _suppiler?.aaid ?: ""
42 | }
43 |
44 | })
45 | }
46 | }
47 | val ret = MdidSdkHelper.InitSdk(context, true, value)
48 |
49 | val errMsg: String = "$ret " + when (ret) {
50 | InfoCode.INIT_ERROR_CERT_ERROR -> {
51 | // 证书未初始化或证书无效,SDK内部不会回调onSupport
52 | "cert not init or check not pass"
53 | }
54 |
55 | InfoCode.INIT_ERROR_DEVICE_NOSUPPORT -> {
56 | // 不支持的设备, SDK内部不会回调onSupport
57 | "device not supported"
58 | }
59 | InfoCode.INIT_ERROR_LOAD_CONFIGFILE -> {
60 | // 加载配置文件出错, SDK内部不会回调onSupport
61 | "failed to load config file"
62 | }
63 | InfoCode.INIT_ERROR_MANUFACTURER_NOSUPPORT -> {
64 | // 不支持的设备厂商, SDK内部不会回调onSupport
65 | "manufacturer not supported"
66 | }
67 | InfoCode.INIT_ERROR_SDK_CALL_ERROR -> {
68 | // sdk调用出错, SSDK内部不会回调onSupport
69 | "sdk call error"
70 | }
71 | InfoCode.INIT_INFO_RESULT_DELAY -> {
72 | // 获取接口是异步的,SDK内部会回调onSupport
73 | "result delay (async)"
74 | }
75 | InfoCode.INIT_INFO_RESULT_OK -> {
76 | // 获取接口是同步的,SDK内部会回调onSupport
77 | "result ok (sync)"
78 | }
79 | else ->
80 | ""
81 | }
82 | if (errMsg.isNotEmpty())
83 | callback.onText(errMsg)
84 | }
85 |
86 | override fun getSdkVersion(): Pair {
87 | return Pair("1.0.27", MdidSdkHelper.SDK_VERSION_CODE.toString())
88 | }
89 |
90 | }
--------------------------------------------------------------------------------
/library/lib_1029/.gitignore:
--------------------------------------------------------------------------------
1 | /build
--------------------------------------------------------------------------------
/library/lib_1029/build.gradle.kts:
--------------------------------------------------------------------------------
1 | import com.mai.build_logic.setupLibraryModule
2 |
3 | plugins {
4 | alias(libs.plugins.android.library)
5 | alias(libs.plugins.jetbrains.kotlin.android)
6 | id("build-logic")
7 | }
8 |
9 | setupLibraryModule("1.0.29") {
10 | namespace = "com.mai.oaidviewer.library"
11 | }
--------------------------------------------------------------------------------
/library/lib_1029/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/library/lib_1029/src/main/java/com/mai/oaidviewer/library/OAIDHelper.kt:
--------------------------------------------------------------------------------
1 | package com.mai.oaidviewer.library
2 |
3 | import android.content.Context
4 | import com.bun.miitmdid.core.InfoCode
5 | import com.bun.miitmdid.core.MdidSdkHelper
6 | import com.bun.miitmdid.interfaces.IIdentifierListener
7 | import com.bun.miitmdid.interfaces.IdSupplier
8 |
9 | class OAIDHelper(context: Context, callback: OAIDCallback) : OAIDImpl(context, callback) {
10 |
11 | override fun init() {
12 | System.loadLibrary("nllvm1632808251147706677")
13 | MdidSdkHelper.InitCert(context, loadPemFromAssetFile)
14 |
15 | val value = object : IIdentifierListener {
16 | override fun onSupport(_suppiler: IdSupplier?) {
17 |
18 | callback.onSupport(object : OAIDSupplier {
19 | override fun isSupported(): Boolean {
20 | return _suppiler?.isSupported ?: false
21 | }
22 |
23 | override fun isLimited(): Boolean {
24 | return _suppiler?.isLimited ?: false
25 | }
26 |
27 | override fun getOAID(): String {
28 | return _suppiler?.oaid ?: ""
29 | }
30 |
31 | override fun getVAID(): String {
32 | return _suppiler?.vaid ?: ""
33 | }
34 |
35 | override fun getAAID(): String {
36 | return _suppiler?.aaid ?: ""
37 | }
38 |
39 | })
40 | }
41 | }
42 | val ret = MdidSdkHelper.InitSdk(context, true, value)
43 |
44 | val errMsg: String = "$ret " + when (ret) {
45 | InfoCode.INIT_ERROR_CERT_ERROR -> {
46 | // 证书未初始化或证书无效,SDK内部不会回调onSupport
47 | "cert not init or check not pass"
48 | }
49 |
50 | InfoCode.INIT_ERROR_DEVICE_NOSUPPORT -> {
51 | // 不支持的设备, SDK内部不会回调onSupport
52 | "device not supported"
53 | }
54 | InfoCode.INIT_ERROR_LOAD_CONFIGFILE -> {
55 | // 加载配置文件出错, SDK内部不会回调onSupport
56 | "failed to load config file"
57 | }
58 | InfoCode.INIT_ERROR_MANUFACTURER_NOSUPPORT -> {
59 | // 不支持的设备厂商, SDK内部不会回调onSupport
60 | "manufacturer not supported"
61 | }
62 | InfoCode.INIT_ERROR_SDK_CALL_ERROR -> {
63 | // sdk调用出错, SSDK内部不会回调onSupport
64 | "sdk call error"
65 | }
66 | InfoCode.INIT_INFO_RESULT_DELAY -> {
67 | // 获取接口是异步的,SDK内部会回调onSupport
68 | "result delay (async)"
69 | }
70 | InfoCode.INIT_INFO_RESULT_OK -> {
71 | // 获取接口是同步的,SDK内部会回调onSupport
72 | "result ok (sync)"
73 | }
74 | else ->
75 | ""
76 | }
77 | if (errMsg.isNotEmpty())
78 | callback.onText(errMsg)
79 | }
80 |
81 | override fun getSdkVersion(): Pair {
82 | return Pair("1.0.29", MdidSdkHelper.SDK_VERSION_CODE.toString())
83 | }
84 |
85 | }
--------------------------------------------------------------------------------
/library/lib_1030/.gitignore:
--------------------------------------------------------------------------------
1 | /build
--------------------------------------------------------------------------------
/library/lib_1030/build.gradle.kts:
--------------------------------------------------------------------------------
1 | import com.mai.build_logic.setupLibraryModule
2 |
3 | plugins {
4 | alias(libs.plugins.android.library)
5 | alias(libs.plugins.jetbrains.kotlin.android)
6 | id("build-logic")
7 | }
8 |
9 | setupLibraryModule("1.0.30") {
10 | namespace = "com.mai.oaidviewer.library"
11 | }
--------------------------------------------------------------------------------
/library/lib_1030/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/library/lib_1030/src/main/java/com/mai/oaidviewer/library/OAIDHelper.kt:
--------------------------------------------------------------------------------
1 | package com.mai.oaidviewer.library
2 |
3 | import android.content.Context
4 | import com.bun.miitmdid.core.InfoCode
5 | import com.bun.miitmdid.core.MdidSdkHelper
6 | import com.bun.miitmdid.interfaces.IIdentifierListener
7 | import com.bun.miitmdid.interfaces.IdSupplier
8 |
9 | class OAIDHelper(context: Context, callback: OAIDCallback) : OAIDImpl(context, callback) {
10 |
11 | override fun init() {
12 | System.loadLibrary("msaoaidsec")
13 | MdidSdkHelper.InitCert(context, loadPemFromAssetFile)
14 |
15 | val value = object : IIdentifierListener {
16 | override fun onSupport(_suppiler: IdSupplier?) {
17 | callback.onSupport(object : OAIDSupplier {
18 |
19 | override fun isSupported(): Boolean {
20 | return _suppiler?.isSupported ?: false
21 | }
22 |
23 | override fun isLimited(): Boolean {
24 | return _suppiler?.isLimited ?: false
25 | }
26 |
27 | override fun getOAID(): String {
28 | return _suppiler?.oaid ?: ""
29 | }
30 |
31 | override fun getVAID(): String {
32 | return _suppiler?.vaid ?: ""
33 | }
34 |
35 | override fun getAAID(): String {
36 | return _suppiler?.aaid ?: ""
37 | }
38 |
39 | })
40 | }
41 | }
42 | val ret = MdidSdkHelper.InitSdk(context, true, value)
43 |
44 | val errMsg: String = "$ret " + when (ret) {
45 | InfoCode.INIT_ERROR_CERT_ERROR -> {
46 | // 证书未初始化或证书无效,SDK内部不会回调onSupport
47 | "cert not init or check not pass"
48 | }
49 |
50 | InfoCode.INIT_ERROR_DEVICE_NOSUPPORT -> {
51 | // 不支持的设备, SDK内部不会回调onSupport
52 | "device not supported"
53 | }
54 | InfoCode.INIT_ERROR_LOAD_CONFIGFILE -> {
55 | // 加载配置文件出错, SDK内部不会回调onSupport
56 | "failed to load config file"
57 | }
58 | InfoCode.INIT_ERROR_MANUFACTURER_NOSUPPORT -> {
59 | // 不支持的设备厂商, SDK内部不会回调onSupport
60 | "manufacturer not supported"
61 | }
62 | InfoCode.INIT_ERROR_SDK_CALL_ERROR -> {
63 | // sdk调用出错, SSDK内部不会回调onSupport
64 | "sdk call error"
65 | }
66 | InfoCode.INIT_INFO_RESULT_DELAY -> {
67 | // 获取接口是异步的,SDK内部会回调onSupport
68 | "result delay (async)"
69 | }
70 | InfoCode.INIT_INFO_RESULT_OK -> {
71 | // 获取接口是同步的,SDK内部会回调onSupport
72 | "result ok (sync)"
73 | }
74 | else ->
75 | ""
76 | }
77 | if (errMsg.isNotEmpty())
78 | callback.onText(errMsg)
79 | }
80 |
81 | override fun getSdkVersion(): Pair {
82 | return Pair("1.0.30", MdidSdkHelper.SDK_VERSION_CODE.toString())
83 | }
84 |
85 | }
--------------------------------------------------------------------------------
/library/lib_1100/.gitignore:
--------------------------------------------------------------------------------
1 | /build
--------------------------------------------------------------------------------
/library/lib_1100/build.gradle.kts:
--------------------------------------------------------------------------------
1 | import com.mai.build_logic.setupLibraryModule
2 |
3 | plugins {
4 | alias(libs.plugins.android.library)
5 | alias(libs.plugins.jetbrains.kotlin.android)
6 | id("build-logic")
7 | }
8 |
9 | setupLibraryModule("1.1.0") {
10 | namespace = "com.mai.oaidviewer.library"
11 | }
--------------------------------------------------------------------------------
/library/lib_1100/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/library/lib_1100/src/main/java/com/mai/oaidviewer/library/OAIDHelper.kt:
--------------------------------------------------------------------------------
1 | package com.mai.oaidviewer.library
2 |
3 | import android.content.Context
4 | import com.bun.miitmdid.core.InfoCode
5 | import com.bun.miitmdid.core.MdidSdkHelper
6 | import com.bun.miitmdid.interfaces.IIdentifierListener
7 | import com.bun.miitmdid.interfaces.IdSupplier
8 |
9 | class OAIDHelper(context: Context, callback: OAIDCallback) : OAIDImpl(context, callback) {
10 |
11 | override fun init() {
12 | System.loadLibrary("msaoaidsec")
13 |
14 | Thread {
15 | // 加固版本在调用前必须载入SDK安全库,因为加载有延迟,推荐在application中调用loadLibrary方法
16 | try {
17 | Thread.sleep(1000L)
18 | } catch (ignore: Exception) {
19 |
20 | }
21 |
22 | MdidSdkHelper.InitCert(context, loadPemFromAssetFile)
23 |
24 | val value = object : IIdentifierListener {
25 | override fun onSupport(_suppiler: IdSupplier?) {
26 | callback.onSupport(object : OAIDSupplier {
27 |
28 | override fun isSupported(): Boolean {
29 | return _suppiler?.isSupported ?: false
30 | }
31 |
32 | override fun isLimited(): Boolean {
33 | return _suppiler?.isLimited ?: false
34 | }
35 |
36 | override fun getOAID(): String {
37 | return _suppiler?.oaid ?: ""
38 | }
39 |
40 | override fun getVAID(): String {
41 | return _suppiler?.vaid ?: ""
42 | }
43 |
44 | override fun getAAID(): String {
45 | return _suppiler?.aaid ?: ""
46 | }
47 |
48 | })
49 | }
50 | }
51 | val ret = MdidSdkHelper.InitSdk(context, true, value)
52 |
53 | val errMsg: String = "$ret " + when (ret) {
54 | InfoCode.INIT_ERROR_CERT_ERROR -> {
55 | // 证书未初始化或证书无效,SDK内部不会回调onSupport
56 | "cert not init or check not pass"
57 | }
58 |
59 | InfoCode.INIT_ERROR_DEVICE_NOSUPPORT -> {
60 | // 不支持的设备, SDK内部不会回调onSupport
61 | "device not supported"
62 | }
63 | InfoCode.INIT_ERROR_LOAD_CONFIGFILE -> {
64 | // 加载配置文件出错, SDK内部不会回调onSupport
65 | "failed to load config file"
66 | }
67 | InfoCode.INIT_ERROR_MANUFACTURER_NOSUPPORT -> {
68 | // 不支持的设备厂商, SDK内部不会回调onSupport
69 | "manufacturer not supported"
70 | }
71 | InfoCode.INIT_ERROR_SDK_CALL_ERROR -> {
72 | // sdk调用出错, SSDK内部不会回调onSupport
73 | "sdk call error"
74 | }
75 | InfoCode.INIT_INFO_RESULT_DELAY -> {
76 | // 获取接口是异步的,SDK内部会回调onSupport
77 | "result delay (async)"
78 | }
79 | InfoCode.INIT_INFO_RESULT_OK -> {
80 | // 获取接口是同步的,SDK内部会回调onSupport
81 | "result ok (sync)"
82 | }
83 | else ->
84 | ""
85 | }
86 | if (errMsg.isNotEmpty())
87 | callback.onText(errMsg)
88 | }.start()
89 | }
90 |
91 | override fun getSdkVersion(): Pair {
92 | return Pair("1.1.0", MdidSdkHelper.SDK_VERSION_CODE.toString())
93 | }
94 |
95 | }
--------------------------------------------------------------------------------
/library/lib_1200/.gitignore:
--------------------------------------------------------------------------------
1 | /build
--------------------------------------------------------------------------------
/library/lib_1200/build.gradle.kts:
--------------------------------------------------------------------------------
1 | import com.mai.build_logic.setupLibraryModule
2 |
3 | plugins {
4 | alias(libs.plugins.android.library)
5 | alias(libs.plugins.jetbrains.kotlin.android)
6 | id("build-logic")
7 | }
8 |
9 | setupLibraryModule("1.2.0") {
10 | namespace = "com.mai.oaidviewer.library"
11 | }
--------------------------------------------------------------------------------
/library/lib_1200/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/library/lib_1200/src/main/java/com/mai/oaidviewer/library/OAIDHelper.kt:
--------------------------------------------------------------------------------
1 | package com.mai.oaidviewer.library
2 |
3 | import android.content.Context
4 | import com.bun.miitmdid.core.InfoCode
5 | import com.bun.miitmdid.core.MdidSdkHelper
6 | import com.bun.miitmdid.interfaces.IIdentifierListener
7 | import com.bun.miitmdid.interfaces.IdSupplier
8 |
9 | class OAIDHelper(context: Context, callback: OAIDCallback) : OAIDImpl(context, callback) {
10 |
11 | override fun init() {
12 | System.loadLibrary("msaoaidsec")
13 |
14 | Thread {
15 | // 加固版本在调用前必须载入SDK安全库,因为加载有延迟,推荐在application中调用loadLibrary方法
16 | try {
17 | Thread.sleep(1000L)
18 | } catch (ignore: Exception) {
19 |
20 | }
21 |
22 | MdidSdkHelper.InitCert(context, loadPemFromAssetFile)
23 |
24 | val value = object : IIdentifierListener {
25 | override fun onSupport(_suppiler: IdSupplier?) {
26 | callback.onSupport(object : OAIDSupplier {
27 |
28 | override fun isSupported(): Boolean {
29 | return _suppiler?.isSupported ?: false
30 | }
31 |
32 | override fun isLimited(): Boolean {
33 | return _suppiler?.isLimited ?: false
34 | }
35 |
36 | override fun getOAID(): String {
37 | return _suppiler?.oaid ?: ""
38 | }
39 |
40 | override fun getVAID(): String {
41 | return _suppiler?.vaid ?: ""
42 | }
43 |
44 | override fun getAAID(): String {
45 | return _suppiler?.aaid ?: ""
46 | }
47 |
48 | })
49 | }
50 | }
51 | val ret = MdidSdkHelper.InitSdk(context, true, value)
52 |
53 | val errMsg: String = "$ret " + when (ret) {
54 | InfoCode.INIT_ERROR_CERT_ERROR -> {
55 | // 证书未初始化或证书无效,SDK内部不会回调onSupport
56 | "cert not init or check not pass"
57 | }
58 |
59 | InfoCode.INIT_ERROR_DEVICE_NOSUPPORT -> {
60 | // 不支持的设备, SDK内部不会回调onSupport
61 | "device not supported"
62 | }
63 | InfoCode.INIT_ERROR_LOAD_CONFIGFILE -> {
64 | // 加载配置文件出错, SDK内部不会回调onSupport
65 | "failed to load config file"
66 | }
67 | InfoCode.INIT_ERROR_MANUFACTURER_NOSUPPORT -> {
68 | // 不支持的设备厂商, SDK内部不会回调onSupport
69 | "manufacturer not supported"
70 | }
71 | InfoCode.INIT_ERROR_SDK_CALL_ERROR -> {
72 | // sdk调用出错, SSDK内部不会回调onSupport
73 | "sdk call error"
74 | }
75 | InfoCode.INIT_INFO_RESULT_DELAY -> {
76 | // 获取接口是异步的,SDK内部会回调onSupport
77 | "result delay (async)"
78 | }
79 | InfoCode.INIT_INFO_RESULT_OK -> {
80 | // 获取接口是同步的,SDK内部会回调onSupport
81 | "result ok (sync)"
82 | }
83 | else ->
84 | ""
85 | }
86 | if (errMsg.isNotEmpty())
87 | callback.onText(errMsg)
88 | }.start()
89 | }
90 |
91 | override fun getSdkVersion(): Pair {
92 | return Pair("1.2.0", MdidSdkHelper.SDK_VERSION_CODE.toString())
93 | }
94 |
95 | }
--------------------------------------------------------------------------------
/library/lib_1201/.gitignore:
--------------------------------------------------------------------------------
1 | /build
--------------------------------------------------------------------------------
/library/lib_1201/build.gradle.kts:
--------------------------------------------------------------------------------
1 | import com.mai.build_logic.setupLibraryModule
2 |
3 | plugins {
4 | alias(libs.plugins.android.library)
5 | alias(libs.plugins.jetbrains.kotlin.android)
6 | id("build-logic")
7 | }
8 |
9 | setupLibraryModule("1.2.1") {
10 | namespace = "com.mai.oaidviewer.library"
11 | }
--------------------------------------------------------------------------------
/library/lib_1201/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/library/lib_1201/src/main/java/com/mai/oaidviewer/library/OAIDHelper.kt:
--------------------------------------------------------------------------------
1 | package com.mai.oaidviewer.library
2 |
3 | import android.content.Context
4 | import android.util.Log
5 | import com.bun.miitmdid.core.InfoCode
6 | import com.bun.miitmdid.core.MdidSdkHelper
7 | import com.bun.miitmdid.interfaces.IIdentifierListener
8 | import com.bun.miitmdid.interfaces.IdSupplier
9 |
10 | class OAIDHelper(context: Context, callback: OAIDCallback) : OAIDImpl(context, callback) {
11 |
12 | override fun init() {
13 | System.loadLibrary("msaoaidsec")
14 |
15 | Thread {
16 | // 加固版本在调用前必须载入SDK安全库,因为加载有延迟,推荐在application中调用loadLibrary方法
17 | try {
18 | Thread.sleep(1000L)
19 | } catch (ignore: Exception) {
20 |
21 | }
22 |
23 | if (MdidSdkHelper.SDK_VERSION_CODE != 20220520) {
24 | Log.w("OAIDHelper", "SDK version not match.")
25 | }
26 |
27 | MdidSdkHelper.InitCert(context, loadPemFromAssetFile)
28 |
29 | val value = object : IIdentifierListener {
30 | override fun onSupport(_suppiler: IdSupplier?) {
31 | callback.onSupport(object : OAIDSupplier {
32 |
33 | override fun isSupported(): Boolean {
34 | return _suppiler?.isSupported ?: false
35 | }
36 |
37 | override fun isLimited(): Boolean {
38 | return _suppiler?.isLimited ?: false
39 | }
40 |
41 | override fun getOAID(): String {
42 | return _suppiler?.oaid ?: ""
43 | }
44 |
45 | override fun getVAID(): String {
46 | return _suppiler?.vaid ?: ""
47 | }
48 |
49 | override fun getAAID(): String {
50 | return _suppiler?.aaid ?: ""
51 | }
52 |
53 | })
54 | }
55 | }
56 | val ret = MdidSdkHelper.InitSdk(context, true, value)
57 |
58 | val errMsg: String = "$ret " + when (ret) {
59 | InfoCode.INIT_ERROR_CERT_ERROR -> {
60 | // 证书未初始化或证书无效,SDK内部不会回调onSupport
61 | "cert not init or check not pass"
62 | }
63 | InfoCode.INIT_ERROR_DEVICE_NOSUPPORT -> {
64 | // 不支持的设备, SDK内部不会回调onSupport
65 | "device not supported"
66 | }
67 | InfoCode.INIT_ERROR_LOAD_CONFIGFILE -> {
68 | // 加载配置文件出错, SDK内部不会回调onSupport
69 | "failed to load config file"
70 | }
71 | InfoCode.INIT_ERROR_MANUFACTURER_NOSUPPORT -> {
72 | // 不支持的设备厂商, SDK内部不会回调onSupport
73 | "manufacturer not supported"
74 | }
75 | InfoCode.INIT_ERROR_SDK_CALL_ERROR -> {
76 | // sdk调用出错, SSDK内部不会回调onSupport
77 | "sdk call error"
78 | }
79 | InfoCode.INIT_INFO_RESULT_DELAY -> {
80 | // 获取接口是异步的,SDK内部会回调onSupport
81 | "result delay (async)"
82 | }
83 | InfoCode.INIT_INFO_RESULT_OK -> {
84 | // 获取接口是同步的,SDK内部会回调onSupport
85 | "result ok (sync)"
86 | }
87 | else ->
88 | ""
89 | }
90 | if (errMsg.isNotEmpty())
91 | callback.onText(errMsg)
92 | }.start()
93 | }
94 |
95 | override fun getSdkVersion(): Pair {
96 | return Pair("1.2.1", MdidSdkHelper.SDK_VERSION_CODE.toString())
97 | }
98 |
99 | }
--------------------------------------------------------------------------------
/library/lib_2000/.gitignore:
--------------------------------------------------------------------------------
1 | /build
--------------------------------------------------------------------------------
/library/lib_2000/build.gradle.kts:
--------------------------------------------------------------------------------
1 | import com.mai.build_logic.setupLibraryModule
2 |
3 | plugins {
4 | alias(libs.plugins.android.library)
5 | alias(libs.plugins.jetbrains.kotlin.android)
6 | id("build-logic")
7 | }
8 |
9 | setupLibraryModule("2.0.0") {
10 | namespace = "com.mai.oaidviewer.library"
11 | }
--------------------------------------------------------------------------------
/library/lib_2000/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/library/lib_2000/src/main/java/com/mai/oaidviewer/library/OAIDHelper.kt:
--------------------------------------------------------------------------------
1 | package com.mai.oaidviewer.library
2 |
3 | import android.content.Context
4 | import android.util.Log
5 | import com.bun.miitmdid.core.InfoCode
6 | import com.bun.miitmdid.core.MdidSdkHelper
7 | import com.bun.miitmdid.interfaces.IIdentifierListener
8 | import com.bun.miitmdid.interfaces.IdSupplier
9 |
10 | class OAIDHelper(context: Context, callback: OAIDCallback) : OAIDImpl(context, callback) {
11 |
12 | override fun init() {
13 | System.loadLibrary("msaoaidsec")
14 |
15 | Thread {
16 | // 加固版本在调用前必须载入SDK安全库,因为加载有延迟,推荐在application中调用loadLibrary方法
17 | try {
18 | Thread.sleep(1000L)
19 | } catch (ignore: Exception) {
20 |
21 | }
22 |
23 | if (MdidSdkHelper.SDK_VERSION_CODE != 20220815) {
24 | Log.w("OAIDHelper", "SDK version not match.")
25 | }
26 |
27 | MdidSdkHelper.InitCert(context, loadPemFromAssetFile)
28 |
29 | val value = object : IIdentifierListener {
30 | override fun onSupport(_suppiler: IdSupplier?) {
31 | callback.onSupport(object : OAIDSupplier {
32 | override fun isSupported(): Boolean {
33 | return _suppiler?.isSupported ?: false
34 | }
35 |
36 | override fun isLimited(): Boolean {
37 | return _suppiler?.isLimited ?: false
38 | }
39 |
40 | override fun getOAID(): String {
41 | return _suppiler?.oaid ?: ""
42 | }
43 |
44 | override fun getVAID(): String {
45 | return _suppiler?.vaid ?: ""
46 | }
47 |
48 | override fun getAAID(): String {
49 | return _suppiler?.aaid ?: ""
50 | }
51 |
52 | })
53 | }
54 | }
55 | val ret = MdidSdkHelper.InitSdk(context, true, value)
56 |
57 | val errMsg: String = "$ret " + when (ret) {
58 | InfoCode.INIT_ERROR_CERT_ERROR -> {
59 | // 证书未初始化或证书无效,SDK内部不会回调onSupport
60 | "cert not init or check not pass"
61 | }
62 |
63 | InfoCode.INIT_ERROR_DEVICE_NOSUPPORT -> {
64 | // 不支持的设备, SDK内部不会回调onSupport
65 | "device not supported"
66 | }
67 | InfoCode.INIT_ERROR_LOAD_CONFIGFILE -> {
68 | // 加载配置文件出错, SDK内部不会回调onSupport
69 | "failed to load config file"
70 | }
71 | InfoCode.INIT_ERROR_MANUFACTURER_NOSUPPORT -> {
72 | // 不支持的设备厂商, SDK内部不会回调onSupport
73 | "manufacturer not supported"
74 | }
75 | InfoCode.INIT_ERROR_SDK_CALL_ERROR -> {
76 | // sdk调用出错, SSDK内部不会回调onSupport
77 | "sdk call error"
78 | }
79 | InfoCode.INIT_INFO_RESULT_DELAY -> {
80 | // 获取接口是异步的,SDK内部会回调onSupport
81 | "result delay (async)"
82 | }
83 | InfoCode.INIT_INFO_RESULT_OK -> {
84 | // 获取接口是同步的,SDK内部会回调onSupport
85 | "result ok (sync)"
86 | }
87 | else ->
88 | ""
89 | }
90 | if (errMsg.isNotEmpty())
91 | callback.onText(errMsg)
92 | }.start()
93 | }
94 |
95 | override fun getSdkVersion(): Pair {
96 | return Pair("2.0.0", MdidSdkHelper.SDK_VERSION_CODE.toString())
97 | }
98 |
99 | }
--------------------------------------------------------------------------------
/library/lib_2100/.gitignore:
--------------------------------------------------------------------------------
1 | /build
--------------------------------------------------------------------------------
/library/lib_2100/build.gradle.kts:
--------------------------------------------------------------------------------
1 | import com.mai.build_logic.setupLibraryModule
2 |
3 | plugins {
4 | alias(libs.plugins.android.library)
5 | alias(libs.plugins.jetbrains.kotlin.android)
6 | id("build-logic")
7 | }
8 |
9 | setupLibraryModule("2.1.0") {
10 | namespace = "com.mai.oaidviewer.library"
11 | }
--------------------------------------------------------------------------------
/library/lib_2100/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/library/lib_2100/src/main/java/com/mai/oaidviewer/library/OAIDHelper.kt:
--------------------------------------------------------------------------------
1 | package com.mai.oaidviewer.library
2 |
3 | import android.content.Context
4 | import android.util.Log
5 | import com.bun.miitmdid.core.InfoCode
6 | import com.bun.miitmdid.core.MdidSdkHelper
7 | import com.bun.miitmdid.interfaces.IIdentifierListener
8 | import com.bun.miitmdid.interfaces.IdSupplier
9 |
10 | class OAIDHelper(context: Context, callback: OAIDCallback) : OAIDImpl(context, callback) {
11 |
12 | override fun init() {
13 | System.loadLibrary("msaoaidsec")
14 |
15 | Thread {
16 | // 加固版本在调用前必须载入SDK安全库,因为加载有延迟,推荐在application中调用loadLibrary方法
17 | try {
18 | Thread.sleep(1000L)
19 | } catch (ignore: Exception) {
20 |
21 | }
22 |
23 | if (MdidSdkHelper.SDK_VERSION_CODE != 20230202) {
24 | Log.w("OAIDHelper", "SDK version not match.")
25 | }
26 |
27 | MdidSdkHelper.InitCert(context, loadPemFromAssetFile)
28 |
29 | val value = object : IIdentifierListener {
30 | override fun onSupport(_suppiler: IdSupplier?) {
31 | callback.onSupport(object : OAIDSupplier {
32 |
33 | override fun isSupported(): Boolean {
34 | return _suppiler?.isSupported ?: false
35 | }
36 |
37 | override fun isLimited(): Boolean {
38 | return _suppiler?.isLimited ?: false
39 | }
40 |
41 | override fun getOAID(): String {
42 | return _suppiler?.oaid ?: ""
43 | }
44 |
45 | override fun getVAID(): String {
46 | return _suppiler?.vaid ?: ""
47 | }
48 |
49 | override fun getAAID(): String {
50 | return _suppiler?.aaid ?: ""
51 | }
52 |
53 | })
54 | }
55 | }
56 |
57 | //(可选)设置InitSDK接口回调超时时间(仅适用于接口为异步),默认值为5000ms.
58 | // 注:请在调用前设置一次后就不再更改,否则可能导致回调丢失、重复等问题
59 | try {
60 | MdidSdkHelper.setGlobalTimeout(5000)
61 | } catch (error: Error) {
62 | error.printStackTrace()
63 | }
64 |
65 | val ret = MdidSdkHelper.InitSdk(context, true, value)
66 |
67 | val errMsg: String = "$ret " + when (ret) {
68 | InfoCode.INIT_ERROR_CERT_ERROR -> {
69 | // 证书未初始化或证书无效,SDK内部不会回调onSupport
70 | "cert not init or check not pass"
71 | }
72 |
73 | InfoCode.INIT_ERROR_DEVICE_NOSUPPORT -> {
74 | // 不支持的设备, SDK内部不会回调onSupport
75 | "device not supported"
76 | }
77 | InfoCode.INIT_ERROR_LOAD_CONFIGFILE -> {
78 | // 加载配置文件出错, SDK内部不会回调onSupport
79 | "failed to load config file"
80 | }
81 | InfoCode.INIT_ERROR_MANUFACTURER_NOSUPPORT -> {
82 | // 不支持的设备厂商, SDK内部不会回调onSupport
83 | "manufacturer not supported"
84 | }
85 | InfoCode.INIT_ERROR_SDK_CALL_ERROR -> {
86 | // sdk调用出错, SSDK内部不会回调onSupport
87 | "sdk call error"
88 | }
89 | InfoCode.INIT_INFO_RESULT_DELAY -> {
90 | // 获取接口是异步的,SDK内部会回调onSupport
91 | "result delay (async)"
92 | }
93 | InfoCode.INIT_INFO_RESULT_OK -> {
94 | // 获取接口是同步的,SDK内部会回调onSupport
95 | "result ok (sync)"
96 | }
97 | else ->
98 | ""
99 | }
100 | if (errMsg.isNotEmpty())
101 | callback.onText(errMsg)
102 | }.start()
103 | }
104 |
105 | override fun getSdkVersion(): Pair {
106 | return Pair("2.1.0", MdidSdkHelper.SDK_VERSION_CODE.toString())
107 | }
108 |
109 | }
--------------------------------------------------------------------------------
/library/lib_2200/.gitignore:
--------------------------------------------------------------------------------
1 | /build
--------------------------------------------------------------------------------
/library/lib_2200/build.gradle.kts:
--------------------------------------------------------------------------------
1 | import com.mai.build_logic.setupLibraryModule
2 |
3 | plugins {
4 | alias(libs.plugins.android.library)
5 | alias(libs.plugins.jetbrains.kotlin.android)
6 | id("build-logic")
7 | }
8 |
9 | setupLibraryModule("2.2.0") {
10 | namespace = "com.mai.oaidviewer.library"
11 | }
--------------------------------------------------------------------------------
/library/lib_2200/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/library/lib_2200/src/main/java/com/mai/oaidviewer/library/OAIDHelper.kt:
--------------------------------------------------------------------------------
1 | package com.mai.oaidviewer.library
2 |
3 | import android.content.Context
4 | import android.util.Log
5 | import com.bun.miitmdid.core.InfoCode
6 | import com.bun.miitmdid.core.MdidSdkHelper
7 | import com.bun.miitmdid.interfaces.IIdentifierListener
8 | import com.bun.miitmdid.interfaces.IdSupplier
9 |
10 | class OAIDHelper(context: Context, callback: OAIDCallback) : OAIDImpl(context, callback) {
11 |
12 | override fun init() {
13 | System.loadLibrary("msaoaidsec")
14 |
15 | Thread {
16 | // 加固版本在调用前必须载入SDK安全库,因为加载有延迟,推荐在application中调用loadLibrary方法
17 | try {
18 | Thread.sleep(1000L)
19 | } catch (ignore: Exception) {
20 |
21 | }
22 |
23 | if (MdidSdkHelper.SDK_VERSION_CODE != 20230516) {
24 | Log.w("OAIDHelper", "SDK version not match.")
25 | }
26 |
27 | MdidSdkHelper.InitCert(context, loadPemFromAssetFile)
28 |
29 | val value = object : IIdentifierListener {
30 | override fun onSupport(_suppiler: IdSupplier?) {
31 |
32 | callback.onSupport(object : OAIDSupplier {
33 |
34 | override fun isSupported(): Boolean {
35 | return _suppiler?.isSupported ?: false
36 | }
37 |
38 | override fun isLimited(): Boolean {
39 | return _suppiler?.isLimited ?: false
40 | }
41 |
42 | override fun getOAID(): String {
43 | return _suppiler?.oaid ?: ""
44 | }
45 |
46 | override fun getVAID(): String {
47 | return _suppiler?.vaid ?: ""
48 | }
49 |
50 | override fun getAAID(): String {
51 | return _suppiler?.aaid ?: ""
52 | }
53 |
54 | })
55 | }
56 | }
57 |
58 | //(可选)设置InitSDK接口回调超时时间(仅适用于接口为异步),默认值为5000ms.
59 | // 注:请在调用前设置一次后就不再更改,否则可能导致回调丢失、重复等问题
60 | try {
61 | MdidSdkHelper.setGlobalTimeout(5000)
62 | } catch (error: Error) {
63 | error.printStackTrace()
64 | }
65 |
66 | val ret = MdidSdkHelper.InitSdk(context, true, value)
67 |
68 | val errMsg: String = "$ret " + when (ret) {
69 | InfoCode.INIT_ERROR_CERT_ERROR -> {
70 | // 证书未初始化或证书无效,SDK内部不会回调onSupport
71 | "cert not init or check not pass"
72 | }
73 |
74 | InfoCode.INIT_ERROR_DEVICE_NOSUPPORT -> {
75 | // 不支持的设备, SDK内部不会回调onSupport
76 | "device not supported"
77 | }
78 | InfoCode.INIT_ERROR_LOAD_CONFIGFILE -> {
79 | // 加载配置文件出错, SDK内部不会回调onSupport
80 | "failed to load config file"
81 | }
82 | InfoCode.INIT_ERROR_MANUFACTURER_NOSUPPORT -> {
83 | // 不支持的设备厂商, SDK内部不会回调onSupport
84 | "manufacturer not supported"
85 | }
86 | InfoCode.INIT_ERROR_SDK_CALL_ERROR -> {
87 | // sdk调用出错, SSDK内部不会回调onSupport
88 | "sdk call error"
89 | }
90 | InfoCode.INIT_INFO_RESULT_DELAY -> {
91 | // 获取接口是异步的,SDK内部会回调onSupport
92 | "result delay (async)"
93 | }
94 | InfoCode.INIT_INFO_RESULT_OK -> {
95 | // 获取接口是同步的,SDK内部会回调onSupport
96 | "result ok (sync)"
97 | }
98 | else ->
99 | ""
100 | }
101 | if (errMsg.isNotEmpty())
102 | callback.onText(errMsg)
103 | }.start()
104 | }
105 |
106 | override fun getSdkVersion(): Pair {
107 | return Pair("2.2.0", MdidSdkHelper.SDK_VERSION_CODE.toString())
108 | }
109 |
110 | }
--------------------------------------------------------------------------------
/library/lib_2300/.gitignore:
--------------------------------------------------------------------------------
1 | /build
--------------------------------------------------------------------------------
/library/lib_2300/build.gradle.kts:
--------------------------------------------------------------------------------
1 | import com.mai.build_logic.setupLibraryModule
2 |
3 | plugins {
4 | alias(libs.plugins.android.library)
5 | alias(libs.plugins.jetbrains.kotlin.android)
6 | id("build-logic")
7 | }
8 |
9 | setupLibraryModule("2.3.0") {
10 | namespace = "com.mai.oaidviewer.library"
11 | }
--------------------------------------------------------------------------------
/library/lib_2300/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/library/lib_2300/src/main/java/com/mai/oaidviewer/library/OAIDHelper.kt:
--------------------------------------------------------------------------------
1 | package com.mai.oaidviewer.library
2 |
3 | import android.content.Context
4 | import android.util.Log
5 | import com.bun.miitmdid.core.InfoCode
6 | import com.bun.miitmdid.core.MdidSdkHelper
7 | import com.bun.miitmdid.interfaces.IIdentifierListener
8 | import com.bun.miitmdid.interfaces.IPermissionCallbackListener
9 | import com.bun.miitmdid.interfaces.IdSupplier
10 |
11 | class OAIDHelper(context: Context, callback: OAIDCallback) : OAIDImpl(context, callback) {
12 |
13 | override fun init() {
14 | System.loadLibrary("msaoaidsec")
15 |
16 | Thread {
17 | // 加固版本在调用前必须载入SDK安全库,因为加载有延迟,推荐在application中调用loadLibrary方法
18 | try {
19 | Thread.sleep(1000L)
20 | } catch (ignore: Exception) {
21 |
22 | }
23 |
24 | if (MdidSdkHelper.SDK_VERSION_CODE != 20230919) {
25 | Log.w("OAIDHelper", "SDK version not match.")
26 | }
27 |
28 | MdidSdkHelper.InitCert(context, loadPemFromAssetFile)
29 |
30 | val value = object : IIdentifierListener {
31 | override fun onSupport(_suppiler: IdSupplier?) {
32 | callback.onSupport(object : OAIDSupplier {
33 | override fun isSupported(): Boolean {
34 | return _suppiler?.isSupported ?: false
35 | }
36 |
37 | override fun isLimited(): Boolean {
38 | return _suppiler?.isLimited ?: false
39 | }
40 |
41 | /**
42 | * 2.3.0新增,默认返回false
43 | */
44 | override fun isSupportRequestOAIDPermission(): Boolean {
45 | return _suppiler?.isSupportRequestOAIDPermission ?: false
46 | }
47 |
48 | override fun getOAID(): String {
49 | return _suppiler?.oaid ?: ""
50 | }
51 |
52 | override fun getVAID(): String {
53 | return _suppiler?.vaid ?: ""
54 | }
55 |
56 | override fun getAAID(): String {
57 | return _suppiler?.aaid ?: ""
58 | }
59 |
60 | })
61 | }
62 | }
63 |
64 | //(可选)设置InitSDK接口回调超时时间(仅适用于接口为异步),默认值为5000ms.
65 | // 注:请在调用前设置一次后就不再更改,否则可能导致回调丢失、重复等问题
66 | try {
67 | MdidSdkHelper.setGlobalTimeout(5000)
68 | } catch (error: Error) {
69 | error.printStackTrace()
70 | }
71 |
72 | val ret = MdidSdkHelper.InitSdk(context, true, value)
73 |
74 | val errMsg: String = "$ret " + when (ret) {
75 | InfoCode.INIT_ERROR_CERT_ERROR -> {
76 | // 证书未初始化或证书无效,SDK内部不会回调onSupport
77 | "cert not init or check not pass"
78 | }
79 |
80 | InfoCode.INIT_ERROR_DEVICE_NOSUPPORT -> {
81 | // 不支持的设备, SDK内部不会回调onSupport
82 | "device not supported"
83 | }
84 | InfoCode.INIT_ERROR_LOAD_CONFIGFILE -> {
85 | // 加载配置文件出错, SDK内部不会回调onSupport
86 | "failed to load config file"
87 | }
88 | InfoCode.INIT_ERROR_MANUFACTURER_NOSUPPORT -> {
89 | // 不支持的设备厂商, SDK内部不会回调onSupport
90 | "manufacturer not supported"
91 | }
92 | InfoCode.INIT_ERROR_SDK_CALL_ERROR -> {
93 | // sdk调用出错, SSDK内部不会回调onSupport
94 | "sdk call error"
95 | }
96 | InfoCode.INIT_INFO_RESULT_DELAY -> {
97 | // 获取接口是异步的,SDK内部会回调onSupport
98 | "result delay (async)"
99 | }
100 | InfoCode.INIT_INFO_RESULT_OK -> {
101 | // 获取接口是同步的,SDK内部会回调onSupport
102 | "result ok (sync)"
103 | }
104 | else ->
105 | ""
106 | }
107 | if (errMsg.isNotEmpty())
108 | callback.onText(errMsg)
109 | }.start()
110 | }
111 |
112 | override fun getSdkVersion(): Pair {
113 | return Pair("2.3.0", MdidSdkHelper.SDK_VERSION_CODE.toString())
114 | }
115 |
116 | /**
117 | * 2.3.0新增,在isSupportRequestOAIDPermission返回true时请求权限
118 | */
119 | override fun requestOAIDPermission(context: Context, callback: RequestPermissionCallback) {
120 | MdidSdkHelper.requestOAIDPermission(context, object : IPermissionCallbackListener {
121 |
122 | override fun onGranted(grPermission: Array) {
123 | callback.onGranted(grPermission)
124 | }
125 |
126 | override fun onDenied(dePermissions: MutableList) {
127 | callback.onDenied(dePermissions)
128 | }
129 |
130 | override fun onAskAgain(asPermissions: MutableList) {
131 | callback.onAskAgain(asPermissions)
132 | }
133 |
134 | })
135 | }
136 |
137 | }
--------------------------------------------------------------------------------
/library/lib_2400/.gitignore:
--------------------------------------------------------------------------------
1 | /build
--------------------------------------------------------------------------------
/library/lib_2400/build.gradle.kts:
--------------------------------------------------------------------------------
1 | import com.mai.build_logic.setupLibraryModule
2 |
3 | plugins {
4 | alias(libs.plugins.android.library)
5 | alias(libs.plugins.jetbrains.kotlin.android)
6 | id("build-logic")
7 | }
8 |
9 | setupLibraryModule("2.4.0") {
10 | namespace = "com.mai.oaidviewer.library"
11 | }
--------------------------------------------------------------------------------
/library/lib_2400/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/library/lib_2400/src/main/java/com/mai/oaidviewer/library/OAIDHelper.kt:
--------------------------------------------------------------------------------
1 | package com.mai.oaidviewer.library
2 |
3 | import android.content.Context
4 | import android.util.Log
5 | import com.bun.miitmdid.core.InfoCode
6 | import com.bun.miitmdid.core.MdidSdkHelper
7 | import com.bun.miitmdid.interfaces.IIdentifierListener
8 | import com.bun.miitmdid.interfaces.IPermissionCallbackListener
9 | import com.bun.miitmdid.interfaces.IdSupplier
10 |
11 | class OAIDHelper(context: Context, callback: OAIDCallback) : OAIDImpl(context, callback) {
12 |
13 | override fun init() {
14 | System.loadLibrary("msaoaidsec")
15 |
16 | Thread {
17 | // 加固版本在调用前必须载入SDK安全库,因为加载有延迟,推荐在application中调用loadLibrary方法
18 | try {
19 | Thread.sleep(1000L)
20 | } catch (ignore: Exception) {
21 |
22 | }
23 |
24 | if (MdidSdkHelper.SDK_VERSION_CODE != 20240110) {
25 | Log.w(
26 | "OAIDHelper",
27 | "SDK version not match. Current version code is '${MdidSdkHelper.SDK_VERSION_CODE}'"
28 | )
29 | }
30 |
31 | MdidSdkHelper.InitCert(context, loadPemFromAssetFile)
32 |
33 | val value = object : IIdentifierListener {
34 | override fun onSupport(_suppiler: IdSupplier?) {
35 | callback.onSupport(object : OAIDSupplier {
36 | override fun isSupported(): Boolean {
37 | return _suppiler?.isSupported ?: false
38 | }
39 |
40 | override fun isLimited(): Boolean {
41 | return _suppiler?.isLimited ?: false
42 | }
43 |
44 | /**
45 | * 2.3.0新增,默认返回false
46 | */
47 | override fun isSupportRequestOAIDPermission(): Boolean {
48 | return _suppiler?.isSupportRequestOAIDPermission ?: false
49 | }
50 |
51 | override fun getOAID(): String {
52 | return _suppiler?.oaid ?: ""
53 | }
54 |
55 | override fun getVAID(): String {
56 | return _suppiler?.vaid ?: ""
57 | }
58 |
59 | override fun getAAID(): String {
60 | return _suppiler?.aaid ?: ""
61 | }
62 |
63 | })
64 | }
65 | }
66 |
67 | //(可选)设置InitSDK接口回调超时时间(仅适用于接口为异步),默认值为5000ms.
68 | // 注:请在调用前设置一次后就不再更改,否则可能导致回调丢失、重复等问题
69 | try {
70 | MdidSdkHelper.setGlobalTimeout(5000)
71 | } catch (error: Error) {
72 | error.printStackTrace()
73 | }
74 |
75 | val ret = MdidSdkHelper.InitSdk(context, true, value)
76 |
77 | val errMsg: String = "$ret " + when (ret) {
78 | InfoCode.INIT_ERROR_CERT_ERROR -> {
79 | // 证书未初始化或证书无效,SDK内部不会回调onSupport
80 | "cert not init or check not pass"
81 | }
82 |
83 | InfoCode.INIT_ERROR_DEVICE_NOSUPPORT -> {
84 | // 不支持的设备, SDK内部不会回调onSupport
85 | "device not supported"
86 | }
87 | InfoCode.INIT_ERROR_LOAD_CONFIGFILE -> {
88 | // 加载配置文件出错, SDK内部不会回调onSupport
89 | "failed to load config file"
90 | }
91 | InfoCode.INIT_ERROR_MANUFACTURER_NOSUPPORT -> {
92 | // 不支持的设备厂商, SDK内部不会回调onSupport
93 | "manufacturer not supported"
94 | }
95 | InfoCode.INIT_ERROR_SDK_CALL_ERROR -> {
96 | // sdk调用出错, SSDK内部不会回调onSupport
97 | "sdk call error"
98 | }
99 | InfoCode.INIT_INFO_RESULT_DELAY -> {
100 | // 获取接口是异步的,SDK内部会回调onSupport
101 | "result delay (async)"
102 | }
103 | InfoCode.INIT_INFO_RESULT_OK -> {
104 | // 获取接口是同步的,SDK内部会回调onSupport
105 | "result ok (sync)"
106 | }
107 | else ->
108 | ""
109 | }
110 | if (errMsg.isNotEmpty())
111 | callback.onText(errMsg)
112 | }.start()
113 | }
114 |
115 | override fun getSdkVersion(): Pair {
116 | return Pair("2.4.0", MdidSdkHelper.SDK_VERSION_CODE.toString())
117 | }
118 |
119 | /**
120 | * 2.3.0新增,在isSupportRequestOAIDPermission返回true时请求权限
121 | */
122 | override fun requestOAIDPermission(context: Context, callback: RequestPermissionCallback) {
123 | MdidSdkHelper.requestOAIDPermission(context, object : IPermissionCallbackListener {
124 |
125 | override fun onGranted(grPermission: Array) {
126 | callback.onGranted(grPermission)
127 | }
128 |
129 | override fun onDenied(dePermissions: MutableList) {
130 | callback.onDenied(dePermissions)
131 | }
132 |
133 | override fun onAskAgain(asPermissions: MutableList) {
134 | callback.onAskAgain(asPermissions)
135 | }
136 |
137 | })
138 | }
139 |
140 | }
--------------------------------------------------------------------------------
/library/lib_2500/.gitignore:
--------------------------------------------------------------------------------
1 | /build
--------------------------------------------------------------------------------
/library/lib_2500/build.gradle.kts:
--------------------------------------------------------------------------------
1 | import com.mai.build_logic.setupLibraryModule
2 |
3 | plugins {
4 | alias(libs.plugins.android.library)
5 | alias(libs.plugins.jetbrains.kotlin.android)
6 | id("build-logic")
7 | }
8 |
9 | setupLibraryModule("2.5.0") {
10 | namespace = "com.mai.oaidviewer.library"
11 | }
--------------------------------------------------------------------------------
/library/lib_2500/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/library/lib_2500/src/main/java/com/mai/oaidviewer/library/OAIDHelper.kt:
--------------------------------------------------------------------------------
1 | package com.mai.oaidviewer.library
2 |
3 | import android.content.Context
4 | import android.util.Log
5 | import com.bun.miitmdid.core.InfoCode
6 | import com.bun.miitmdid.core.MdidSdkHelper
7 | import com.bun.miitmdid.interfaces.IIdentifierListener
8 | import com.bun.miitmdid.interfaces.IPermissionCallbackListener
9 | import com.bun.miitmdid.interfaces.IdSupplier
10 |
11 | class OAIDHelper(context: Context, callback: OAIDCallback) : OAIDImpl(context, callback) {
12 |
13 | override fun init() {
14 | System.loadLibrary("msaoaidsec")
15 |
16 | Thread {
17 | // 加固版本在调用前必须载入SDK安全库,因为加载有延迟,推荐在application中调用loadLibrary方法
18 | try {
19 | Thread.sleep(1000L)
20 | } catch (ignore: Exception) {
21 |
22 | }
23 | if (MdidSdkHelper.SDK_VERSION_CODE != 20240510) {
24 | Log.w(
25 | "OAIDHelper",
26 | "SDK version not match. Current version code is '${MdidSdkHelper.SDK_VERSION_CODE}'"
27 | )
28 | }
29 |
30 | MdidSdkHelper.InitCert(context, loadPemFromAssetFile)
31 |
32 | val listener = object : IIdentifierListener {
33 | override fun onSupport(_suppiler: IdSupplier?) {
34 | callback.onSupport(object : OAIDSupplier {
35 | override fun isSupported(): Boolean {
36 | return _suppiler?.isSupported ?: false
37 | }
38 |
39 | override fun isLimited(): Boolean {
40 | return _suppiler?.isLimited ?: false
41 | }
42 |
43 | /**
44 | * 2.3.0新增,默认返回false
45 | */
46 | override fun isSupportRequestOAIDPermission(): Boolean {
47 | return _suppiler?.isSupportRequestOAIDPermission ?: false
48 | }
49 |
50 | override fun getOAID(): String {
51 | return _suppiler?.oaid ?: ""
52 | }
53 |
54 | override fun getVAID(): String {
55 | return _suppiler?.vaid ?: ""
56 | }
57 |
58 | override fun getAAID(): String {
59 | return _suppiler?.aaid ?: ""
60 | }
61 |
62 | })
63 | }
64 | }
65 |
66 | //(可选)设置InitSDK接口回调超时时间(仅适用于接口为异步),默认值为5000ms.
67 | // 注:请在调用前设置一次后就不再更改,否则可能导致回调丢失、重复等问题
68 | try {
69 | MdidSdkHelper.setGlobalTimeout(5000)
70 | } catch (error: Error) {
71 | error.printStackTrace()
72 | }
73 |
74 | try {
75 | // if x86 throws Error
76 | // MdidSdkHelper.InitSdk(cxt, isSDKLogOn, isGetOAID, isGetVAID, isGetAAID, listener);
77 | val ret = MdidSdkHelper.InitSdk(context, true, true, true, true, listener)
78 | val errMsg: String = "$ret " + when (ret) {
79 | InfoCode.INIT_ERROR_CERT_ERROR -> {
80 | // 证书未初始化或证书无效,SDK内部不会回调onSupport
81 | "cert not init or check not pass"
82 | }
83 |
84 | InfoCode.INIT_ERROR_DEVICE_NOSUPPORT -> {
85 | // 不支持的设备, SDK内部不会回调onSupport
86 | "device not supported"
87 | }
88 |
89 | InfoCode.INIT_ERROR_LOAD_CONFIGFILE -> {
90 | // 加载配置文件出错, SDK内部不会回调onSupport
91 | "failed to load config file"
92 | }
93 |
94 | InfoCode.INIT_ERROR_MANUFACTURER_NOSUPPORT -> {
95 | // 不支持的设备厂商, SDK内部不会回调onSupport
96 | "manufacturer not supported"
97 | }
98 |
99 | InfoCode.INIT_ERROR_SDK_CALL_ERROR -> {
100 | // sdk调用出错, SSDK内部不会回调onSupport
101 | "sdk call error"
102 | }
103 |
104 | InfoCode.INIT_INFO_RESULT_DELAY -> {
105 | // 获取接口是异步的,SDK内部会回调onSupport
106 | "result delay (async)"
107 | }
108 |
109 | InfoCode.INIT_INFO_RESULT_OK -> {
110 | // 获取接口是同步的,SDK内部会回调onSupport
111 | "result ok (sync)"
112 | }
113 |
114 | else ->
115 | ""
116 | }
117 | if (errMsg.isNotEmpty()) {
118 | callback.onText(errMsg)
119 | }
120 | } catch (error: Error) {
121 | error.printStackTrace()
122 | }
123 | }.start()
124 | }
125 |
126 | override fun getSdkVersion(): Pair {
127 | return Pair("2.5.0", MdidSdkHelper.SDK_VERSION_CODE.toString())
128 | }
129 |
130 | /**
131 | * 2.3.0新增,在isSupportRequestOAIDPermission返回true时请求权限
132 | */
133 | override fun requestOAIDPermission(context: Context, callback: RequestPermissionCallback) {
134 | MdidSdkHelper.requestOAIDPermission(context, object : IPermissionCallbackListener {
135 | override fun onGranted(grPermission: Array) {
136 | callback.onGranted(grPermission)
137 | }
138 |
139 | override fun onDenied(dePermissions: MutableList) {
140 | callback.onDenied(dePermissions)
141 | }
142 |
143 | override fun onAskAgain(asPermissions: MutableList) {
144 | callback.onAskAgain(asPermissions)
145 | }
146 | })
147 | }
148 |
149 | }
--------------------------------------------------------------------------------
/library/lib_2501/.gitignore:
--------------------------------------------------------------------------------
1 | /build
--------------------------------------------------------------------------------
/library/lib_2501/build.gradle.kts:
--------------------------------------------------------------------------------
1 | import com.mai.build_logic.setupLibraryModule
2 |
3 | plugins {
4 | alias(libs.plugins.android.library)
5 | alias(libs.plugins.jetbrains.kotlin.android)
6 | id("build-logic")
7 | }
8 |
9 | setupLibraryModule("2.5.1") {
10 | namespace = "com.mai.oaidviewer.library"
11 | }
--------------------------------------------------------------------------------
/library/lib_2501/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/library/lib_2501/src/main/java/com/mai/oaidviewer/library/OAIDHelper.kt:
--------------------------------------------------------------------------------
1 | package com.mai.oaidviewer.library
2 |
3 | import android.content.Context
4 | import android.util.Log
5 | import com.bun.miitmdid.core.InfoCode
6 | import com.bun.miitmdid.core.MdidSdkHelper
7 | import com.bun.miitmdid.interfaces.IIdentifierListener
8 | import com.bun.miitmdid.interfaces.IPermissionCallbackListener
9 | import com.bun.miitmdid.interfaces.IdSupplier
10 |
11 | class OAIDHelper(context: Context, callback: OAIDCallback) : OAIDImpl(context, callback) {
12 |
13 | override fun init() {
14 | System.loadLibrary("msaoaidsec")
15 |
16 | Thread {
17 | // 加固版本在调用前必须载入SDK安全库,因为加载有延迟,推荐在application中调用loadLibrary方法
18 | try {
19 | Thread.sleep(1000L)
20 | } catch (ignore: Exception) {
21 |
22 | }
23 | if (MdidSdkHelper.SDK_VERSION_CODE != 20240726) {
24 | Log.w(
25 | "OAIDHelper",
26 | "SDK version not match. Current version code is '${MdidSdkHelper.SDK_VERSION_CODE}'"
27 | )
28 | }
29 |
30 | MdidSdkHelper.InitCert(context, loadPemFromAssetFile)
31 |
32 | val listener = object : IIdentifierListener {
33 | override fun onSupport(_suppiler: IdSupplier?) {
34 | callback.onSupport(object : OAIDSupplier {
35 | override fun isSupported(): Boolean {
36 | return _suppiler?.isSupported ?: false
37 | }
38 |
39 | override fun isLimited(): Boolean {
40 | return _suppiler?.isLimited ?: false
41 | }
42 |
43 | /**
44 | * 2.3.0新增,默认返回false
45 | */
46 | override fun isSupportRequestOAIDPermission(): Boolean {
47 | return _suppiler?.isSupportRequestOAIDPermission ?: false
48 | }
49 |
50 | override fun getOAID(): String {
51 | return _suppiler?.oaid ?: ""
52 | }
53 |
54 | override fun getVAID(): String {
55 | return _suppiler?.vaid ?: ""
56 | }
57 |
58 | override fun getAAID(): String {
59 | return _suppiler?.aaid ?: ""
60 | }
61 |
62 | })
63 | }
64 | }
65 |
66 | //(可选)设置InitSDK接口回调超时时间(仅适用于接口为异步),默认值为5000ms.
67 | // 注:请在调用前设置一次后就不再更改,否则可能导致回调丢失、重复等问题
68 | try {
69 | MdidSdkHelper.setGlobalTimeout(5000)
70 | } catch (error: Error) {
71 | error.printStackTrace()
72 | }
73 |
74 | try {
75 | // if x86 throws Error
76 | // MdidSdkHelper.InitSdk(cxt, isSDKLogOn, isGetOAID, isGetVAID, isGetAAID, listener);
77 | val ret = MdidSdkHelper.InitSdk(context, true, true, true, true, listener)
78 | val errMsg: String = "$ret " + when (ret) {
79 | InfoCode.INIT_ERROR_CERT_ERROR -> {
80 | // 证书未初始化或证书无效,SDK内部不会回调onSupport
81 | "cert not init or check not pass"
82 | }
83 |
84 | InfoCode.INIT_ERROR_DEVICE_NOSUPPORT -> {
85 | // 不支持的设备, SDK内部不会回调onSupport
86 | "device not supported"
87 | }
88 |
89 | InfoCode.INIT_ERROR_LOAD_CONFIGFILE -> {
90 | // 加载配置文件出错, SDK内部不会回调onSupport
91 | "failed to load config file"
92 | }
93 |
94 | InfoCode.INIT_ERROR_MANUFACTURER_NOSUPPORT -> {
95 | // 不支持的设备厂商, SDK内部不会回调onSupport
96 | "manufacturer not supported"
97 | }
98 |
99 | InfoCode.INIT_ERROR_SDK_CALL_ERROR -> {
100 | // sdk调用出错, SSDK内部不会回调onSupport
101 | "sdk call error"
102 | }
103 |
104 | InfoCode.INIT_INFO_RESULT_DELAY -> {
105 | // 获取接口是异步的,SDK内部会回调onSupport
106 | "result delay (async)"
107 | }
108 |
109 | InfoCode.INIT_INFO_RESULT_OK -> {
110 | // 获取接口是同步的,SDK内部会回调onSupport
111 | "result ok (sync)"
112 | }
113 |
114 | else ->
115 | ""
116 | }
117 | if (errMsg.isNotEmpty()) {
118 | callback.onText(errMsg)
119 | }
120 | } catch (error: Error) {
121 | error.printStackTrace()
122 | }
123 | }.start()
124 | }
125 |
126 | override fun getSdkVersion(): Pair {
127 | return Pair("2.5.1", MdidSdkHelper.SDK_VERSION_CODE.toString())
128 | }
129 |
130 | /**
131 | * 2.3.0新增,在isSupportRequestOAIDPermission返回true时请求权限
132 | */
133 | override fun requestOAIDPermission(context: Context, callback: RequestPermissionCallback) {
134 | MdidSdkHelper.requestOAIDPermission(context, object : IPermissionCallbackListener {
135 | override fun onGranted(grPermission: Array) {
136 | callback.onGranted(grPermission)
137 | }
138 |
139 | override fun onDenied(dePermissions: MutableList) {
140 | callback.onDenied(dePermissions)
141 | }
142 |
143 | override fun onAskAgain(asPermissions: MutableList) {
144 | callback.onAskAgain(asPermissions)
145 | }
146 | })
147 | }
148 |
149 | }
--------------------------------------------------------------------------------
/settings.gradle.kts:
--------------------------------------------------------------------------------
1 | pluginManagement {
2 | repositories {
3 | gradlePluginPortal()
4 | google()
5 | mavenCentral()
6 | }
7 | includeBuild("build-logic")
8 | }
9 | dependencyResolutionManagement {
10 | repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
11 | repositories {
12 | google()
13 | mavenCentral()
14 | }
15 | }
16 |
17 | include(
18 | ":app", ":library:impl",
19 | ":library:lib_1023",
20 | ":library:lib_1025",
21 | ":library:lib_1026",
22 | ":library:lib_1027",
23 | ":library:lib_1029",
24 | ":library:lib_1030",
25 | ":library:lib_1100",
26 | ":library:lib_1200",
27 | ":library:lib_1201",
28 | ":library:lib_2000",
29 | ":library:lib_2100",
30 | ":library:lib_2200",
31 | ":library:lib_2300",
32 | ":library:lib_2400",
33 | ":library:lib_2500",
34 | ":library:lib_2501"
35 | )
36 |
37 | rootProject.name = "OAIDViewer"
38 |
--------------------------------------------------------------------------------