mumu 模拟器如何模拟指纹识别?

最近在帮朋友解决一些任务时,有些比较复杂的任务需要批量使用模拟器,但是模拟器存在一个缺点,就是缺少很多物理功能,比如说陀螺仪、温度传感器和生物识别模块等等,但是有些任务是需要这些功能的。没有办法,只能自己去想办法解决这些先天缺陷。

由于模拟器本身不存在指纹,因此我们在询问android系统时,对应的系统方法是这个:

package android.hardware.biometrics;public class BiometricManager {@Deprecated@RequiresPermission(USE_BIOMETRIC)@BiometricErrorpublic int canAuthenticate() {@BiometricError final int result = canAuthenticate(mContext.getUserId(),Authenticators.BIOMETRIC_WEAK);FrameworkStatsLog.write(FrameworkStatsLog.AUTH_MANAGER_CAN_AUTHENTICATE_INVOKED,false /* isAllowedAuthenticatorsSet */, Authenticators.EMPTY_SET, result);FrameworkStatsLog.write(FrameworkStatsLog.AUTH_DEPRECATED_API_USED,AUTH_DEPRECATED_APIUSED__DEPRECATED_API__API_BIOMETRIC_MANAGER_CAN_AUTHENTICATE,mContext.getApplicationInfo().uid,mContext.getApplicationInfo().targetSdkVersion);return result;}}

如果能 hook 这个方法,返回 success标志,替代系统告诉使用者,我假装可以进行生物识别(生物识别包含指纹识别和人脸识别),解决完这个问题之后,我们再次需要进入生物验证方法:

@RequiresPermission(USE_BIOMETRIC)public void authenticate(@NonNull CryptoObject crypto,@NonNull CancellationSignal cancel,@NonNull @CallbackExecutor Executor executor,@NonNull AuthenticationCallback callback) {FrameworkStatsLog.write(FrameworkStatsLog.AUTH_PROMPT_AUTHENTICATE_INVOKED,true /* isCrypto */,mPromptInfo.isConfirmationRequested(),mPromptInfo.isDeviceCredentialAllowed(),mPromptInfo.getAuthenticators() != Authenticators.EMPTY_SET,mPromptInfo.getAuthenticators());// Disallow explicitly setting any non-Strong biometric authenticator types.@Authenticators.Types int authenticators = mPromptInfo.getAuthenticators();if (authenticators == Authenticators.EMPTY_SET) {authenticators = Authenticators.BIOMETRIC_STRONG;}final int biometricStrength = authenticators & Authenticators.BIOMETRIC_WEAK;if ((biometricStrength & ~Authenticators.BIOMETRIC_STRONG) != 0) {throw new IllegalArgumentException("Only Strong biometrics supported with crypto");}authenticateInternal(crypto, cancel, executor, callback, mContext.getUserId());}

这个authenticate方法中存在四个参数,其实我们只需要关注AuthenticationCallback这个抽象类,可以查看一下这个抽象类:

public abstract static class AuthenticationCallback extendsBiometricAuthenticator.AuthenticationCallback {// 验证失败时执行@Overridepublic void onAuthenticationError(int errorCode, CharSequence errString) {}// 验证成功时执行public void onAuthenticationSucceeded(AuthenticationResult result) {}}

那么只需要 hook 这个方法,直接使得AuthenticationCallback调用onAuthenticationSucceeded方法即可。

找到了系统需要 hook 的点,那么就可以请出我们的终极武器frida框架了,这里不说明frida框架的入门了,大家可以找找其他参考教程。

我们直接启动frida-server,然后通过frida注入js hook 代码,覆盖掉系统的返回,即可得到我们的答案。比如可以看到结论图:

当然,这只是我的思路,如果有更好的想法和方案,我们可以共同交流,wx:javainstalling, 暗号:指纹。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/855099.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

大模型日报2024-06-18

大模型日报 2024-06-18 大模型资讯 大模型产品 Olvy 3.0:AI加速客户反馈分析 摘要: Olvy 3.0推出AI自动监听和智能标签功能,通过Google Meet集成轻松提取洞察,贴近客户,激发同理心。 PlantIdentify-免费植物识别应用 摘要: PlantI…

Vue3、Element Plus使用v-for循环el-form表单进行校验

在开发中遇到了这样一个需求 有一个form是通过v-for生成出来的&#xff0c;并且数量不确定&#xff0c;每个表单中的字段都需要做校验&#xff0c;就将自己的解决方法记录了下来。 完整代码如下 <template><div class"for-form"><el-button type&quo…

不容小觑的“白纸黑字”:银行重空凭证的风险与防控

一、定义与重要性 定义&#xff1a; 银行重空凭证&#xff0c;也称为重要空白凭证&#xff0c;是银行专业术语&#xff0c;指银行印制的无面额、经银行或单位填写金额并签章后&#xff0c;即具有支取款项效力的空白凭证。 重要性&#xff1a; 它是银行资金支付的重要工具&a…

秋招突击——6/16——复习{(单调队列优化DP)——最大子序和,背包模型——宠物小精灵收服问题}——新作{二叉树的后序遍历}

文章目录 引言复习&#xff08;单调队列优化DP&#xff09;——最大子序和单调队列的基本实现思路——求可移动窗口中的最值总结 背包模型——宠物小精灵收服问题思路分析参考思路分析 新作二叉树的后续遍历加指针调换 总结 引言 复习 &#xff08;单调队列优化DP&#xff09…

华翰传媒集团横店影视基地盛大开业,汇剧视界APP震撼发布

2024年6月1日上午&#xff0c;横店影视华翰传媒集团携手腾烨影视隆、明艺影视重举办了横店影视基地的开业庆典。这一盛事不仅标志着华翰传媒集团在影视行业发展的重要里程碑&#xff0c;更彰显了其深耕影视产业、致力于打造高质量影视内容的决心与目标。 活动盛况空前&#xff…

企业中面试算法岗时会问什么pytorch问题?看这篇就够了!

如果要面试深度学习相关的岗位&#xff0c;JD上一般会明确要求要熟悉pytorch或tensorflow框架&#xff0c;那么会一般问什么相关问题呢&#xff1f; 文章目录 一. 基础知识与概念1.1 PyTorch与TensorFlow的主要区别是什么&#xff1f; 1.2 解释一下PyTorch中的Tensor是什么&…

虹软ArcSoft—真正离线免费的人脸识别SDK

虹软ArcSoft—真正离线免费的人脸识别SDK 高级功能收费 还是很好滴 人证核验功能是C/C的SDK&#xff0c;需要封装为C#&#xff0c;然后暴露为Restful API使用

Linux 网络总是断开问题

环境&#xff1a;华为欧拉 OpenEuler 24 LTS 版本 现象&#xff1a;配置网络后可以连接&#xff0c;但是使用一段时间后自动断开。 问题解决&#xff1a; 系统的 NetworkManager 与 network.service 冲突导致。 1. 关闭并禁用 NetworkManager systemctl stop NetworkManag…

Ardupilot开源代码之ExpressLRS性能实测方法

Ardupilot开源代码之ExpressLRS性能实测方法 1. 源由2. 测试效果3. 测试配置4. 总结5. 参考资料6. 补充 1. 源由 之前一直在讨论ExpressLRS性能的问题&#xff0c;有理论、模拟、实测。 始终缺乏完整的同一次测试的测试数据集&#xff0c;本章节将介绍如何在Ardupilot上进行获…

半监督医学图像分割:基于对抗一致性学习和动态卷积网络的方法| 文献速递-深度学习结合医疗影像疾病诊断与病灶分割

Title 题目 Semi-Supervised Medical Image Segmentation Using Adversarial Consistency Learning and Dynamic Convolution Network 半监督医学图像分割&#xff1a;基于对抗一致性学习和动态卷积网络的方法 01 文献速递介绍 医学图像分割在计算辅助诊断和治疗研究中扮演…

Linux Vim 最全面的教程:从入门到精通

感谢您阅读本文&#xff0c;欢迎“一键三连”。作者定会不负众望&#xff0c;按时按量创作出更优质的内容。 ❤️ 1. 毕业设计专栏&#xff0c;毕业季咱们不慌&#xff0c;上千款毕业设计等你来选。 Vim 是 Linux 系统上最强大的文本编辑器之一&#xff0c;以其高效的编辑功能和…

【css】如何修改input选中历史选项后,自动填充的蓝色背景色

自动填充前&#xff1a; 自动填充后&#xff1a; 解决办法 方法一&#xff1a;设置背景透明 改变input自动填充背景颜色 // 通过拉长过渡时间&#xff0c;和延迟过渡开始时间&#xff0c;掩盖input自动填充背景颜色input:-internal-autofill-previewed,input:-internal-aut…

护眼灯是智商税吗?严防存在四大智商税的劣质护眼灯

护眼台灯这类产品相比大家也是很熟悉了&#xff0c;无论是中小学生的家里还是的婴幼儿的家里都几乎都配备着这样一盏护眼灯&#xff0c;但是随着使用护眼灯的人越来越多&#xff0c;网络上就出现了一些关于护眼灯皮肤色素沉着、视网膜损伤、睡眠障碍等安全问题&#xff0c;随着…

递归:汉诺塔问题III

题目 题目描述 约 19 世纪末&#xff0c;在欧洲的商店中出售一种智力玩具:在一块铜板上有三根杆&#xff0c;最左边的杆自上而下、由小到大顺序串着由 64 个圆盘构成的塔。目的是将最左边杆上的圆盘全部移到右边的杆上,条件是一次只能移动一个圆盘&#xff0c;并且不允许大圆盘…

一文理清GO语言日志库实现开发项目中的日志功能(rotatelogs/zap分析)

一文理清GO语言日志库实现开发项目中的日志功能&#xff08;rotatelogs/zap分析&#xff09; rotatelogs rotatelogs 是一个用于管理日志文件的 Go 语言库&#xff0c;它提供了自动轮换、压缩和删除旧日志文件的功能。这个库可以帮助你更好地管理和维护你的应用程序日志。要使…

《HTML趣味编程》专栏内资源的下载链接

目录 关于专栏 博主简介 专栏内资源的下载链接 写在后面 关于专栏 本专栏将持续更新,至少含有30个案例,后续随着案例的增加可能会涨价,欢迎大家尽早订阅!(订阅后可查看专栏内所有文章,并且可以下载专栏内的所有资源) 博主简介 ⭐ 2024年百度文心智能体大赛 Top1⭐…

[Qt] Qt Creator 编译输出乱码,问题页中的报错、警告内容,编译输出乱码

确保文件编码为"UTF-8"&#xff0c;"如果编码是UTF-8则添加"&#xff0c;如下图&#xff1a; 设置IDE环境语言跟随系统语言&#xff0c;Text codec for tools&#xff1a; "System" 瑞斯拜

frp安装与配置

个人从网上杂乱的信息中学习、试错&#xff0c;记录自己成功配置的方法&#xff0c;避免遗忘 一、frp的下载 因目前无法下载&#xff0c;仅保留下载方法&#xff0c;版本号根据实际修改&#xff0c;目前使用0.54版&#xff0c;不同系统下载不同文件。 wget https://github.c…

docker安装fastdfs详细教程

目录 一、前言 二、安装步骤 1、搜索fastdfs镜像 2、拉取镜像,这里我们用delron/fastdfs安装 3、运行镜像 三.查看或修改配置文件 1、进入storage容器 2、查看 storage.conf 配置文件 3、查看nginx配置文件 四、测试文件上传 一、前言 fastdfs是一个开源的分布式文件系…

AI在医学中神奇应用

2022年11月30日&#xff0c;可能将成为一个改变人类历史的日子——美国人工智能开发机构OpenAI推出了聊天机器人ChatGPT-3.5&#xff0c;将人工智能的发展推向了一个新的高度。2023年11月7日&#xff0c;OpenAI首届开发者大会被称为“科技界的春晚”&#xff0c;吸引了全球广大…