HSIMC AIS B / hk2 — 浏览器修复与工程复用说明 C0-008
固定现场：2026-10-12。本文记录本机已发生的修复，不是适用于所有百杰板卡的一键安装器。

1. 验收结论及证据层级

本轮最终状态为 PASS，范围为 AIS_B_BROWSER_AND_THREE_DESKTOP_ENTRIES。
三个原有桌面图标均通过 XTEST 对真实 xfdesktop 图标的双击打开页面，检查对象是实际 DISPLAY :0 窗口及其截图。每个页面均核对了浏览器窗口、目标地址和实际正文，最后又检查三个窗口仍为 IsViewable，均由正在运行的 Firefox 主进程持有。
早期 FONT-RECEIPT 与 INTEGRATION-RECEIPT 在各自阶段保留 PENDING；08:00–08:03 UTC 的真实页面/图标验收及 08:07 UTC 的最终记录接续完成了这些检查。应沿时间与证据读取状态，不能把中途状态当作最终状态。

07 HSIMC Cloud：HSIMC 云端首页，英文和中文正文可见。
08 HSIMC Local Contract：C0-001 离线参考页，清楚显示“Offline reference · Not a live MCP server”。
09 HSIMC Local Node Portal：HRI Local Node Portal，显示本机可用及运行状态卡片。

这里的 PASS 不能外推为用户已口头确认、全部网站都正常、视频性能达标、GPU 加速可用、NPU 已工作或 MCP 合约已实时执行。本轮没有记录用户在现场口头验收；以前 SDK 验证器的 COMPLETE / PASS 仍是其自身工作包范围内的结果。

原始验收文件：BROWSER-ACCEPTANCE.json。
SHA256：0ce598fd6b171abf9471ff3f428051879b43dc3c40b24a65a785e0345d66b123。
UTC 时间：2026-10-12T08:07:13.950473+00:00。

2. 最初故障与已排除的假设

用户看到图标似乎响应但没有浏览器。此前 GNOME Web 的 dpkg / apt 安装成功，依赖范围也已验收；这只证明文件和软件包状态，不能证明浏览器能够建立实际网页进程。

本轮读回的厂商内核为 Linux 5.15.119，CONFIG_NAMESPACES=y，但 CONFIG_USER_NS、CONFIG_PID_NS、CONFIG_UTS_NS 未启用。CONFIG_SECCOMP 和 CONFIG_SECCOMP_FILTER 已启用。现场 GNOME Web / bubblewrap 的启动失败与缺失的命名空间能力一致。不能仅通过重新 chmod 图标、重装已存在的软件包或改默认浏览器名称修复这种启动条件。

本轮读回的显示状态是一个活动 HDMI-1，2560×1440 @ 60 Hz；LightDM 为 active。没有证据支持“窗口跑到了第二块活动显示器”作为本次主因。后续真实截图直接确认了网页就在该 HDMI 桌面内。

3. 本轮采用的浏览器路线

使用 Mozilla 官方 Firefox 157.0.1 Linux ARM64 tar.xz，按普通用户独立安装。
来源为 Mozilla 官方发布目录及其中的 linux-aarch64/en-US 成员；下载后核对官方 SHA256SUMS，使用 gpgv 验证分离签名并得到 VALIDSIG。KEY 也通过同一官方 HTTPS 来源取得。这是本轮实际的校验范围，没有额外声称已经进行带外密钥指纹核验。

安装位置：
/home/szbaijie/.local/opt/hsimc-firefox/firefox/firefox

长期浏览器配置目录：
/home/szbaijie/.local/share/hsimc/firefox-profile

桌面统一启动入口：
/home/szbaijie/.local/bin/hsimc-browser

本轮没有使用 Firefox / Chromium 的 apt Snap 过渡包，没有卸载 GNOME Web，也没有为此升级系统 NSS 等依赖。GNOME Web 仍然存在，它在本机原内核下的命名空间障碍并未被修复；可用浏览器现为 Firefox。

Firefox 自报版本 157.0.1，BuildID 20261005135250，源码标识 737ec77d798755890b062aab541a90d6c75afd19。源码标识来自安装包的 application.ini；本轮没有成功逐行读取该精确提交的全部实现，不能把上游 main 分支的设计说明冒充该发布版本的源码审计。

4. 沙箱必须看实际运行证据

实际 about:support：
hasSeccompBPF=true；hasSeccompTSync=true；canSandboxContent=true；canSandboxMedia=true。
contentSandboxLevel=6；effectiveContentSandboxLevel=6。
hasUserNamespaces=false；hasPrivilegedUserNamespaces=false。

最终验收时，12 个现存内容进程均读到 Seccomp: 2 与 NoNewPrivs: 1。未设置 MOZ_DISABLE_*；未修改 security.sandbox 首选项。未采用关闭沙箱参数。

因此，本轮可证明 Firefox 的默认内容沙箱在此环境中运行，且有效等级为 6；不能把它描述成具备完整的额外命名空间/隔离根目录能力。缺失的 USER_NS/PID_NS/UTS_NS 仍是原内核的限制。

5. 桌面集成的处理

为 Firefox 建立应用 desktop entry、XFCE WebBrowser helper，并更新普通用户的 HTTP、HTTPS、HTML、XHTML 默认关联。
现有 07、08、09 图标保留原名字和目标页面，Exec 指向统一 wrapper，并使用 --new-window。
原 google.desktop 的 URL 从缺少 scheme 的 www.google.com 改为 https://www.google.com/，同时换为浏览器图标。
这些变更及原始文件的 SHA256、权限、备份位置记录在 INTEGRATION-RECEIPT.json。已有 01–06 非浏览器入口的字节摘要未变。

长期 wrapper 内容为：
#!/bin/sh
set -eu
exec "/home/szbaijie/.local/opt/hsimc-firefox/firefox/firefox" --profile "/home/szbaijie/.local/share/hsimc/firefox-profile" "$@"

它没有 --no-remote。该参数适合隔离试运行，但不应照搬进此处的长期桌面入口，否则后续图标打开独立进程、占用同一 profile 或窗口复用可能不符合预期。本轮先正常关闭测试进程，再用长期 wrapper 启动，随后真实双击确认三个窗口由同一主进程接收。

desktop-file-validate 与 update-desktop-database 成功。gio metadata::trusted 在当前桌面后端返回 unsupported；这不是 XFCE 桌面图标运行的最终验收。已知 desktop 文件保持可执行并完成真实双击，才证明入口可用。

6. 中文字体处理

按普通用户安装 Noto Sans CJK SC Regular 2.004，字体固定到官方 noto-cjk 仓库提交 523d033d6cb47f4a80c58a35753646f5c3608a78，同时保存 SIL Open Font License 1.1 文本。
安装目录：/home/szbaijie/.local/share/fonts/hsimc-noto-cjk-2.004/。
执行用户字体缓存更新；没有写全局 fontconfig 配置。

排查时，一个过严的检查把 fc-match sans-serif:lang=zh-tw 返回 DejaVu 误当成“繁体中文无字体”。实际通用字体家族的首选结果不等于所有汉字的 fallback。指定汉字字符集后会匹配 Noto Sans CJK SC；真实页面上的简体和常见繁体中文也可阅读。
本轮采用 SC 字形风格，不能由此宣称所有东亚文字、所有地区字形或全部网页字体均已覆盖。

7. 配置目录迁移与已有页面保留

浏览器首次运行后，用户已有 7 个打开的标签页。迁移前先通过 X11 的正常窗口关闭协议退出 Firefox，确认退出后保存完整 profile 归档，并验证归档可完整读回；之后才移动到长期目录。
仅在已关闭的 profile 中设置 Firefox 支持的一次性 browser.sessionstore.resume_session_once=true，启动后它被消费清除。重新读取会话摘要，确认原 7 个标签页的 URL 摘要全部保留；浏览器额外生成的欢迎标签随后关闭。
不使用强制 kill -9，不删除 sessionstore，不覆盖用户当前会话，也不将浏览器 profile、cookie、浏览历史或原始会话文件放入知识发布包。

8. 图形、存储与运行边界

实际 about:support 显示 WebRender (Software)，Mesa llvmpipe。硬件合成受平台限制；WebGL 1/2 失败；硬件视频解码及 DMABUF 路径未通过。此次未设置渲染环境变量或强制图形首选项。网页功能验收已经通过，但图形加速是另一个工作包。

最终根分区可用 1,900,488 KiB，约 1.81 GiB；/srv/hk2 可用 48,553,120 KiB。安装后不应继续引用安装前“约 2.7 GB 可用”的旧数值。设备内存约 2 GB、无 swap，不能把本次三个入口的通过外推为大量标签页或重视频负载的性能承诺。

9. 本轮保留的工程底线

原内核仍为 5.15.119。解压后的内核配置 SHA256 前后为：
2fd95877a161adbadd70b95644ffdd3609df942dc9b458e98c0c4c843d6361d3。
没有进行设备重启、启动分区写入、内核/固件替换、apt 包安装/升级、NPU/MCP 服务部署或沙箱关闭。
本轮对“未改启动分区”的陈述指本轮执行动作没有写入该区域；没有把内核配置摘要当成完整启动分区重新逐字节校验的替代品。

10. 下一位工程师可直接复用的排查顺序

A. 先固定目标板身份、实际 SSH 路由、桌面用户、当前显示及存储状态，防止在另一台机器上验收。
B. 分别检查“已安装”“可启动进程”“出现真实窗口”“页面内容可用”“图标/默认关联可用”，不要合成一个软件包 PASS。
C. 读内核配置和失败日志，再决定浏览器路线；桌面图标修复不能补足缺失的内核能力。
D. 对官方自带库的程序，按程序真实启动环境做依赖检查。直接对 libxul.so 运行裸 ldd 曾误选系统 NSS，产生假缺依赖；按打包库解析检查后通过。不要为这个误判升级系统 NSS，也不要把检查用 LD_LIBRARY_PATH 固化到用户运行环境。
E. 先用真实窗口验证沙箱和网页，再完成 desktop、MIME、XFCE helper 与长期 profile；把临时隔离参数留在临时试验中。
F. 字体安装、字体匹配、页面中文字形是三个证据层次；看目标汉字及真实页面，避免仅检查通用首选字体。
G. 首次运行页面、默认浏览器提示及焦点变化会遮挡目标网页。须核对地址、标题和正文。截图必须来自目标板的实际显示，不能用 Mac 上的浏览器页面代替。
H. 本轮 XWD 为 depth 24、每像素 24 bit、行跨度 10240；转 PNG 应使用实际头字段和行跨度。假设每像素 32 bit 会造成错误画面。若抓取时窗口重绘造成 BadMatch，待画面稳定后重取，不修改显示服务器。
I. 保存可分享摘要与原始私有证据的对应关系。工程摘要可以公开，真实本机门户截图和浏览器档案留在操作者工作目录。
J. 浏览器通过后，才继续对 live MCP 的端点、协议、合约身份、执行与收据进行各自验收。08 的离线参考页不能当成服务已经部署的证据。

官方来源
Firefox Linux 安装说明：https://support.mozilla.org/en-US/kb/install-firefox-linux
本轮固定发布目录：https://archive.mozilla.org/pub/firefox/releases/157.0.1/
本轮系统需求页：https://www.firefox.com/en-US/firefox/157.0.1/system-requirements/
字体与许可证的固定官方文件 URL、长度和 SHA256 见 RELEASE-PROVENANCE.json。

本文件与 JSON 摘要记录的是本轮现场观察及执行结果。官方链接用于说明来源与安装方式，不替代本机真实运行的证据。
