0.手机获得root权限
1.找到AT端口
高通
/dev/at_mdm0 (SDM636,SDM8150等芯片都是这个 tty设备) /dev/smd11 (MSM8909W)
联发科
/dev/radio/atci1
/dev/radio/atci2
展讯
/dev/stty_lte1
…
/dev/stty_lte31
展讯的stty_lte1, stty_lte2, stty_lte6, stty_lte7, 8, 9, 10, 11, 12….17
stty20, 21, 22, 23, … 30 能正常访问 sim卡
有些端口,只能执行其他AT命令,比如 AT+CGSN AT+CGREG? AT+CCLK?
但 /dev/stty_lte20 好像都是可以的
比如 Spreadtrum SL8521E
2.发送命令
echo "AT+COPS?\r" > /dev/stty_lte1
3.常用AT命令
AT+CGSN 请求产品序列号号,一般就是IMEI AT+CGLA UICC逻辑通道访问 AT+CGMI 设备制造商标识 AT+CGMM 型号标识 AT+CGMR 版本 AT+CIMI 请求读取IMSI AT+CSCA? 获取SMSP AT+CPIN 输入PIN AT+CPWD 改变密码 AT+CRSM 保密的SIM卡访问 AT+CSIM 一般SIM卡访问 AT+CUAD USIM卡应用发现 ATA 接电话(answer) ATD 拨打电话(dial) ATE 打开命令回显(echo) ATH 挂断电话(hangup) AT+ICCID 读取ICCID (展讯不支持) AT+CCHO 打开逻辑通道
AT+CCHC=<sessionid> 关闭逻辑通道
4.分析
读取Kc 命令 "AT+CRSM=176,20306,0,0,9\r" 响应 +CRSM: 144,0,A9FCB522A7062D5303 读取ICCID 命令 AT+CRSM=176,12258,0,0,10 响应 +CRSM: 144,0,98686091010005689312 读取IMSI 命令 "AT+CRSM=176,28423,0,0,9\r"
5.命令参数
AT+CRSM=instruction, file_id, P1, P2, P3, data, path_id instruction可以为 B0 读二进制 B2 读记录 C0 得到响应(一般为取fcp) D6 更新二进制 DC 更新记录 F2 取状态 AT+CSIM=length, instruction 在新标准中,
AT+CGLA 逻辑通道访问,就是AT+CSIM一样的功能 AT+CRLA 就是 AT+CRSM
多了个session_id参数 GRLA命令参数 +CRLA=<sessionid>,<command>[,<fileid>[,<P1>,<P2>,<P3>[,<data>[,<pathid>]]]] CGLA命令参数 +CGLA=<sessionid>,<length>,<command>
6. 其他
展讯和高通都不支持AT+CSIM 展讯和联发科,都支持 新的逻辑通道命令,高通不支持
echo "AT+CCHO=\"A0000000871002FF86FFFF89FFFFFFFF\"\r" > /dev/stty_lte1 echo "AT+CGLA=1, 14, \"00A40004023F00\"\r" > /dev/stty_lte1 echo "AT+CCHC=1\r" > /dev/stty_lte1文件不存在
echo "AT+CRSM=192,28648,0,0,0,\"\",\"3F007FFF\"\r" > /dev/stty_lte1 和 echo "AT+CRSM=176,28648,0,0,120,\"\",\"3F007FFF\"\r" > /dev/stty_lte1 都是 回应 +CRSM: 106,130
在飞行模式下,这个AT命令也是可以用的
实例
Mi Max2 (MSM8953)
一个adb shell 执行 cat /dev/at_mdm0 另外执行 echo 'AT+CRSM=176,12258,0,0,10\r\n' > /dev/at_mdm0 前面那个就能读到 ICCID AT+CRSM=176,12258,0,0,10 +CRSM: 144,0,"98681002098103218863" OK -------------------- echo 'AT+CSIM=30,80AA00000AA9088100820101830107\r\n' > /dev/at_mdm0 +CME ERROR: operation not supported 高通不支持CSIM