Skip to content

[AltServer] Identify as current Mac to fix sign-in with Advanced Data Protection - #1864

Open
Daan-25 wants to merge 1 commit into
altstoreio:classicfrom
Daan-25:fix/adp-client-info
Open

Daan-25 wants to merge 1 commit into
altstoreio:classicfrom
Daan-25:fix/adp-client-info

Conversation

@Daan-25

@Daan-25 Daan-25 commented Nov 5, 2026

Copy link
Copy Markdown

Fixes #1849

Problem

All public anisette servers report <MacBookPro13,3> <Mac OS X;10.12.6;16G29> as client info. Advanced Data Protection requires macOS 13.1 or later, so Apple won't complete 2FA for ADP accounts signing in as that device: the code never arrives, and codes generated manually on a trusted device are rejected.

Fix

RemoteAnisetteDataFetcher.fetchClientInfo(from:) now returns the current Mac's identity instead of the server's:

  • X-MMe-Client-Info: <{model}> <macOS;{version};{build}> <com.apple.AuthKit/1 (com.apple.akd/1.0)>
  • User-Agent: akd/1.0 CFNetwork/{CFNetwork version} Darwin/{kernel release}

The values come from the running system, so they stay current with macOS updates. Because cached identities are keyed on client info, existing users re-provision automatically. defaults write com.rileytestut.AltServer UseAnisetteServerClientInfo -bool YES restores the old behavior.

Testing

  • Probed GSA init with a made-up account: the server's client info, macOS 14.5, and macOS 27.2 client info all get -20970 (unknown account), so the anisette data is accepted. Corrupted anisette data gets -22409.
  • With a real ADP-enabled account on macOS 27.2 (Mac16,12), the 2FA code arrived and installing AltStore on an iPhone 17 Pro Max succeeded.

Notes

…ta Protection

Public anisette servers report macOS 10.12.6 as client info. Accounts with
Advanced Data Protection can't sign in from devices below macOS 13.1, so the
2FA code never arrives and manually generated codes are rejected.

Apple accepts the servers' anisette data with a current client info, so
AltServer now sends this Mac's model, macOS version and build, along with a
matching akd user agent. Setting UseAnisetteServerClientInfo restores the
previous behavior.

Fixes altstoreio#1849
Copilot AI balanced review requested due to automatic review settings November 5, 2026 16:27

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has insufficient remaining quota. Try requesting a review at a lower effort level.

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