Skip to content

Trust Apple Root CA - G3 for gsa and gsd - #262

Merged
parawanderer merged 1 commit into
mainfrom
fix/248-trust-gsd-root
Oct 14, 2026
Merged

parawanderer merged 1 commit into
mainfrom
fix/248-trust-gsd-root

Conversation

@parawanderer

Copy link
Copy Markdown
Owner

gsd.apple.com, where Apple's URL bag sends ADI provisioning, now chains to Apple Root CA - G3. Android ships neither that root nor the original Apple Root CA, and gsd.apple.com had no domain-config of its own, so on-device provisioning fails the handshake against the system roots.

  • Adds res/raw/apple_root_ca_g3.pem. Its SHA-256 63343abf…9179 matches Apple's published AppleRootCA-G3.cer and the root gsd.apple.com serves today.
  • network_security_config.xml: gsa.apple.com and gsd.apple.com both trust both Apple roots, with system kept.
  • TrustingApplesProvisioningHostsTest (JVM) pins each PEM to Apple's published SHA-256 and both hosts to both anchors. Run locally with plain JUnit: passes, and fails on the old config and on a swapped PEM. Not verified on a device.

Extracted from @rubo77's rubo77/OpenTagViewer@256f912 (credited as co-author), without the Android identity change. That change stays on hold until an Android identity is shown to receive searchPartyToken; see #248 and malmeloo/FindMy.py#278.

Drafted by Claude Code, reviewed by @parawanderer

🤖 Generated with Claude Code

gsd.apple.com, where Apple's URL bag sends ADI provisioning, now chains
to Apple Root CA - G3. Android ships neither that root nor the original
Apple Root CA, and gsd.apple.com had no domain-config of its own, so the
handshake there fails against the system roots. Adds the G3 PEM
(SHA-256 63343abf..., matching apple.com/certificateauthority and the
chain gsd serves today) and gives gsa and gsd both Apple roots
alongside the system ones.

Taken from rubo77/OpenTagViewer@256f912 without the Android identity
change, which stays on hold until an Android identity is shown to
receive searchPartyToken (#248, malmeloo/FindMy.py#278).

TrustingApplesProvisioningHostsTest pins each PEM to Apple's published
SHA-256 and both hosts to both anchors.

Co-Authored-By: Ruben Barkow-Kuder <github@r.z11.de>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@parawanderer
parawanderer deployed to Android Build October 14, 2026 06:52 — with GitHub Actions Active
@parawanderer
parawanderer deployed to Android Build October 14, 2026 06:52 — with GitHub Actions Active
@parawanderer
parawanderer merged commit ddbbb0e into main Oct 14, 2026
4 checks passed
@parawanderer
parawanderer deleted the fix/248-trust-gsd-root branch October 14, 2026 07:13
@parawanderer parawanderer mentioned this pull request Oct 14, 2026
1 task done

This branch was successfully deployed

1 active deployment
Android Build — 68b8bac5 Deployed Oct 14, 2026 by parawanderer via build #330
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.

1 participant