支持

E:\AndroidStudio\sdk\ndk-bundle\ndk-build

SVN:http://192.168.200.30/svn/appdevelopfour/bio.sdk/trunk/BiometricSDK/
http://dragonsea.zhu@code.xmzkteco.com/cooperation-project/new-firmware/PC_adb


(固件一体化)http://code.xmzkteco.com/

https://121.12.147.154/issues/61892 admine dragonsea.zhu 12377777
http://redmine.xmzkteco.com:8000/issues/97075
http://1.1.1.3/ac_portal/20170119172540/pc.html?template=20170119172540&tabs=pwd&vlanid=0&url=http://www.gstatic.com%2fgenerate_204

msdn
======================================================================================================================================================
/usb host支持的系统配置文件        http://blog.csdn.net/trbbadboy/article/details/8929673
同样遇到这样的问题,我的Android设备是原道N12C,官方的4.0.3系统,遇到这个问题,后来找了半天找到的,现在汇总一下吧:

1、创建 android.hardware.usb.host.xml,
内容为:
<permissions>  
 <feature name="android.hardware.usb.host"/>  
</permissions>  
将该文件push到/system/etc/permissions目录下

2、在/system/etc/permissions下的handheld_core_hardware.xml或者tablet_core_hardware.xml文件的<permissions>段中添加:
<feature name="android.hardware.usb.host" />  
重启设备

3、修改AndroidManifest.xml文件,添加以下权限(很关键):
<uses-permission android:name="android.hardware.usb.host" />  
<uses-permission android:name="android.hardware.usb.accessory" />  

======================================================================================================================================================
4、枚举设备的代码例子:
[html] view plain copy print?
UsbManager manager = (UsbManager) getSystemService(Context.USB_SERVICE);  
HashMap<String, UsbDevice> deviceList = manager.getDeviceList();  
Log.e(TAG, "get device list  = " + deviceList.size());  
Toast.makeText(this, "get device list  = " + deviceList.size(), 200).show();  
Iterator<UsbDevice> deviceIterator = deviceList.values().iterator();  
while (deviceIterator.hasNext()) {  
     UsbDevice device = deviceIterator.next();  
     Log.e(TAG, "device name = " + device.getDeviceName());  
}  


======================================================================================================================================================
UDK
readUsserInfo  内存分配以写死 6M

======================================================================================================================================================
unsigned char data[4];
int actual_length;
int r = libusb_bulk_transfer(handle, LIBUSB_ENDPOINT_IN, data, sizeof(data), &actual_length, 0);
if (r == 0 && actual_length == sizeof(data)) {
    // results of the transaction can now be found in the data buffer
    // parse them here and report button press
} else {
    error();
}


======================================================================================================================================================
20R sdk 只能用10.0
指静脉 不能缓存


======================================================================================================================================================
tolnet 192.168.0.152
name    :root
passwd    :solokey

======================================================================================================================================================
lftp -c 'put main -o ftp://root:solokey@192.168.0.152/'
lftp -c 'put test.txt -o ftp://user:password@ftpserver/'

======================================================================================================================================================
googl protocol buf

======================================================================================================================================================                                                                                      
adb push D:\log\log.txt 

======================================================================================================================================================
需要在Hello.so前添加lib,否则找不到.so文件(libHello.so),运行的时候需要指定.so的路径: 
java  -Djava.library.path=/homw/user/so所在目录  -jar  Hello.jar 

======================================================================================================================================================
sudo ifconfig eth0 hw ether 00:0c:29:c7:85:a3 00:23:9e:03:cc:70
sudo ifconfig eth0 hw ether  00:17:61:D2:54:0D 00:50:56:32:87:8d
00 50 56 32 87 8d

eth0      Link encap:Ethernet  HWaddr 00:50:56:32:87:8d  (x64)
zkface3.3.2                00:0C:29:AE:19:45          


 sudo ifconfig eth0 hw ether  00:0C:29:AE:19:45 00:50:56:32:87:8d

======================================================================================================================================================
//15.0 流程图
我以为是10.0的
15.0接口很简单,连接设备后
登记模板的流程(登记是同步接口,按压三次手指返回登记模板)
登记是阻塞函数,按压手指状态通过FingerprintCaptureListener.OnCapture(index)返回第几次按压,一般在线程中调用
2,比对有两种形式
2.1 同步接口 verifyByFeature
      上传二代证模板,等待10s知道比对成功或者超时
2.2 异步接口uploadFeature+getVerifyResult
     a) 读取身份证成功后 uploadFeature,上传模板
     b) 循环调用getVerifyResult (异步接口,立即返回)
         1 表示成功
         -106 未按压手指
        -99 比对失败
        其他失败

======================================================================================================================================================
直接链接libzkfv.so 编译源码 生成可执行文件a.out
隐式链接 libMYZKFV.so 隐式链接libzkfv.so 编译生成可执行文件 a2_1.out
隐式链接 libMYZKFV.so (libzkfv.so已经被显示加载) 编译生成可执行文件 a2_2.out

======================================================================================================================================================
15.0算法
USB还是串口?
USB的话可以采集指纹图像,本来二代证15.0模块没支持的
不过协议上有,接口也保留着
imageBuffer = new byte[256 * 360];
                    imageAttributes = new int[2];

                    ret = fingerprintSensor.retrieveLastImage(index, imageBuffer, imageAttributes);
if (ret > 0)
{
     采集成功
    imageAttributes[0]:宽
     imageAttributes[1]:高
      Bitmap mBitMap = ToolUtils.renderCroppedGreyScaleBitmap(imgBuffer, attributes[0], attributes[1]);
}
比对失败返-106 时调用,可以获取到比对失败的图像
比对过程的其他时候没按压,不用获取

======================================================================================================================================================
身份证指纹数据不能转化为图片。公安部要求不然乱套。
身份证15.0 算法可以一同传1024两个模板

======================================================================================================================================================
指令123  返回-98(FreeDom问题) 

======================================================================================================================================================
%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;%SYSTEMROOT%\System32\WindowsPowerShell\v1.0\;C:\Program Files (x86)\Windows Kits\8.1\Windows Performance Toolkit\;C:\Program Files\Microsoft SQL Server\110\Tools\Binn\;E:\AndroidStudio\sdk\platform-tools\

============================================================================================================================================================================================================================================================================================================
实际长度 k*g*3 ,
解析整个数据 获取先解析头部, 然后解析提取加密后的数据。然后解密数据 然后获取宽高。 然后得出实际数据 3宽高

======================================================================================================================================================
linux 3.0以后 usbfs改为debugfs了

======================================================================================================================================================
15.0模块只用到OnCapture(index)
index表示第几次按压
getVerifyResult
不阻塞
没有按压会立即返回-106 ,没有按压手指

======================================================================================================================================================
System.out.println(System.getProperty("java.library.path"));  
检查下Java库目录,放到这里面的目录也行

======================================================================================================================================================
 strings /usr/lib/libc.so.6 | grep GLIBC |tail -n 8

======================================================================================================================================================
objdump -T **
__asm__(".symver memcpy,memcpy@GLIBC_2.2.5");降低版本依赖

======================================================================================================================================================
sudo dd if=/dev/zero of=/home/dragon/sda2/swap bs=1024 count=1024000  

======================================================================================================================================================
前台都用1:1
1:N不适用于浏览器这一端。如果在前台1:N。相当于每次打开页面要同步所有数据到前端
一般B/S 配合后台比对用

======================================================================================================================================================
704b000000000000000000bb0a
704B000000000000000000BB0A
00:17:61:20:03:0A//梁工原来设备id

======================================================================================================================================================
tftp -r  thing -g ip
tftp -l  thing -p ip
telnet 192.168.215.67

======================================================================================================================================================
http://127.0.01:22001/zkbioonlinux/info
192.168.81.145:22001/zkbioonlinux/info
192.168.81.145:22001/ZKBIOOnline/info

======================================================================================================================================================
./configure CC=mips64el-redhat-linux-gcc --build=x86_64-linux --host=mips64el-redhat-linux --prefix=$PWD/_install  
./configure CC=mips64el-redhat-linux-gcc  --build=x86_64-linux --host=mips64el-redhat-linux  --prefix=$PWD/_install --enable-shared --enable-static 
--enable-shared --enable-static :指定是否要生成动态库、静态库、或者la文件

======================================================================================================================================================
ZZZ目录下:(单功能模块)
1,[add模块]
    g++ -g -shared -fPIC add/add.* -o libadd.so
2, [sub模块]:(单功能模块)
    g++ -g -shared -fPIC sub/sub.* -o libsub.so
3, [calc模块]: clac模块依赖于add和sub模块,用到了两者的头文件,并调用了接口
    错误:g++ -g -shared -fPIC -Iadd -Isub calc/calc.*  -o libcalc.so
    (编译虽然可以过,但是参数不足,这种遗漏依赖库的问题现在不解决,在编译嵌套它的上层库时就会暴露出来)
    正确:g++ -g -shared -fPIC -Iadd -Isub -ladd -lsub -L. calc/calc.*  -o libcalc.so
4, [pkg模块]:封装calc模块
    错误:g++ -g -shared -fPIC -Icalc  pkg/pkg.* -o libpkg.so
    正确:g++ -g -shared -fPIC -Icalc -lcalc -L. pkg/pkg.* -o libpkg.so
5, [main程序]
    g++ -g -Ipkg -lpkg -L. main.cpp -o main

======================================================================================================================================================
在Ubuntu14.04 64位中通过终端安装ndkr10d:

创建文目录ndk   指令为: mkdir ndk 
将可执行文件android-ndk-r10d-linux-x86_64.bin 拷贝到 ndk 目录中
在ndk目录下执行输入指令:  ./android-ndk-r10d-linux-x86_64.bin 

输入指令sudo  vi  /etc/profile   打开profile文件,在此文件最后加入三行代码  其中的 /home/ndk 替换成ndk目录在你的系统中的真实路径
export NDKROOT=/home/ndk/android-ndk-r10d  
export PATH=$NDKROOT:$PATH  
export NDKBIN=/home/ndk/android-ndk-r10d/toolchains/aarch64-linux-android-4.9/prebuilt/linux-86_64/bin  

退出保存文件 输入指令: source /ect/profile
在任意目录下输入指令: ndk-build    显示android ndk等相关信息,说明配置NDK成功

将Application.mk文件中的APP_ABI赋值为:APP_ABI := armeabi armeabi-v7a x86 mips arm64-v8a x86_64  mips64
进入工程jni目录 执行指令:  ndk-build     

======================================================================================================================================================
有时候会存在jni导致内存怪异,获取数据后,重新分配一个固定的空间然后再可以用memcpy()进行一下内存拷贝。

======================================================================================================================================================
对,9500 的这套SDK跟PC的二代证SDK流模式不一样
这个是探测模式,固件他测到有手指才返回图像,才会触发到这里
如果是用流模式的话,那么没按手指也会返回图像

======================================================================================================================================================
dmesg > boot.messages

======================================================================================================================================================
gcc编译可以不需要头文件,g++编译需要头文件

======================================================================================================================================================
查看5037端口被谁占用了  netstat -aon|findstr "5037"      (能看到相关的PID)

我们需要根据后面的PID(2748)来查找占用该端口的应用程序,输入 tasklist|findstr "2748"

结束该进程,输入taskkill /f /t /im 你的进程名,例如adb.exe


======================================================================================================================================================
192.168.81.142 ubunto32
======================================================================================================================================================
然后把设备端时间调一下date -s "2018.04.20-21:58:00"

======================================================================================================================================================
======================================================================================================================================================
======================================================================================================================================================
======================================================================================================================================================
======================================================================================================================================================
======================================================================================================================================================
======================================================================================================================================================
======================================================================================================================================================
======================================================================================================================================================
======================================================================================================================================================

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值