# 私有分发安装说明 — Auto Login Manager 本扩展通过**企业策略 + 自托管 crx** 在受控机器上安装,不走 Chrome 应用商店。 特征是扩展 ID 固定、可离线/内网安装、可覆盖更新。 --- ## 1. 关键标识 | 项 | 值 | 说明 | | --- | --- | --- | | 扩展 ID | `lddeabellmfjcgfopecibkfemdkbnmhb` | **由 `release/auto-login.pem` 公钥派生,固定不变** | | 扩展包 | `release/auto-login.crx` | 用上面同一把私钥签名 | | 版本 | 1.0.0 | 与 `manifest.json` 一致 | | 策略文件 | `install-policy.reg` | 强制安装注册表 | | 更新清单 | `updates.xml` | 指向 crx 的更新入口 | > ⚠️ **私钥即身份**:一旦丢失或更换 `auto-login.pem`,扩展 ID 会变成新的,所有已装机器上的旧 ID 扩展将失效,需重装。**务必在安全位置备份 `release/auto-login.pem`,切勿提交到 git / 外发。** --- ## 2. 产物清单(release/) | 文件 | 作用 | | --- | --- | | `auto-login.crx` | 已签名扩展包,分发给目标机或作为更新 codebase | | `auto-login.pem` | 固定私钥,**仅用于打包签名,勿分发** | | `auto-login-v1.0.0.zip` | 上传 Web Store / 或作留档的 zip(CWS 用;私有分发用 crx) | | `crx-runtime/` | 打包源目录(解包后的运行时文件),勿手动编辑,由 zip 解出 | --- ## 3. 安装(在目标 Windows 机器上) 目标机需满足:Chrome 已关闭或已退出(导入策略后重启 Chrome 生效)。 1. **放置更新清单与 crx**:确保目标机能访问到 `updates.xml`(内含 `codebase` 指向的 `auto-login.crx` 路径)。 > 策略使用 `file:///E:/gitea/...` 本地路径。当前为**单机本地策略**; > 若要推给多台/异地机器,把 `updates.xml` 与 `auto-login.crx` 放到内网 HTTP(S) 服务, > 并把 `codebase` 与注册表里的路径改为主机可访问的 `https://` 地址(见第 5 节)。 2. **导入策略**:双击 `install-policy.reg`,确认导入注册表: - `HKLM\SOFTWARE\Policies\Google\Chrome\ExtensionInstallForcelist` → `lddeabellmfjcgfopecibkfemdkbnmhb;file:///.../updates.xml` - `HKLM\SOFTWARE\Policies\Google\Chrome\ExtensionInstallSources` → `file:///*` 3. **重启 Chrome**,扩展会被强制安装(不受"未从应用商店安装"限制)。 > 备选(不推荐):`chrome://extensions` → 开发者模式 → 加载已解压(加载 `release/crx-runtime/`) > —— 仅适合临时测试,正规分发请用第 3 节策略方式。 --- ## 4. 发新版本(重打包) ```powershell # 1) 改版本号(manifest.json 的 version 字段,如 1.0.1) # 2) 重建运行时目录 node scripts/package.mjs # 产出 release/auto-login-v1.0.1.zip # 3) 解压为打包源 node -e "require('adm-zip');const z=new require('adm-zip')('release/auto-login-v1.0.1.zip');require('fs').rmSync('release/crx-runtime',{recursive:true,force:true});z.extractAllTo('release/crx-runtime')" # 4) 用同一把私钥重新签名 crx & "C:\Program Files\Google\Chrome\Application\chrome.exe" --pack-extension="E:\gitea\Chrome extension\auto-login\release\crx-runtime" --pack-extension-key="E:\gitea\Chrome extension\auto-login\release\auto-login.pem" # 产物为 release\crx-runtime.crx → 改名为 release\auto-login.crx # 5) 更新 updates.xml 的 version 为新版本号 ``` > 每次都**必须用同一把 `release/auto-login.pem`**,否则 ID 会变化、旧端点失效。 --- ## 5. 分发范围提示(如实告知) - 当前 `install-policy.reg` + `updates.xml` 使用 `file:///` 本地路径,**仅适用于本机/同一文件共享**。 - 较新版 Chrome 对企业策略安装依赖可靠的更新源,Google 逐步弱化 `file://` 方式。 若要推给多台/异地同事,正规模是: 1. 把 `auto-login.crx` 与 `updates.xml` 放到一个内网可达的 **HTTPS 服务**(如 Nginx); 2. 把 `updates.xml` 的 `codebase` 和 `install-policy.reg` 里的地址改为该服务的 `https://...` URL; 3. 分发 `install-policy.reg`(内网或域策略下发)给目标机。 - 本 `install-policy.reg` 写入的 `ExtensionInstallSources=file:///*` 仅为支持本地安装,多机场景建议同步收敛该来源。 --- ## 6. 与 Web Store 公开上架的区别 - 本目录相关文件仅用于**私有分发**(crx + 策略强制安装)。 - 若你同时在做 Chrome 应用商店上架,那是另一条链路(上传 zip + Store Listing), 与本文的 crx/策略互不影响。