APUD命令详解 3GPP USIM 卡文件

因业务需要对USIM卡进行操作,因此前没有接触过读卡方面的操作,跌跌撞撞两个月后才能大概的对卡进行一些操作。

不同业务

对读卡操作可能有手机方面的读卡,Android手机对读卡可能有封装好的模块进行读取

有的是原生读卡器进行的读卡操作

有的是通过某种协议链接插入卡的卡池(卡池内有很多卡) 读卡操作

我介绍的是第三种, 不过不包括硬件开发层次 仅仅是APUD命令操作

读卡前的准备

认真阅读IOS7816协议  如果还想要硬件开发 不仅仅是读取卡的话 需要认真阅读第一部分卡片的基本操作
仅仅视为了读卡的话 阅读行业间交换命令

3GPP 也是必不可少的读前阅读的文件

弄清楚自己想要读取什么卡

在这里插入图片描述
以上 五个黄色的则是不需要激活应用就能读取到的 不属于激活应用范围内

命令示例(读取ICCID,线性文件)

发送命令 00A4000402
	00 逻辑信道   A4 select flie(7816协议)  04P1  02P2
返回命令 01a4
	有些设备可能前面没有01 只有a4  有a4的话就是证明卡已接收进入文件指令
发送命令 2FE2 
	这里没什么好说的就是进入文件 2FE2
接收命令 611e
	61 SW2 任然是有效字节,  通俗的讲的话就是 我还有1E个字节可以回复给你  所以你需要接收看看 
发送命令 00C000001e  
	00 逻辑信道    C0 GET RESPONSE(IOS7816)  P1:00  P2:00  1E: 我想接收到的数据
接收命令 c0621c8202412183022fe2a5038001718a01058b032f06048002000a8801109000
	C0 刚刚你发出的指令   621C  62 文件控制样板  然后回复的这么多按照IOS7816开始分化
		82标记		02后面两个字节		分开也就是82024121
		83标记		02后面两个字节		分开也就是83022fe2
	    a5标记		03后面三个字节		分开也就是03800171
	    8a标记		01后面一个字节		分开也就是0105
	    8b标记		03后面三个字节		分开也就是032f0604
	    80标记 		02后面两个字节		分开也就是02000a
	    88标记 		01后面一个字节		分开也就是0110
	    通过分析 这个是线形文件82共两个字节 所以长度的话在80最后一个字节0a 
发送命令 00b000000A
	00逻辑信道	b0 READ BINARY P100 P200 Le 0A 带读取字段
接受命令 b098684027511209107780
	这就是ICCID

命令实例(激活应用)

发送命令	00A4000402
	上面已经赘述
接受命令	01a4
	....
发送命令	2F00
	2F00 是AID的地址
接受命令 6121
	.....
发送命令 00C0000021
	.....
接受命令	c0621f8205422100260183022f00a5038001718a01058b032f0604800200268801f0
	这个也需要分解
	82  05  42  21  00  26  01
	83  02  2f  00
	a5  03  80  01  71
	8a  01  05
	8b  03  2f  06  04
	80  02  00  26
	88  01  f0
	这次82为五个字节  可以认为是环形文件 需要用B2去读取环形文件
发送命令	AA66010500B2010426
	其中 B2 READ RECORD(IOS7816)	 P1 01 第一页 P2 04   26 每次读取26个
	需要注意的是 当82为五个字节的时候 最后一位为页数 这次看的是01  当比如为02 的时候就是两页可读 命令为
		AA66010500B2020426
	三页可读的时候
		AA66010500B2030426
	26是不变的  变的是P1
接受命令	b261244f10a0000000871002ff86ffff89ffffffff5010434d43434248444d533076322e302020
	其中F最多的是补充字节 前面则是应用地址 a0000000871002ff86ffff89ffffffff

应用下的文件

我就一次性说了 ,如果有啥不懂得可以私信我(前提别啥都不知道问我来,必须了解IOS7816  3GPP)
发送命令00A4000402 
接受命令01a4
发送命令2F00 
接受命令6121
发送命令00C0000021 
接受命令c0621f8205422100260183022f00a5038001718a01058b032f0604800200268801f0
发送命令00B2010426 
接受命令b261244f10a0000000871002ff86ffff89ffffffff5010434d43434248444d533076322e3020209000
发送命令00A4040410
 接受命令a4
发送命令a0000000871002ff86ffff89ffffffff 
接受命令6140
发送命令00A4080404 
接受命令01a4
发送命令7FFF6f07 
接受命令6119
发送命令 00 C0 00 00 19 
接受命令c062178202412183026f078a01058b036f0606800200098801389000
发送命令 00 B0 00 00 09 
接受命令b00849064064110871329000

总结

大概整理就是这个样子 我已经大白话讲了,仔细看看能看懂
实在不行就套用
  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值