android 6.0指纹模块学习 1

本文介绍了如何在Android 6.0虚拟机中进行指纹操作,包括使用adb和telnet命令模拟指纹录入和删除,以及研究HAL层实现指纹功能。通过修改源码,实现了删除指纹的功能,并展示了如何查看录入进度。在调试过程中,遇到的问题及解决办法也进行了分享。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

闲着没事下载6.0的源码看下指纹模块是怎么写,记录一下学习过程。

本篇主要是介绍如何用虚拟机进行指纹相关的操作。以及修改HAL层,提供未实现的功能。

编译成功后,使用emulator打开虚拟机。emulator在这个目录:

prebuilts/android-emulator/linux-x86_64/emulator

emulator -selinux disabled -sysdir out/target/product/generic/

注意把selinux关了,不然要去配置selinux,否则各种权限问题。

进入设置->安全->指纹。
ok,一直next到指纹录入的界面。输入:

adb emu finger touch 1

模拟手去点击传感器。输入一次就录入成功了。此时按power键进入待机再按亮屏,就可以看见keyguard上有一个指纹标志了。再输入adb emu finger touch 1就可以解锁了。

这个命令找了好久,从hal层看到是通过qemu通信的,一直在代码里搜,结果没搜到。后来才发现下载的源码没有qemu,去github里下了一份就能搜到相关的了。最后是google到的。这里有一篇介绍6.0API的也有提及。

http://blog.csdn.net/yuzepeng997/article/details/50477091

1.Install Android SDK Tools Revision 24.3, if you have not done so.
2.Enroll a new fingerprint in the emulator by going to Settings > Security > Fingerprint, then follow the enrollment instructions.
3.Use an emulator to emulate fingerprint touch events with the following command. Use the same command to emulate fingerprint touch events on the lockscreen or in your app.
adb -e emu finger touch <finger_id>
On Windows, you may have to run telnet 127.0.0.1 <emulator-id> followed by finger touch <finger_id>.

也可以通过telnet去执行命令。还有help可以看,不像emu命令,输入错了也没反应。

telnet 127.0.0.1 5554

Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is '^]'.
Android Console: type 'help' for a list of commands
OK

KO: unknown command, try 'help'
help
Android console command help:

    help|h|?         print a list of commands
    event            simulate hardware events
    geo              Geo-location commands
    gsm              GSM related commands
    cdma             CDMA related commands
    kill             kill the emulator instance
    network          manage network settings
    power            power related commands
    quit|exit        quit control session
    redir            manage port redirections
    sms              SMS related commands
    avd              control virtual device execution
    window           manage emulator window
    qemu             QEMU-specific commands
    sensor           manage emulator sensors
    finger           manage emulator finger print

help finger                                               
allows you to touch the emulator finger print sensor

av
有助于手机指纹解锁android开发.1. 用USB OTG线连接指纹识别仪 2. 运行NOEMHost.apk如下图: 3. 点击“Open”按钮,弹出如下5. 使用方法: 5.1 注册指纹:点ID编号输入框,弹出虚拟键盘,输入待注册的ID编号,再按“ENROLL”,同一个手指按3次后即可。 5.2 识别:注册完指纹后,点“Identify”按钮,按手指即可1:N识别 5.3 验证:在ID编号输入框输入待比对的ID号,按手指即可 5.4 删除某个指纹:在ID编号输入框输入待删除的ID号,按“Remove Tmpl”即可 5.5 清空指纹:直接点击“Remove All”按钮即可 5.6 获取已注册的指纹总数:点击“GetEnrollCount”按钮即可 5.7 获取可注册的ID编号:点击“Get Empty ID”按钮即可 5.8 读取指纹图像:点击“Capture Image”按钮,再按手指即可采集到一帧指纹图像并显示 概念解释: ID Note:64字节的数据,可用于对应ID号的详细描述(比如:姓名、身份证号、允许启用某个APP程序的编号等等) 指纹重复检查(Dup Check):用于允许/禁止是否有重复指纹的检测,默认设置是:允许 安全等级(security Level):1-5可设置,数值越大安全等级越高,模块默认设置是:3 自学习功能(Auto Learn):识别成功后将数据库中的该指纹模板数据与当前采集的指纹数据融合后(学习)更新数据库中对应的指纹模板数据。模块默认设置:允许
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值