一、概述

在 openvela 的 NSH 命令行中,可以通过进入 telephonytool 命令工具的 Console 来执行所有与 SIM 卡相关的操作。

二、前提条件

确保已打开 telephonytool 工具。

ap> telephonytool

 

三、命令

1、listen-sim

命令说明

listen-sim 命令用于注册监听与 SIM 卡相关的事件。

命令格式

listen-sim [slot_id][event_id]
  • slot_id: 设置要监听的插槽,目前仅支持 0。
  • event_id: 要监听的事件 ID,支持以下事件:
    • MSG_SIM_STATE_CHANGE_IND: SIM 状态变更事件。
    • MSG_SIM_UICC_APP_ENABLED_CHANGE_IND: SIM UICC 应用启用状态变更事件。
    • MSG_SIM_ICCID_CHANGE_IND: SIM ICCID(集成电路卡标识符)变更事件。

示例

命令输入

telephonytool> listen-sim 0 28

输出信息

listen-sim 0 28
[12296.667000] [46] [ DEBUG] [ap] start to watch sim event : 28 , return watch_id : 189

2、unlisten-sim

命令说明

unlisten-sim 命令用于取消监听与 SIM 卡相关的事件。

命令格式

unlisten-sim [watch_id]
watch_id:对应listen-data的返回值
  • watch_id: 对应 listen-sim 命令返回的监听 ID,用于标识需要取消的监听事件。

示例

命令输入

telephonytool> unlisten-sim 189

输出信息

telephonytool> unlisten-sim 189
[12323.192900] [46] [ DEBUG] [ap] stop to watch sim event with watch_id : 189 with return value : 0

3、has-icc

命令说明

has-icc 命令用于查询指定插槽中是否存在 ICC(Integrated Circuit Card,集成电路卡)。

命令格式

has-icc [slot_id]
  • slot_id: 设置要查询的插槽,目前仅支持 0。

示例

命令输入

telephonytool> has-icc 0

输出信息

telephonytool> has-icc 0
[12341.192300] [46] [ DEBUG] [ap] telephonytool_cmd_has_icc_card, slotId : 0 value : 1

4、get-sim-state

命令说明

get-sim-state 命令用于获取指定插槽中 SIM 卡的状态。

命令格式

get-sim-state [slot_id]
  • slot_id: 设置要查询的插槽,目前仅支持 0。

示例

命令输入

telephonytool> get-sim-state 0

输出信息

get-sim-state 0
[12357.230900] [46] [ DEBUG] [ap] telephonytool_cmd_get_sim_state, slotId : 0 state : SIM_READY

5、get-iccid

命令说明

get-iccid 命令用于获取指定插槽中 SIM 卡的 ICCID(Integrated Circuit Card Identifier,集成电路卡标识符)信息。

命令格式

get-iccid [slot_id]
  • slot_id: 设置要查询的插槽,目前仅支持 0。

示例

命令输入

telephonytool>  get-iccid 0

输出信息

telephonytool> get-iccid 0
[12378.832200] [46] [ DEBUG] [ap] telephonytool_cmd_get_sim_iccid, slotId : 0 iccid : 12345678901234567890  # 示例数据

6、get-sim-operator

命令说明

get-sim-operator 命令用于获取指定插槽中 SIM 卡的 PLMN(Public Land Mobile Network,公共陆地移动网络)信息。PLMN 是由运营商的国家代码(MCC)和网络代码(MNC)组成的标识符,用于标识 SIM 卡所属的运营商。

命令格式

get-sim-operator [slot_id]
  • slot_id: 设置要查询的插槽,目前仅支持 0。

示例

命令输入

telephonytool> get-sim-operator 0

输出信息

telephonytool> get-sim-operator 0
[12795.415400] [46] [ DEBUG] [ap] telephonytool_cmd_get_sim_operator, slotId : 0 operator : 310260

7、get-sim-operator-name

命令说明

get-sim-operator-name 命令用于获取指定插槽中 SIM 卡所属运营商的名称(SPN,Service Provider Name)。

命令格式

get-sim-operator-name [slot_id]
  • slot_id: 设置要查询的插槽,目前仅支持 0。

示例

命令输入

telephonytool> get-sim-operator-name 0

输出信息

telephonytool> get-sim-operator-name 0
[12809.795600] [46] [ DEBUG] [ap] telephonytool_cmd_get_sim_operator_name, slotId : 0 spn : T-Mobile

8、get-sim-subscriber-id

命令说明

get-sim-subscriber-id 命令用于获取指定插槽中 SIM 卡的订阅者标识(Subscriber ID)。

命令格式

get-sim-subscriber-id [slot_id]
  • slot_id: 设置要查询的插槽,目前仅支持 0。

示例

命令输入

telephonytool> get-sim-subscriber-id 0

输出信息

telephonytool> get-sim-subscriber-id 0
[12824.331100] [46] [ DEBUG] [ap] telephonytool_cmd_get_sim_subscriber_id, slotId : 0 subscriber_id : 310260000000000

9、change-pin

命令说明

change-pin 命令用于修改指定插槽中 SIM 卡的 PIN(Personal Identification Number,个人识别码)。

命令格式

change-pin [slot_id][pin_type, pin or pin2][old_pin][new_pin]
  • slot_id: 设置要查询的插槽,目前仅支持 0。
  • pin_type: PIN 码类型,可选值为 pin 或 pin2。
  • old_pin: 当前的 PIN 码值。
  • new_pin: 要设置的新 PIN 码值。

示例

命令输入

telephonytool> change-pin 0 pin 1234 2345

输出信息

telephonytool> change-pin 0 pin 1234 2345
[12840.148400] [46] [ DEBUG] [ap] telephonytool_cmd_change_sim_pin, slot_id: 0 pin_type: pin old_pin: 1234 new_pin: 2345
telephonytool> [12840.160200] [21] [  INFO] [ap] [0,0081]> RIL_REQUEST_CHANGE_SIM_PIN (old=***,new=***,aid=(null))

10、Enter-pin

命令说明

enter-pin 命令用于验证指定插槽中 SIM 卡的 PIN(Personal Identification Number,个人识别码)。

命令格式

enter-pin [slot_id][pin_type][pin]
slot_id:设置要监听的slot,当前只支持0
pin_type:pin码类型,pin or pin2
pin:pin码值
  • slot_id: 设置要查询的插槽,目前仅支持 0。
  • pin_type: PIN 码类型,可选值为 pin 或 pin2。
  • pin: 要验证的 PIN 码值。

示例

命令输入

telephonytool> enter-pin 0 pin 1234

输出信息

telephonytool> enter-pin 0 pin 1234
[12860.520000] [46] [ DEBUG] [ap] telephonytool_cmd_enter_sim_pin, slot_id: 0 pin_type: pin pin: ****

11、reset-pin

命令说明

reset-pin 命令用于通过 PUK(Personal Unblocking Key,个人解锁密钥)重置指定插槽中 SIM 卡的 PIN(Personal Identification Number,个人识别码)。

命令格式

reset-pin [slot_id][puk_type][puk][new_pin]
slot_id:设置要监听的slot,当前只支持0
puk_type:puk码类型,puk or puk2
puk:puk码值
new_pin:新的pin码值
  • slot_id: 设置要查询的插槽,目前仅支持 0。
  • puk_type: PUK 码类型,可选值为 puk 或 puk2。
  • puk: 当前的 PUK 码值,用于解锁 PIN。
  • new_pin: 要设置的新 PIN 码值。

示例

命令输入

telephonytool> reset-pin 0 puk 12345678 2345

输出信息

telephonytool> reset-pin 0 puk 12345678 2345
[12877.463600] [46] [ DEBUG] [ap] telephonytool_cmd_reset_sim_pin, slot_id: 0 puk_type: puk puk: ****** new_pin: ******

12、lock-pin

命令说明

lock-pin 命令用于激活 SIM 卡的 PIN 锁功能,确保 SIM 卡的安全性。

命令格式

lock-pin [slot_id][pin_type, pin or pin2][pin]
slot_id:设置要监听的slot,当前只支持0
pin_type:pin码类型,pin or pin2
pin:pin码值
  • slot_id: 设置要查询的插槽,目前仅支持 0。
  • pin_type: PIN 码类型,可选值为 pin 或 pin2。
  • pin: 当前的 PIN 码值,用于激活 PIN 锁。

示例

命令输入

telephonytool> lock-pin 0 pin 1234

输出信息

telephonytool> lock-pin 0 pin 1234
[12894.617100] [46] [ DEBUG] [ap] telephonytool_cmd_lock_sim_pin, slot_id: 0 pin_type: pin pin: 1234
telephonytool> [12894.648800] [21] [  INFO] [ap] [0,0092]> RIL_REQUEST_SET_FACILITY_LOCK (SC,1,***,0,aid=(null))

13、unlock-pin

命令说明

unlock-pin 命令用于去激活 SIM 卡的 PIN 锁功能,解除对 SIM 卡的 PIN 验证要求。

命令格式

unlock-pin [slot_id][pin_type, pin or pin2][pin]
  • slot_id: 设置要查询的插槽,目前仅支持 0。
  • pin_type: PIN 码类型,可选值为 pin 或 pin2。
  • pin: 当前的 PIN 码值,用于解除 PIN 锁。

示例

命令输入

telephonytool>unlock-pin 0 pin 1234

输出信息

telephonytool> unlock-pin 0 pin 1234
[12907.847700] [46] [ DEBUG] [ap] telephonytool_cmd_unlock_sim_pin, slot_id: 0 pin_type: pin pin: 1234
telephonytool> [12907.882000] [21] [  INFO] [ap] [0,0093]> RIL_REQUEST_SET_FACILITY_LOCK (SC,0,***,0,aid=(null))

14、open-logical-channel

命令说明

open-logical-channel 命令用于打开逻辑通道,以便对 SIM 卡进行读写操作。

命令格式

open-logical-channel [slot_id] [aid_str]
  • slot_id: 设置要查询的插槽,目前仅支持 0。
  • aid_str: 应用标识符(AID,Application Identifier)字符串,用于指定目标应用。

示例

命令输入

telephonytool>open-logical-channel 0 A0000000871002FF86FFFF89FFFFFFFF 16

输出信息

telephonytool> open-logical-channel 0 A0000000871002FF86FFFF89FFFFFFFF 16
[12924.300200] [46] [ DEBUG] [ap] telephonytool_cmd_open_logical_channel, slot_id: 0 aid: A0000000871002FF86FFFF89FFFFFFFF len: 16
telephonytool> [12924.334200] [21] [  INFO] [ap] [0,0094]> RIL_REQUEST_SIM_OPEN_CHANNEL (A0000000871002FF86FFFF89FFFFFFFF, -1)
[12924.337900] [15] [  INFO] [ap] [AT_RIL] onRequest: 115<->SIM_OPEN_CHANNEL, reqtype: 4
[12924.340100] [15] [  INFO] [ap] [AT_SIM] On request sim end
[12924.341400] [21] [  INFO] [ap] [0,0094]< RIL_REQUEST_SIM_OPEN_CHANNEL {1, 0}
[12924.348700] [40] [ DEBUG] [ap] tele_sim_async_fun :
[12924.349100] [40] [ DEBUG] [ap] result->msg_id : 38
[12924.349600] [40] [ DEBUG] [ap] result->status : 0
[12924.350000] [40] [ DEBUG] [ap] result->arg1 : 0
[12924.350300] [40] [ DEBUG] [ap] result->arg2 : 1
12924.350600] [40] [ DEBUG] [ap] open logical channel respond session id : 1
  • session id: 返回的 session id 表示逻辑通道的会话标识符,用于后续的读写操作。

15、close-logical-channel

命令说明

close-logical-channel 命令用于关闭指定的逻辑通道,释放与 SIM 卡的会话资源。

命令格式

close-logical-channel [slot_id][session_id]
  • slot_id: 设置要查询的插槽,目前仅支持 0。
  • session_id: 要关闭的逻辑通道的会话标识符(session ID)。

示例

命令输入

telephonytool>close-logical-channel 0 1

输出信息

telephonytool> close-logical-channel 0 1
[12950.633800] [46] [ DEBUG] [ap] telephonytool_cmd_close_logical_channel, slot_id: 0 session id: 1
telephonytool> [12950.641100] [21] [  INFO] [ap] [0,0095]> RIL_REQUEST_SIM_CLOSE_CHANNEL (1,1)
[12950.642200] [15] [  INFO] [ap] [AT_RIL] onRequest: 116<->SIM_CLOSE_CHANNEL, reqtype: 4
[12950.643000] [15] [  INFO] [ap] [AT_SIM] On request sim end
[12950.643500] [21] [  INFO] [ap] [0,0095]< RIL_REQUEST_SIM_CLOSE_CHANNEL
[12950.647600] [40] [ DEBUG] [ap] tele_sim_async_fun :
[12950.647800] [40] [ DEBUG] [ap] result->msg_id : 39
[12950.648000] [40] [ DEBUG] [ap] result->status : 0
[12950.648200] [40] [ DEBUG] [ap] result->arg1 : 0
[12950.648400] [40] [ DEBUG] [ap] result->arg2 : 1
  • session_id: 输出信息中的 session id 表示已成功关闭的逻辑通道会话标识符。

16、transmit-apdu-basic-channel

命令说明

transmit-apdu-logical-channel 命令用于通过逻辑通道向 SIM 卡发送 APDU(Application Protocol Data Unit,应用协议数据单元)命令。

命令格式

transmit-apdu-logical-channel [slot_id][session_id][pdu][len]
  • slot_id: 设置要查询的插槽,目前仅支持 0。
  • session_id: 逻辑通道的会话标识符(session ID)。
  • pdu: 要发送的 APDU 数据内容。
  • len: APDU 数据的字节长度。

示例

命令输入

telephonytool>transmit-apdu-logical-channel 0 1 FFF2000000 5

输出信息

telephonytool> transmit-apdu-logical-channel 0 1 FFF2000000 5
[12971.991700] [46] [ DEBUG] [ap] telephonytool_cmd_transmit_apdu_logical_channel, slot_id: 0 sessionid: 1 pdu: FFF****000 len: 5
telephonytool> [12972.002100] [21] [  INFO] [ap] [0,0097]> RIL_REQUEST_SIM_TRANSMIT_APDU_CHANNEL (1, 255, 242, 0, 0, 0, (null))

17、transmit-apdu-basic-channel

命令说明

transmit-apdu-basic-channel 命令用于通过基本通道向 SIM 卡发送 APDU(Application Protocol Data Unit,应用协议数据单元)命令。

命令格式

transmit-apdu-basic-channel [slot_id][pdu][len]
  • slot_id: 设置要查询的插槽,目前仅支持 0。
  • pdu: 要发送的 APDU 数据内容。
  • len: APDU 数据的字节长度。

示例

命令输入

telephonytool>transmit-apdu-basic-channel 0 A0B000010473656E669000 11

输出信息

telephonytool> transmit-apdu-basic-channel 0 A0B000010473656E669000 11
[12987.899500] [46] [ DEBUG] [ap] telephonytool_cmd_transmit_apdu_basic_channel, slot_id: 0 pdu: A0B0******9000 len: 11
telephonytool> [12987.929800] [21] [  INFO] [ap] [0,0098]> RIL_REQUEST_SIM_TRANSMIT_APDU_BASIC (0, 160, 176, 0, 1, 4, 73656e669000)
[12987.932900] [15] [  INFO] [ap] [AT_RIL] onRequest: 114<->SIM_TRANSMIT_APDU_BASIC, reqtype: 4
[12987.934800] [15] [  INFO] [ap] [AT_SIM] On request sim end
[12987.935700] [21] [  INFO] [ap] [0,0098]< RIL_REQUEST_SIM_TRANSMIT_APDU_BASIC (sw1=0x90,sw2=0x00)

18、get-uicc-enablement

命令说明

get-uicc-enablement 命令用于获取 UICC(Universal Integrated Circuit Card,通用集成电路卡)应用的启用状态。

命令格式

get-uicc-enablement [slot_id]
  • slot_id: 设置要查询的插槽,目前仅支持 0。

示例

命令输入

telephonytool>get-uicc-enablement 0

输出信息

telephonytool> get-uicc-enablement 0
[13002.369500] [46] [ DEBUG] [ap] telephonytool_cmd_get_uicc_enablement, slotId : 0 state : 0
  • state:
    • 0 表示 UICC 应用未启用。
    • 1 表示 UICC 应用已启用。

19、set-uicc-enablement

命令说明

set-uicc-enablement 命令用于设置 UICC(Universal Integrated Circuit Card,通用集成电路卡)应用的启用或禁用状态。

命令格式

set-uicc-enablement [slot_id][[state]
  • slot_id: 设置要查询的插槽,目前仅支持 0。
  • state: 指定 UICC 应用的目标状态:
    • 0: 禁用 UICC 应用。
    • 1: 启用 UICC 应用。

示例

命令输入

telephonytool>set-uicc-enablement 0 1

输出信息

telephonytool> set-uicc-enablement 0 1
[13015.089700] [46] [ DEBUG] [ap] telephonytool_cmd_set_uicc_enablement, slotId : 0 target_state: 1
telephonytool> [13015.122400] [21] [  INFO] [ap] [0,0099]> RIL_REQUEST_ENABLE_UICC_APPLICATIONS
[13015.125000] [15] [  INFO] [ap] [AT_RIL] onRequest: 208<-><unknown request>, reqtype: 4
[13015.125800] [15] [  INFO] [ap] [AT_SIM] On request sim end
[13015.126700] [21] [  INFO] [ap] [0,0099]< RIL_REQUEST_ENABLE_UICC_APPLICATIONS
[13015.128800] [21] [  INFO] [ap] [0,0100]> RIL_REQUEST_GET_UICC_APPLICATIONS_ENABLEMENT
[13015.133000] [15] [  INFO] [ap] [AT_RIL] onRequest: 209<-><unknown request>, reqtype: 4
[13015.133600] [15] [  INFO] [ap] [AT_SIM] On request sim end
[13015.134900] [21] [  INFO] [ap] [0,0100]< RIL_REQUEST_GET_UICC_APPLICATIONS_ENABLEMENT {1}
[13015.139000] [40] [ DEBUG] [ap] tele_sim_async_fun :
[13015.139300] [40] [ DEBUG] [ap] result->msg_id : 42
[13015.139500] [40] [ DEBUG] [ap] result->status : 0
[13015.139700] [40] [ DEBUG] [ap] result->arg1 : 0
[13015.139900] [40] [ DEBUG] [ap] result->arg2 : 26740

telephonytool> get-uicc-enablement 0
[13017.372400] [46] [ DEBUG] [ap] telephonytool_cmd_get_uicc_enablement, slotId : 0 state : 1
Logo

openvela 操作系统专为 AIoT 领域量身定制,以轻量化、标准兼容、安全性和高度可扩展性为核心特点。openvela 以其卓越的技术优势,已成为众多物联网设备和 AI 硬件的技术首选,涵盖了智能手表、运动手环、智能音箱、耳机、智能家居设备以及机器人等多个领域。

更多推荐