eSIM RSP 测试用例对比站

人工切片(-man) ↔ Cas 盲生成(-cas)· 真机真卡执行证据对照

源码对照:5.2.7.2.1

停用 Profile 的应用管理 / TC_eUICC_DisableProfile_ApplicationManagement

左侧为人工切片入口(-man,来自 原料/切片 的最小可执行脚本),右侧为 Cas 盲生成入口(-cas,仅依据规范生成)。文件按原始编码(多为 GBK)解码为 UTF-8 显示,行号自 1 起;字节级原文与 sha256 见两侧脚本包。完整 unified diff 见本页底部折叠区,以及 报告原文 §4。
-man 入口
Import/TestCase_SGP_23.js
93 行 / 3335 字符 / gb18030
-cas 入口
TC_eUICC_DisableProfile_ApplicationManagement/Import/TC_eUICC_DisableProfile_ApplicationManagement.js
106 行 / 7689 字符 / gb18030
默认折行显示长行;取消勾选可横向滚动查看原始行宽
-man 人工切片Import/TestCase_SGP_23.js93 行 / 3335 字符 / gb18030入口函数 @L3
1// slice of Import\TestCase_SGP_23.js - cases: TC_eUICC_DisableProfile_ApplicationManagement_01_Nominal_Application_Selection_Deletion_not_available_on_Disabled_Profile (extracted verbatim)
2
3function TC_eUICC_DisableProfile_ApplicationManagement_01_Nominal_Application_Selection_Deletion_not_available_on_Disabled_Profile()
4{
5	
6	initial_condition_PROFILE_OPERATIONAL1_is_Enabled();
7	var ISD_P_Test01 = curProfile_ISD_P_AID;
8	
9	initial_condition_Remove_All_Notification();
10	
11	tracenamestr = "验证失效profile后,profile中的应用不能被选择,并且不能被删除";
12	curDis.TraceStart(sno++,tracenamestr);
13	
14	curLogicChannel = 0;
15	curDis.TestStepStart2(stno++,"eUICC卡片初始化;");
16	Ini_powerOn_eUICC_LPAe_not_activate();
17	
18	curDis.TestStepStart2(stno++,"读卡器向卡片发送MANAGE_CHANNEL命令,打开辅助逻辑通道;");
19	TS_MANAGE_CHANNEL_OPEN();
20	
21	curLogicChannel = 0;
22	curDis.TestStepStart2(stno++,"选择USIM成功;");
23	para = new SelectFileIDPara_3G("7FF1");
24	SendAPDU(para.apdu);
25	
26	curDis.TestStepStart2(stno++,"选择SSD成功;");
27	TS_SELECT("Select SSD","A00000055910100102736456616C7565","9000");
28	
29	curLogicChannel = 1;
30	
31	curDis.TestStepStart2(stno++,"读卡器向卡片发送SELECT命令,选择ISD-R;");
32	TS_SELECT("Select ISD",ISD_R_AID,"9000");
33	
34	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行DisableProfileRequest,失效profile1;");
35	var disableProRequest = new DisableProfileRequest();
36	disableProRequest.profileIdentifier = new ChoiceObj(tagOfProfileIdentifier.iccid,ICCID_OP_PROF1);
37	disableProRequest.refreshFlag = BooleanValue_BerCode_False;
38	disableProRequest.GenHexData();
39	var respData = LPAd_Transport_data_to_eUICC(disableProRequest.hexData);
40	
41	curStrHandle.CheckData("BF3203800100", respData, "DisableProfileResponse");
42	
43	curLogicChannel = 0;
44	curDis.TestStepStart2(stno++,"eUICC卡片初始化;");
45	Ini_powerOn_eUICC_LPAe_not_activate();
46	
47	curDis.TestStepStart2(stno++,"选择USIM失败;");
48	para = new SelectFileIDPara_3G("7FF1");
49	para.apdu.ressw = "6A82";
50	SendAPDU(para.apdu);
51	
52	curDis.TestStepStart2(stno++,"选择SSD失败;");
53	TS_SELECT("Select SSD","A00000055910100102736456616C7565","6A82");
54	
55	curLogicChannel = 0;
56	curDis.TestStepStart2(stno++,"eUICC卡片初始化;");
57	Ini_powerOn_eUICC_LPAe_not_activate();
58	
59	curDis.TestStepStart2(stno++,"删除SSD;");
60	sSendType = SendTypeByOTA.SMS;
61		
62	KIC = MNO_SCP80_ENC_KEY;
63	KID = MNO_SCP80_AUTH_KEY;
64	KIK = MNO_SCP80_DATA_ENC_KEY;
65	sAPDU = "80E40000124F10A00000055910100102736456616C7565";
66	SendMessageToCard_GP(sSendType,"91XX",0,"B20100","12210015",sAPDU);
67	CardSendMessageToServer(sSendType,1,"","06/09");
68	TerminalResponse("00","9000");
69	
70	curLogicChannel = 1;
71	
72	curDis.TestStepStart2(stno++,"读卡器向卡片发送SELECT命令,选择ISD-R;");
73	TS_SELECT("Select ISD",ISD_R_AID,"9000");
74	
75	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行EnableProfileRequest;");
76	var enableProRequest = new EnableProfileRequest();
77	enableProRequest.profileIdentifier = new ChoiceObj(tagOfProfileIdentifier.iccid,ICCID_OP_PROF1);
78	enableProRequest.refreshFlag = BooleanValue_BerCode_False;
79	enableProRequest.GenHexData();
80	var respData = LPAd_Transport_data_to_eUICC(enableProRequest.hexData);
81	
82	curStrHandle.CheckData("BF3103800100", respData, "EnableProfileResponse");	
83	
84	curLogicChannel = 0;
85	curDis.TestStepStart2(stno++,"选择USIM成功;");
86	para = new SelectFileIDPara_3G("7FF1");
87	SendAPDU(para.apdu);
88	
89	RecoverCard();
90	
91	
92}
93
-cas 盲生成TC_eUICC_DisableProfile_ApplicationManagement/Import/TC_eUICC_DisableProfile_ApplicationManagement.js106 行 / 7689 字符 / gb18030入口函数 @L10
1// Author: 卡思Cas智能体
2// Date: 20261004-022948
3// Function: (purpose 原文未由 SGP.23 该 TC 提供,corpus vacuum 登记)TC_eUICC_DisableProfile_ApplicationManagement,Test Sequence #01 Nominal: Application Selection/Deletion not available on Disabled Profile(本 TC 单条 Test Sequence),适用性 M。
4// Test points: ICH-IC1-K1-C1 ATR_present;ICH-IC1-K2-C2 FCP_Template;ICH-IC1-K2-C4 SW
5//   ICH-IC1-K3-C4 SW;ICH-IC1-K4-C4 final SW;S1-C1 SW;S1-C2 FCP_Template;S2-C1 SW;S4-C1 SW;S5-C1 SW
6//   S7-C2 envelope C_APDUS_SCRIPT named APDU;S9-C1 SW;S11-C1 SW
7// 本函数由 CaseIR 5.2.7.2.1 编译生成(5.2.7.2.1-TC_eUICC_DisableProfile_ApplicationManagement-20261004_022948,SGP.23 v1.16 × SGP.22 v2.7):字节权威=CaseIR,非誊录黄金脚本。
8// Value-free template: every data byte is injected from CaseIR fields; no scaffold globals (see docs/speconly/compile-symbol-migration.md).
9// 适用性 M:编译期门,运行时由 harness 环境前置承担。
10function TC_eUICC_DisableProfile_ApplicationManagement_01_merged() {
11    var bind = curBind;
12    // GEN-IC-1 卡态声明(E 段 General Initial Conditions,编排责任):PROFILE_OPERATIONAL1 is installed and Enabled: declared unexpanded (non-PROC row or K corpus vacuum; see CaseIR open_items).
13
14    // IC head inline (initial_conditions → PROC_EUICC_INITIALIZATION_SEQUENCE, K row 1):RESET(K 语料机械展开)
15    var s12 = bind.resetAndAtr();
16    bind.checkData("ICH-IC1-K1-C1 ATR_present", "1", s12.atr_hex !== "" ? "1" : "0");
17
18    // IC head inline (initial_conditions → PROC_EUICC_INITIALIZATION_SEQUENCE, K row 2):SELECT_MF(K 语料机械展开)
19    // FCP outer tag not materialized from clause: tag-face asserted only when corpus fixes the tag byte (e.g. TS 102 221 FCP '62').
20    var s13 = bind.sendApdu("00", "A4", "00", "04", "3F00", "00", "9000");
21    bind.checkData("ICH-IC1-K2-C2 FCP_Template", "1", s13.resp.length > 0 ? "1" : "0");
22    bind.checkData("ICH-IC1-K2-C4 SW", "9000", s13.sw);
23
24    // IC head inline (initial_conditions → PROC_EUICC_INITIALIZATION_SEQUENCE, K row 3):TERMINAL_CAPABILITY_LPAd(K 语料机械展开)
25    var s14 = bind.sendApdu("80", "AA", "00", "00", "A9058100830107", null, "9000");
26    bind.checkData("ICH-IC1-K3-C4 SW", "9000", s14.sw);
27
28    // IC head inline (initial_conditions → PROC_EUICC_INITIALIZATION_SEQUENCE, K row 4):TERMINAL_PROFILE(K 语料机械展开)
29    var steady15 = bind.runToSteadyState(function () {
30        return bind.sendTerminalProfile("FFFFFFFF7F9D00DFBF00001FE2000000C7EB0000000168005000000000000200", "9000");
31    });
32    bind.checkData("ICH-IC1-K4-C4 final SW", "9000", steady15.final.sw);
33
34    // 步骤 1:SELECT_USIM(tc_step)
35    var s1 = bind.sendApdu("00", "A4", "04", "04", "A0000000871002FF33FF018900000100", "00", "9000");
36    bind.checkData("S1-C1 SW", "9000", s1.sw);
37    bind.checkData("S1-C2 FCP_Template", "1", s1.resp.length > 0 ? "1" : "0");
38
39    // 步骤 2:MTD_SELECT(tc_step)
40    // CLA = bound channel (cla_rule) and <L> length binding are CasBind internal state (chaining rule; no generated-code re-implementation).
41    var s2 = bind.sendApdu(null, "A4", "04", "00", "A00000055910100102736456616C7565", "00", "9000");
42    // MTD_SELECT expected face is SW-only (K Annex C.2 open-channel procedure step 2: no FCI content assertion in corpus); no fabricated template parse.
43    bind.checkData("S2-C1 SW", "9000", s2.sw);
44    // S2-C2: kind 'requirement' pattern has no static generation face (corpus vacuum; see CaseIR unresolved).
45    // S2-C2: binding:select_success_satisfies_selected_requirement(SW9000-receipt) (check_attestation)
46
47    // 步骤 3:Disable PROFILE_OPERATIONAL1(tc_step)
48    // card-state orchestration declaration (no APDU face): execution is
49    // the batch card_state prep framework's responsibility (4227 ruling B
50    // same-family scope; ensure_profile_state / prep_packager);
51    // no fabricated bytes emitted here; see CaseIR unresolved/open_items.
52
53    // 步骤 4:SELECT_USIM(tc_step;REQ: RQ24_026)
54    var s4 = bind.sendApdu("00", "A4", "04", "04", "A0000000871002FF33FF018900000100", "00", "6A82");
55    bind.checkData("S4-C1 SW", "6A82", s4.sw);
56    // S4-C2: binding:requirement_satisfied_by_same_step_error_sw_assertion (check_attestation)
57
58    // 步骤 5:MTD_SELECT(tc_step;REQ: RQ24_026)
59    // CLA = bound channel (cla_rule) and <L> length binding are CasBind internal state (chaining rule; no generated-code re-implementation).
60    var s5 = bind.sendApdu(null, "A4", "04", "00", "A00000055910100102736456616C7565", "00", "6A82");
61    // MTD_SELECT expected face is SW-only (K Annex C.2 open-channel procedure step 2: no FCI content assertion in corpus); no fabricated template parse.
62    bind.checkData("S5-C1 SW", "6A82", s5.sw);
63    // S5-C2: kind 'requirement' pattern has no static generation face (corpus vacuum; see CaseIR unresolved).
64    // S5-C2: binding:requirement_satisfied_by_same_step_error_sw_assertion (check_attestation)
65
66    // 步骤 6:PROC_EUICC_INITIALIZATION_SEQUENCE(procedure_expansion)
67    // E 表验证性 PROC(K 过程体缺席):oracle 缺席诚实面——期望=声明面
68    // spec 引用、实际=proc_expansion_absent(如实计错,不伪造通过)。
69
70    // 步骤 7:MTD_SEND_SMS_PP(tc_step;REQ: RQ24_026)
71    // MTD_SEND_SMS_PP ENVELOPE (H Annex C.1 表1238): deterministic SCP80 envelope — counter=规范初值 0000000001, CC=离线闭合
72    // (scp80_emitter 3DES outer-CBC),C_APDUS_SCRIPT = 命名 APDU 常量机械转录;规范固定头字段见发射器漂移登记。
73    var s7 = bind.sendApdu("80", "C2", "00", "00", "D156020283810607913386094000F00B474405850213F27FF6713012415574403702700000321512210015B2010000000000010027C1E4EA55DBD5E6AA1A221880E40080124F10A00000055910100102736456616C756500", null, null);
74    bind.checkData("S7-C2 envelope C_APDUS_SCRIPT named APDU", "1", s7.cmd.indexOf("AA1A221880E40080124F10A00000055910100102736456616C756500") >= 0 ? "1" : "0");
75    // S7-C1: binding:scp80_envelope_response_status_disjunctive(91XX|9000|error;E_tc_527-NOTE) (check_attestation)
76
77    // 步骤 8:FETCH 'XX'(tc_step;REQ: RQ24_026)
78    // FETCH header literals follow the golden wire evidence 8012 (same
79    // anchor as runToSteadyState; J Annex D.4 has no FETCH row, D 2.2.2
80    // gives mechanism only). Le = pending length from the last 91XX
81    // (chain rule, binding-internal state).
82    var s8 = bind.fetchPending("80", "12", "00", "00", null);
83    // S8-C1: binding:fetch_sms_por_runtime_parse(MTD_CHECK_SMS_POR;H-annexC1) (check_attestation)
84
85    // 步骤 9:TERMINAL RESPONSE(tc_step)
86    // TERMINAL RESPONSE data is dynamically built by the binding from the
87    // last FETCHed proactive command (D 2.2.2; buildTrData) - never static.
88    // Header literals follow the golden wire evidence 8014.
89    var s9 = bind.terminalResponseForPending("80", "14", "00", "00", "9000");
90    bind.checkData("S9-C1 SW", "9000", s9.sw);
91
92    // 步骤 10:Enable PROFILE_OPERATIONAL1(tc_step)
93    // card-state orchestration declaration (no APDU face): execution is
94    // the batch card_state prep framework's responsibility (4227 ruling B
95    // same-family scope; ensure_profile_state / prep_packager);
96    // no fabricated bytes emitted here; see CaseIR unresolved/open_items.
97
98    // 步骤 11:MTD_SELECT(tc_step;REQ: RQ24_026)
99    // CLA = bound channel (cla_rule) and <L> length binding are CasBind internal state (chaining rule; no generated-code re-implementation).
100    var s11 = bind.sendApdu(null, "A4", "04", "00", "A00000055910100102736456616C7565", "00", "9000");
101    // MTD_SELECT expected face is SW-only (K Annex C.2 open-channel procedure step 2: no FCI content assertion in corpus); no fabricated template parse.
102    bind.checkData("S11-C1 SW", "9000", s11.sw);
103    // S11-C2: kind 'requirement' pattern has no static generation face (corpus vacuum; see CaseIR unresolved).
104    // S11-C2: binding:select_success_satisfies_selected_requirement(SW9000-receipt) (check_attestation)
105}
106

完整 unified diff

行级差异:新增 103 行 / 删除 90 行(以 -man 为基准,unified 上下文 3 行)。

展开 diff(199 行)
--- -man
+++ -cas
@@ -1,93 +1,106 @@
-// slice of Import\TestCase_SGP_23.js - cases: TC_eUICC_DisableProfile_ApplicationManagement_01_Nominal_Application_Selection_Deletion_not_available_on_Disabled_Profile (extracted verbatim)
+// Author: 卡思Cas智能体
+// Date: 20261004-022948
+// Function: (purpose 原文未由 SGP.23 该 TC 提供,corpus vacuum 登记)TC_eUICC_DisableProfile_ApplicationManagement,Test Sequence #01 Nominal: Application Selection/Deletion not available on Disabled Profile(本 TC 单条 Test Sequence),适用性 M。
+// Test points: ICH-IC1-K1-C1 ATR_present;ICH-IC1-K2-C2 FCP_Template;ICH-IC1-K2-C4 SW
+//   ICH-IC1-K3-C4 SW;ICH-IC1-K4-C4 final SW;S1-C1 SW;S1-C2 FCP_Template;S2-C1 SW;S4-C1 SW;S5-C1 SW
+//   S7-C2 envelope C_APDUS_SCRIPT named APDU;S9-C1 SW;S11-C1 SW
+// 本函数由 CaseIR 5.2.7.2.1 编译生成(5.2.7.2.1-TC_eUICC_DisableProfile_ApplicationManagement-20261004_022948,SGP.23 v1.16 × SGP.22 v2.7):字节权威=CaseIR,非誊录黄金脚本。
+// Value-free template: every data byte is injected from CaseIR fields; no scaffold globals (see docs/speconly/compile-symbol-migration.md).
+// 适用性 M:编译期门,运行时由 harness 环境前置承担。
+function TC_eUICC_DisableProfile_ApplicationManagement_01_merged() {
+    var bind = curBind;
+    // GEN-IC-1 卡态声明(E 段 General Initial Conditions,编排责任):PROFILE_OPERATIONAL1 is installed and Enabled: declared unexpanded (non-PROC row or K corpus vacuum; see CaseIR open_items).
 
-function TC_eUICC_DisableProfile_ApplicationManagement_01_Nominal_Application_Selection_Deletion_not_available_on_Disabled_Profile()
-{
-	
-	initial_condition_PROFILE_OPERATIONAL1_is_Enabled();
-	var ISD_P_Test01 = curProfile_ISD_P_AID;
-	
-	initial_condition_Remove_All_Notification();
-	
-	tracenamestr = "验证失效profile后,profile中的应用不能被选择,并且不能被删除";
-	curDis.TraceStart(sno++,tracenamestr);
-	
-	curLogicChannel = 0;
-	curDis.TestStepStart2(stno++,"eUICC卡片初始化;");
-	Ini_powerOn_eUICC_LPAe_not_activate();
-	
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送MANAGE_CHANNEL命令,打开辅助逻辑通道;");
-	TS_MANAGE_CHANNEL_OPEN();
-	
-	curLogicChannel = 0;
-	curDis.TestStepStart2(stno++,"选择USIM成功;");
-	para = new SelectFileIDPara_3G("7FF1");
-	SendAPDU(para.apdu);
-	
-	curDis.TestStepStart2(stno++,"选择SSD成功;");
-	TS_SELECT("Select SSD","A00000055910100102736456616C7565","9000");
-	
-	curLogicChannel = 1;
-	
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送SELECT命令,选择ISD-R;");
-	TS_SELECT("Select ISD",ISD_R_AID,"9000");
-	
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行DisableProfileRequest,失效profile1;");
-	var disableProRequest = new DisableProfileRequest();
-	disableProRequest.profileIdentifier = new ChoiceObj(tagOfProfileIdentifier.iccid,ICCID_OP_PROF1);
-	disableProRequest.refreshFlag = BooleanValue_BerCode_False;
-	disableProRequest.GenHexData();
-	var respData = LPAd_Transport_data_to_eUICC(disableProRequest.hexData);
-	
-	curStrHandle.CheckData("BF3203800100", respData, "DisableProfileResponse");
-	
-	curLogicChannel = 0;
-	curDis.TestStepStart2(stno++,"eUICC卡片初始化;");
-	Ini_powerOn_eUICC_LPAe_not_activate();
-	
-	curDis.TestStepStart2(stno++,"选择USIM失败;");
-	para = new SelectFileIDPara_3G("7FF1");
-	para.apdu.ressw = "6A82";
-	SendAPDU(para.apdu);
-	
-	curDis.TestStepStart2(stno++,"选择SSD失败;");
-	TS_SELECT("Select SSD","A00000055910100102736456616C7565","6A82");
-	
-	curLogicChannel = 0;
-	curDis.TestStepStart2(stno++,"eUICC卡片初始化;");
-	Ini_powerOn_eUICC_LPAe_not_activate();
-	
-	curDis.TestStepStart2(stno++,"删除SSD;");
-	sSendType = SendTypeByOTA.SMS;
-		
-	KIC = MNO_SCP80_ENC_KEY;
-	KID = MNO_SCP80_AUTH_KEY;
-	KIK = MNO_SCP80_DATA_ENC_KEY;
-	sAPDU = "80E40000124F10A00000055910100102736456616C7565";
-	SendMessageToCard_GP(sSendType,"91XX",0,"B20100","12210015",sAPDU);
-	CardSendMessageToServer(sSendType,1,"","06/09");
-	TerminalResponse("00","9000");
-	
-	curLogicChannel = 1;
-	
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送SELECT命令,选择ISD-R;");
-	TS_SELECT("Select ISD",ISD_R_AID,"9000");
-	
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行EnableProfileRequest;");
-	var enableProRequest = new EnableProfileRequest();
-	enableProRequest.profileIdentifier = new ChoiceObj(tagOfProfileIdentifier.iccid,ICCID_OP_PROF1);
-	enableProRequest.refreshFlag = BooleanValue_BerCode_False;
-	enableProRequest.GenHexData();
-	var respData = LPAd_Transport_data_to_eUICC(enableProRequest.hexData);
-	
-	curStrHandle.CheckData("BF3103800100", respData, "EnableProfileResponse");	
-	
-	curLogicChannel = 0;
-	curDis.TestStepStart2(stno++,"选择USIM成功;");
-	para = new SelectFileIDPara_3G("7FF1");
-	SendAPDU(para.apdu);
-	
-	RecoverCard();
-	
-	
+    // IC head inline (initial_conditions → PROC_EUICC_INITIALIZATION_SEQUENCE, K row 1):RESET(K 语料机械展开)
+    var s12 = bind.resetAndAtr();
+    bind.checkData("ICH-IC1-K1-C1 ATR_present", "1", s12.atr_hex !== "" ? "1" : "0");
+
+    // IC head inline (initial_conditions → PROC_EUICC_INITIALIZATION_SEQUENCE, K row 2):SELECT_MF(K 语料机械展开)
+    // FCP outer tag not materialized from clause: tag-face asserted only when corpus fixes the tag byte (e.g. TS 102 221 FCP '62').
+    var s13 = bind.sendApdu("00", "A4", "00", "04", "3F00", "00", "9000");
+    bind.checkData("ICH-IC1-K2-C2 FCP_Template", "1", s13.resp.length > 0 ? "1" : "0");
+    bind.checkData("ICH-IC1-K2-C4 SW", "9000", s13.sw);
+
+    // IC head inline (initial_conditions → PROC_EUICC_INITIALIZATION_SEQUENCE, K row 3):TERMINAL_CAPABILITY_LPAd(K 语料机械展开)
+    var s14 = bind.sendApdu("80", "AA", "00", "00", "A9058100830107", null, "9000");
+    bind.checkData("ICH-IC1-K3-C4 SW", "9000", s14.sw);
+
+    // IC head inline (initial_conditions → PROC_EUICC_INITIALIZATION_SEQUENCE, K row 4):TERMINAL_PROFILE(K 语料机械展开)
+    var steady15 = bind.runToSteadyState(function () {
+        return bind.sendTerminalProfile("FFFFFFFF7F9D00DFBF00001FE2000000C7EB0000000168005000000000000200", "9000");
+    });
+    bind.checkData("ICH-IC1-K4-C4 final SW", "9000", steady15.final.sw);
+
+    // 步骤 1:SELECT_USIM(tc_step)
+    var s1 = bind.sendApdu("00", "A4", "04", "04", "A0000000871002FF33FF018900000100", "00", "9000");
+    bind.checkData("S1-C1 SW", "9000", s1.sw);
+    bind.checkData("S1-C2 FCP_Template", "1", s1.resp.length > 0 ? "1" : "0");
+
+    // 步骤 2:MTD_SELECT(tc_step)
+    // CLA = bound channel (cla_rule) and <L> length binding are CasBind internal state (chaining rule; no generated-code re-implementation).
+    var s2 = bind.sendApdu(null, "A4", "04", "00", "A00000055910100102736456616C7565", "00", "9000");
+    // MTD_SELECT expected face is SW-only (K Annex C.2 open-channel procedure step 2: no FCI content assertion in corpus); no fabricated template parse.
+    bind.checkData("S2-C1 SW", "9000", s2.sw);
+    // S2-C2: kind 'requirement' pattern has no static generation face (corpus vacuum; see CaseIR unresolved).
+    // S2-C2: binding:select_success_satisfies_selected_requirement(SW9000-receipt) (check_attestation)
+
+    // 步骤 3:Disable PROFILE_OPERATIONAL1(tc_step)
+    // card-state orchestration declaration (no APDU face): execution is
+    // the batch card_state prep framework's responsibility (4227 ruling B
+    // same-family scope; ensure_profile_state / prep_packager);
+    // no fabricated bytes emitted here; see CaseIR unresolved/open_items.
+
+    // 步骤 4:SELECT_USIM(tc_step;REQ: RQ24_026)
+    var s4 = bind.sendApdu("00", "A4", "04", "04", "A0000000871002FF33FF018900000100", "00", "6A82");
+    bind.checkData("S4-C1 SW", "6A82", s4.sw);
+    // S4-C2: binding:requirement_satisfied_by_same_step_error_sw_assertion (check_attestation)
+
+    // 步骤 5:MTD_SELECT(tc_step;REQ: RQ24_026)
+    // CLA = bound channel (cla_rule) and <L> length binding are CasBind internal state (chaining rule; no generated-code re-implementation).
+    var s5 = bind.sendApdu(null, "A4", "04", "00", "A00000055910100102736456616C7565", "00", "6A82");
+    // MTD_SELECT expected face is SW-only (K Annex C.2 open-channel procedure step 2: no FCI content assertion in corpus); no fabricated template parse.
+    bind.checkData("S5-C1 SW", "6A82", s5.sw);
+    // S5-C2: kind 'requirement' pattern has no static generation face (corpus vacuum; see CaseIR unresolved).
+    // S5-C2: binding:requirement_satisfied_by_same_step_error_sw_assertion (check_attestation)
+
+    // 步骤 6:PROC_EUICC_INITIALIZATION_SEQUENCE(procedure_expansion)
+    // E 表验证性 PROC(K 过程体缺席):oracle 缺席诚实面——期望=声明面
+    // spec 引用、实际=proc_expansion_absent(如实计错,不伪造通过)。
+
+    // 步骤 7:MTD_SEND_SMS_PP(tc_step;REQ: RQ24_026)
+    // MTD_SEND_SMS_PP ENVELOPE (H Annex C.1 表1238): deterministic SCP80 envelope — counter=规范初值 0000000001, CC=离线闭合
+    // (scp80_emitter 3DES outer-CBC),C_APDUS_SCRIPT = 命名 APDU 常量机械转录;规范固定头字段见发射器漂移登记。
+    var s7 = bind.sendApdu("80", "C2", "00", "00", "D156020283810607913386094000F00B474405850213F27FF6713012415574403702700000321512210015B2010000000000010027C1E4EA55DBD5E6AA1A221880E40080124F10A00000055910100102736456616C756500", null, null);
+    bind.checkData("S7-C2 envelope C_APDUS_SCRIPT named APDU", "1", s7.cmd.indexOf("AA1A221880E40080124F10A00000055910100102736456616C756500") >= 0 ? "1" : "0");
+    // S7-C1: binding:scp80_envelope_response_status_disjunctive(91XX|9000|error;E_tc_527-NOTE) (check_attestation)
+
+    // 步骤 8:FETCH 'XX'(tc_step;REQ: RQ24_026)
+    // FETCH header literals follow the golden wire evidence 8012 (same
+    // anchor as runToSteadyState; J Annex D.4 has no FETCH row, D 2.2.2
+    // gives mechanism only). Le = pending length from the last 91XX
+    // (chain rule, binding-internal state).
+    var s8 = bind.fetchPending("80", "12", "00", "00", null);
+    // S8-C1: binding:fetch_sms_por_runtime_parse(MTD_CHECK_SMS_POR;H-annexC1) (check_attestation)
+
+    // 步骤 9:TERMINAL RESPONSE(tc_step)
+    // TERMINAL RESPONSE data is dynamically built by the binding from the
+    // last FETCHed proactive command (D 2.2.2; buildTrData) - never static.
+    // Header literals follow the golden wire evidence 8014.
+    var s9 = bind.terminalResponseForPending("80", "14", "00", "00", "9000");
+    bind.checkData("S9-C1 SW", "9000", s9.sw);
+
+    // 步骤 10:Enable PROFILE_OPERATIONAL1(tc_step)
+    // card-state orchestration declaration (no APDU face): execution is
+    // the batch card_state prep framework's responsibility (4227 ruling B
+    // same-family scope; ensure_profile_state / prep_packager);
+    // no fabricated bytes emitted here; see CaseIR unresolved/open_items.
+
+    // 步骤 11:MTD_SELECT(tc_step;REQ: RQ24_026)
+    // CLA = bound channel (cla_rule) and <L> length binding are CasBind internal state (chaining rule; no generated-code re-implementation).
+    var s11 = bind.sendApdu(null, "A4", "04", "00", "A00000055910100102736456616C7565", "00", "9000");
+    // MTD_SELECT expected face is SW-only (K Annex C.2 open-channel procedure step 2: no FCI content assertion in corpus); no fabricated template parse.
+    bind.checkData("S11-C1 SW", "9000", s11.sw);
+    // S11-C2: kind 'requirement' pattern has no static generation face (corpus vacuum; see CaseIR unresolved).
+    // S11-C2: binding:select_success_satisfies_selected_requirement(SW9000-receipt) (check_attestation)
 }