# 修改浏览器

更新已有的浏览器。只修改请求中出现的字段。
- **前置条件**：浏览器必须存在于团队中。端到端加密的浏览器不可更新。操作系统与浏览器类型不可更改。运行中的浏览器可以更新。
- **副作用**：写入浏览器主记录、其扩展设置与 Cookie，并合并高级指纹设置（未被覆盖的已有值保留）。
- **完成信号**：同步。
- **重试**：相同请求体可安全重复。注意没有乐观锁：对同一浏览器的并发更新是后写覆盖，且指纹合并是先读后写，因此并发调用可能丢失变更。

已记录的业务错误码：`19001`, `19039`, `19104`, `19105`, `19106`, `19107`, `19108`, `19142`, `19159`, `19160`, `19175`, `19193`。 各错误码的含义见 [Error Codes](../Getting%20Started/error-codes.md)。任何接口还可能返回通用错误码。

Endpoint: POST /api/env/update
Version: 2026-09-05

## Request fields (application/json):

  - `browserTypeId` (integer)
    浏览器类型 ID；1=Chrome，2=Firefox

  - `operatorSystemId` (integer)
    操作系统类型 ID；1:Windows 2:macOS 3:Android 4:IOS 5:Linux

  - `isEncrypt` (integer)
    是否加密该浏览器；0=否，1=是

  - `startupParams` (array)
    额外的浏览器启动参数

  - `accountInfo` (object)

  - `accountInfo.customerUrl` (string)
    自定义平台 URL — 如果 platformId=9999，则为必填项，且必须是有效的 URL。

  - `accountInfo.password` (string)
    密码；最大长度：50 个字符

  - `accountInfo.platformId` (string)
    平台 ID；自定义 URL 使用 9999。请参阅 /api/system/platform/list。

  - `accountInfo.siteId` (string)
    站点 ID；可通过“获取可配置平台”API（/api/system/platform/list）获取

  - `accountInfo.username` (string)
    用户名；最大长度：64 个字符

  - `advancedSetting` (object)
    高级浏览器指纹和行为配置。

  - `advancedSetting.ua` (string)
    自定义用户代理 (UA) 浏览器。必须遵循标准 UA 格式。
可通过“获取浏览器 UA”API 实现。

  - `advancedSetting.time_zone` (object)

  - `advancedSetting.time_zone.switcher` (integer)
    时区选项。默认值：1。1 = 匹配 IP，2 = 自定义。

  - `advancedSetting.time_zone.value` (string)
    当 switcher=2 时为必填项。
时区 ID 来自“获取时区和语言列表”API。

  - `advancedSetting.web_rtc` (object)

  - `advancedSetting.web_rtc.switcher` (integer)
    WebRTC策略。默认值：2。1 = 隐私模式，2 = 替换模式，3 = 真实模式，4 = 禁用模式，5 = 转发模式。

  - `advancedSetting.geo_location` (object)

  - `advancedSetting.geo_location.switcher` (integer)
    地理位置策略。默认值：1。1 = 提示，2 = 禁用。

  - `advancedSetting.geo_location.base_on_ip` (boolean)
    根据 IP 地址生成位置？默认值：true。true = 提示，false = 手动。

  - `advancedSetting.geo_location.latitude` (number)
    纬度。如果 base_on_ip=false，则为必填项。

  - `advancedSetting.geo_location.longitude` (number)
    经度。如果 base_on_ip=false，则为必填项。

  - `advancedSetting.geo_location.accuracy` (number)
    精度单位为米。如果 base_on_ip=false，则为必填项。

  - `advancedSetting.language` (object)

  - `advancedSetting.language.switcher` (integer)
    语言策略。默认值：1。1 = 匹配 IP，2 = 自定义。

  - `advancedSetting.language.value` (string)
    当 switcher=2 时为必填项。
来自“获取时区和语言列表”API 的以逗号分隔的语言 ID。

  - `advancedSetting.resolution` (object)

  - `advancedSetting.resolution.switcher` (integer)
    分辨率策略。默认值：1。1 = 实际分辨率，2 = 自定义分辨率。

  - `advancedSetting.resolution.id` (string)
    当 switcher=2 时为必填项。
从“获取分辨率列表”API 获取分辨率 ID。

  - `advancedSetting.font` (object)

  - `advancedSetting.font.switcher` (integer)
    字体策略。默认值：1。1 = 真实字体，2 = 自定义字体。

  - `advancedSetting.font.value` (string)
    以逗号分隔的自定义字体名称（如果 switcher=2 则为必填项）。

  - `advancedSetting.canvas` (object)

  - `advancedSetting.canvas.switcher` (integer)
    画布策略。默认值：1。1 = 噪声，2 = 真实。

  - `advancedSetting.webgl_image` (object)

  - `advancedSetting.webgl_image.switcher` (integer)
    WebGL图像策略。默认值：1。1 = 噪声，2 = 真实。

  - `advancedSetting.webgl_metadata` (object)

  - `advancedSetting.webgl_metadata.switcher` (integer)
    WebGL 元数据策略。默认值：3。1 = 实际，2 = 禁用硬件加速，3 = 自定义。

  - `advancedSetting.webgl_metadata.provider` (string)
    WebGL 渲染器品牌字符串（例如，“Google Inc.”）

  - `advancedSetting.webgl_metadata.render` (string)
    WebGL渲染器字符串（例如，“ANGLE (...)”）

  - `advancedSetting.audio_context` (object)

  - `advancedSetting.audio_context.switcher` (integer)
    AudioContext 策略。默认值：1。1 = 噪声，2 = 真实。

  - `advancedSetting.media_device` (object)

  - `advancedSetting.media_device.switcher` (integer)
    媒体设备策略。默认值：1。1 = 噪声，2 = 真实。

  - `advancedSetting.client_rects` (object)

  - `advancedSetting.client_rects.switcher` (integer)
    ClientRects 策略。默认值：1。1 = 噪声，2 = 真实。

  - `advancedSetting.speech_voise` (object)

  - `advancedSetting.speech_voise.switcher` (integer)
    SpeechVoices策略。默认值：1。1 = 隐私，2 = 真实

  - `advancedSetting.hardware_concurrency` (integer)
    模拟的逻辑 CPU 核心数。
默认值：4。可选值：0（实际值）、2、3、4、6、8、10、12。

  - `advancedSetting.memery_device` (integer)
    模拟设备内存（GB）。
默认值：8。选项：0（实际）、2、4、6、8。

  - `advancedSetting.do_not_track` (integer)
    请勿追踪设置。默认值：2。1 = 开启，2 = 关闭。

  - `advancedSetting.bluetooth` (object)

  - `advancedSetting.bluetooth.switcher` (integer)
    蓝牙策略。默认值：1。1 = 隐私，2 = 身份验证。

  - `advancedSetting.battery` (object)

  - `advancedSetting.battery.switcher` (integer)
    电池策略。默认值：1。1 = 隐私，2 = 真实性。

  - `advancedSetting.port_scan_protection` (object)

  - `advancedSetting.port_scan_protection.switcher` (integer)
    端口扫描保护。默认值：1。1 = 开启，2 = 关闭。

  - `advancedSetting.port_scan_protection.value` (string)
    允许本地网络端口连接（以逗号分隔）。

  - `advancedSetting.os_version` (string)
    macOS 系统版本（例如，macOS 12、macOS 13、macOS 14）。

  - `advancedSetting.web_gpu` (object)

  - `advancedSetting.web_gpu.switcher` (integer)
    WebGPU策略。默认值：1。1 = 基于WebGL的匹配，2 = 启用，3 = 禁用。

  - `advancedSetting.ciphers` (object)

  - `advancedSetting.ciphers.switcher` (integer)
    TLS 加密策略。默认值：1。1 = 默认，2 = 自定义。

  - `advancedSetting.ciphers.value` (string)
    当 switcher=2 时为必填项。
以逗号分隔的要禁用的 TLS 协议列表（例如，“TLSv1,TLSv1.1”）。

  - `advancedSetting.mobile_device` (string)
    手机型号 ID（字符串格式）。可通过“获取手机型号列表”API 获取。
示例：“1826502391344832512”

  - `afterStartupConfig` (object)

  - `afterStartupConfig.afterStartup` (integer)
    启动后的操作。默认值：1。
1 = 继续上一页，
2 = 打开指定 URL，
3 = 打开指定 URL 及平台，
4 = 继续上一页及平台。

  - `afterStartupConfig.autoOpenUrls` (array)
    要自动打开的有效 URL 列表（选项 2-3 需要）。

  - `browserCore` (integer)
    内核版本；默认 0（自动匹配）。可用版本通过 `/api/env/advanced/ua/versions` 查询。

  - `cookies` (string)
    预加载的 Cookie 字符串（可选）

  - `envName` (string)
    环境名称

  - `envRemark` (string)
    环境备注；最大长度：1500 字符

  - `groupId` (string)
    环境分组 ID；默认：未分组（0）

  - `groupName` (string)
    分组名称（最多50个字符）。如果提供了该参数，系统会先检查 groupId：如果找到有效分组则使用该分组；否则按 groupName 查找。如果存在同名分组则引用该分组；如果不存在则新建分组。每个团队最多限制1000个分组。

  - `proxyId` (string)
    代理 ID；默认：0

  - `tagIds` (array)
    标签 ID；默认：无

  - `uaVersion` (integer)
    UA 预设版本；默认 0（全部）

  - `disableAudio` (integer)
    禁用音频：0 = 关，1 = 开

  - `disableImg` (integer)
    禁用图片加载：0 = 关，1 = 开

  - `disableVideo` (integer)
    禁用视频加载：0 = 关，1 = 开

  - `imgLimitSize` (integer)
    图片最大尺寸（KB）

  - `envId` (string, required)
    环境 ID

## Response 200:

  - `200` (unknown)
    成功。该接口的 `data` 恒为 null，结果由 `code` 表达。

## Response 200 fields (application/json):

  - `code` (integer, required)

  - `msg` (string | null, required)

  - `data` (null, required)

  - `requestId` (string, required)

