输入任意标题、正文关键词或分类开始搜索

按 Esc 关闭,按 Enter 查看完整页面

/ 程序员

找回 Chrome 消失的「Ask Gemini」:修改 Local State 避坑指南与底层机制

详解 Chrome 内置侧边栏 Ask Gemini 入口消失的 Variations 地域锁定原理,规避进程回写覆盖的实操避坑方案,附 macOS 与 Windows 一键替换脚本。

之前我在 Chrome 里一直能用地址栏右侧的「Ask Gemini」(AI 侧边栏助手)快速总结网页,但换了环境或重装浏览器后,这个入口经常莫名其妙彻底消失。去翻 chrome://flags 开启了相关选项,界面语言也换成了英文,依然找不回图标。

最终跑通的有效方案其实非常明确:Chrome 是根据用户配置目录中的 Local State 文件记录的国家代码来做功能准入的。只要把其中持久化的地区代码从 cn 修改为 us,就能稳定找回入口。

但在实际操作里,90% 的人改完会发现“根本没生效”甚至“文件被 Chrome 自动改了回去”。这篇记录整理了背后的覆盖机制与一套不踩坑的实操步骤。

核心机制:为什么界面切了英文依然没入口?

Chrome 内部对这套内置侧边栏 AI 助手的项目代号通常为 glic(Gemini Live in Chrome)。

很多人的直觉反应是去设置里把语言改成 English (United States),或者挂上系统全局代理。但 Chrome 的地域判定并不完全依赖每次打开时的即时 IP,也不会因为 UI 语言改变而重置:

  1. Variations 机制锁定:Chrome 使用一套实验与灰度策略服务(Google Variations)。每次连网同步后,会将推断出的所属国家代码固化在本地。
  2. Local State 持久化:这个国家代码保存在全局配置 Local State 中的 variations_country 与 variations_permanent_consistency_country 字段中。只要这里依然是 cn,即使网络和语言变了,客户端仍然判定当前设备处于非准入区域,自动屏蔽 glic 入口。

说明:本文核心梳理 Chrome 客户端配置与 Google Variations 地域判定策略,操作前请确保理解配置文件回写时机。

最大的坑:为什么你改完会被瞬间覆盖?

很多朋友按网上教程打开 Local State 文件,搜到 cn 改成 us 并保存,结果重新打开 Chrome 还是没有图标;再回头打开文件一看,us 又被变回了 cn。

根本原因在于 Chrome 的内存回写机制:

  • 如果你是在 Chrome 还在运行(或者后台还有 Chrome Helper 辅助进程残留)时修改的文件,当你关闭 Chrome 时,Chrome 会将当前内存里驻留的旧状态直接 Dump 回磁盘,瞬间把你刚刚改好的文件覆盖掉。
  • 因此,“彻底杀掉 Chrome 进程”必须做在“打开文件修改”之前,顺序不能倒。

完整实操步骤

第一步:彻底退出 Chrome 进程

不要只是点击窗口红叉或按最小化,必须确保进程全部退出。

macOS 用户: 在 Dock 栏右键 Chrome 选择“退出”(快捷键 Cmd + Q),或者直接在终端中验证退出:

osascript -e 'quit app "Google Chrome"'
# 检查是否还有残留进程
pgrep -f "Google Chrome" || echo "Chrome 已彻底退出"

Windows 用户: 按 Ctrl + Shift + Esc 打开任务管理器,或者在 PowerShell 中强制结束残留进程:

Stop-Process -Name chrome -Force -ErrorAction SilentlyContinue

第二步:定位配置文件并先做备份

Local State 是一个 JSON 格式的全局配置文件。在修改任何配置前,务必先存一份备份副本。

  • macOS 路径: ~/Library/Application Support/Google/Chrome/Local State
  • Windows 路径: %LOCALAPPDATA%\Google\Chrome\User Data\Local State

在 macOS 终端中执行备份:

LOCAL_STATE="$HOME/Library/Application Support/Google/Chrome/Local State"
cp "$LOCAL_STATE" "${LOCAL_STATE}.bak"

第三步:修改关键地区键值

使用 VS Code、Sublime Text 等纯文本编辑器打开 Local State,搜索并修改以下三个键值:

{
  "variations_country": "us",
  "variations_permanent_consistency_country": "us",
  "is_glic_eligible": true
}
  • 将 "variations_country" 的值(原有可能是 "cn" 或其它国家简写)改为 "us"。
  • 将 "variations_permanent_consistency_country" 的值同样改为 "us"。
  • 如果在你的版本中能搜到 "is_glic_eligible",将其改为 true(若没有此字段,无需手动强加,保持原样即可)。

如果你习惯用命令行处理,在确认 Chrome 已关闭后,也可直接运行一段 Python 脚本就地安全替换:

python3 -c '
import json, os

path = os.path.expanduser("~/Library/Application Support/Google/Chrome/Local State")
with open(path, "r", encoding="utf-8") as f:
    data = json.load(f)

data["variations_country"] = "us"
data["variations_permanent_consistency_country"] = "us"
if "is_glic_eligible" in data:
    data["is_glic_eligible"] = True

with open(path, "w", encoding="utf-8") as f:
    json.dump(data, f, ensure_ascii=False)
print("Local State 更新成功")
'

第四步:检查配套环境并启动

保存文件后重新打开 Chrome,还需要确认以下三点,防止后续又被 Google 策略服务重置:

  1. Flags 实验开关:在 Chrome 地址栏访问 chrome://flags/,搜索 glic 或 gemini,确保相关项处于 Enabled 状态并按要求 Relaunch。
  2. 界面语言:访问 chrome://settings/languages,将首选语言设置为 English (United States)。
  3. 网络节点:保持走美国(US)节点流量,避免开机或启动连接瞬间又向 Google 汇报非准入地域信息。

重启后,地址栏右侧或侧边栏工具条便会重新出现熟悉的 Gemini 图标。

适用边界

  • 这里的修改针对的是 Chrome 客户端层面的功能屏蔽。如果你的 Google 账号本身因合规设置或企业域政策限制无法使用 Gemini,仍需配合支持该功能的个人账号登录。
  • 后续 Chrome 大版本升级时,如果 Google 重构了 Variations 键名结构,可能需要重新比对 Local State 中最新的地区判定字段。