[高通SDM450][Android 9.0] 虹软人脸算法WIFI信息变化导致授权失败

news/2025/3/21 20:29:49/

虹软人脸算法WIFI信息变化导致授权失败

  • 开发平台基本信息
    • 补丁下载地址
    • 前言
    • 问题描述
    • 解决方法

开发平台基本信息

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

补丁下载地址

https://gitee.com/Hebin320/csdn_patch

前言

人脸算法授权会获取设备终端的一些硬件信息进行算法绑定,而如果设备终端的信息发生改变算法授权就会失效;上一篇讲到了IMEI发生变化导致虹软算法失效的解决,具体可以看 虹软人脸识别因IMEI变化导致授权失败

问题描述

虹软算法在绑定设备终端的硬件信息中,有保存wifi的硬件信息,而wifi的硬件信息会随着wifi驱动的卸载与加载发生变化,而Android原生的代码中,开关wifi都会卸载、挂载wifi驱动;这使得在使用人脸算法的时候,开关wifi算法会认为设备终端的硬件信息发生了改变。

解决方法

通过问题的分析,可以得出解决方案就是在开关wifi的时候,只有第一次才会去加载wifi驱动,加载成功之后,再开关wifi都不要去卸载以及重新挂载wifi驱动;并且在开机的时候,系统拉起来之前,去开关一次wifi,把wifi驱动挂载。修改文件路径是:

  1. frameworks/opt/net/wifi/libwifi_hal/driver_tool.cpp
  2. frameworks/opt/net/wifi/service/java/com/android/server/wifi/WifiServiceImpl.java

具体修改patch如下:

diff --git a/libwifi_hal/driver_tool.cpp b/libwifi_hal/driver_tool.cpp
old mode 100644
new mode 100755
index 3089ee0..3f2774d
--- a/libwifi_hal/driver_tool.cpp
+++ b/libwifi_hal/driver_tool.cpp
@@ -44,16 +44,33 @@ bool DriverTool::TakeOwnershipOfFirmwareReload() {return true;}+bool isFirstLoad = true;
+bool isLoadDriver = false;
+bool DriverTool::LoadDriver() {
-  return ::wifi_load_driver() == 0;
+  //return ::wifi_load_driver() == 0;
+  if(isFirstLoad){
+	  if(::wifi_load_driver() == 0){
+		  isFirstLoad = false;
+		  isLoadDriver = true;
+		  return true;
+	  }
+	  return false;
+  }else{
+	  isLoadDriver = true;
+	  return true;
+  }}bool DriverTool::UnloadDriver() {
-  return ::wifi_unload_driver() == 0;
+  //return ::wifi_unload_driver() == 0;
+  isLoadDriver = false;
+  return true;}bool DriverTool::IsDriverLoaded() {
-  return ::wifi_unload_driver() != 0;
+  //return ::wifi_unload_driver() != 0;
+  return isLoadDriver;}bool DriverTool::IsFirmwareModeChangeNeeded(int mode) {
diff --git a/service/java/com/android/server/wifi/WifiServiceImpl.java b/service/java/com/android/server/wifi/WifiServiceImpl.java
old mode 100644
new mode 100755
index fc98f4e..27ded35
--- a/service/java/com/android/server/wifi/WifiServiceImpl.java
+++ b/service/java/com/android/server/wifi/WifiServiceImpl.java
@@ -654,7 +654,25 @@ public class WifiServiceImpl extends IWifiManager.Stub {} catch (RemoteException e) {/* ignore - local call */}
-        }
+        }else{
+			try {
+                setWifiEnabled(mContext.getPackageName(), true);
+            } catch (RemoteException e) {
+                /* ignore - local call */
+            }
+			final WifiManager wifiManager = (WifiManager) mContext.getSystemService(Context.WIFI_SERVICE);
+            new Thread(new Runnable() {
+                @Override
+                public void run() {
+                    try {
+                        Thread.sleep(1000);
+                        wifiManager.setWifiEnabled(false);
+                    } catch (InterruptedException e) {
+                        e.printStackTrace();
+                    }
+                }
+            }).start();
+		}}public void handleUserSwitch(int userId) {
-- 

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

相关文章

[高通SDM450][Android9.0]CTA认证--去除某些应用开机使用定位权限

文章目录 开发平台基本信息问题描述解决方法 开发平台基本信息 芯片: SDM450 版本: Android 9.0 kernel: msm-4.9 问题描述 设备在进行入网认证,实验室在测试的时候,发现有应用会在开机启动的时候,使用定位功能,而实验室要求应…

[高通SDM450][Android9.0]adb无法进行remount的解决方案

文章目录 开发平台基本信息问题描述解决方法 开发平台基本信息 芯片: SDM450 版本: Android 9.0 kernel: msm-4.9 问题描述 在调试开发的时候,执行remount可以获得更高的权限,对系统的一些应用或者文件进行删除或替换,达到快速调试的目的&…

SDM450平台移植plsensor(stk3337)

一、硬件原理图,连接如下: 从上述的原理图我们可以得到管脚的连接: SENSOR_I2C_SCL1 --->GPIO14 SENSOR_I2C_SDA1 --->GPIO15 EINT-PS ---> GPIO60 2.1 首先跟FAE获取当前项目的驱动代码: 2.2 如下是在cp侧的代码修改如下&am…

[高通SDM450][Android9.0]user版本uartlog常开

文章目录 开发平台基本信息问题描述解决方法user版本调试串口可输入user版本uartlog常开 开发平台基本信息 芯片: SDM450 版本: Android 9.0 kernel: msm-4.9 问题描述 user版本调试串口默认只输入调试信息,无法输入指令user版本,调试串口日志在开机进…

高通SDM450 ADC读取电池驱动调试

由于项目需要,使用的sdm450模块不带PMIC电源管理的,而项目又需要接电池使用,所以硬件把电池端接到一个ADC口,做了个简单的电池电路,通过ADC读取数值来确定电池电压,然后换算电池电量。 电池驱动流程 Andr…

Ubuntu 16.04 sdm450 modem编译

编译工具与安装位置: Hexgon Tool(2个) 按照默认位置安装就可以。 /home/mazhw/Qualcomm/HEXAGON_Tools llvm 3.5.2.4: /pkg/qct/software/llvm/release/arm 目录下创建目录3.5.2.4,将llvm解压后复制到此处。 gcc-linaro-aarch64-none-elf-4.9-2014.07_linux 安装位…

[高通SDM450][Android9.0]CTA认证--拆分申请权限分组

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

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

虹软人脸识别因IMEI变化导致授权失败 开发平台基本信息补丁下载地址前言问题描述解决方法结尾 开发平台基本信息 芯片: 高通SDM450 版本: Android 9.0 kernel: msm-4.9 补丁下载地址 https://gitee.com/Hebin320/csdn_patch 前言 在人脸识别终端上,使用人脸识别…