Keep the game off EA's online services

Skate.exe contacts EA on every launch, offline mode included: error and
session reports (collector.errors.ea.com), SDK telemetry
(freeform-river.data.ea.com) and remote configuration (gcs.ea.com).

- Block the game's lookups of ea.com and tnt-ea.com names inside the
  process (getaddrinfo and the other Winsock resolvers). Installed at
  bootstrap, and fails closed like the EA app launch block
- Turn EA's error reporting (EadpErrorsData) off in game, next to the
  existing DingoTelemetry settings; the game ignores them on its
  command line
- Leave EA's image CDN (dingo-dev-assets.akamaized.net) reachable for
  the fast-travel artwork, which only downloads images
- Add a hostname test, contrib/ea-watch.ps1 to check the traffic, and a
  short note in the README's privacy section

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
VebjorhkandClaude Opus 5.5 committed 2026-10-06 21:58:11 +02:00
1 parent 2cdc5ee8df
commit e3ec512878
9 files changed
+821 -2

No files matched your search

+3
View File
@@ -6,6 +6,7 @@
#include "Extension/Boot/steam_restart_guard.h"
#include "Extension/Boot/user_data_redirect.h"
#include "Extension/Boot/ea_app_block.h"
#include "Extension/Boot/ea_service_block.h"
#include "Extension/Assets/native_patch_support.h"
#include "Extension/Assets/mod_layers.h"
#include "Extension/Assets/loose_files.h"
@@ -61,6 +62,8 @@ bool initialize_bootstrap(std::uintptr_t base) {
if (!stage(Channel::runtime, "Separate game user data", ready, error)) return false;
error.clear(); ready = start_ea_app_block(error);
if (!stage(Channel::runtime, "EA app launch block", ready, error)) return false;
error.clear(); ready = start_ea_service_block(error);
if (!stage(Channel::runtime, "EA online services block", ready, error)) return false;
error.clear(); ready = start_steam_restart_guard(error);
return stage(Channel::runtime, launcher::offline_mode() ? "Offline Steam" : "Steam restart guard", ready, error);
}