-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathuim_cmd.qmi
94 lines (72 loc) · 1.73 KB
/
uim_cmd.qmi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
package uim;
const kIccidMaxSize = 20;
struct qmi_result {
u16 result;
u16 error;
};
struct card_result_t {
u8 sw1;
u8 sw2;
};
request open_logical_channel_req {
required u8 slot = 0x01;
optional u8 aid(u8 : kBufferDataSize) = 0x10;
} = 0x42;
response open_logical_channel_resp {
required qmi_result result = 0x2;
optional u8 channel_id = 0x10;
optional card_result_t card_result = 0x11;
optional u8 select_response(u8 : kBufferDataSize) = 0x12;
} = 0x42;
request reset_req {
} = 0x00;
response reset_resp {
required qmi_result result = 0x2;
} = 0x00;
request send_apdu_req {
required u8 slot = 0x01;
required u8 apdu(u16 : kBufferDataSize) = 0x02;
optional u8 channel_id = 0x10;
optional u8 procedure_bytes = 0x11;
} = 0x3B;
response send_apdu_resp {
required qmi_result result = 0x2;
optional u8 apdu_response(u16 : kBufferDataSize) = 0x10;
} = 0x3B;
struct physical_slot_status {
enum32 physical_card_status {
kCardUnknown = 0,
kCardAbsent = 1,
kCardPresent = 2,
};
enum32 physical_slot_state {
kSlotInactive = 0,
kSlotActive = 1,
};
u8 logical_slot;
u8 iccid(u8 : kIccidMaxSize);
};
struct slot_eid_info {
u8 eid(u8 : 255);
};
struct physical_slot_info {
u32 card_protocol;
u8 num_app;
u8 atr(u8 : 255);
u8 is_euicc;
};
request get_slots_req {
} = 0x47;
response get_slots_resp {
required qmi_result result = 0x2;
optional physical_slot_status status(u8 : 10) = 0x10;
optional physical_slot_info slot_info(u8 : 10) = 0x11;
optional slot_eid_info eid_info(u8 : 10) = 0x12;
} = 0x47;
request switch_slot_req {
required u8 logical_slot = 0x01;
required u32 physical_slot = 0x02;
} = 0x46;
response switch_slot_resp {
required qmi_result result = 0x2;
} = 0x46;