Skip to content

Commit 0d7a37c

Browse files
committed
release: v0.11.1 — narrow byedpi host list
Default byedpi host list curated to 34 hosts (10 YouTube + 24 Discord). Specific subdomains only, no catch-all suffixes. Removed entries like googleapis.com, gstatic.com, cloudfront.net, amazonaws.com that captured geo-restricted services (Gemini frontend, Drive, Maps) and forced them through byedpi on the underlying RU LTE network, breaking access. Bundled asset is the source of truth: installDefaultHostList replaces the on-disk file from the asset on every app start (synchronous await, race-free before byedpi start). UI editor edits are session-only — this prevents stale wide defaults from older RCs (which had 278 hosts incl. googleapis.com) from surviving upgrades on early adopters' devices. Practical-verified on LTE Tinkoff Mobile with byDPI ON: - 3 active TCP sessions to qde:443 (vless-qde xmux multiplex) - robinfrontend-pa.googleapis.com (Gemini frontend) routed via vless-qde to Amsterdam, ping ~20ms — was previously caught by DomainSuffix catch-all and forced through byedpi over LTE RU IP, returning 'country invalid' for Gemini - claude.ai routed via vless-qde to Cloudflare EU, ping ~28ms - YouTube continues to bypass DPI via byedpi on the underlying network
1 parent 9736030 commit 0d7a37c

4 files changed

Lines changed: 32 additions & 7 deletions

File tree

Lines changed: 27 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,42 @@
1-
# DPI-blocked hosts. Curated narrow — wide GeoSite/GeoIP would over-capture
2-
# Gmail/Drive/Maps on the same AS and break them. Add more via UI if needed.
1+
# DPI-blocked hosts. Curated narrow — catch-all suffixes like googleapis.com
2+
# would over-capture geo-restricted services (Gemini, Drive, Maps) and route
3+
# them through byedpi over the RU LTE underlying network, blocking access.
4+
# Specific subdomains only.
35
#
46
# YouTube
57
youtube.com
68
youtu.be
9+
yt.be
710
youtube-nocookie.com
811
googlevideo.com
912
ytimg.com
1013
ggpht.com
14+
youtubei.googleapis.com
15+
jnn-pa.googleapis.com
16+
signaler-pa.youtube.com
1117
#
1218
# Discord
1319
discord.com
1420
discord.gg
1521
discord.media
22+
discord.app
23+
discord.co
24+
discord.dev
25+
discord.new
26+
discord.gift
27+
discord.gifts
28+
discord.store
29+
discord.design
30+
discord.tools
31+
discord.status
32+
discord-activities.com
33+
discordactivities.com
1634
discordapp.com
1735
discordapp.net
36+
discordapp.io
37+
discordcdn.com
38+
discordsays.com
39+
discordsez.com
40+
discordmerch.com
41+
discordpartygames.com
42+
dis.gd

lib/byedpi/host_list.dart

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,9 @@ Future<String> hostListPath() async {
1111
return join(dir.path, 'byedpi-hosts.txt');
1212
}
1313

14-
Future<void> ensureDefaultPresent() async {
15-
// The narrow default is the source of truth; the on-disk file is replaced
16-
// every app start. UI edits are session-only and get reset on next launch.
14+
Future<void> installDefaultHostList() async {
15+
// The bundled asset is the source of truth; the on-disk file is replaced
16+
// every app start. UI edits via the editor are session-only.
1717
final path = await hostListPath();
1818
final contents = await rootBundle.loadString(_assetPath);
1919
await _atomicWrite(path, contents);

lib/state.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -125,7 +125,7 @@ class GlobalState {
125125
final profiles = await database.profilesDao.all().get();
126126
container.read(profilesProvider.notifier).setAndReorder(profiles);
127127
if (kByeDpiEnabled) {
128-
await ensureDefaultPresent();
128+
await installDefaultHostList();
129129
}
130130
await AppLocalizations.load(
131131
utils.getLocaleForString(config.appSettingProps.locale) ??

pubspec.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
name: fl_clash
22
description: Android mihomo client. Open source, no ads, no telemetry.
33
publish_to: 'none'
4-
version: 0.11.1-rc.1+2026051705
4+
version: 0.11.1+2026051707
55
environment:
66
sdk: '>=3.8.0 <4.0.0'
77

0 commit comments

Comments
 (0)