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

news/2024/11/16 2:59:12/

虹软人脸识别因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 {@Overridepublic 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的市场的确不是那么好,但是,我也相信,只要学得精,还是会有出路的,毕竟三十六行,行行出状元。


http://www.ppmy.cn/news/724924.html

相关文章

运输层:TCP拥塞控制

1.运输层:TCP拥塞控制 笔记来源: 湖科大教书匠:TCP的拥塞控制 声明:该学习笔记来自湖科大教书匠,笔记仅做学习参考 网络资源:在计算机网络中的链路容量(即带宽)、交换结点中的缓存和…

[高通SDM450][Android9.0]默认取消dm-verity以及解决OTA校验vbmeta失败问题

文章目录 开发平台基本信息问题描述解决方法 关闭dm-verity引发的问题 开发平台基本信息 芯片: SDM450 版本: Android 9.0 kernel: msm-4.9 问题描述 在user版本增加root权限之后,每次进行remount的时候,总会提示 remount of the / superblock failed…

高通SDM450韦根数据输入过快导致数据丢失问题分析处理

问题: 两款产品都有韦根输入功能,这两款产品分别使用的是SDM450和MSM8953平台,韦根输入的驱动采用同一个,当外部输入韦根数据的时间间隔速度在1ms以内的情况下,SDM450平台会出现概率性丢失数据,而msm8953平台确没有丢…

[高通SDM450][Android9.0]CTA认证--Android6.0以下应用默认不授权

文章目录 开发平台基本信息问题描述解决方法 开发平台基本信息 芯片: SDM450 版本: Android 9.0 kernel: msm-4.9 问题描述 设备在进行入网认证的时候,实验室要求应用在使用特殊权限的时候,需要告知用户,要用户授权才能使用相应的权限&…

高通SDM450 主屏mipi转EDP

主屏通过lt8911exb 将mipi信号转换成EDP信号输出,调试从大的方向上看,主要是两方面,一个是bootloader阶段的lt8911exb初始化,为了让现实过程更完整,需要在lk的display init之前就要将lt8911exb准备好.当lt8911exb准备好…

[高通SDM450][Android9.0]debug串口转通用串口

文章目录 开发平台基本信息问题描述解决方法debug口转普通串口补丁 开发平台基本信息 芯片: SDM450 版本: Android 9.0 kernel: msm-4.9 问题描述 由于硬件起初设计的时候,没有预留通用串口,而usb转串口又不是特别稳定,经常会挂死&#xf…

[高通SDM450][Android9.0]同一套代码兼容不同的emmc

文章目录 开发平台基本信息问题描述解决方法1. 如何计算userdata分区大小2. 兼容不同规格的emmc3.MTP模式显示异常 开发平台基本信息 芯片: SDM450 版本: Android 9.0 kernel: msm-4.9 问题描述 一款设备,经常会出现搭配不同内存的情况,比如216跟464&…

高通SDM450平台配置SPI0接口

一、查看原理图,需要将GPIO_0、GPIO_1、GPIO_2、GPIO_3配置成SPI接口 二、查看安SDM450平台的数据手册,文档号:80-PC173-1,查看相关的手册可知,GPIO_0、GPIO_1、GPIO_2、GPIO_3可以复用成SPI1, 三、查看高通的文档号&a…