闭源远程下载的浏览器内核会在本机执行
原文依据:4 处首次启动会从供应商 CDN 获取闭源 Chromium 内核,用户无法从所给源码审查该可执行文件的实际行为。它随后处理网页、代理、登录会话及本地配置。包版本固定和哈希校验只能确认拿到指定文件,不能证明闭源内核做了什么。
若供应商、CDN、发布流程或内核本身被破坏,该进程可能接触浏览器中的账号会话、网页数据和网络流量,并以运行账户的本地权限操作。
首次启动会下载并缓存供应商的闭源 Chromium 内核,之后该内核作为浏览器处理页面以及保存登录状态的配置。固定 SDK 或校验下载文件只能确定取得特定制品,无法让用户审查闭源内核的内部行为。用户可要求内核签名、哈希、更新策略和网络/文件权限说明,并在隔离环境中运行。
| SDK package | `anti-detect-browser` on npm, or `antibrow` on PyPI | Exact version in a committed lockfile; `npm ci` rather than `npm install` in CI. `npm view anti-detect-browser@2.8.0 dist.integrity` gives the published tarball hash to compare before adopting a version. No install scripts; dependencies are `ws`, `socks`, `yauzl`, `adm-zip`, `@modelcontextprotocol/sdk` || Browser kernel | a closed-source Chromium build the pinned package retrieves on first launch, cached in `~/.anti-detect-browser/` (~190 MB; ~320 MB for the macOS universal bundle) | Warm the cache during your image build rather than at run time - the Python CLI has an explicit `install` step for this, and on Node a single throwaway launch does it. Then mount `~/.anti-detect-browser/` as a volume so a running container needs nothing further. Installed kernels are never swapped underneath a live profile; updates happen only when explicitly requested |查看另外 3 个位置
```bashpip install antibrowpython -m antibrow install # download the kernel (one-time; first launch does it too)python -m antibrow login # store the API key in ~/.antibrow/license.key```The SDKs (npm + PyPI) are **MIT**. The browser kernel is a **closed-source binary** downloaded from AntiBrow's CDN onto the end user's machine at runtime - usable for your own work including commercial work at any company size, but not redistributable, resellable or embeddable; exposing it to third-party customers needs a separate OEM/SaaS license. Listing these packages as a dependency is **not** redistribution. `BINARY-LICENSE.md` in `https://github.com/antibrow/antibrow` is the authoritative text.An API key is required at every launch - see [Supply chain](#supply-chain-what-runs-and-what-gets-downloaded) for how the license check behaves and why there is no offline mode. The token is cached, so a tight relaunch loop hits the network roughly once a day.Note what happens when. Executable code arrives **once, at install time**: the package from the registry, and the kernel it caches on first launch. Both can be warmed during an image build, after which a running container fetches no code at all. What crosses the network **at run time** is a signed licence token - a short string of data the kernel checks and caches, roughly one exchange a day, never code and never evaluated. Air-gapped environments are still unsupported, because that token exchange cannot be skipped; if a deployment cannot make any outbound call, this is the wrong tool.