Skip to content

Add support for ECH on Android 37#9383

Open
yschimke wants to merge 34 commits intosquare:masterfrom
yschimke:testing_ech
Open

Add support for ECH on Android 37#9383
yschimke wants to merge 34 commits intosquare:masterfrom
yschimke:testing_ech

Conversation

@yschimke
Copy link
Copy Markdown
Collaborator

@yschimke yschimke commented Mar 19, 2026

  • Adds an Android 17 platform path that uses public Android APIs for ALPN, session tickets, domain encryption policy, and ECH socket configuration.
  • Uses Android DnsResolver HTTPS/SVCB lookups to capture ECH configuration records alongside address resolution.
  • Introduces typed ECH DNS records so Dns implementations can expose platform-specific ECH data without returning raw Any values.
  • Applies Android EchConfigList values to TLS sockets when the active EchMode attempts ECH.
  • Uses NetworkSecurityPolicy.getDomainEncryptionMode() to select the ECH mode for each host.
  • Retries once without ECH when the platform reports an ECH configuration mismatch and the active mode permits fallback.
  • Tags live external ECH checks as Remote so they don't run in normal CI.
  • Includes CI cleanup for the AGP source-set API change and Android localhost cleartext test traffic.

Validation is mostly local Android/JVM compile and API checks, plus host-side tests for the DNS/ECH policy plumbing. The live ECH tests remain opt-in because
they depend on external servers.

yschimke and others added 13 commits January 16, 2026 11:23
@github-advanced-security

This comment has been minimized.

@yschimke yschimke changed the title Testing ech Add support for ECH on Android 37 May 4, 2026
@yschimke yschimke marked this pull request as ready for review May 4, 2026 10:19
@yschimke yschimke requested a review from swankjesse May 4, 2026 10:51
@yschimke yschimke force-pushed the testing_ech branch 4 times, most recently from a2bf44c to 4d5b91f Compare May 4, 2026 12:13
emulator-options: >
-no-window
-gpu swiftshader_indirect
-noaudio
emulator-options: >
-no-window
-gpu swiftshader_indirect
-noaudio
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants