为 Chromium 恢复登录功能

Created
Aug 3, 2022 04:01 PM
Tags
software
Linux
notion image

起因

在 3 月份的某一次更新之后,Google 限制了基于 Chromium 浏览器对 Chrome 私有 API 的访问,包括登录帐号及同步的一些功能。这意味着 Chrome 的开源版本 Chromium 已经没法正常登录 Google 帐号了,Arch 仓库中的 Chromium 更新后甚至连登录入口都关闭了。
notion image
image-20210512130829973
但 Google Chrome 只提供了 Linux 下 x86_64 架构的版本,基于 ARM 的架构现在只能用 Chromium。所以我还需要在 Chromium 上使用同步功能
事实上,Google 只是限制了 Chromium 默认的 API key 对私有 API 的访问,以及 Chromium 中登录的帐号。所以我们可以通过自己申请的 Google API key 来实现登录 Chromium

0x00 加入 Chromium dev 用户组

要获得用于 Chromium 的 API 权限以及登录 Chromium 的权限,只需要加入这两个 Google 用户群组

0x01 创建项目

首先打开 Google 开发者中心,创建一个新的项目,然后选择它
notion image
image-20210512132417922
进入左边的 API 和服务 > OAuth 同意屏幕先初始化配置自己的应用
User Type 选择外部
接下来的名称啥的都可以随意填写
在 测试用户 页面,添加自己的账户

0x02 添加 API 角色

进入左边的「库」,搜索并添加以下的 API
  • Cloud Search API
  • Google Drive API
  • Safe Browsing API
  • Time Zone API
  • Admin SDK
  • Chrome Sync API
  • Chrome Web Store API
  • Chrome Spelling API

0x03 获取 API 密钥

进入「凭据」页面,首先创建一个 API 密钥
然后创建 OAuth 客户端 ID,应用类型选择桌面应用

0x04 添加密钥到环境变量

打开 ~/.xprofile 文件,这是进入桌面时会执行的配置文件。桌面端的环境变量在这里配置
加入以下代码,使用你刚刚申请的密钥
export GOOGLE_API_KEY=API 密钥的「键」 export GOOGLE_DEFAULT_CLIENT_ID=客户端 ID export GOOGLE_DEFAULT_CLIENT_SECRET=客户端密钥
最后注销以下机器,重新登录桌面,使得配置文件生效
Chromium 的登录入口就回来啦,然后正常登录就可以了
image-20210512134916640

参考资料