4.2.20.2.1 ES10c 查询 Profile 列表
TC_eUICC_ES10c.GetProfilesInfo
-man 人工切片
- 终态
- ok `_ok` 复用(结构 A1-A7 PASS;`_ok` run 无厂商错误行)
- ErrorCount
- 0
- 执行 job
- 20261007_130947:49e75a0c8a2141a5a7660dcc50f2cf57
- html_run
- 20261007_130947
- 包 sha256
- 221faaf54c066d2d…
- 包大小
- 245.1 KB
日志源(切片目录内相对路径):logs/20261007_130947/extracted/ESIM_TEST_SGP_23/TC_eUICC_ES10c_GetProfilesInfo_01_Nominal_Get_All_Profiles.html
-cas 盲生成
- 终态
- failed 纯 native 零卡态前置(N0)
- ErrorCount
- 121
- 执行 job
- a8a9a50768d64ab5b4720d05eddaf31e
- html_run
- a8a9a507_gapfix1
- 包 sha256
- cb5d6386c3666e74…
- 包大小
- 834.2 KB
- 判定
- RERUN
- 路由
- native_N0
- 状态轴
- execution=red_verify / place=not_attempted / release=not_ready / card_state=n/a
差异概览(机械口径)
闭包文件层(l1)
man 34 / cas 82 个 JS;共同 31,一致 30,man-only 3,cas-only 51
命令序列层(l2)
man 272 / cas 0 条命令;完全一致 0,核心一致 0,长度尾部差 0,man-only 272,cas-only 0
规范覆盖(l3)
spec_steps 0,缺失 REQ 5 项,checkData 55 次,计数缺口 0,物化 FULL,执行 FAIL
断言自证(attestation)
js 断言 19 条 / 绑定层 3 条 / 缺口 0
机械差异分类
| 轴 | 说明 | 计数 |
|---|---|---|
| RUN_DIFF | man 通过 / cas 失败 | 1 |
| SCRIPT_DIALECT | 闭包文件差:man-only 3 / cas-only 51 | 54 |
| GEN_DIFF | 命令序列差:man-only 272 / cas-only 0;REQ 覆盖缺口:['RQ57_120', 'RQ57_122', 'RQ57_124', 'RQ57_125', 'RQ57_126'] | 277 |
对比报告
4.2.20.2.1 TC_eUICC_ES10c.GetProfilesInfo — -man ↔ -cas diff 报告
交付形态说明:本报告随专家交付包分发——-man/-cas脚本包 zip 与 190server HTML 执行日志已内联至packages/、evidence-html/,相应路径已相对化;TTR、spec_intl、caseir 等仓内留痕仍为生成机原始路径(未随包)。
- 生成时间:2026-10-08 22:57:10 |引擎:holiday-blk5/0.1|配对状态:
PAIRED - 分母口径:卡侧 61 之一
1. 配对与包
| 侧 | 包/源 | sha256 | 源类型 | 入口用例 |
|---|---|---|---|---|
-man | 4.2.20.2.1-TC_eUICC_ES10c.GetProfilesInfo-man.zip | 221faaf54c066d2d2f90929af3df40ff6af9e41528f0e38a36f446edf48bdcd7 | zip | TC_eUICC_ES10c_GetProfilesInfo_01_Nominal_Get_All_Profiles |
-cas | 4.2.20.2.1-TC_eUICC_ES10c.GetProfilesInfo-cas.zip | cb5d6386c3666e74da7a09df61e4618cd2ea43646344321dc6c30ae2cc790668 | zip | — |
- man 源路径:
../packages/man/4.2.20.2.1-TC_eUICC_ES10c.GetProfilesInfo-man.zip - cas 源路径:
../packages/cas/4.2.20.2.1-TC_eUICC_ES10c.GetProfilesInfo-cas.zip - 上游来源:{"man_ledger": true, "cas_ledger": true, "naming_map": true, "html_probe": true, "man_package": true, "cas_package": true}
- 适用性:naming-map=
M["M", "M", "M", "M", "M"];caseir=M
2. 执行摘要(双方 job/终态)
| 侧 | 终态/计划 | 备注 | ErrorCount | job_id | 业务状态 | TTR | 诊断包 |
|---|---|---|---|---|---|---|---|
-man | ok | _ok 复用(结构 A1-A7 PASS;_ok run 无厂商错误行) | 0 | 20261007_130947:49e75a0c8a2141a5a7660dcc50f2cf57 | — | /Users/yuhu/cas/原料/切片/4.2.20.2.1-TC_eUICC_ES10c.GetProfilesInfo/logs/20260908_124216_ok/extracted/ESIM_TEST_SGP_23/TC_eUICC_ES10c_GetProfilesInfo_01_Nominal_Get_All_Profiles.ttr | — |
-cas | failed | 纯 native 零卡态前置(N0) | 121 | a8a9a50768d64ab5b4720d05eddaf31e | — | /Users/yuhu/cas/experiments/4.2.20.2.1-TC_eUICC_ES10c.GetProfilesInfo-20260929_034348/logs/a8a9a507_gapfix1/result/TC_eUICC_ES10c_GetProfilesInfo/TC_eUICC_ES10c_GetProfilesInfo_01_02_01_02_merged.ttr | — |
- cas 块4账本:decision=
RERUN;route=native_N0;live 事件 2 条(4.6 波次进行中;以块4终版账本为准) - cas 4.6 波次最新执行:terminal=
failed;stage=cas_gapfix_rerun;job=a8a9a50768d64ab5b4720d05eddaf31e;gaps=["gapfix-rerun:job 终态 succeeded,业务判 failed(error_count=4);failed 亦为有效终态,如实登记"] - cas 失败归因引用(块4):
b2-attribution.md - cas 证据来源分层:
RERUN→ 本轮 4.6 波次执行
3. HTML 执行日志状态
-man:NATIVE(../evidence/4.2.20.2.1/man/TC_eUICC_ES10c_GetProfilesInfo_01_Nominal_Get_All_Profiles.html;sha256936fb44618d89512601da20489afef441fa1ee54c016b177467a7333f7eb6282;656590 bytes)-cas:NATIVE(../evidence/4.2.20.2.1/cas/TC_eUICC_ES10c_GetProfilesInfo_01_02_01_02_merged.html;sha2564b1288ad98b591ced2c28d0b69bf47528e6caf2e6b4608a55ed648c9a12d6aca;33778 bytes)- 纪律:原生缺失 →
HTML_UNAVAILABLE显式阻断(附探针结论);派生件仅标DERIVED_NOT_NATIVE,不冒充原生。
4. L1 脚本/依赖/命名差异(源文件闭包级)
- 闭包规模:man 34 文件 / cas 82 文件;同名 31(字节同 30,内容异 1)
- 同名内容异:
Import/TestCase_SGP_23.js - man-only 文件 3:
ESIM_TEST_SGP_23.UCE,ESIM_TEST_SGP_23.sol,MANIFEST.json - cas-only 文件 51:
Import/CapInfo.js,Import/ExecuteTestCase.js,Import/ExecuteTestCase_CSC.js,Import/ExecuteTestCase_LoadProfile_via_bip.js,Import/ExecuteTestCase_Local_Management.js,Import/ExecuteTestCase_Non_Telecom_Profile.js,Import/ExecuteTestCase_Performance.js,Import/ExecuteTestCase_PressureTest.js,Import/ExecuteTestCase_ProfileFormatTest_V_2_3_1.js,Import/ExecuteTestCase_ProfileServicesListTest.js… - 注:man 包=切片最小闭包(
script/投影);cas 包=slice_native 全工程投影(厂商参照闭包+生成体)。闭包规模差为打包形态差异;同名文件字节差集中于Import/TestCase_SGP_23.js(TC 入口本体)。
4.1 入口代码对照
- 行数:man 1796 / cas 156;字符:man 67747 / cas 18913
- man 顶层调用 Top:[["CheckData", 159], ["TestStepStart2", 104], ["GenHexData", 52], ["LPAd_Transport_data_to_eUICC", 51], ["TraceStart", 26], ["Ini_powerOn_eUICC_LPAe_not_activate", 26], ["TS_MANAGE_CHANNEL_OPEN", 26], ["TS_SELECT", 26], ["ProfileInfoListRequest", 26], ["ProfileInfoListResponse", 26]]
- cas bind 调用:[["checkData", 55], ["sendApdu", 5], ["resetAndAtr", 1], ["runToSteadyState", 1], ["sendTerminalProfile", 1], ["manageChannelOpen", 1]]
| 方言映射对 | 命中数 |
|---|---|
| TS_*_cmd() ↔ bind.* 命令封装 | 52 |
unified diff(截断预览)
--- man
+++ cas
@@ -1,1795 +1,155 @@
-// slice of Import\TestCase_SGP_23.js - cases: TC_eUICC_ES10c_GetProfilesInfo_01_Nominal_Get_All_Profiles + TC_eUICC_ES10c_GetProfilesInfo_02_Nominal_Get_Profile_by_ICCID + TC_eUICC_ES10c_GetProfilesInfo_03_Nominal_Get_Profile_by_AID + TC_eUICC_ES10c_GetProfilesInfo_04_Nominal_Get_All_Operational_Profiles + TC_eUICC_ES10c_GetProfilesInfo_05_Nominal_Get_Profile_ICCID_list + TC_eUICC_ES10c_GetProfilesInfo_06_Nominal_Get_Profile_AID_list + TC_eUICC_ES10c_GetProfilesInfo_07_Nominal_Get_Profile_Nickname_list + TC_eUICC_ES10c_GetProfilesInfo_08_Nominal_Get_Profile_SP_Name_list + TC_eUICC_ES10c_GetProfilesInfo_09_Nominal_Get_Profile_Name_list + TC_eUICC_ES10c_GetProfilesInfo_10_Nominal_Get_Profile_Icon_list + TC_eUICC_ES10c_GetProfilesInfo_11_Nominal_Get_Profile_Owner_list + TC_eUICC_ES10c_GetProfilesInfo_12_Nominal_Get_Profile_SM_DP_proprietary_data_list + TC_eUICC_ES10c_GetProfilesInfo_13_Nominal_Get_Profile_ICCID_and_State_list + TC_eUICC_ES10c_GetProfilesInfo_14_Nominal_Get_Profile_Nickname_and_State_list + TC_eUICC_ES10c_GetProfilesInfo_15_Nominal_Get_Profile_Icon_and_Icon_Type_list + TC_eUICC_ES10c_GetProfilesInfo_16_Nominal_Get_Profile_Icon_and_State_list + TC_eUICC_ES10c_GetProfilesInfo_17_Nominal_Get_Operational_Profile_ICCID_and_State_list + TC_eUICC_ES10c_GetProfilesInfo_18_Nominal_Get_Operational_Profile_Nickname_and_State_list + TC_eUICC_ES10c_GetProfilesInfo_19_Nominal_Get_Operational_Profile_Icon_and_Icon_type_list + TC_eUICC_ES10c_GetProfilesInfo_20_Nominal_Get_Operational_Profile_Icon_and_State_list + TC_eUICC_ES10c_GetProfilesInfo_21_Nominal_Get_Profile_State_of_the_defined_Profile + TC_eUICC_ES10c_GetProfilesInfo_22_Nominal_Get_Profile_Icon_Type_of_the_defined_Profile + TC_eUICC_ES10c_GetProfilesInfo_23_Nominal_Get_Profile_Class_of_the_defined_Profile + TC_eUICC_ES10c_GetProfilesInfo_24_Nominal_Get_Notification_Configuration_of_the_defined_Profile + TC_eUICC_ES10c_GetProfilesInfo_25_Nominal_Get_Profile_Policy_Rules_of_the_defined_Profile + TC_eUICC_ES10c_GetProfilesInfo_26_Nominal_Get_empty_Profile_list_No_Profile_installed (extracted verbatim)
+// Author: 卡思Cas智能体
+// Date: 20260929-122321
+// Function: (purpose 原文未由 SGP.23 该 TC 提供,corpus vacuum 登记)TC_eUICC_ES10c.GetProfilesInfo,Test Sequence #01 Nominal: Get All Profiles / #02 Nominal: Get Profile by ICCID(W0 覆盖 #01+#02),适用性 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;ICH-IC2-K1-C4 SW;ICH-IC2-K1-C3 CHANNEL_NUMBER extracted
+// ICH-IC2-K2-C4 SW;S3-C1 SW
+// S3-C2 响应为 ProfileInfoListResponse ::= profileInfoListOk : { #PROFI outer tag
+// S3-C2 响应为 ProfileInfoListResponse ::= profileInfoListOk : { #PROFI profileInfo count 3
+// S3-C2 响应为 ProfileInfoListResponse ::= profileInfoListOk : { #PROFI profile[0] tag 5A
+// S3-C2 响应为 ProfileInfoListResponse ::= profileInfoListOk : { #PROFI profile[0] tag 9F70
+// S3-C2 响应为 ProfileInfoListResponse ::= profileInfoListOk : { #PROFI profile[1] tag 5A
+// S3-C2 响应为 ProfileInfoListResponse ::= profileInfoListOk : { #PROFI profile[1] tag 9F70
+// S3-C2 响应为 ProfileInfoListResponse ::= profileInfoListOk : { #PROFI profile[2] tag 5A
+// S3-C2 响应为 ProfileInfoListResponse ::= profileInfoListOk : { #PROFI profile[2] tag 9F70
+// S3-C3 条目1 == #PROFILE_INFO1:iccid=989209012143658709F5 profile[0] tag 5A
+// S3-C3 条目1 == #PROFILE_INFO1:iccid=989209012143658709F5 profile[0] tag 9F70
+// S3-C3 条目1 == #PROFILE_INFO1:iccid=989209012143658709F5 profile[0] tag 91
+// S3-C3 条目1 == #PROFILE_INFO1:iccid=989209012143658709F5 profile[0] tag 92
+// S3-C3 条目1 == #PROFILE_INFO1:iccid=989209012143658709F5 profile[0] tag 93
+// S3-C3 条目1 == #PROFILE_INFO1:iccid=989209012143658709F5 profile[0] tag 94
+// S3-C3 条目1 == #PROFILE_INFO1:iccid=989209012143658709F5 profile[0] tag 95
+// S3-C4 条目2 == #PROFILE_INFO2:iccid=989209013254769810F9 profile[1] tag 5A
+// S3-C4 条目2 == #PROFILE_INFO2:iccid=989209013254769810F9 profile[1] tag 9F70
+// S3-C4 条目2 == #PROFILE_INFO2:iccid=989209013254769810F9 profile[1] tag 91
+// S3-C4 条目2 == #PROFILE_INFO2:iccid=989209013254769810F9 profile[1] tag 92
+// S3-C4 条目2 == #PROFILE_INFO2:iccid=989209013254769810F9 profile[1] tag 93
+// S3-C4 条目2 == #PROFILE_INFO2:iccid=989209013254769810F9 profile[1] tag 94
+// S3-C4 条目2 == #PROFILE_INFO2:iccid=989209013254769810F9 profile[1] tag 95
+// S3-C5 条目3 == #PROFILE_INFO3:iccid=989209014365870921F5 profile[2] tag 5A
+// S3-C5 条目3 == #PROFILE_INFO3:iccid=989209014365870921F5 profile[2] tag 9F70
+// S3-C5 条目3 == #PROFILE_INFO3:iccid=989209014365870921F5 profile[2] tag 90
+// S3-C5 条目3 == #PROFILE_INFO3:iccid=989209014365870921F5 profile[2] tag 91
+// S3-C5 条目3 == #PROFILE_INFO3:iccid=989209014365870921F5 profile[2] tag 92
+// S3-C5 条目3 == #PROFILE_INFO3:iccid=989209014365870921F5 profile[2] tag 93
+// S3-C5 条目3 == #PROFILE_INFO3:iccid=989209014365870921F5 profile[2] tag 94
+// S3-C5 条目3 == #PROFILE_INFO3:iccid=989209014365870921F5 profile[2] tag 95
+// S3-C6 条目1/条目2 中 profileNickname 不出现 profile[0] tag 90
+// S3-C6 条目1/条目2 中 profileNickname 不出现 profile[1] tag 90;S3-C8 无搜索判据 profileInfo count 3;S2-C1 SW
+// S2-C2 响应为 ProfileInfoListResponse ::= profileInfoListOk : { #PROFI outer tag
+// S2-C2 响应为 ProfileInfoListResponse ::= profileInfoListOk : { #PROFI profileInfo count 1
+// S2-C2 响应为 ProfileInfoListResponse ::= profileInfoListOk : { #PROFI profile[0] tag 5A
+// S2-C2 响应为 ProfileInfoListResponse ::= profileInfoListOk : { #PROFI profile[0] tag 9F70
+// S2-C3 条目 == #PROFILE_INFO1:iccid=989209012143658709F5 profile[0] tag 5A
+// S2-C3 条目 == #PROFILE_INFO1:iccid=989209012143658709F5 profile[0] tag 9F70
+// S2-C3 条目 == #PROFILE_INFO1:iccid=989209012143658709F5 profile[0] tag 91
+// S2-C3 条目 == #PROFILE_INFO1:iccid=989209012143658709F5 profile[0] tag 92
+// S2-C3 条目 == #PROFILE_INFO1:iccid=989209012143658709F5 profile[0] tag 93
+// S2-C3 条目 == #PROFILE_INFO1:iccid=989209012143658709F5 profile[0] tag 94
+// S2-C3 条目 == #PROFILE_INFO1:iccid=989209012143658709F5 profile[0] tag 95
+// S2-C4 条目中 profileNickname 不出现 profile[0] tag 90
+// 本函数由 CaseIR 4.2.20.2.1 编译生成(R2,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_ES10c_GetProfilesInfo_01_02_01_02_merged() {
+ var bind = curBind;
-function TC_eUICC_ES10c_GetProfilesInfo_01_Nominal_Get_All_Profiles()
-{
+ // IC head inline (initial_conditions → PROC_EUICC_INITIALIZATION_SEQUENCE, K row 1):RESET(K 语料机械展开)
+ var s3 = bind.resetAndAtr();
+ bind.checkData("ICH-IC1-K1-C1 ATR_present", "1", s3.atr_hex !== "" ? "1" : "0");
- initial_condition_PROFILE_OPERATIONAL1_is_Enabled();
+ // 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 s4 = bind.sendApdu("00", "A4", "00", "04", "3F00", "00", "9000");
+ bind.checkData("ICH-IC1-K2-C2 FCP_Template", "1", s4.resp.length > 0 ? "1" : "0");
+ bind.checkData("ICH-IC1-K2-C4 SW", "9000", s4.sw);
- var ISD_P_Test01 = curProfile_ISD_P_AID;
+ // IC head inline (initial_conditions → PROC_EUICC_INITIALIZATION_SEQUENCE, K row 3):TERMINAL_CAPABILITY_LPAd(K 语料机械展开)
+ var s5 = bind.sendApdu("80", "AA", "00", "00", "A9058100830107", null, "9000");
+ bind.checkData("ICH-IC1-K3-C4 SW", "9000", s5.sw);
- initial_condition_PROFILE_OPERATIONAL2_is_Disabled();
+ // IC head inline (initial_conditions → PROC_EUICC_INITIALIZATION_SEQUENCE, K row 4):TERMINAL_PROFILE(K 语料机械展开)
+ var steady6 = bind.runToSteadyState(function () {
+ return bind.sendTerminalProfile("FFFFFFFF7F9D00DFBF00001FE2000000C7EB0000000168005000000000000200", "9000");
+ });
+ bind.checkData("ICH-IC1-K4-C4 final SW", "9000", steady6.final.sw);
- var ISD_P_Test02 = curProfile_ISD_P_AID;
+ // IC head inline (initial_conditions → PROC_OPEN_LOGICAL_CHANNEL_AND_SELECT_ISDR, K row 1):MANAGE_CHANNEL_OPEN(K 语料机械展开)
+ // CHANNEL_NUMBER extraction and dynamic CLA rebinding are CasBind internal state (chaining rule; no generated-code re-implementation).
+ var s7 = bind.manageChannelOpen("9000");
+ bind.checkData("ICH-IC2-K1-C4 SW", "9000", s7.sw);
+ bind.checkData("ICH-IC2-K1-C3 CHANNEL_NUMBER extracted", "1", s7.chan !== null ? "1" : "0");
- initial_condition_PROFILE_OPERATIONAL3_is_Disabled();
+ // IC head inline (initial_conditions → PROC_OPEN_LOGICAL_CHANNEL_AND_SELECT_ISDR, K row 2):MTD_SELECT(K 语料机械展开)
+ // CLA = bound channel (cla_rule) and <L> length binding are CasBind internal state (chaining rule; no generated-code re-implementation).
+ var s8 = bind.sendApdu(null, "A4", "04", "00", "A0000005591010FFFFFFFF8900000100", null, "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("ICH-IC2-K2-C4 SW", "9000", s8.sw);
- var ISD_P_Test03 = curProfile_ISD_P_AID;
+ // 步骤 1:MTD_STORE_DATA(tc_step;REQ: RQ32_057, RQ57_117, RQ57_118, RQ57_119, RQ57_123, RQ24_029, RQ31_183)
+ // <L> length binding and the conditional 61XX + GET RESPONSE chain (D.4.2) are CasBind internal state (chaining rule).
+ var sdCla1 = s7.chan !== null ? (s7.chan <= 3 ? 128 + s7.chan : 188 + s7.chan).toString(16).toUpperCase() : null;
+ var s1 = bind.sendApdu(sdCla1, "E2", "91", "00", "BF2D00", "00", "9000");
+ bind.checkData("S3-C1 SW", "9000", s1.sw);
+ // es10x-proc-profile 响应面(TC_eUICC_ES10c.GetProfilesInfo,SGP.22 §5.7.15 结构 + vendor ABI 分支锚;断言参数经 spec_pattern 子句注入):
+ var pw1 = BindEs10xProcProfile.walkChoiceList(s1.resp, {respTag: "BF2D", okTag: "A0", errTag: "81"});
+ bind.checkData("S3-C2 响应为 ProfileInfoListResponse ::= profileInfoListOk : { #PROFI outer tag", "BF2D", (pw1.outer_tag === null ? "absent" : pw1.outer_tag));
+ bind.checkData("S3-C2 响应为 ProfileInfoListResponse ::= profileInfoListOk : { #PROFI profileInfo count 3", "1", (pw1.branch_tag === "A0" && pw1.elements.length === 3) ? "1" : "0");
+ bind.checkData("S3-C2 响应为 ProfileInfoListResponse ::= profileInfoListOk : { #PROFI profile[0] tag 5A", "989209012143658709F5", (pw1.elements.length > 0 && pw1.elements[0].fields["5A"] !== undefined) ? pw1.elements[0].fields["5A"] : "absent");
+ bind.checkData("S3-C2 响应为 ProfileInfoListResponse ::= profileInfoListOk : { #PROFI profile[0] tag 9F70", "01", (pw1.elements.length > 0 && pw1.elements[0].fields["9F70"] !== undefined) ? pw1.elements[0].fields["9F70"] : "absent");
+ bind.checkData("S3-C2 响应为 ProfileInfoListResponse ::= profileInfoListOk : { #PROFI profile[1] tag 5A", "989209013254769810F9", (pw1.elements.length > 1 && pw1.elements[1].fields["5A"] !== undefined) ? pw1.elements[1].fields["5A"] : "absent");
+ bind.checkData("S3-C2 响应为 ProfileInfoListResponse ::= profileInfoListOk : { #PROFI profile[1] tag 9F70", "00", (pw1.elements.length > 1 && pw1.elements[1].fields["9F70"] !== undefined) ? pw1.elements[1].fields["9F70"] : "absent");
+ bind.checkData("S3-C2 响应为 ProfileInfoListResponse ::= profileInfoListOk : { #PROFI profile[2] tag 5A", "989209014365870921F5", (pw1.elements.length > 2 && pw1.elements[2].fields["5A"] !== undefined) ? pw1.elements[2].fields["5A"] : "absent");
+ bind.checkData("S3-C2 响应为 ProfileInfoListResponse ::= profileInfoListOk : { #PROFI profile[2] tag 9F70", "00", (pw1.elements.length > 2 && pw1.elements[2].fields["9F70"] !== undefined) ? pw1.elements[2].fields["9F70"] : "absent");
+ bind.checkData("S3-C3 条目1 == #PROFILE_INFO1:iccid=989209012143658709F5 profile[0] tag 5A", "989209012143658709F5", (pw1.elements.length > 0 && pw1.elements[0].fields["5A"] !== undefined) ? pw1.elements[0].fields["5A"] : "absent");
+ bind.checkData("S3-C3 条目1 == #PROFILE_INFO1:iccid=989209012143658709F5 profile[0] tag 9F70", "01", (pw1.elements.length > 0 && pw1.elements[0].fields["9F70"] !== undefined) ? pw1.elements[0].fields["9F70"] : "absent");
+ bind.checkData("S3-C3 条目1 == #PROFILE_INFO1:iccid=989209012143658709F5 profile[0] tag 91", "53504E414D4531", (pw1.elements.length > 0 && pw1.elements[0].fields["91"] !== undefined) ? pw1.elements[0].fields["91"] : "absent");
+ bind.checkData("S3-C3 条目1 == #PROFILE_INFO1:iccid=989209012143658709F5 profile[0] tag 92", "4F5045524154494F4E414C50524F46494C454E414D4531", (pw1.elements.length > 0 && pw1.elements[0].fields["92"] !== undefined) ? pw1.elements[0].fields["92"] : "absent");
+ bind.checkData("S3-C3 条目1 == #PROFILE_INFO1:iccid=989209012143658709F5 profile[0] tag 93", "01", (pw1.elements.length > 0 && pw1.elements[0].fields["93"] !== undefined) ? pw1.elements[0].fields["93"] : "absent");
…(差异行超限,共 1944 行,此处截断)
- man:
ESIM_TEST_SGP_23.UCE;入口 [('TC_eUICC_ES10c_GetProfilesInfo_01_Nominal_Get_All_Profiles', 'ES10c(LPA -- eUICC):GetProfilesInfo', 'Import\\\\ExecuteTestCase_SGP_23.js(TC_eUICC_ES10c_GetProfilesInfo_01_Nominal_Get_All_Profiles)')];参数 {"ReaderName": "Identiv SCR35xx USB Smart Card Reader 0"} - cas:
TC_eUICC_ES10c_GetProfilesInfo/TC_eUICC_ES10c_GetProfilesInfo.uce;入口 [('TC_eUICC_ES10c_GetProfilesInfo_01_02_01_02_merged', 'TC_eUICC_ES10c_GetProfilesInfo', 'Import\\\\ExecuteTestCase_spec.js(TC_eUICC_ES10c_GetProfilesInfo_01_02_01_02_merged)')];参数 {"ReaderName": "Identiv SCR35xx USB Smart Card Reader 0"}
5. L2 步骤/APDU/step_map 差异(结构化对齐)
- 命令计数:man 272 / cas 0;精确对齐 0,核心(CLA·INS·P1·P2·Lc)同 0,man-only 272,cas-only 0
| # | -man | -cas | 对齐 |
|---|---|---|---|
| — | man-only: @RESET, 00A40004023F00, 00C0000020, 80AA000007A9058100830137, 8010000023FFFFFFFF7F9D00DFBF00001FE20000…0000038, 801200000F, 801400000C810301250082028281830100, 0070000000, 0070000001, 01A4040010A0000005591010FFFFFFFF8900000100, 01C0000021, 81E2910003BF2000 |
6. L3 规范字段/Expected/REQ/通过条件差异
- spec:/Users/yuhu/cas/原料/切片/4.2.20.2.1-TC_eUICC_ES10c.GetProfilesInfo/spec_intl/SGP.23-v1.16_4.2.20_GetProfilesInfo.md(风格:mapping);caseir:
/Users/yuhu/cas/experiments/4.2.20.2.1-TC_eUICC_ES10c.GetProfilesInfo-20260929_034348/caseir_materialized_gate.json
spec_intl 为人工核订映射表风格(规范步骤 ↔ 厂商脚本实现 ↔ 实跑结果):
| 规范步骤 | man 脚本实现 | man 实跑结果 |
|---|---|---|
| IC(PROF1/2/3 装载,1 Enabled,2/3 无昵称,3 昵称 #NICKNAME3) | initial_condition_PROFILE_OPERATIONAL1_is_Enabled()(L6)+`initial_con | 通过(Transaction 1-3=APDU2-792:三段完整装载链〔Info1 BF20/Challenge BF2E/Authent |
| IC1 PROC_EUICC_INITIALIZATION_SEQUENCE | Ini_powerOn_eUICC_LPAe_not_activate()(L33) | 通过(APDU795-817:复位/ATR/SELECT MF/TERMINAL CAPABILITY/PROFILE/FETCH/SET |
| IC2 PROC_OPEN_LOGICAL_CHANNEL_AND_SELECT_ISDR | TS_MANAGE_CHANNEL_OPEN()(L36)+`TS_SELECT("Select ISD", ISD_R_AID, "9 | 通过(APDU819-820 开通道 01 SW 9000;APDU825-826 Select ISD-R FCI 6F23… SW |
| 1 S_LPAd→eUICC MTD_STORE_DATA(#GET_PROFILES_INFO_ALL) → profileInfoListOk:{PROFILE_INFO1,2,3} SW=0x9000(RQ32_057/RQ57_117/RQ57_118/RQ57_119/RQ57_123/RQ24_029/RQ31_183) | ProfileInfoListRequest 无 searchCriteria 无 tagList(L44-46 `GenHexData | 通过(APDU831 81E2910003BF2D00→SW 6100;APDU832-841 链式 GET RESPONSE 10 段 |
| (收尾,非规范步骤) | RecoverCard()(L85) | 通过(Transaction 5=APDU911-1207:MemoryReset 删 Operational+Test Profile、复 |
cas CaseIR 步骤/检查:
| 步 | 动作 | checks | REQ |
|---|---|---|---|
| 1 | MTD_STORE_DATA (#GET_PROFILES_INFO_ALL) | ["S3-C1", "S3-C2", "S3-C3", "S3-C4", "S3-C5", "S3-C6", "S3-C7", "S3-C8"] | ["RQ32_057", "RQ57_117", "RQ57_118", "RQ57_119", "RQ57_123", "RQ24_029", "RQ31_183"] |
| 2 | MTD_STORE_DATA(MTD_GET_PROFILE_INFO(#ICCID_OP_PROF1, NO_PARAM)) | ["S2-C1", "S2-C2", "S2-C3", "S2-C4", "S2-C5", "S2-C6"] | ["RQ57_117", "RQ57_119", "RQ57_121", "RQ57_123"] |
6.1 充分性分析(启发式,不作最终裁定)
- cas:
NO_MECHANICAL_GAPS(全步有检查=True;REQ 全覆盖=False;ErrorCount==0=False) - cas 物化核对(启发式旁证,权威见下行 attestation):声明检查 14 项 / 生成体 checkData 55 次 / S 标号重合 11 / 计数缺口 0 / 形态
FULL;执行面FAIL(计数缺口须结合绑定层隐含断言核验,非直接判缺陷) - cas 编译器自证(check_attestation,同批构建):声明 None = js 19 + binding 3 + gap 0;缺口判定以本行为权威(启发式计数仅旁证)
- binding 覆盖示例:
S3-C7→binding:bf2d_query_structure_satisfies_requirement(S22-prof_info;S2-C5→binding:bf2d_query_structure_satisfies_requirement(S22-prof_info;S2-C6→binding:bf2d_query_structure_satisfies_requirement(S22-prof_info - cas 注释面登记检查(未以 checkData 物化、代码内有注释说明):['S2-C5', 'S2-C6', 'S3-C7']
- man:映射行 5;TTR 期望/实际回声 524;厂商工具内置审计(TTR 期望/实际回声行为证据);脚本字节级充分性不可完全外部验证
- REQ 声明面 vs caseir 引用面差异(5 项,非等价缺口判定):['RQ57_120', 'RQ57_122', 'RQ57_124', 'RQ57_125', 'RQ57_126']
- caseir open_items:
- 序列范围:W0 覆盖 #01+#02(用户 R2 裁定);#03-#26(E_tc_4220.md lines 55-314,余 24 序列)后续波次,含各自 REQ 子集与序列级 Initial Conditions(#03、#12、#26 有序列级 IC 表)。
- check id 前缀口径:#01 块沿用 R1 冻结的 S3-xx(R1 步骤号口径),#02 块按 R2 裁定用 S2-xx(序列号口径);两种口径并存,非全局唯一语义,物化期分序列时需注意。
- IC 子步 [SELECT_MF] 的 'FCP Template present' 期望未落成 check(避免与 #02 的 S2- 族 check id 撞名),仅以 expected_sw=9000 承载;如需断言后续轮增补。
- <ISD_P_AID1/2/3> 具体字节为 Annex B 动态内容(G_annexB_dynamic.md lines 51-53),由 PROFILE 安装过程产生,本 CaseIR 内无提取点;属卡态编排责任。
- 卡态编排(安装 PROFILE_OPERATIONAL1/2/3、启用 OP1、nickname 设置、序列间 CU 清理恢复 Common Initial State)属测试工具/编排责任,非 CaseIR 范围。
- R3 折叠(4227 先例):12 条 IC1/IC2 procedure_expansion 步移出 steps——IC declared 折叠(initial_conditions 既有,compile 头部内联合同,双重发射禁令);cross_step_refs 清空(CHANNEL_NUMBER 提取改由编译头部内联 IC 承载)
7. 分类结论(封闭枚举)
| 轴 | 计数 | 说明 |
|---|---|---|
RUN_DIFF | 1 | man 通过 / cas 失败 |
SCRIPT_DIALECT | 54 | 闭包文件差:man-only 3 / cas-only 51 |
GEN_DIFF | 277 | 命令序列差:man-only 272 / cas-only 0;REQ 覆盖缺口:['RQ57_120', 'RQ57_122', 'RQ57_124', 'RQ57_125', 'RQ57_126'] |
| 侧 | 根因候选(七类,启发式签名) | 签名 | |||
|---|---|---|---|---|---|
| cas | card_error | `Connect Reader 失败 | card is NOT connected | SW=0000 | SW=00000000` |
签名为文本面启发式命中(如 6D00 等 SW 亦可能是负例期望值),须结合 Expected 面核验后方可定论。
- 置信度:heuristic;需人工复核:False
8. 证据路径
- man 包:
../packages/man/4.2.20.2.1-TC_eUICC_ES10c.GetProfilesInfo-man.zip - man TTR:
/Users/yuhu/cas/原料/切片/4.2.20.2.1-TC_eUICC_ES10c.GetProfilesInfo/logs/20260908_124216_ok/extracted/ESIM_TEST_SGP_23/TC_eUICC_ES10c_GetProfilesInfo_01_Nominal_Get_All_Profiles.ttr - cas 包/源:
../packages/cas/4.2.20.2.1-TC_eUICC_ES10c.GetProfilesInfo-cas.zip - cas TTR:
/Users/yuhu/cas/experiments/4.2.20.2.1-TC_eUICC_ES10c.GetProfilesInfo-20260929_034348/logs/a8a9a507_gapfix1/result/TC_eUICC_ES10c_GetProfilesInfo/TC_eUICC_ES10c_GetProfilesInfo_01_02_01_02_merged.ttr - spec_intl:
/Users/yuhu/cas/原料/切片/4.2.20.2.1-TC_eUICC_ES10c.GetProfilesInfo/spec_intl/SGP.23-v1.16_4.2.20_GetProfilesInfo.md - caseir:
/Users/yuhu/cas/experiments/4.2.20.2.1-TC_eUICC_ES10c.GetProfilesInfo-20260929_034348/caseir_materialized_gate.json - step_map:
—