IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 移动开发 -> [高通SDM450][Android 9.0] 虹软人脸识别因IMEI变化导致授权失败 -> 正文阅读

[移动开发][高通SDM450][Android 9.0] 虹软人脸识别因IMEI变化导致授权失败

虹软人脸识别因IMEI变化导致授权失败

开发平台基本信息

芯片: 高通SDM450
版本: Android 9.0
kernel: msm-4.9

补丁下载地址

https://gitee.com/Hebin320/csdn_patch

前言

在人脸识别终端上,使用人脸识别算法软件进行授权,使得终端具有人脸识别的能力;目前我们的设备接入的人脸识别算法有虹软以及旷视;这两家公司在算法绑定设备的方式上大同小异,都是通过Android标准的api获取到设备的一些硬件信息,例如wifi的mac地址,以太网的mac地址以及IMEI等等;然后将获取的硬件信息传到他们的平台上进行绑定,如果已授权的机器的硬件信息发生改变,那么算法授权就会失效,解决办法就是,要么将硬件信息恢复到授权时候的信息;要么重新授权,而重新授权一个授权码要一百多;所以,当遇到设备终端发生硬件信息改变时,要尽可能找出硬件信息改变的原因,因为这些算法软件是通过Android标准api获取,所以,找到他们获取信息的接口,将接口的返回值修改成统一的返回值,即可解决硬件信息改变的问题。

问题描述

我们的设备终端在使用虹软的算法进行授权时,出现了硬件信息发生改变的情况,通过虹软的后台可以查到授权时是获取终端的IMEI,而授权失败时,获取到的是终端的MEID。

解决方法

虹软获取IMEI的方式,优先是使用getDeviceId,然后再使用getImei,最后使用getMeid;而当设备终端插入的卡是联通、移动或者电信4G卡时,获取的仍然是终端的IMEI;只有当设备插入空白电信卡或者电信2G卡时,才会获取终端的MEID。所以,解决方法就是将getDeviceId的返回值改成一直都返回IMEI,不再根据卡的类型返回IMEI或者MEID;修改文件路径是:

frameworks/opt/telephony/src/java/com/android/internal/telephony/GsmCdmaPhone.java

具体修改patch如下:

diff --git a/src/java/com/android/internal/telephony/GsmCdmaPhone.java b/src/java/com/android/internal/telephony/GsmCdmaPhone.java
old mode 100644
new mode 100755
index 4ab7240..56ac743
--- a/src/java/com/android/internal/telephony/GsmCdmaPhone.java
+++ b/src/java/com/android/internal/telephony/GsmCdmaPhone.java
@@ -1456,21 +1456,22 @@ public class GsmCdmaPhone extends Phone {
     @Override
     public String getDeviceId() {
-        CarrierConfigManager configManager = (CarrierConfigManager)
-                mContext.getSystemService(Context.CARRIER_CONFIG_SERVICE);
-        boolean force_imei = configManager.getConfigForSubId(getSubId())
-                .getBoolean(CarrierConfigManager.KEY_FORCE_IMEI_BOOL);
-
-        if (isPhoneTypeGsm() || force_imei) {
-            return getImei();
-        } else {
-            String id = getMeid();
-            if ((id == null) || id.matches("^0*$")) {
-                loge("getDeviceId(): MEID is not initialized use ESN");
-                id = getEsn();
-            }
-            return id;
-        }
+        // CarrierConfigManager configManager = (CarrierConfigManager)
+                // mContext.getSystemService(Context.CARRIER_CONFIG_SERVICE);
+        // boolean force_imei = configManager.getConfigForSubId(getSubId())
+                // .getBoolean(CarrierConfigManager.KEY_FORCE_IMEI_BOOL);
+
+        // if (isPhoneTypeGsm() || force_imei) {
+            // return getImei();
+        // } else {
+            // String id = getMeid();
+            // if ((id == null) || id.matches("^0*$")) {
+                // loge("getDeviceId(): MEID is not initialized use ESN");
+                // id = getEsn();
+            // }
+            // return id;
+        // }
+		return mImei;
     }
 
     @Override

结尾

差不多有三年的时间没写博客了,自从上次换了工作,从Android应用开发转到Android系统开发之后,就把博客给搁置下了;现在想把这两年多学的东西全都写下来,记录下来;可能更多的会是一些系统层的知识。已经有很长一段时间没去研究过应用开发的一些新知识了,最近也是在恶补应用的知识,现在Android的市场的确不是那么好,但是,我也相信,只要学得精,还是会有出路的,毕竟三十六行,行行出状元。

  移动开发 最新文章
Vue3装载axios和element-ui
android adb cmd
【xcode】Xcode常用快捷键与技巧
Android开发中的线程池使用
Java 和 Android 的 Base64
Android 测试文字编码格式
微信小程序支付
安卓权限记录
知乎之自动养号
【Android Jetpack】DataStore
上一篇文章      下一篇文章      查看所有文章
加:2021-08-03 11:19:29  更:2021-08-03 11:21:40 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/5 19:07:14-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码