CF Proxy Fix (CloudflareOneProxyFix)

修复 Cloudflare One 代理无法代理 Google Play 商店和 Google 网站的问题。基于 libxposed API 102 的 LSPosed / Vector 模块,把 Cloudflare One 的 VPN 从「排除列表」模式改成「白名单」模式,让 Google 应用也能正常走代理。

功能特性

  • 拦截 VpnService$Builder.allowBypass(),禁止应用(如 Google Play Services)主动绕过 VPN;
  • 拦截 addDisallowedApplication(),阻止 Cloudflare 把 Google 应用加入排除列表;
  • 在 establish() 建立 VPN 前,自动把白名单应用(以及 Cloudflare Agent 自身)加入 allowlist;
  • 内置配置界面:勾选任意应用加入白名单,支持搜索、显示/隐藏系统应用、亮暗主题适配;
  • 配置通过 libxposed API 102 的 Remote Preferences 在 UI 与 Hook 之间同步。

工作原理

Hook 目标 作用
allowBypass() VpnService$Builder 拦截,禁止任何应用绕过 VPN
addDisallowedApplication(String) VpnService$Builder 拦截,阻止 Cloudflare 排除应用
establish() VpnService$Builder 建立 VPN 前注入白名单(用户配置 + Cloudflare Agent 自身)

仅作用于 com.cloudflare.cloudflareoneagent(Cloudflare One Agent)进程。

默认白名单:Google Play(com.android.vending)、Google Play Services(com.google.android.gms)、Google Services Framework(com.google.android.gsf)。

使用

  1. 安装支持 libxposed API 102 的框架(Vector,或新版 LSPosed);
  2. 安装本模块,在框架中启用并勾选作用域 com.cloudflare.cloudflareoneagent;
  3. 打开本模块的配置界面,勾选需要走代理的应用(默认已含 Google 三件套);
  4. 修改后重启 Cloudflare One 应用生效。

构建

环境要求:JDK 21、Android SDK 37(build-tools 37.0.0)、Gradle(使用仓库内 wrapper)。

Debug 包(无需签名):

./gradlew assembleDebug

Release 包(需要 app/signing.properties,release.keystore 与 signing.properties 均被 .gitignore 忽略,不提交):

STORE_FILE=release.keystore
STORE_PASSWORD=<你的密码>
KEY_ALIAS=<别名>
KEY_PASSWORD=<密钥密码>
./gradlew assembleRelease

项目结构

CloudflareOneProxyFix/
├── app/
│   ├── build.gradle.kts            # 构建脚本(含签名读取)
│   ├── proguard-rules.pro          # R8 混淆规则
│   ├── signing.properties          # 本地签名(不提交,需自行创建)
│   └── src/main/
│       ├── java/io/github/a422015028/cfproxyfix/
│       │   ├── MainHook.kt         # 模块入口与 hook 逻辑
│       │   ├── Config.kt           # 配置常量与默认白名单
│       │   ├── App.kt              # Application(注册 XposedService)
│       │   └── MainActivity.kt     # 白名单配置界面
│       └── resources/META-INF/xposed/ # java_init.list / scope.list / module.prop
├── gradle/libs.versions.toml       # 版本目录
└── settings.gradle.kts

免责声明

本项目仅用于解决你自己设备上 Cloudflare One 的代理行为,不收集、不上传任何数据。请勿用于违反 Google / Cloudflare 服务条款的用途,由此产生的一切后果由使用者自行承担。

Releases

2.2.1

Stable

10/18/2026, 6:13:25 AM

修复 Cloudflare One 代理无法代理 Google Play 商店和 Google 网站的问题。基于 libxposed API 102 的 LSPosed / Vector 模块,把 Cloudflare One 的 VPN 从「排除列表」模式改成「白名单」模式,让 Google 应用也能正常走代理。

Assets

1