Repository navigation
Conversation
…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
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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 YESrestores the old behavior.Testing
initwith 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.Notes
classicwith Xcode 27 also needed removing the leftoverAltSign-Dynamicentries from the AltServer and AltJIT targets, as noted in Override anisette client info to fix -23782 sign-in error (AltServer + AltStore) #1853.