Files
auto-login/私有分发安装说明.md

88 lines
4.4 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 私有分发安装说明 — 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/策略互不影响。