移远的模块有两种系统,一种是基于高通芯片平台的linux操作系统,比如EC20;另一种是基于翱捷科技ASR芯片平台的threadx操作系统,比如EC600、EC800。
1、实现vsim和softsim的原理
正常逻辑是这样的,模块去读取实体SIM卡的数据,模块发一个指令给SIM卡,SIM卡就回复一条数据,所以其流程如下:
要把实体SIM卡去掉,变成VSIM、SOFTSIM,前置条件需要把模块原本要发送SIM卡的数据,变成发给某个函数,比如移远提供回调函数?
然后我们去模拟实体SIM卡的数据把数据返回给模块,模块接收到数据后接着下一步APDU数据。
所以要实现的就是把SIM卡的所有数据都模拟出来,之后还有关键的一步就是鉴权。
鉴权就是区分vsim和softsim的因素,如果你没有卡的ki、opc等参数,那你就只能让真正的实体卡帮你算出鉴权数据,返回给模块,这就是vsim。
如果你有卡的ki、opc等数据,那你就把鉴权算法实现出来,自己通过软件算出鉴权数据,这就是softsim。
vsim模式下,我们怎么让实体卡帮我算出鉴权数据?这时候就需要卡池了,有机会可以介绍。
2、具体实现vsim、softsim步骤
- 1、找移远代理提供的openCPU SDK
- 2、找到可以提供发送给sim卡数据的回调api
- 3、实现sim卡数据识别,返回数据组装
- 4、找到返回sim卡数据的api
- 5、鉴权算法实现/卡池实现远程交互实现
- 6、复位启动等数据交互实现ATR、PPS
- 7、不同卡的数据适配
- 有需要找我试试