# 5.2.2.2.1 TC_eUICC_ForbiddenPPRs — `-man` ↔ `-cas` diff 报告
> **交付形态说明**：本报告随专家交付包分发——`-man`/`-cas` 脚本包 zip 与 190server HTML 执行日志已内联至 `packages/`、`evidence-html/`，相应路径已相对化；TTR、spec_intl、caseir 等仓内留痕仍为生成机原始路径（未随包）。

- 生成时间：2026-10-08 22:57:12 ｜引擎：holiday-blk5/0.1｜配对状态：`PAIRED`
- 分母口径：卡侧 61 之一

## 1. 配对与包

| 侧 | 包/源 | sha256 | 源类型 | 入口用例 |
|---|---|---|---|---|
| `-man` | 5.2.2.2.1-TC_eUICC_ForbiddenPPRs-man.zip | `e49cd4725abba8745c30716c27d3389d5723123dae5fa26b8047102c9a7d717e` | zip | TC_eUICC_ForbiddenPPRs_01_Nominal_PPR1_management_and_handling_when_Operational_Profile_is_installed |
| `-cas` | 5.2.2.2.1-TC_eUICC_ForbiddenPPRs-cas.zip | `7eba9f097040c75f7373058c537a14823f2d23b127f6fdb4f8f00470c69f5181` | zip | — |

- man 源路径：`../../packages/man/5.2.2.2.1-TC_eUICC_ForbiddenPPRs-man.zip`
- cas 源路径：`../../packages/cas/5.2.2.2.1-TC_eUICC_ForbiddenPPRs-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 | `20260909_001305_ok:9219ede910dd4a408d92cd69b2af691c` | — | `/Users/yuhu/cas/原料/切片/5.2.2.2.1-TC_eUICC_ForbiddenPPRs/logs/20260909_001305_ok/result/ESIM_TEST_SGP_23/TC_eUICC_ForbiddenPPRs_01_Nominal_PPR1_management_and_handling_when_Operational_Profile_is_installed.ttr` | `—` |
| `-cas` | `failed` | 纯 native 零卡态前置（N0） | 71 | `b973b826aab64188adc523c85696010a` | — | `/Users/yuhu/cas/experiments/5.2.2.2.1-TC_eUICC_ForbiddenPPRs-20261008_020421/logs/b973b826_gapfix1/result/TC_eUICC_ForbiddenPPRs/TC_eUICC_ForbiddenPPRs_01_merged.ttr` | `—` |
- cas 块4账本：decision=`RERUN`；route=`native_N0`；live 事件 3 条（4.6 波次进行中；以块4终版账本为准）
- cas 4.6 波次最新执行：terminal=`failed`；stage=`cas_gapfix_rerun`；job=`b973b826aab64188adc523c85696010a`；gaps=["gapfix-rerun：job 终态 succeeded，业务判 failed（error_count=4）；failed 亦为有效终态，如实登记"]
- cas 失败归因引用（块4）：`b8-attribution.md`, `b9-attribution.md`
- cas 证据来源分层：`RERUN` → 本轮 4.6 波次执行

## 3. HTML 执行日志状态

- `-man`：**NATIVE**（`../../evidence-html/5.2.2.2.1/man/TC_eUICC_ForbiddenPPRs_01_Nominal_PPR1_management_and_handling_when_Operational_Profile_is_installed.html`；sha256 `65e3df418fe246abb7497a61fdfa0348ef13c19838c697292335f1d243e3168b`；327329 bytes）
- `-cas`：**NATIVE**（`../../evidence-html/5.2.2.2.1/cas/TC_eUICC_ForbiddenPPRs_01_merged.html`；sha256 `78e25a48c326e78294bce3d8a9817af700cfc5aaef5d5446447711872da2f2be`；26283 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 160 / cas 318；字符：man 6863 / cas 29664
- man 顶层调用 Top：[["TestStepStart2", 14], ["CheckData", 6], ["LPAd_Transport_data_to_eUICC", 4], ["checkCardResDataFormat", 4], ["SubLevel", 4], ["TC_eUICC_ForbiddenPPRs_01_Nominal_PPR1_management_and_handling_when_Operational_Profile_is_installed", 2], ["TS_SELECT", 2], ["EUICCInfo2", 2], ["RSP_profile_load_procedure_LPAd", 2], ["ES10b_GetEUICCInfo1", 2]]
- cas bind 调用：[["checkData", 24], ["sendApdu", 12], ["resetAndAtr", 1], ["runToSteadyState", 1], ["sendTerminalProfile", 1], ["manageChannelOpen", 1]]

| 方言映射对 | 命中数 |
|---|---|
| TS_*_cmd() ↔ bind.* 命令封装 | 3 |

<details><summary>unified diff（截断预览）</summary>

```diff
--- man
+++ cas
@@ -1,159 +1,317 @@
-// slice of Import\TestCase_SGP_23.js - cases: TC_eUICC_ForbiddenPPRs_01_Nominal_PPR1_management_and_handling_when_Operational_Profile_is_installed (extracted verbatim)
-
-function TC_eUICC_ForbiddenPPRs_01_Nominal_PPR1_management_and_handling_when_Operational_Profile_is_installed()
-{
-
-	tracenamestr = "卡内存在一个Operational的profile，不允许再下载一个PPR1的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 = 1;
-
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送SELECT命令，选择ISD-R；");
-	TS_SELECT("Select ISD",ISD_R_AID,"9000");
-
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令，执行GetEuiccInfo2Request，检查forbiddenProfilePolicyRules；");
-	var euiccInfo2 = new EUICCInfo2();
-	var hexData = LPAd_Transport_data_to_eUICC(GetEuiccInfo2RequestHexStr);
-
-	euiccInfo2.checkCardResDataFormat(hexData);
-
-	try
-	{
-		curStrHandle.CheckData("不存在", euiccInfo2.forbiddenProfilePolicyRules, "forbiddenProfilePolicyRules");
-	}catch(e){
-		obj.SubLevel(ProfileInfoListResponse_Data_Error, level_of_SubLevel.error);
-	}
-
-	curDis.TestStepStart2(stno++,"下载PROFILE_OPERATIONAL1；");
-
-
-	var Profile_load_procedure = new RSP_profile_load_procedure_LPAd(PROFILE_OPERATIONAL1_DATA);
-	Profile_load_procedure.ICCID = ICCID_OP_PROF1;
-	Profile_load_procedure.ES10b_GetEUICCInfo1();
-
-	Profile_load_procedure.ES10b_GetEUICCChallenge();
-
-	Profile_load_procedure.ES10b_AuthenticateServer();
-
-	Profile_load_procedure.ES10b_PrepareDownload();
-
-	Profile_load_procedure.ES10b_GetEID();
-
-
-	Profile_load_procedure.serviceProviderName = SP_NAME1;	//SP Name 1
-	Profile_load_procedure.profileName = PROFILE_OPERATIONAL1_NAME1;
-	Profile_load_procedure.iconType = "01";
-	Profile_load_procedure.icon = ICON_OP_PROF1;
-	Profile_load_procedure.notificationConfigurationInfo = new SequenceOfElement("30");
-	Profile_load_procedure.notificationConfigurationInfo.arrOfElement[0] = new NotificationConfigurationInformation();
-	Profile_load_procedure.notificationConfigurationInfo.arrOfElement[0].profileManagementOperation = "04F0";
-	Profile_load_procedure.notificationConfigurationInfo.arrOfElement[0].notificationAddress = TEST_DP_ADDRESS1;
-	Profile_load_procedure.profileOwner = OWNER_OP_PROF1;
-	Profile_load_procedure.profileClass = "02";
-	Profile_load_procedure.mccMnc = MCC_MNC1;
-
-	Profile_load_procedure.ES10b_LoadBoundProfilePackage();
-
-	var ISD_P_Test01 = curProfile_ISD_P_AID;
-
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令，执行GetEuiccInfo2Request，检查forbiddenProfilePolicyRules；");
-	var euiccInfo2 = new EUICCInfo2();
-	var hexData = LPAd_Transport_data_to_eUICC(GetEuiccInfo2RequestHexStr);
-
-	euiccInfo2.checkCardResDataFormat(hexData);
-
-	try
-	{
-		var curforbiddenPPR = "0640";
-		curStrHandle.CheckData(curforbiddenPPR, euiccInfo2.forbiddenProfilePolicyRules, "forbiddenProfilePolicyRules");
-
-
-	}catch(e){
-		obj.SubLevel(ProfileInfoListResponse_Data_Error, level_of_SubLevel.error);
-	}
-
-
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令，执行GetEuiccInfo1Request；");
-	var Profile_load_procedure = new RSP_profile_load_procedure_LPAd(PROFILE_OPERATIONAL4_DATA);
-	Profile_load_procedure.ICCID = ICCID_OP_PROF4;
-	Profile_load_procedure.ES10b_GetEUICCInfo1();
-
-
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令，执行GetEuiccChallengeRequest；");
-	Profile_load_procedure.ES10b_GetEUICCChallenge();
-
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令，执行AuthenticateServerRequest；");
-	Profile_load_procedure.ES10b_AuthenticateServer();
-
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令，执行PrepareDownloadRequest；");
-	Profile_load_procedure.ES10b_PrepareDownload();
-
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令，执行GetEuiccDataRequest(GetEID)；");
-	Profile_load_procedure.ES10b_GetEID();
-
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令，执行BoundProfilePackage；");
-	Profile_load_procedure.serviceProviderName = SP_NAME4;
-	Profile_load_procedure.profileName = NAME_OP_PROF4;
-	Profile_load_procedure.iconType = "01";
-	Profile_load_procedure.icon = ICON_OP_PROF4;
-	Profile_load_procedure.notificationConfigurationInfo = new SequenceOfElement("30");
-	Profile_load_procedure.notificationConfigurationInfo.arrOfElement[0] = new NotificationConfigurationInformation();
-	Profile_load_procedure.notificationConfigurationInfo.arrOfElement[0].profileManagementOperation = "04F0";
-	Profile_load_procedure.notificationConfigurationInfo.arrOfElement[0].notificationAddress = TEST_DP_ADDRESS4;
-	Profile_load_procedure.profilePolicyRules = "0640";
-	Profile_load_procedure.mccMnc = MCC_MNC4;
-	Profile_load_procedure.profileClass = "02";
-
-	Profile_load_procedure.isErrorTest = true;
-	Profile_load_procedure.bppCommandId = BppCommandId.storeMetadata;;
-	Profile_load_procedure.errorReason = ErrorReason.pprNotAllowed;
-	Profile_load_procedure.ES10b_LoadBoundProfilePackage();
…（差异行超限，共 478 行，此处截断）
```

</details>
### 4.2 UCE/命名对照

- man：`ESIM_TEST_SGP_23.UCE`；入口 [('TC_eUICC_ForbiddenPPRs_01_Nominal_PPR1_management_and_handling_when_Operational_Profile_is_installed', 'Forbidden PPRs', 'Import\\\\ExecuteTestCase_SGP_23.js(TC_eUICC_ForbiddenPPRs_01_Nominal_PPR1_management_and_handling_when_Operational_Profile_is_installed)')]；参数 {"ReaderName": "Identiv SCR35xx USB Smart Card Reader 0"}
- cas：`TC_eUICC_ForbiddenPPRs/TC_eUICC_ForbiddenPPRs.uce`；入口 [('TC_eUICC_ForbiddenPPRs_01_merged', 'TC_eUICC_ForbiddenPPRs', 'Import\\\\ExecuteTestCase_spec.js(TC_eUICC_ForbiddenPPRs_01_merged)')]；参数 {"ReaderName": "Identiv SCR35xx USB Smart Card Reader 0"}

## 5. L2 步骤/APDU/step_map 差异（结构化对齐）

- 命令计数：man 140 / cas 0；精确对齐 0，核心（CLA·INS·P1·P2·Lc）同 0，man-only 140，cas-only 0

| # | `-man` | `-cas` | 对齐 |
|---|---|---|---|
| — | man-only: `@RESET`, `00A40004023F00`, `00C0000020`, `80AA000007A9058100830137`, `8010000023FFFFFFFF7F9D00DFBF00001FE20000…0000038`, `801200000F`, `801400000C810301250082028281830100`, `0070000000`, `0070000001`, `01A4040010A0000005591010FFFFFFFF8900000100`, `01C0000021`, `81E2910003BF2200` | | |

## 6. L3 规范字段/Expected/REQ/通过条件差异

- spec：/Users/yuhu/cas/原料/切片/5.2.2.2.1-TC_eUICC_ForbiddenPPRs/spec_intl/SGP.23-v1.16_5.2.2.2.1_ForbiddenPPRs.md（风格：table）；caseir：`/Users/yuhu/cas/experiments/5.2.2.2.1-TC_eUICC_ForbiddenPPRs-20261008_020421/caseir_materialized_gate.json`

| 步 | 规范动作 | Expected 片段 | 规范 REQ | cas 检查 | cas REQ | man 实现 | man 结果 |
|---|---|---|---|---|---|---|---|
| 1 | MTD_STORE_DATA(#GET_EUICC_INFO2) | 1 | ["RQ57_053", "RQ57_054", "RQ57_056", "RQ57_057"] | ["S1-C1", "S1-C2"] | ["RQ57_053", "RQ57_054", "RQ57_056", "RQ57_057"] | T1 L22-34：EUICCInfo2 请求＋断言 `"不存在"`（L29） | 通过（ttr 步骤4，APDU46-48 期望=实际 `不存在`——空卡无 forbidden PPR） |
| 2 |  | 0 | ["RQ57_057"] | [] | [] | T1 L36-65：完整装载链（GetEUICCInfo1 L40→Challenge L43→AuthServer L | 通过（OP1 装载链 APDU49-240 全绿：BF38 认证 9000／BPP 分段 9000／末段 BF37 PIR 成功） |
| 3 | MTD_STORE_DATA(#GET_EUICC_INFO2) | 1 | ["RQ57_053", "RQ57_054", "RQ57_056"] | ["S3-C1", "S3-C2"] | ["RQ57_053", "RQ57_054", "RQ57_056"] | T1 L67-79：EUICCInfo2 请求＋断言 `0640`（L74-75） | 通过（ttr 步骤6，APDU243-252：实际响应 `BF22…8B0102 99 02 0640 …`（tag 99＝forbiddenProfilePolicyRules）＋期望=实际 `0640`——PPR1 已自动置位） |
| 11 | MTD_STORE_DATA_SCRIPT(<BPP_SEG_A1>) | 1 | ["RQ25_025", "RQ25_023", "RQ57_056", "RQ55_032", "RQ57_057"] | ["S11-C1", "S11-C2", "S11-C3"] | ["RQ25_023", "RQ25_025", "RQ55_032", "RQ57_056", "RQ57_057"] | 同 L117 调用末段＋错误通道断言 | 通过（ttr APDU364 实际响应 `BF378185BF273F 8010145A6636…`＝ProfileInstallationResult；逐项断言全等：transactionId=145A6636…（APDU369-370）／smdpOid=88370A（APDU372-373）／notificationAddress=smdpplus.test.com（APDU375-376）／**Profile下载结果 期望=实际「Profile下载失败」（APDU378-379）**／**bppCommandId=02（storeMetadata，APDU381-382）**／**errorReason=0F（pprNotAllowed，APDU384-385）**） |
| 12 | MTD_STORE_DATA(#GET_PROFILES_INFO_ALL) | 1 | [] | ["S12-C1", "S12-C2"] | [] | T1 L120-153：重选 ISD-R（L120）＋PIR iccid(ICCID_OP_PROF1) 三断言（icc | 通过（ttr 步骤13-14，APDU387-415：OP1 profile State 期望=实际 `00`（Disabled）／OP4 Profile Info number 期望=实际 `00`） |
| 13 |  | 0 | [] | [] | [] | **无显式脚本断言**——由 `RecoverCard()`（L158）MemoryReset 链承载删除语义 | （覆盖差登记：ttr T2 APDU418-599 RecoverCard 全链绿＝卡回零态，但无针对 OP1 的独立 DeleteProfile 断言行） |
| 14 | MTD_STORE_DATA(#GET_EUICC_INFO2) | 1 | ["RQ57_053", "RQ57_054", "RQ57_056"] | ["S14-C1", "S14-C2"] | ["RQ57_053", "RQ57_054", "RQ57_056"] | **无显式脚本断言**（RecoverCard 后未复查 forbiddenProfilePolicyRules） | （覆盖差登记：同上，规范步 14 断言无对应实跑证据行） |

### 6.1 充分性分析（启发式，不作最终裁定）

- cas：`NO_MECHANICAL_GAPS`（全步有检查=True；REQ 全覆盖=True；ErrorCount==0=False）
- cas 物化核对（启发式旁证，权威见下行 attestation）：声明检查 15 项 / 生成体 checkData 24 次 / S 标号重合 13 / 计数缺口 0 / 形态 `FULL`；执行面 `FAIL`（计数缺口须结合绑定层隐含断言核验，非直接判缺陷）
- **cas 编译器自证（check_attestation，同批构建）**：声明 None = js 21 + binding 2 + gap 0；缺口判定以本行为权威（启发式计数仅旁证）
  - binding 覆盖示例：`S11-C2`→binding:bpp_seg_load_pir_runtime_structure(S22-2.5.6;PIR-runtime；`S11-C3`→binding:bpp_seg_load_pir_runtime_semantics(S22-2.5.6;PIR-runtime
- cas 注释面登记检查（未以 checkData 物化、代码内有注释说明）：['S11-C2', 'S11-C3']
- man：mapping 行 12 / 规范步 7；TTR 期望/实际回声 256；厂商工具内置审计（TTR 期望/实际回声行为证据）；脚本字节级充分性不可完全外部验证
- caseir open_items：
  - General Initial Conditions（E_tc_522 表1031）：eUICC 内无任何 Profile——卡态编排责任，不在 CaseIR 范围。
  - 测试前置与清理：PROFILE_OPERATIONAL1 的安装与删除、eUICC 记忆体复位/Profile 状态刷新（REFRESH 与 TERMINAL RESPONSE）由编排侧负责。
  - BPP 物料（#S_INIT_SC_PROF1 / #CONF_ISDP_EMPTY / #METADATA_OP_PROF4 / #UPP_OP_PROF4）由测试工具按 Annex D/E 内容生成，输入包未含其字节。
  - Profile 状态变更可能触发 proactive REFRESH（SW=91XX）或 69 85；FETCH/TERMINAL RESPONSE 编排由执行侧处理。

## 7. 分类结论（封闭枚举）

| 轴 | 计数 | 说明 |
|---|---|---|
| `RUN_DIFF` | 1 | man 通过 / cas 失败 |
| `SCRIPT_DIALECT` | 54 | 闭包文件差：man-only 3 / cas-only 51 |
| `GEN_DIFF` | 140 | 命令序列差：man-only 140 / cas-only 0 |

| 侧 | 根因候选（七类，启发式签名） | 签名 |
|---|---|---|
| cas | `card_error` | `Connect Reader 失败|card is NOT connected|SW=0000|SW=00000000` |

> 签名为文本面启发式命中（如 `6D00` 等 SW 亦可能是负例期望值），须结合 Expected 面核验后方可定论。

- 置信度：heuristic；需人工复核：False

## 7.1 人工注记（收尾循环）

- **残留 gap（收尾循环终态）**：`S2-C1` Install PROFILE_OPERATIONAL1 执行面——高层卡态编排行，无单条 APDU 闭合面（判例 4227 裁定 B 同族口径）。
- 同 TC `BPP_SEG_*` 装载面已修（F3 Group2：声明面→装载步接线，3→1）。

- **闭合（2026-10-07 另案）**：S2-C1 退休——卡态编排声明步无脚本断言面（4227 裁定 B 同族口径：执行面=batch card_state prep，脚本不编译），E 表步 2 无 Expected 列；caseir 双镜像步 2 checks 清空＋coverage req_to_checks/check_refs 4→3＋mapped_to_step 1,3,11（门禁 orphan 判定）；注册项注记落账；编译 gap **1→0**（js 21＋binding 2），e2e/重建零判定翻转。

## 8. 证据路径

- man 包：`../../packages/man/5.2.2.2.1-TC_eUICC_ForbiddenPPRs-man.zip`
- man TTR：`/Users/yuhu/cas/原料/切片/5.2.2.2.1-TC_eUICC_ForbiddenPPRs/logs/20260909_001305_ok/result/ESIM_TEST_SGP_23/TC_eUICC_ForbiddenPPRs_01_Nominal_PPR1_management_and_handling_when_Operational_Profile_is_installed.ttr`
- cas 包/源：`../../packages/cas/5.2.2.2.1-TC_eUICC_ForbiddenPPRs-cas.zip`
- cas TTR：`/Users/yuhu/cas/experiments/5.2.2.2.1-TC_eUICC_ForbiddenPPRs-20261008_020421/logs/b973b826_gapfix1/result/TC_eUICC_ForbiddenPPRs/TC_eUICC_ForbiddenPPRs_01_merged.ttr`
- spec_intl：`/Users/yuhu/cas/原料/切片/5.2.2.2.1-TC_eUICC_ForbiddenPPRs/spec_intl/SGP.23-v1.16_5.2.2.2.1_ForbiddenPPRs.md`
- caseir：`/Users/yuhu/cas/experiments/5.2.2.2.1-TC_eUICC_ForbiddenPPRs-20261008_020421/caseir_materialized_gate.json`
- step_map：`—`

