v1.1.1: accounts.googl.com in SNI pool + mipsel-softfloat lands green (#43)

SNI rotation pool gains `accounts.googl.com` (issue #42). Reporter
confirmed it passes DPI on Samantel and MCI — Iranian carriers that
selectively block some of the longer google.com subdomain SNIs.
`googl.com` is a Google-owned redirect alias served off the same GFE
pool, so the TLS handshake works against `google_ip:443` without
extra plumbing; we just present the name in the ClientHello for
fingerprint diversity. Mirrored into the Android default pool too.

The mipsel-softfloat target finally builds green in CI — two earlier
bugs that compounded: messense doesn't publish a `:mipsel-musl-softfloat`
image tag (fixed in main earlier by using `mipsel-musl` +
`RUSTFLAGS=-C target-feature=+soft-float` + `-Z build-std`), and the
pre-installed nightly in that image has a broken component state
that rustup can't upgrade in place (fixed by uninstalling nightly
first). Both fixes are in the tagged commit this time. Closes
issue #26.

Previous issues addressed in v1.1.0 that this release documents the
closing of:
  - issue #28: "egui_glow requires opengl 2.0+" on old Windows /
    RDP / VMs — fixed via dual glow+wgpu compile + MHRV_RENDERER
    env var + run.bat auto-retry.
  - issue #37: connection-mode picker (VPN/TUN vs Proxy-only) so
    users who already run another VPN can still use mhrv-rs as a
    per-app HTTP/SOCKS5 proxy.

Version bump: 1.1.0 → 1.1.1 (versionCode 110 → 111).
This commit is contained in:
Shin (Former Aleph)
2026-04-23 10:45:00 +03:00
committed by GitHub
parent a4e378d88c
commit a7b63ee53a
6 changed files with 26 additions and 4 deletions
Generated
+1 -1
View File
@@ -2186,7 +2186,7 @@ dependencies = [
[[package]]
name = "mhrv-rs"
version = "1.1.0"
version = "1.1.1"
dependencies = [
"base64 0.22.1",
"bytes",
+1 -1
View File
@@ -1,6 +1,6 @@
[package]
name = "mhrv-rs"
version = "1.1.0"
version = "1.1.1"
edition = "2021"
description = "Rust port of MasterHttpRelayVPN -- DPI bypass via Google Apps Script relay with domain fronting"
license = "MIT"
+2 -2
View File
@@ -14,8 +14,8 @@ android {
applicationId = "com.therealaleph.mhrv"
minSdk = 24 // Android 7.0 — covers 99%+ of live devices.
targetSdk = 34
versionCode = 110
versionName = "1.1.0"
versionCode = 111
versionName = "1.1.1"
// Ship all four mainstream Android ABIs:
// - arm64-v8a — 95%+ of real-world Android phones since 2019
@@ -261,4 +261,8 @@ val DEFAULT_SNI_POOL: List<String> = listOf(
"drive.google.com",
"docs.google.com",
"calendar.google.com",
// Issue #42: passes DPI on Samantel / MCI where the longer google.com
// subdomains are selectively SNI-blocked. Must mirror the Rust list
// in src/domain_fronter.rs exactly.
"accounts.googl.com",
)
+10
View File
@@ -0,0 +1,10 @@
<!-- see docs/changelog/v1.1.0.md for the file format: Persian, then `---`, then English. -->
• افزودن accounts.googl.com به مجموعهٔ چرخشی SNI — روی سمنتل / همراه اول DPI را رد می‌کند (issue #42)
• ساخت هدف OpenWRT mipsel-softfloat برای روترهای MT7621 در CI گرین شد (issue #26)
• بستن issue #28 — کاربران ویندوزی که «egui_glow requires opengl 2.0+» می‌گرفتند در v1.1.0 با fallback به wgpu حل شد (MHRV_RENDERER=wgpu یا تلاش مجدد خودکار run.bat)
• بستن issue #37 — انتخابگر حالت اتصال «VPN (TUN) یا فقط پروکسی» در v1.1.0 اضافه شد
---
• Add accounts.googl.com to the SNI rotation pool — clears DPI on Samantel / MCI (issue #42)
• OpenWRT mipsel-softfloat build target lands green in CI for MT7621 routers (issue #26)
• Closes issue #28 — Windows users hit by "egui_glow requires opengl 2.0+" fixed in v1.1.0 via wgpu fallback (MHRV_RENDERER=wgpu env var, or run.bat auto-retries)
• Closes issue #37 — VPN (TUN) / Proxy-only connection-mode picker shipped in v1.1.0
+8
View File
@@ -839,6 +839,14 @@ pub const DEFAULT_GOOGLE_SNI_POOL: &[&str] = &[
"drive.google.com",
"docs.google.com",
"calendar.google.com",
// accounts.googl.com is a Google-owned alias (googl.com redirects
// to Google properties) whose cert is served off the same GFE IP
// pool. Reported in issue #42 as passing DPI on Samantel / MCI
// (Iranian carriers) specifically, where some of the longer
// `*.google.com` names are selectively SNI-blocked. Rotation-only
// use: we never actually HTTP-to it, just present it in the TLS
// handshake.
"accounts.googl.com",
];
/// Build the pool of SNI hosts used for outbound connections to the Google