news 2026/4/16 13:04:54

SoftSIM - swSIM

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
SoftSIM - swSIM

https://github.com/tomasz-lisowski/swsim

编译

服务器端 swicc-pcsc sudo apt-get install make cmake gcc pkg-config libpcsclite1 libpcsclite-dev pcscd git clone --recurse-submodules https://github.com/tomasz-lisowski/swicc-pcsc MakeFile去除 -Werror \ cd swicc-pcsc make main-dbg sudo make install 客户端 swsim sudo apt-get install make gcc git clone --recurse-submodules https://github.com/tomasz-lisowski/swsim MakeFile去除 -Werror \ cd swsim make main-dbg

启动

读卡器启动: sudo pcscd -f -d -T 停止: pkill -x pcscd swsim启动:cd swsim && ./build/swsim.elf --ip 127.0.0.1 --port 37324 --fs filesystem.swiccfs --fs-gen ./data/usim.json

测试

sudo apt install python-pip sudo apt install python3-pyscard python3 test_swsim.py

# -*- coding: utf-8 -*- from smartcard.System import readers from smartcard.util import toHexString def hex_to_string(hex_list): """将十六进制列表转换为可读的字符串(用于BCD编码的数字)""" result = "" for byte in hex_list: high = (byte >> 4) & 0x0F low = byte & 0x0F # 处理可能存在的填充位 (0xF) if high != 0x0F: result += str(high) if low != 0x0F: result += str(low) return result # 1. 查找读卡器 reader_list = readers() swicc_readers = [r for r in reader_list if 'swICC' in str(r)] if not swicc_readers: print("错误:未找到swICC读卡器。请确保swSIM服务器正在另一个终端运行。") exit(1) swicc_reader = swicc_readers[0] print(f"已连接到: {swicc_reader}") # 2. 连接 connection = swicc_reader.createConnection() connection.connect() print("\n=== 开始读取SIM卡信息 ===\n") # 3. 读取ICCID (文件ID: 2FE2,位于MF下) print("1. 正在读取ICCID...") SELECT_MF = [0xA0, 0xA4, 0x00, 0x00, 0x02, 0x2F, 0xE2] resp, sw1, sw2 = connection.transmit(SELECT_MF) print(f" 选择MF状态: {hex(sw1)} {hex(sw2)}") SELECT_ICCID = [0xA0, 0xB0, 0x00, 0x00, 0x00A] iccid_data, sw1, sw2 = connection.transmit(SELECT_ICCID) print(f" ICCID原始数据: {toHexString(iccid_data)}")

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/16 9:11:17

自主掌控数字流程,灵活可定制的表单与活动管理源码

温馨提示:文末有资源获取方式面对日益多样化的业务场景和个性化的数据收集需求,寻找一款既能“开箱即用”,又能随业务成长而灵活扩展的管理工具至关重要。一套支持私有化部署的自定义表单与活动管理系统源码,恰好回应了这一需求。…

作者头像 李华
网站建设 2026/4/15 16:14:11

【Open-AutoGLM 百炼】:基于百次实验的数据洞察,AutoGLM究竟强在哪?

第一章:Shell脚本的基本语法和命令Shell脚本是Linux和Unix系统中自动化任务的核心工具,它通过解释执行一系列命令来完成特定功能。编写Shell脚本时,通常以“shebang”开头,用于指定解释器路径。脚本的起始声明 所有Shell脚本应以如…

作者头像 李华
网站建设 2026/4/16 11:04:41

智谱Open-AutoGLM沉思版部署避坑指南(99%新手都会犯的5个错误)

第一章:智谱 Open-AutoGLM 沉思版 如何使用Open-AutoGLM 是智谱AI推出的一款面向自动化任务的大型语言模型工具,其“沉思版”在推理与逻辑处理能力上进行了深度优化,适用于复杂场景下的代码生成、任务规划与自然语言理解。用户可通过API调用或…

作者头像 李华
网站建设 2026/4/16 9:25:04

开发时总在找工具?IT-Tools+cpolar 打造你的随身效率

文章目录前言1. 使用Docker本地部署it-tools2. 本地访问it-tools3. 安装cpolar内网穿透4. 固定it-tools公网地址前言 IT-Tools 是一款集成了多种开发实用功能的工具箱,里面有 UUID 生成、Base64 编解码、Emoji 转 Unicode 等几十种工具,无论是前端开发者…

作者头像 李华
网站建设 2026/4/16 1:30:00

玩转Conda:环境管理与迁移全指南

玩转 Conda:构建可复现、可迁移的 Python 开发环境 在现代数据科学与 AI 工程实践中,你是否曾遇到这样的窘境?本地调试完美的模型,在服务器上却因“找不到模块”或“版本不兼容”而报错;团队协作时,别人反复…

作者头像 李华