从铬糖果库 cronet 衍生的 C 和 Java 库。使用 OkHttp、Volley、WebView、Cronet 基础库或 java.net.HttpURLConnection,Envoy 可以轻松添加到现有的 Android 应用中,以添加绕过审查功能。
我们正在寻找开发者一起改进 Envoy,请联系 [email protected]。
我们正在寻找开发者一同改进Envoy,详情联系[email protected]。
技术细节说明这里。
- 对于纯 C 和 Java Cronet 库,请查看目录 native/。
- 对于 Android 库,请从 Android Studio 导入目录 android/,或者从命令行使用 Gradle 构建。
请注意,此项目与Envoy Proxy 项目无关。
Envoy 和我们修复的 Cronet 通过 Maven Central 发布。Envoy 版本可以在这里找到。Cronet 版本可以在这里找到。
请参阅此仓库中可用于 Envoy 的服务的执行示例。
欢迎使用 Envoy 开发者指南。本指南将向您介绍如何使用 Android 框架和其他库中提供的 API 构建 Android 应用。
- HTTPS:通过常规 web 服务器和内容分发网络代理所有流量,支持将 DNS 硬编码并添加其他标题
- Shadowsocks:使用 Shadowsocks 客户端/服务器提供的 socks5 代理
- Hysteria:基于 QUIC 协议,伪装成其他协议
- V2Ray:基于 QUIC 协议,伪装成其他协议
请访问native/README.md和android/README.md获取更多技术细节。
Cronet 是铬糖果库的联网堆栈,将其放入库中用于移动端。这是数值超过十亿的 Chrome 浏览器使用的同一个联网堆栈。Cronet 提供了一种易于使用、高性能、符合标准且安全的执行 HTTP 请求的方法。在 Android 上,Cronet 提供了自带的 Java 异步 API 以及对 java.net.HttpURLConnection API 的支持。Cronet 利用多种技术减少了您的应用程序需要工作的网络请求的延迟,并提高了吞吐量。
Cronet 版本构建是基于 Chromium 的 "扩展支持" 版本。它们通常坚持使用一个主要版本,例如 102.0.5005.x,直到支持期结束。Chromium LTS 的生命周期可以在 https://chromiumdash.appspot.com/schedule 上的 "ChromeOS LTS 最后刷新" 找到。
Envoy 是基于 Cronet 构建的,它提供了对 OkHttp、Volley、WebView、Cronet 基本和 java.net.HttpURLConnection 的支持。
我们已经构建了强大、独特、反审查的工具和服务,在有些国家,一些网站及其内容被审查,这些工具和服务产生了重大影响。
此工具是从 Cronet 派生出来的。
Cronet 是 Chrome 浏览器中使用的网络堆栈,被放置在库中供移动设备 사용。这是超过十亿用户在 chrome 浏览器中使用的相同网络堆栈。
因此,它可以处理几乎在开发中使用的所有请求类型。它用于制作抵抗 审查 的应用程序。
正如它的名字所暗示的,Envoy 是一个 代表 或 信使。
就像它一样,我们的工具将像信使或代表一样为某些网站或网络内容提供服务,无需担心审查,因为我们的工具将充当代表。
正如之前所说的,它可以用来制作一个抵抗 审查 的应用程序。
此外,它可以作为一个用于安全网络访问的代理工具,用于访问您的应用程序。例如,如果 Facebook 和 YouTube 在中国等国家不可用,您想制作一个显示 Facebook 或 YouTube 内容的应用程序,那么您可以使用这个工具来显示您的内容。
它可以用于显示部分内容,或者根据您的需求,它可以用于使所有服务器通信都依赖于它。
此外,如果您不想使用 Envoy 代理,您仍然可以使用这个工具来无忧无虑地获得 Cronet 库的好处。将来,如果您想,您只需简单地定义一个 Envoy URL 以绕过审查。
在 apps
目录中可以找到为添加 Envoy 支持给几个应用程序的补丁。然而,这些补丁不反映最新版本的 Envoy 或原始应用程序,并且目前可能无法按预期工作。
- 维基百科:
./gradlew clean assembleDevDebug
,演示 APK,以及 迁移指南。 - DuckDuckGo:
./gradlew assembleDebug
,演示 APK - WordPress
- WordPress-FluxC-Android:
echo "sdk.dir=YOUR_SDK_DIR" > local.properties && ./gradlew fluxc:build
- WordPress-Android: 设置
wp.oauth.app_id
和wp.oauth.app_secret
,然后cp gradle.properties-example gradle.properties && ./gradlew assembleVanillaDebug
- WordPress-FluxC-Android:
Wiki Unblocked 已扩展为一个独立的应用程序。在上方可以找到应用程序和源代码链接。
Feeder Unblocked 是添加了 Envoy 支持的 Feeder RSS 阅读器的分支。它目前正在开发中。
您可以提交更多应用程序,使用 git -c diff.noprefix=false format-patch --numbered --binary HEAD~
。
- 重建 cronet-debug.aar 和 cronet-release.aar:运行
./native/build_cronet.sh debug
和./native/build_cronet.sh release
- 重建 Envoy:
./android/build-envoy.sh
- 重建演示应用程序:
./apps/build-apps.sh
从源代码构建所有内容需要大约 100GB 的磁盘空间和时间。整个发布过程也脚本化在 .gitlab-ci.yml 中。这也可以通过运行 vagrant up --provision --no-destroy-on-error
使用 Vagrant 来运行。