libprint2
async fingerprint library of fprint project, shared libraries
https://gitlab.freedesktop.org/libfprint/libfprint
https://gitlab.freedesktop.org/libfprint/libfprint/-/issues/260
https://fprint.freedesktop.org/
https://github.com/ukui/biometric-authentication
API
https://fprint.freedesktop.org/libfprint-dev/api-index.html
https://fprint.freedesktop.org/libfprint-dev/FpDevice.html#fp-device-get-driver
https://blog.csdn.net/wowocpp/article/details/125231288
支持的设备:
https://fprint.freedesktop.org/supported-devices.html
https://github.com/andree182/vfs301
https://github.com/andree182/vfs301/blob/master/libfprint/integrate_vfs301.patch
https://fprint.freedesktop.org/libfprint-dev/libfprint-2-Internal-FpDevice.html
指纹图象识别关键技术的研究
https://www.docin.com/p-1531839336.html
(通信与信息系统专业优秀论文)指纹验证系统及其关键技术研究
https://www.docin.com/p-306834025.html
编译
- 什么是meson
Meson 旨在开发最具可用性和快速的构建系统。提供简单但强大的声明式语言用来描述构建。原生支持最新的工具和框架,如 Qt5 、代码覆盖率、单元测试和预编译头文件等。利用一组优化技术来快速变异代码,包括增量编译和完全编译。
-
安装meson
注意:meson安装前必须确认是否已经安装python3.5及以上版本;因为meson依赖于python3和ninja
2.1 安装python3和ninja: sudo apt-get install python3 python3-pip ninja-build
安装Python3
sudo apt install -y python3 python3-dev python3-pip build-essential
Ubuntu18.04对应的python3版本应该为3.6
修改默认python源
检查默认的python版本
python -V
默认情况版本为python2.7
sudo cp /usr/bin/python /usr/bin/python_bak #备份默认的python文件
sudo rm /usr/bin/python #移除
sudo ln -s /usr/bin/python3.6 /usr/bin/python #使用软链接
再次检查python版本
python -V
版本提示为3.6.x
2.3 安装meson:pip3 install --user meson
XXXX@ubuntu:~/study/enviroment$ export PATH=~/.local/bin:$PATH
XXXX@ubuntu:~/study/enviroment$ meson -v
echo ‘export PATH=/home/jack/.local/bin:$PATH’ >>~/.bashrc
$proxychains4 -q git clone https://gitlab.freedesktop.org/libfprint/libfprint.git
$cd libfprint
$meson build -D gtk-examples=false # 预编译,可能会有报错,你要确保如下组件已经安装:gcc、pkg-config、glib-2.0、gio-unix-2.0、gusb、cairo、pixman-1、nss、udev、gdb、valgrind
$ninja -C build # 会有关于/usr/include/stdlib.h的报错,我没理会,继续安装
$sudo meson install -C build # 安装
/usr/bin/dbus-monitor interface=org.freedesktop.Notifications
/usr/bin/ukui-search-systemdbus
/var/lib/biometric-auth/biometric.db
libusb_init
bio_status_changed_callback
bio_status_changed_callback = gdbus_signal_status_changed;
bio_usb_device_hot_plug_callback = gdbus_usb_device_hot_plug_callback;
biometric_common.c:1599:2: warning: ‘libusb_set_debug’ is deprecated: Use libusb_set_option instead [-Wdeprecated-declarations]
1599 | libusb_set_debug(ctx, LIBUSB_LOG_LEVEL_WARNING);
| ^~~~~~~~~~~~~~~~
LIBUSB_LOG_LEVEL_WARNING
安装 VMWARE TOOL
https://blog.csdn.net/xiaopangcame/article/details/122832563
编译
libfprint-1.90.1
Run-time dependency gusb found: NO (tried pkgconfig and cmake)
meson.build:82:0: ERROR: Dependency “gusb” not found, tried pkgconfig and cmake
sudo apt-get install libgusb-dev
Found CMake: /usr/bin/cmake (3.16.3)
Run-time dependency nss found: NO (tried pkgconfig and cmake)
meson.build:135:12: ERROR: Problem encountered: NSS is required for the URU4000/URU4500 driver
A full log can be found at /mnt/hgfs/kylin_vm_share/libfprint-1.90.1/build/meson-logs/meson-log.txt
如果是Ubuntu也可以,为什么不试试sudo apt-get install libnss3*?这将安装/更新从libnss3开始的所有软件包。据我所知这是最简单的方法。详细地说,加-v。
如果你想确保有关启动与libnss3包真的是你想要什么,用dpkg -l libnss3*列出所有的包开始libnss3,并使用apt show package-name检查每个的描述。
sudo apt-get install libnss3-dev
Found CMake: /usr/bin/cmake (3.16.3)
Build-time dependency gobject-introspection-1.0 found: NO (tried pkgconfig and c make)
libfprint/meson.build:311:4: ERROR: Dependency “gobject-introspection-1.0” not f ound, tried pkgconfig and cmake
sudo apt-get install libgirepository1.0-dev
Program gtkdoc-scan found: NO
doc/meson.build:26:6: ERROR: Program ‘gtkdoc-scan’ not found
sudo apt-get install gtk-doc-tools
Program valgrind found: NO
sudo apt-get install valgrind
490 cd vmware-tools-distrib/
491 ls
492 sudo ./vmware-install.pl
493 ls
494 cd /mnt/hgfs/kylin_vm_share/
495 ls
496 tar xvf libfprint-1.90.1.tar.xz
497 ls
498 cd libfprint-1.90.1/
499 ls
500 meson build
501 sudo apt-get install libgusb-dev
502 meson build
503 sudo apt-get install libnss3-dev
504 meson build
505 sudo apt-get install libgirepository1.0-dev
506 meson build
507 sudo apt-get install libgtk2.0-doc
508 meson build
509 sudo apt-get install libgtk2.0-dev
510 meson build
511 sudo apt-get install gtkdoc-scan
512*
513 meson build
514 sudo apt-get install valgrind
515 history
[113/114] Linking target tests/test-fpi-assembling
./usr/lib/x86_64-linux-gnu/libfprint.so.0.0.0
./usr/lib/x86_64-linux-gnu/libfprint-2.so
./usr/lib/x86_64-linux-gnu/libfprint-2.so.2
./usr/lib/x86_64-linux-gnu/libfprint.so.0
./usr/lib/x86_64-linux-gnu/libfprint-2-tod.so.1
./usr/lib/x86_64-linux-gnu/pkgconfig/libfprint-2.pc
./usr/lib/x86_64-linux-gnu/libfprint-2.so.2.0.0
./usr/include/libfprint-2
./usr/share/doc/libfprint-2-dev
./usr/share/doc/libfprint-2-tod1
./usr/share/doc/libfprint-2-2
./usr/share/doc/libfprint0
./usr/share/lintian/overrides/libfprint-2-2
./usr/share/lintian/overrides/libfprint0
./var/lib/dpkg/info/libfprint-2-tod1:amd64.triggers
./var/lib/dpkg/info/libfprint-2-tod1:amd64.symbols
./var/lib/dpkg/info/libfprint-2-2:amd64.postinst
./var/lib/dpkg/info/libfprint-2-2:amd64.triggers
./var/lib/dpkg/info/libfprint-2-tod1:amd64.md5sums
./var/lib/dpkg/info/libfprint0:amd64.list
./var/lib/dpkg/info/libfprint-2-2:amd64.symbols
./var/lib/dpkg/info/libfprint0:amd64.triggers
./var/lib/dpkg/info/libfprint-2-dev.md5sums
./var/lib/dpkg/info/libfprint-2-2:amd64.list
./var/lib/dpkg/info/libfprint0:amd64.symbols
./var/lib/dpkg/info/libfprint-2-tod1:amd64.shlibs
./var/lib/dpkg/info/libfprint0:amd64.postinst
./var/lib/dpkg/info/libfprint-2-dev.list
./var/lib/dpkg/info/libfprint0:amd64.shlibs
./var/lib/dpkg/info/libfprint-2-2:amd64.md5sums
./var/lib/dpkg/info/libfprint-2-2:amd64.shlibs
./var/lib/dpkg/info/libfprint0:amd64.md5sums
./var/lib/dpkg/info/libfprint-2-tod1:amd64.list
11
依赖的东西
objdump -x ccore3003-amd64.so |grep NEEDED
NEEDED libpthread.so.0
NEEDED libc.so.6
22
objdump -x ccore3003-amd64.so
ldd ccore3003-amd64.so
linux-vdso.so.1 (0x00007ffd4131b000)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f49c7bc4000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f49c79d2000)
/lib64/ld-linux-x86-64.so.2 (0x00007f49c7e15000)
33
SYMBOL TABLE:
00000000000001c8 l d .note.gnu.build-id 0000000000000000 .note.gnu.build-id
00000000000001f0 l d .gnu.hash 0000000000000000 .gnu.hash
00000000000004a0 l d .dynsym 0000000000000000 .dynsym
0000000000001250 l d .dynstr 0000000000000000 .dynstr
0000000000001bf8 l d .gnu.version 0000000000000000 .gnu.version
0000000000001d20 l d .gnu.version_r 0000000000000000 .gnu.version_r
0000000000001d60 l d .rela.dyn 0000000000000000 .rela.dyn
0000000000002270 l d .rela.plt 0000000000000000 .rela.plt
0000000000002a20 l d .init 0000000000000000 .init
0000000000002a40 l d .plt 0000000000000000 .plt
0000000000002f70 l d .plt.got 0000000000000000 .plt.got
0000000000002f80 l d .text 0000000000000000 .text
0000000000007a40 l d .fini 0000000000000000 .fini
0000000000007a50 l d .rodata 0000000000000000 .rodata
0000000000009e08 l d .eh_frame_hdr 0000000000000000 .eh_frame_hdr
0000000000009fc8 l d .eh_frame 0000000000000000 .eh_frame
000000000020ac48 l d .init_array 0000000000000000 .init_array
000000000020ac50 l d .fini_array 0000000000000000 .fini_array
000000000020ac58 l d .jcr 0000000000000000 .jcr
000000000020ac60 l d .data.rel.ro 0000000000000000 .data.rel.ro
000000000020aca0 l d .dynamic 0000000000000000 .dynamic
000000000020ae70 l d .got 0000000000000000 .got
000000000020b000 l d .got.plt 0000000000000000 .got.plt
000000000020b2a8 l d .data 0000000000000000 .data
000000000020b2c0 l d .bss 0000000000000000 .bss
0000000000000000 l d .comment 0000000000000000 .comment
0000000000000000 l d .debug_aranges 0000000000000000 .debug_aranges
0000000000000000 l d .debug_info 0000000000000000 .debug_info
0000000000000000 l d .debug_abbrev 0000000000000000 .debug_abbrev
0000000000000000 l d .debug_line 0000000000000000 .debug_line
0000000000000000 l d .debug_str 0000000000000000 .debug_str
0000000000000000 l d .debug_ranges 0000000000000000 .debug_ranges
0000000000000000 l df *ABS* 0000000000000000 crtstuff.c
000000000020ac58 l O .jcr 0000000000000000 __JCR_LIST__
0000000000002f80 l F .text 0000000000000000 deregister_tm_clones
0000000000002fc0 l F .text 0000000000000000 register_tm_clones
0000000000003010 l F .text 0000000000000000 __do_global_dtors_aux
000000000020b2c0 l O .bss 0000000000000001 completed.7594
000000000020ac50 l O .fini_array 0000000000000000 __do_global_dtors_aux_fini_array_entry
0000000000003050 l F .text 0000000000000000 frame_dummy
000000000020ac48 l O .init_array 0000000000000000 __frame_dummy_init_array_entry
0000000000000000 l df *ABS* 0000000000000000 drive_realization.c
000000000020ac60 l O .data.rel.ro 0000000000000020 bio_drv_demo_id_table
000000000020b2e0 l O .bss 0000000000000030 found_head.14029
0000000000000000 l df *ABS* 0000000000000000 drive_internal.c
0000000000000000 l df *ABS* 0000000000000000 close.c
0000000000000000 l df *ABS* 0000000000000000 drive_fingerprint_module.c
000000000020ac80 l O .data.rel.ro 0000000000000020 bio_drv_demo_id_table
0000000000000000 l df *ABS* 0000000000000000 cc_usb.c
0000000000005a58 l F .text 0000000000000076 libusb_fill_bulk_transfer
00000000000071e2 l F .text 00000000000001c7 find_fid_by_name
0000000000000000 l df *ABS* 0000000000000000 cc_log.c
000000000020b2b8 l O .data 0000000000000004 nShowLog.3061
0000000000009df8 l O .rodata 000000000000000e __FUNCTION__.3074
0000000000000000 l df *ABS* 0000000000000000 crtstuff.c
000000000000a6b0 l O .eh_frame 0000000000000000 __FRAME_END__
000000000020ac58 l O .jcr 0000000000000000 __JCR_END__
0000000000000000 l df *ABS* 0000000000000000
000000000020b2a8 l O .data 0000000000000000 __dso_handle
000000000020aca0 l O .dynamic 0000000000000000 _DYNAMIC
0000000000009e08 l .eh_frame_hdr 0000000000000000 __GNU_EH_FRAME_HDR
000000000020b2c0 l O .data 0000000000000000 __TMC_END__
000000000020b000 l O .got.plt 0000000000000000 _GLOBAL_OFFSET_TABLE_
0000000000006137 g F .text 000000000000058f sync_trans
000000000020b574 g O .bss 0000000000000004 g_nOutVerifyCnt
0000000000000000 *UND* 0000000000000000 bio_sto_disconnect_db
0000000000000000 *UND* 0000000000000000 bio_set_notify_mid
000000000000375f g F .text 000000000000043b bio_drv_demo_ops_enroll
0000000000000000 F *UND* 0000000000000000 free@@GLIBC_2.2.5
0000000000000000 F *UND* 0000000000000000 putchar@@GLIBC_2.2.5
0000000000005c93 g F .text 00000000000000cd fp_only_check_exist
0000000000000000 *UND* 0000000000000000 libusb_open
0000000000006797 g F .text 0000000000000845 read_msg_cb
0000000000000000 *UND* 0000000000000000 g_malloc
0000000000000000 w *UND* 0000000000000000 _ITM_deregisterTMCloneTable
000000000020b340 g O .bss 0000000000000004 g_nClaim
000000000020b328 g O .bss 0000000000000008 gp_fpi_usb_ctx
0000000000007711 g F .text 00000000000000d5 ccfp_multi_match
000000000000341e g F .text 0000000000000062 bio_drv_demo_ops_free
0000000000005332 g F .text 000000000000003f demo_device_discover
00000000000059d5 g F .text 0000000000000083 ops_configure
0000000000000000 F *UND* 0000000000000000 puts@@GLIBC_2.2.5
0000000000000000 F *UND* 0000000000000000 vsnprintf@@GLIBC_2.2.5
000000000020b700 g O .bss 0000000000000020 s_match_pass_name
0000000000003626 g F .text 0000000000000094 bio_drv_demo_ops_close
000000000020b2bc g .data 0000000000000000 _edata
0000000000005d60 g F .text 00000000000001ae fp_init
00000000000073d9 g F .text 0000000000000027 ccfp_del_fingerByName
00000000000053f3 g F .text 000000000000025d demo_finger_status_check
000000000020b330 g O .bss 0000000000000008 gp_c10_device
0000000000000000 *UND* 0000000000000000 bio_print_debug
0000000000007a40 g F .fini 0000000000000000 _fini
0000000000000000 F *UND* 0000000000000000 strlen@@GLIBC_2.2.5
00000000000036ba g F .text 00000000000000a5 reset_device
00000000000074ac g F .text 000000000000011c get_free_fid
0000000000000000 *UND* 0000000000000000 bio_get_dev_status
0000000000000000 *UND* 0000000000000000 libusb_release_interface
0000000000000000 F *UND* 0000000000000000 __stack_chk_fail@@GLIBC_2.4
0000000000004ab8 g F .text 0000000000000387 bio_drv_demo_ops_clean
0000000000000000 F *UND* 0000000000000000 printf@@GLIBC_2.2.5
0000000000000000 *UND* 0000000000000000 bio_dev_is_enable
0000000000004022 g F .text 0000000000000434 bio_drv_demo_ops_identify
0000000000000000 *UND* 0000000000000000 libusb_detach_kernel_driver
0000000000000000 *UND* 0000000000000000 libusb_close
0000000000000000 F *UND* 0000000000000000 snprintf@@GLIBC_2.2.5
00000000000075c8 g F .text 0000000000000078 ccfp_enroll
0000000000000000 F *UND* 0000000000000000 gettimeofday@@GLIBC_2.2.5
000000000020b2b0 g O .data 0000000000000004 g_nSelFid
0000000000007400 g F .text 0000000000000010 ccfp_del_all_fingers
0000000000000000 F *UND* 0000000000000000 memset@@GLIBC_2.2.5
0000000000000000 *UND* 0000000000000000 bio_get_ops_result
0000000000000000 *UND* 0000000000000000 libusb_get_config_descriptor
0000000000004456 g F .text 0000000000000662 bio_drv_demo_ops_search
0000000000000000 *UND* 0000000000000000 bio_get_notify_mid_mesg
00000000000077e6 g F .text 0000000000000042 ccfp_show_log
0000000000000000 *UND* 0000000000000000 libusb_get_configuration
000000000020b728 g O .bss 0000000000000008 bio_drv_demo_ops_detach
0000000000005208 g F .text 000000000000012a bio_drv_demo_ops_get_notify_mid_mesg
0000000000000000 F *UND* 0000000000000000 srand@@GLIBC_2.2.5
000000000020b6ec g O .bss 0000000000000004 g_bMatchStatus
000000000020b738 g O .bss 0000000000000004 g_enrolled_cnt
0000000000000000 F *UND* 0000000000000000 strcmp@@GLIBC_2.2.5
0000000000005371 g F .text 0000000000000037 demo_buf_alloc
0000000000000000 w *UND* 0000000000000000 __gmon_start__
0000000000003b9a g F .text 0000000000000488 bio_drv_demo_ops_verify
000000000020b560 g O .bss 0000000000000004 g_nVerifyCnt
0000000000000000 F *UND* 0000000000000000 memcpy@@GLIBC_2.14
0000000000003080 g F .text 000000000000028d demo_ops_configure
0000000000000000 *UND* 0000000000000000 bio_set_ops_result
0000000000005ace g F .text 00000000000001c5 open_c10_device
0000000000000000 *UND* 0000000000000000 libusb_get_device_list
0000000000000000 F *UND* 0000000000000000 time@@GLIBC_2.2.5
0000000000000000 *UND* 0000000000000000 libusb_kernel_driver_active
00000000000073a9 g F .text 0000000000000030 ccfp_del_fingerByFid
0000000000000000 *UND* 0000000000000000 libusb_alloc_transfer
0000000000000000 F *UND* 0000000000000000 malloc@@GLIBC_2.2.5
000000000020b568 g O .bss 000000000000000a g_bVerifyIds
0000000000000000 *UND* 0000000000000000 bio_sto_connect_db
0000000000000000 *UND* 0000000000000000 bio_get_empty_driver_id
000000000020b588 g O .bss 0000000000000004 g_sensor_max_fig_cnt
000000000020b6e8 g O .bss 0000000000000004 g_bMatching
000000000020b740 g .bss 0000000000000000 _end
00000000000071b2 g F .text 0000000000000010 ccfp_reset
0000000000005165 g F .text 00000000000000a3 bio_drv_demo_ops_get_ops_result_mesg
00000000000058c2 g F .text 0000000000000020 Demo_GeneralizeTemplate
000000000020b5a0 g O .bss 0000000000000140 g_enrolled_finger_names
000000000000769a g F .text 0000000000000010 ccfp_cancel_enroll
00000000000076aa g F .text 0000000000000067 ccfp_match
0000000000000000 *UND* 0000000000000000 bio_set_dev_status
000000000020b348 g O .bss 0000000000000004 g_bTouched
0000000000006fdc g F .text 00000000000001d6 ccfp_cmd
000000000020b2bc g .bss 0000000000000000 __bss_start
0000000000005f0e g F .text 00000000000000d2 fp_exit
0000000000000000 *UND* 0000000000000000 bio_sto_new_feature_info
000000000000330d g F .text 0000000000000061 bio_drv_demo_ops_driver_init
000000000000336e g F .text 00000000000000b0 bio_drv_demo_ops_discover
0000000000007828 g F .text 000000000000014d CCPrintf
000000000020b320 g O .bss 0000000000000004 g_nSyscRunning
00000000000053a8 g F .text 0000000000000023 demo_buf_free
000000000020b578 g O .bss 000000000000000a g_bOutVerifyIds
0000000000000000 *UND* 0000000000000000 libusb_free_transfer
0000000000000000 *UND* 0000000000000000 libusb_init
0000000000000000 *UND* 0000000000000000 libusb_get_device_descriptor
0000000000000000 *UND* 0000000000000000 bio_set_notify_abs_mid
000000000020b34c g O .bss 0000000000000004 g_bEnrolling
0000000000000000 F *UND* 0000000000000000 access@@GLIBC_2.2.5
0000000000000000 *UND* 0000000000000000 libusb_claim_interface
0000000000007975 g F .text 00000000000000c9 printTddlData
0000000000000000 w *UND* 0000000000000000 _Jv_RegisterClasses
000000000020b730 g O .bss 0000000000000008 bio_drv_demo_ops_attach
0000000000005fe0 g F .text 0000000000000157 find_c10_device
0000000000000000 *UND* 0000000000000000 bio_sto_get_feature_info
0000000000005650 g F .text 0000000000000272 demo_finger_capture
0000000000000000 *UND* 0000000000000000 bio_sto_clean_feature_info
000000000020b584 g O .bss 0000000000000004 g_fp_chip_id
00000000000058e2 g F .text 00000000000000b2 Demo_ExtractFeature
0000000000000000 *UND* 0000000000000000 bio_sto_new_feature_sample
0000000000000000 *UND* 0000000000000000 bio_set_ops_abs_result
0000000000007410 g F .text 000000000000009c ccfp_rename
000000000020b360 g O .bss 0000000000000200 g_szRenameBuffer
0000000000000000 F *UND* 0000000000000000 sprintf@@GLIBC_2.2.5
000000000020b338 g O .bss 0000000000000008 gp_c10_handle
0000000000000000 *UND* 0000000000000000 libusb_submit_transfer
000000000020b344 g O .bss 0000000000000001 g_cIns
0000000000000000 w *UND* 0000000000000000 _ITM_registerTMCloneTable
000000000020b58c g O .bss 0000000000000004 g_sensor_max_enroll_count
000000000020b720 g O .bss 0000000000000008 g_transfer
00000000000071d2 g F .text 0000000000000010 ccfp_get_enroll_ids
0000000000000000 *UND* 0000000000000000 bio_get_notify_mid
00000000000066c6 g F .text 00000000000000d1 fpc_cmd_send_msg_cb
000000000020b2b4 g O .data 0000000000000004 g_nMatchFid
000000000000510d g F .text 0000000000000058 bio_drv_demo_ops_get_dev_status_mesg
0000000000007640 g F .text 000000000000005a ccfp_is_touched
0000000000000000 w F *UND* 0000000000000000 __cxa_finalize@@GLIBC_2.2.5
0000000000002a20 g F .init 0000000000000000 _init
0000000000000000 *UND* 0000000000000000 libusb_handle_events
0000000000005994 g F .text 0000000000000041 Demo_Verify
0000000000004e3f g F .text 00000000000002ce bio_drv_demo_ops_stop_by_user
000000000020b590 g O .bss 000000000000000a g_enrolled_finger_ids
00000000000053cb g F .text 0000000000000028 demo_buf_clean
0000000000003480 g F .text 00000000000001a6 bio_drv_demo_ops_open
0000000000000000 F *UND* 0000000000000000 rand@@GLIBC_2.2.5
000000000020b6e0 g O .bss 0000000000000008 g_llStatus
0000000000000000 F *UND* 0000000000000000 usleep@@GLIBC_2.2.5
0000000000000000 *UND* 0000000000000000 bio_get_ops_timeout_ms
00000000000071c2 g F .text 0000000000000010 ccfp_get_sensor_info
0000000000000000 *UND* 0000000000000000 bio_sto_set_feature_info
ccore3003-amd64.c
ccore3003-amd64
jack@jack-VMware-Virtual-Platform:~/code_work/test/biometric-authentication-0.9.70$ ./autogen.sh
Regenerating autotools files
Copying file ABOUT-NLS
Copying file config.rpath
Creating directory m4
Copying file m4/codeset.m4
Copying file m4/fcntl-o.m4
Copying file m4/gettext.m4
Copying file m4/glibc2.m4
Copying file m4/glibc21.m4
Copying file m4/iconv.m4
Copying file m4/intdiv0.m4
Copying file m4/intl.m4
Copying file m4/intldir.m4
Copying file m4/intlmacosx.m4
Copying file m4/intmax.m4
Copying file m4/inttypes-pri.m4
Copying file m4/inttypes_h.m4
Copying file m4/lcmessage.m4
Copying file m4/lib-ld.m4
Copying file m4/lib-link.m4
Copying file m4/lib-prefix.m4
Copying file m4/lock.m4
Copying file m4/longlong.m4
Copying file m4/nls.m4
Copying file m4/po.m4
Copying file m4/printf-posix.m4
Copying file m4/progtest.m4
Copying file m4/size_max.m4
Copying file m4/stdint_h.m4
Copying file m4/threadlib.m4
Copying file m4/uintmax_t.m4
Copying file m4/visibility.m4
Copying file m4/wchar_t.m4
Copying file m4/wint_t.m4
Copying file m4/xsize.m4
Copying file po/Makefile.in.in
Copying file po/Makevars.template
Copying file po/Rules-quot
Copying file po/boldquot.sed
Copying file po/en@boldquot.header
Copying file po/en@quot.header
Copying file po/insert-header.sin
Copying file po/quot.sed
Copying file po/remove-potcdate.sin
libtoolize: putting auxiliary files in '.'.
libtoolize: copying file './ltmain.sh'
libtoolize: Consider adding 'AC_CONFIG_MACRO_DIRS([m4])' to configure.ac,
libtoolize: and rerunning libtoolize and aclocal.
libtoolize: Consider adding '-I m4' to ACLOCAL_AMFLAGS in Makefile.am.
libtoolize: 'AC_PROG_RANLIB' is rendered obsolete by 'LT_INIT'
configure.ac:11: installing './compile'
configure.ac:16: installing './config.guess'
configure.ac:16: installing './config.sub'
configure.ac:6: installing './install-sh'
configure.ac:6: installing './missing'
Makefile.am: installing './INSTALL'
src/Makefile.am: installing './depcomp'
src/drivers/community-multidevice/drivers/Makefile.am:105: error: bad characters in variable name 'ccore3003-amd64_la_SOURCES'
src/drivers/community-multidevice/drivers/Makefile.am:106: error: bad characters in variable name 'ccore3003-amd64_la_INCLUDE'
src/drivers/community-multidevice/drivers/Makefile.am:107: error: bad characters in variable name 'ccore3003-amd64_la_CFLAGS'
src/drivers/community-multidevice/drivers/Makefile.am:108: error: bad characters in variable name 'ccore3003-amd64_la_LDFLAGS'
src/drivers/community-multidevice/drivers/Makefile.am:21: error: 'ccore3003-amd64.la' is not a standard libtool library name
src/drivers/community-multidevice/drivers/Makefile.am:21: did you mean 'libccore3003-amd64.la'?
src/drivers/community-multidevice/drivers/Makefile.am:105: warning: variable 'ccore3003-amd64_la_SOURCES' is defined but no program or
src/drivers/community-multidevice/drivers/Makefile.am:105: library has 'ccore3003-amd64_la' as canonical name (possible typo)
src/drivers/community-multidevice/drivers/Makefile.am:108: warning: variable 'ccore3003-amd64_la_LDFLAGS' is defined but no program or
src/drivers/community-multidevice/drivers/Makefile.am:108: library has 'ccore3003-amd64_la' as canonical name (possible typo)
autoreconf: automake failed with exit status: 1
jack@jack-VMware-Virtual-Platform:~/code_work/test/biometric-authentication-0.9.70$ ls
1111
libusb_open
gp_fpi_usb_ctx
libusb_release_interface
libusb_detach_kernel_driver
libusb_close
ccfp_enroll
ccfp_del_all_fingers
libusb_get_config_descriptor
libusb_get_configuration
open_c10_device
libusb_get_device_list
libusb_kernel_driver_active
ccfp_del_fingerByFid
libusb_alloc_transfer
libusb_free_transfer
libusb_init
libusb_get_device_descriptor
libusb_claim_interface
g_fp_chip_id
libusb_submit_transfer
ccfp_get_enroll_ids
libusb_handle_events
usb
apt list --installed |grep usb
WARNING: apt does not have a stable CLI interface. Use with caution in scripts.
gir1.2-gusb-1.0/10.1,now 0.3.4-0.1 amd64 [installed,automatic]
kylin-usb-creator/10.1,now 1.1.0-11kord amd64 [installed]
libgusb-dev/10.1,now 0.3.4-0.1 amd64 [installed]
libgusb2/10.1,now 0.3.4-0.1 amd64 [installed,automatic]
libusb-1.0-0-dev/10.1,now 2:1.0.23-2build1 amd64 [installed]
libusb-1.0-0/10.1,now 2:1.0.23-2build1 amd64 [installed,automatic]
libusbmuxd6/10.1,now 2.0.1-2 amd64 [installed,automatic]
usb-modeswitch-data/10.1,now 20191128kord1 all [installed]
usb-modeswitch/10.1,now 2.6.1kord1 amd64 [installed]
usb.ids/10.1,now 2020.03.19-1 all [installed,automatic]
usbutils/now 1:012-2 amd64 [installed,upgradable to: 1:012-2kylin1]
./var/lib/biometric-auth/biometric.db
1
That said, please enable debug logging (see fprintd README). Then re-run the test, and paste the result here. You can also set FP_DEBUG_TRANSFER=1 (i.e. also add Environment=FP_DEBUG_TRANSFER=1) to get dump of the USB transfers.
2
dpkg -l | grep fprint
Could you please run fprintd with debug enabled (see https://gitlab.freedesktop.org/libfprint/fprintd/-/blob/master/README), then attach the log from fprintd. You could also set FP_DEBUG_TRANSFER=1 for some more information.
Also, really need to make sure you have the latest libfprint version (i.e. 1.94.3).
I’ve updated libfprint and fprintd, apt list --installed now shows these packages:
fprintd/now 1.94.2-1 amd64 [installed,local]
libfprint-2-2/now 1:1.94.3+tod1-0ubuntu1 amd64 [installed,local]
For anyone visiting this thread in the future, I’ve installed them using .deb pre-release freeze packages from these sources:
https://launchpad.net/ubuntu/+source/libfprint
https://launchpad.net/ubuntu/+source/fprintd
Content of /proc/$PID/maps (before fingerprint enroll, after it these libs disappear):
Output of lsof (before fingerprint enroll, after it these libs disappear):
The log of fprintd-enroll with FP_DEBUG_TRANSFER=1:
11
Choose the finger to enroll:
[0] left thumb
[1] left index
[2] left middle
[3] left ring
[4] left little
[5] right thumb
[6] right index
[7] right middle
[8] right ring
[9] right little
> 3
(process:9712): libfprint-context-DEBUG: 15:59:21.774: No driver found for USB device 0002:1D6B
(process:9712): libfprint-context-DEBUG: 15:59:21.776: No driver found for USB device 2547:2541
(process:9712): libfprint-context-DEBUG: 15:59:21.777: No driver found for USB device 0002:0E0F
(process:9712): libfprint-context-DEBUG: 15:59:21.778: No driver found for USB device 0003:0E0F
(process:9712): libfprint-context-DEBUG: 15:59:21.779: No driver found for USB device 0001:1D6B
(process:9712): libfprint-WARNING **: 15:59:21.779: No devices detected.
1
dpkg -l | grep gusb
ii gir1.2-gusb-1.0:amd64 0.3.4-0.1 amd64 GObject introspection data for libgusb
ii libgusb-dev 0.3.4-0.1 amd64 GLib wrapper around libusb1 - development files
ii libgusb2:amd64 0.3.4-0.1 amd64 GLib wrapper around libusb1
sudo /etc/init.d/biometric-authentication restart
永久配置DNS
#vim /etc/systemd/resolved.conf
使用如下命令重启网络服务。
root@kylinvm:~# /etc/init.d/networking force-reload
Reloading networking configuration (via systemctl): networking.service.
root@kylinvm:~# /etc/init.d/networking restart
Restarting networking (via systemctl): networking.service.
root@kylinvm:~#
Are you sure that’s the actual driver? WUDFrd is just the generic user-mode wrapper. You should be looking for a dll (usually referenced somewhere in the windows registry in a path ending with WinBio\Configurations\0\SensorAdapterBinary)
fp_image_device_class_init
fp_image_device_start_capture_action
fp_device_class->enroll = fp_image_device_start_capture_action;
./usr/lib/x86_64-linux-gnu/libfprint-2.so.2
8-bit grayscale
支持的设备:
Digital Persona U.are.U 4000/4000B/4500 -----
1英寸等于2.56厘米。
出图时,dpi的数量表示:1英寸包含n个dpi(像素)
1
本实验所使用的指纹输入设备是Veridicom公司推出的第三代半导体指纹传感器FPS200。获取的图像是256级灰度图像,大小为256×300象素,分辨率为500dpi。原始指纹图像如图6所示。下面对指纹图像进行预处理,并给出实验结果。
指纹传感器NB-1010-U和NB-2020-U的分辨率为46080像素,像素密度为385ppi,采用了有源热敏技术来获取指纹图像。
NB-1010-U是一款高性能面状式区域扫描指纹识别传感器模块
上述指纹传感器集成于PCB板,尺寸为25.2 x 19.0 mm
1
虽然大家都认为两个人不可能会有完全相同的指纹,但纽约大学坦登工程学院(New York University Tandon School of Engineering;NYU Tandon)与密西根大学(Michigan State University)的研究人员现,只要指纹有一部份的相似性,对于智能手机与其他电子产品所使用的安全识别系统来说就足以开机解锁了;这种以指纹为基础的系统安全性比想像中更脆弱。
这种安全漏洞在于以指纹为基础的认证系统搭配了无法获取使用者完整指纹的小型传感器。取而代之的是,他们能扫描并储存部份指纹,而且许多智能手机还让使用者可在其认证系统中注册多个不同的手指指纹。
当使用者的指纹符合所储存的任一部份指纹时,即可确认身份。研究人员假设,不同人的部份指纹之间可能存在某种相似性,足以创造出所谓的“万能指纹”(MasterPrint)。
纽约大学坦登工程学院博士后研究员Aditi Roy与密西根州立大学电脑科学与工程系教授Arun Ross,使用了8200个部份指纹进行分析。研究人员使用商业指纹验证软件后发现,在每一组随机抽取的800个部份指纹中,就有92个可能的MasterPrints。(研究人员对MasterPrints的定义是在每一组随机样本中至少有4%的指纹配对成功)
然而,他们发现,在800个完整指纹中随机抽样,只有一个完整的MasterPrints指纹。Memon说:“这一点也不足为奇,仅使用部份指纹比完整指纹更可能配对错误,但大多数的装置却仅依靠部份指纹进行识别。”
Ross指出:“随着指纹传感器的尺寸越来越小,传感器的解析度率必须大幅提高,才能获取到更多的指纹特征。如果无法提高解析度,使用者的指纹独特性将不可避免地会大打折扣。我们的研究人员在这项研究中进行的实证分析显然证实了这一点。”
Memon指出,研究团队的研究结果是根据指纹特征点(minutiae)的配对,任何供应商可能选择采用或不采用。然而,只要有部份指纹用于解锁手机或其他装置,以及储存每个指纹的多个部份特征,那么找到MasterPrints的机率也将明显增加。
libfprint 库里面 FP_SCAN_TYPE_PRESS 器件
1
FP_SCAN_TYPE_PRESS 器件
UPEK TouchChip/Eikon Touch 300
#define IMAGE_WIDTH 208
#define IMAGE_HEIGHT 288
static const FpIdEntry id_table[] = {
{ .vid = 0x0483, .pid = 0x2015, .driver_data = UPEKTC_2015 },
{ .vid = 0x147e, .pid = 0x3001, .driver_data = UPEKTC_3001 },
{ .vid = 0, .pid = 0, .driver_data = 0 },
};
2
aes3k
FP_SCAN_TYPE_PRESS
/**
- FpiImageFlags:
- @FPI_IMAGE_V_FLIPPED: the image is vertically flipped
- @FPI_IMAGE_H_FLIPPED: the image is horizontally flipped
- @FPI_IMAGE_COLORS_INVERTED: the colours are inverted
- Flags used in an #FpImage structure to describe the contained image.
- This is useful for image drivers as they can simply set these flags and
- rely on the image to be normalized by libfprint before further processing.
*/
//#define MIN_COMPUTABLE_BOZORTH_MINUTIAE 10
#define MIN_COMPUTABLE_BOZORTH_MINUTIAE 3
bozorth.h — line123
fp-print.c — line 265