Russ534

usb-secure-mass-production

"Build FC1178BC 光U / 光闸 with CD-ROM LUN plus encrypted LUN (BitLocker on Win Pro/Enterprise, VeraCrypt fallback on Win Home)."

Russ534 0 Updated 4d ago

Resources

3
GitHub

Install

npx skillscat add russ534/myopenclawbot/usb-secure-mass-production

Install via the SkillsCat registry.

SKILL.md

USB 加密读盘量产 (光U / 光闸自建)

A "光U" (a.k.a. 自建"光闸U盘" / 御天盾-equivalent) is a USB stick whose controller firmware is mass-production-flashed to present two LUNs:

  • LUN:1 = USB CD-ROM (read-only, embedded auto-unlock scripts)
  • LUN:2 = Removable disk (NTFS, encrypted)
  • LUN:3 = Not used

When inserted into Win10/11, File Explorer shows a CD drive (typically E: or F:) whose autorun launches a password prompt; correct password → unlock the data LUN → opens it. Pulling the U盘自动锁回。

Encrypted LUN backend — pick by Win edition:

Windows edition Encryption backend How unlock script invokes
Pro / Enterprise / Education BitLocker manage-bde -unlock <drive> -Password <pwd>
Home (家庭版) VeraCrypt (Portable, packed into the ISO) VeraCrypt.exe /v <partition_path> /p <pwd> /l V: /q

Important: Win11 Home CANNOT use BitLocker for removable media. Trying manage-bde on Home throws "组策略禁止" / "找不到 protectkey 协议". Don't push BitLocker on Home machines. This skill covers both branches — use the VeraCrypt branch when the target machine is Home.

This skill applies when 爸爸 says "光U / 光闸 / 御天盾 / 自建加密U盘 / USB CD-ROM + 密码 / 摆渡U盘 / 保密U盘 / FC1178BC 量产 + 加密", or in 内外网隔离 / 涉密 / 电网GA / 麒麟统信 scenarios needing a tamper-resistant carrier that opens with a password on stock Win10/11 without installing software.


🚨 Terminology Trap (已踩过的坑)

"光U" / "可擦写光驱" / "光闸" 在中文圈被滥用,三层容易混淆:

词 真意 处理
光U / 光闸 U盘 本 skill: CD-ROM LUN(带自动解锁脚本)+ BitLocker 数据 LUN 量产 + BitLocker + unlock ISO
USB CD-ROM 量产 普通可移动盘用 MPTool 量成纯只读 USB-CDROM 只需 ISO + MPTool
BitLocker To Go 普通 U 盘在 Windows 内启用 BitLocker 5 分钟,不是这个

听到 "光U" / "光闸 / 自建光闸U盘" → 指本 skill,不是随便下个量产 ISO 烧盘。


整体架构

┌─────────────────────────────────────────┐
│  FC1178BC 主控(一芯 FirstChip)           │
├──────────┬──────────────────────────────┤
│ LUN:1    │ CD-ROM (物理只读固件区)         │
│ ~700MB   │  └─ mylightu.iso 含:            │
│ (Win 内  │     ├─ autorun.inf             │
│  MP 配)  │     ├─ start.bat / unlock.exe  │
│          │     ├─ unlock.ps1  ← 密码框     │
│          │     ├─ unlock.py / .pyw        │
│          │     ├─ VeraCrypt.exe  ← 家庭版  │
│          │     ├─ README.TXT              │
│          │     └─ (only Home) 7z.exe/bits │
├──────────┼──────────────────────────────┤
│ LUN:2    │ 可移动磁盘 (NTFS)               │
│ 剩余空间 │  Win Pro/Enterprise:            │
│          │    BitLocker AES-256, 951109   │
│          │  Win Home:                     │
│          │    VeraCrypt 卷, 951109        │
├──────────┼──────────────────────────────┤
│ LUN:3    │ Not Used                       │
└──────────┴──────────────────────────────┘

密码存哪里: 明文写在 unlock.ps1 / unlock.py(设计缺陷——拿到 ISO 就能反编译看密码,但物理只读 + 防写盘里够用)。

⚠️ CRITICAL bug: unlock script 数据区盘符永远不对

老模板里 $dataDrive = 'F:' 是 错的。问题在哪:

  • CD-ROM 区插上后优先占用 F:(或 E:,看机器 Windows 分配顺序)
  • 数据区 LUN:2 永远是 F: 之后的下一个盘符(通常是 G:,爸爸那台 2026-09 实测是 I:)
  • CD-ROM 区盘符是系统自动分配,换台电脑也不一样
  • 所以写死盘符 = 永远跑不通

修法: unlock.ps1 必须动态找数据区物理路径,再交给 manage-bde / VeraCrypt。完整模板见 templates/unlock-ps1-vera/ 和 templates/unlock-ps1-bitlocker/。判断方法:

Get-Volume | Where-Object { $_.DriveType -eq 'Removable' -and $_.FileSystem -eq 'NTFS' }

找到的 DriveLetter → 再 Get-Partition → Get-Disk → 拼成 \\?\PhysicalDrive<N>Partition<P> 喂给 VeraCrypt;BitLocker 那条直接用 DriveLetter 就行。


一、必备物料

项 内容 说明
U 盘 FC1178BC 主控、镁光 MLC 单通道 一芯 FirstChip 兼容性最好;闪迪/金士顿大概率是 SMI/群联,要换工具
量产工具 FirstChip MPTool FC1178BC 版 dl.mydigit.net/search/?type=all&q=FC1178BC
ISO mylightu.iso ~78KB 内含 unlock 脚本;见 templates/mylightu-iso-contents.md
MPTool 配置 LUN:1=CD_ROM + LUN:2=可移动磁盘(NTFS) 见 references/fc1178bc-mptool-config.md
Windows Win10/11 专业版/企业版 家庭版无 BitLocker;仅需系统自带 PowerShell + manage-bde

二、完整流程(8 步)

步骤 1: 查主控(必须)

ChipGenius / ChipEasy → 插 U 盘 → 看主控字段
  • 显示 FirstChip FC1178BC → FirstChip MPTool FC1178BC
  • 显示 SMI / Phison / 其他 → 换对应工具,否则量产失败 = 变砖

步骤 2: 下载 FirstChip MPTool

去 http://dl.mydigit.net/search/?type=all&q=FC1178BC:

  • 优先:FirstChip_MpTools_20240221.rar(2024-02-21 新)
  • 备选:FirstChip_MpTools_jb51.rar(救砖时优先试)

步骤 3: 制作 mylightu.iso(已存在就跳过)

打包成 ISO 9660,文件清单见 templates/mylightu-iso-contents.md。macOS/Linux 用:

mkisofs -o mylightu.iso -V "LIGHTU" -J -R <src_dir>

步骤 4: MPTool 量产配置

工具: FirstChip MPTool (FC1178BC)
├─ LUN:1
│  ├─ 磁盘类型: CD_ROM
│  ├─ 启动盘类型: CD-ROM
│  ├─ 操作系统: WinPE
│  ├─ 复制文件: mylightu.iso
│  └─ 大小: 默认 ~100MB
├─ LUN:2
│  ├─ 磁盘类型: 可移动磁盘
│  ├─ 文件系统: NTFS
│  └─ 大小: 剩余空间
├─ LUN:3
│  └─ 状态: Not Used

步骤 5: 量产

  1. U 盘插好别动
  2. 跑 MPTool → 点"开始"
  3. 等 5-10 分钟(16GB 大约这个量级)
  4. 完成 → 拔插 U 盘
  5. 资源管理器应能看到:
    • CD 驱动器 (E:) ← LUN:1
    • 可移动磁盘 (F:) ← LUN:2(未加密)

步骤 6: 启用加密(仅 LUN:2)— ⚠️ 按 Win 版本分支

分支 A — Win Pro/Enterprise(BitLocker 路径)

右键 数据区盘符(动态探测,不要假设)→ "启用 BitLocker" →
  ├─ 选 "使用密码解锁"
  ├─ 输密码: 951109
  ├─ 保存恢复密钥(必须!48 位数字)
  │  - 存电脑硬盘 C:\Users\<user>\Documents\
  │  - 或打印
  │  - 丢了 = 数据永久报废
  ├─ 选 "兼容模式" (BitLocker compatible mode)
  └─ 开始加密(几分钟)

⚠️ 必须先看 Win 版本(winver),家庭版走分支 B。

分支 B — Win Home 家庭版(VeraCrypt 路径)

双击 CD-ROM 里的 VeraCrypt.exe (Portable) →
  ├─ VeraCrypt 主界面 → "Create Volume"
  ├─ 选 "Encrypt the whole drive"
  ├─ 选 数据区(Removable NTFS, 通常是 I: 或 G:)
  ├─ 输密码: 951109
  ├─ 算法: AES(默认)
  └─ 开始加密(**会清空现有数据**——首次前要备份任何东西)

然后每次插 U 盘解锁:双击 start.bat → 输 951109 → VeraCrypt Portable 自动解压到 %TEMP% → VeraCrypt.exe /v <PhysicalDrive path> /p 951109 /l V: /q → 自动打开 V:。

见 templates/unlock-ps1-vera/ 整套脚本(unlock.ps1 + start.bat + VeraCrypt.exe + README.txt),已经测通。

步骤 7: 改密码(如需要)

默认密码 951109 写在脚本里,要换:

  1. 编辑 mylightu.iso 里的 unlock.ps1 / unlock.py,改 $password / PASSWORD
  2. 重新打包 ISO → 重新量产

量产清盘,建议先确认密码满意再量产。BitLocker 或 VeraCrypt 也需要分别重新启加密。

步骤 8: 验证

  1. U 盘插到另一台 Win10/11 电脑
  2. 弹出自动播放 → 选"运行 LightU"
  3. 输密码 951109 → 应弹窗"解锁成功" → 自动打开资源管理器
  4. 复制粘贴文件 → 拔 U 盘 → 重插 → 数据区应再次锁定

验证必须换机器——本机可能 BitLocker / VeraCrypt 自动解锁缓存失效看不出问题。


三、量产常见坑 (Pitfalls)

变砖(最严重)🔴

症状: Windows 看到 VendorCo ProductCode,容量 0 字节,No Media。
原因: 主控固件写废(MPTool 工具版本不对、量途中拔、勾 ISP/FW 升级)。
判断命令:

Get-Disk | Where-Object {$_.OperationalStatus -eq "No Media"}

救砖成功率:

方案 成功率
MPTool 低格 ❌ 不行(主控不响应)
MPTool 重新识别 ⚠️ 30%(主控没死透)
PE 工具盘 DiskPart 低格 ⚠️ 20%
换 MPTool 版本 ⚠️ 40%

最坏情况:U 盘报废。再次采购认准 FC1178BC + 一芯。

密码误解(会话已踩过)🔴

2026-09-25:爸爸问"怎么设置密码" → 实际是 BitLocker 密码,秋阳误解为 SSH/Windows 账号密码,重新开了 SSH 排查了一晚上。下次看到"光U"主题里的"密码",默认指 BitLocker 密码,直接讲 manage-bde -unlock 那条线。

ISO 大小误判

老版 mylightu.iso 仅 ~78KB(小到不像正经启动盘)——正常的,只是引导 + unlock 脚本。

新模板(含 VeraCrypt Portable):~40MB 起步。如果 ISO < 5MB 但不是用老模板 → 检查是不是 VeraCrypt.exe 没塞进去。如果 ISO > 200MB → 检查是不是塞了 PE 完整镜像(容易撑爆单通道 CD-ROM 区)。

单通道盘别做大容量 ISO

闪若是 镁光 MLC + 单通道(ChipGenius 会标注),CD-ROM 区 ISO 别超 1.5GB。单通道盘做超容量 CD-ROM 会启动黑屏 / 量产失败。

量产前必须备份

量产 = 整盘全清。CD-ROM 区和数据区全部擦。

BitLocker 恢复密钥

第一次启用 BitLocker 生成的 48 位数字密钥必须保存(电脑硬盘或打印)。丢了 = U 盘上的数据永远打不开。

输错密码 3 次自动退出

脚本里密码比对是明文、无防爆破。要加固就在 unlock.ps1 加 if --attempts -gt 3 { exit } 之类的计数 + 延时锁。

别瞎推 BitLocker

Win10/11 家庭版没有 BitLocker for removable media。manage-bde 家庭版会拒绝 / 报 "组策略禁止"。先 winver 看版本再决定,否则工作到一半才返工。

  • Pro / Enterprise / Education → BitLocker 路线没问题
  • Home → 必须改用 VeraCrypt(免费开源、Portable、能直接放 CD-ROM ISO 里跟着 U 盘走)

⚠️ unlock 脚本写死盘符 = 永远跑不通

老 $dataDrive = 'F:' 是 bug 模板:

  • F: 通常被 CD-ROM 区占了(系统优先分配)
  • 数据区实际盘符 = F: / G: / H: / I: ... 看 Windows 心情
  • 写死 → 调 manage-bde -unlock F: 时 F: 是 CD-ROM 区 → BitLocker 报 "卷不是 BitLocker 卷" 或类似错

写法:

$v = Get-Volume | Where-Object { $_.DriveType -eq 'Removable' -and $_.FileSystem -eq 'NTFS' }
# VeraCrypt 需要物理路径(不是盘符)
$p = Get-Partition -DriveLetter $v.DriveLetter
$d = Get-Disk | Where-Object { $_.Number -eq $p.DiskNumber }
$veracryptVolume = "$($d.Path)Partition$($p.PartitionNumber)"  # \\?\PhysicalDrive1\Partition2

完整模板见 templates/unlock-ps1-vera/。

密码误解(会话已踩过)🔴

2026-09-25:爸爸问"怎么设置密码" → 实际是 BitLocker 密码,秋阳误解为 SSH/Windows 账号密码,重新开了 SSH 排查了一晚上。下次看到"光U"主题里的"密码",默认指 数据区加密密码(BitLocker 或 VeraCrypt),直接讲 manage-bde -unlock 或 VeraCrypt 那条线。不是 SSH 密码,不是 Windows 账号密码。

Rufus 不替代 MPTool

如果只是"装系统启动盘" → 用 Rufus 写 ISO 30 秒搞定,别量产。
光U 必须用 MPTool 量产(要写主控固件 + 分 CD-ROM LUN)。

🛠 pycdlib / ISO 制作踩坑(容器里做 ISO)

在 Hermes 容器(无 root、无 apt)里给 ISO 打爆,用 pycdlib(uv pip install pycdlib):

  • 不能装 mkisofs/xorriso/genisoimage(apt 要 root),uv venv .isovenv && uv pip install pycdlib 是出路
  • pycdlib.PyCdlib().new() 参数名是 interchange_level/joliet/udf 不是 udf=True 这种(True 不被接受),UDF 要写 '2.60'
  • add_file 时 iso_path / joliet_path / udf_path 必须是 绝对路径(/A/B/C),但 rr_name 必须是 相对路径(A/B/C)
  • 默认 interchange_level=1 强制 8.3 短文件名 + 仅 A-Z 0-9 _ —— 改 interchange_level=2 允许长文件名
  • 文件名不能含 -(连字符),否则 ISO 基础记录直接被 ISO9660 拒绝。DLL/EXE 里常见的 veracrypt-portable.exe 一定要改名成 VeraCrypt.exe,中文名一律改 README.TXT
  • SHA256 校验:本端算完 SHA256,scp 上传目标机器后再 Get-FileHash 比对,确认一致。比对成功才能 MPTool 量产 —— 中途断流 IM 整个 ISO 都是损坏的

🌐 端到端构建 + 传输链路(Hermes → Windows)

爸爸那台机器走 SSH:

  1. 在 Hermes 容器内打 ISO(python build_iso.py)
  2. 上传:scp.put('mylightu.iso', 'D:/mylightu_new.iso')(scp python 包默认没装,需 uv pip install scp)
  3. 远端验证:Get-FileHash D:\mylightu_new.iso -Algorithm SHA256
  4. 给爸爸拍个截图,让他用 MPTool 重新量产

几件别省的事:

  • 完成前不上传 → 上传后不上 SHA256 → SHA256 对不上不重传 → 三步全做了再让爸爸跑 MPTool,不然 ISO 是坏的永远烧不出来

🪟 验证 BitLocker 是否生效的 4 个 PowerShell 命令

走分支 A 完成加密后必跑:

# 1. 看所有加密卷
Get-BitLockerVolume | Format-List MountPoint,VolumeStatus,EncryptionMethod,ProtectionStatus

# 2. 看指定卷详细状态
manage-bde -status I:

# 3. 试解锁 (输密码)
manage-bde -unlock I: -Password 951109

# 4. 列文件(解锁成功才能列出来)
dir I:\

如果步骤 1 已显示 EncryptionMethod: XtsAes128 + Percentage Encrypted: 100.0% → 已启用。FullyDecrypted → 没启。


四、参考资源

  • templates/unlock-ps1-vera/ — VeraCrypt 全套(适用于 Win Home):unlock.ps1 / start.bat / VeraCrypt.exe / README.txt / AUTORUN.INF,直接 copy 即用
  • templates/unlock-ps1-bitlocker/ — BitLocker 路线(待补,建议基于 vera 模板改 manage-bde 调用即可)
  • templates/mylightu-iso-raw-layout.txt — ISO 物料清单(放 VeraCrypt 时 5 个文件;纯 unlock 时 4 个)
  • scripts/build_iso.py — pycdlib 打包 ISO 的脚本(实测能跑,含坑位说明)
  • references/veracrypt-cli.md — VeraCrypt.exe /v /p /l /q 命令行格式 + 静默安装参数
  • references/fc1178bc-mptool-config.md — MPTool 各 LUN 字段截图与按钮说明
  • references/bitlocker-commands.md — manage-bde 常用命令清单(解锁/锁定/状态/恢复密钥替换)

五、什么时候该想这件事

  • 内外网隔离做数据摆渡 + 防泄漏(涉密 / 政企 / 麒麟统信 UOS)
  • 想 离开密码就完全打不开 U 盘(敏感文件携带)
  • 给老人/客户做"插上就开、拔了就锁"的简易加密 U 盘

不是这种情况:

  • 普通装系统启动盘 → Rufus 写 ISO,30 秒,别量产
  • 普通 U 盘临时加密 → BitLocker To Go,5 分钟搞定

判断分支:用户说"做个加密 U 盘"但没说"光U" → 先问一句:"是 BitLocker To Go(普通 U 盘 + Windows 内启用 BitLocker),还是 光U(量产成 CD-ROM + BitLocker 双分区 + 自动解锁 ISO)?" 前者 5 分钟搞定,后者要 1 小时。在内外网保密 / 电网 GA 场景下,"光U 的物理只读 + 防拆"通常是默认要求,不该跳过。