Skip to content

fix(core): use Mac anisette client info for -80046 - #301

Closed
g1ibby wants to merge 1 commit into
claration:mainfrom
g1ibby:fix/mac-anisette-80046
Closed

g1ibby wants to merge 1 commit into
claration:mainfrom
g1ibby:fix/mac-anisette-80046

Conversation

@g1ibby

@g1ibby g1ibby commented Oct 23, 2026

Copy link
Copy Markdown

Fixes #298, fixes #300.

Heads up: this changes DEFAULT_ANISETTE_URL_V3 (a hardcoded link), as suggested in #298. Happy to change it to another Mac server if you prefer.

Summary

Apple now rejects GrandSlam 2FA (-80046) and developer services (1100 Your session has expired on listTeams) when the client info says Windows/iTunes. Other sideloaders switched to Mac anisette for the same reason (xtool-org/xtool#380, nab138/iloader@9025973).

RemoteAnisetteProviderV3 fetched /v3/client_info from the server and then replaced it with the hardcoded Windows CLIENT_INFO_HEADER (added in 321eac4 for -80045). Now it uses what the server returns:

 AnisetteClient::new
   GET {url}/v3/client_info
-  client_info = CLIENT_INFO_HEADER   // <PC> <Windows;6.2(0,0);9200> <… com.apple.iTunes/12.12.4.1>
+  client_info = server response       // <MacBookPro13,3> <Mac OS X;10.12.6;16G29> <… com.apple.akd/1.0>
  • DEFAULT_ANISETTE_URL_V3: https://ani.sidestore.app → https://mac-ani.jkcoxson.com
  • Anisette state file: state.plist → mac_anisette_state.plist, so states provisioned under the old identity are not reused. "Reset Anisette Data" deletes the new file.

The local SSC/adi_proxy path is unchanged.

Evidence

macOS (arm64), free account, trusted device 2FA:

  • Before: login fails with -80046 after entering the 2FA code. With an existing saved session, plumesign account certificates fails with Developer API error 1100 ... listTeams.action.
  • After: login with 2FA succeeds and teams are listed. The same saved session restores fine with plumesign account certificates. Signed and installed an IPA to an iPhone from the GUI.

Merge Danger

Door: two-way. It only changes the default server and the identity string. Old state files are left in place and ignored.

Blast Radius: auth. Everyone on the default remote anisette re-provisions once. If Apple starts rejecting Mac identities, login breaks again the same way.

Apple now rejects GrandSlam 2FA and developer services requests that
identify as Windows/iTunes. Use the client info returned by the anisette
server instead of overriding it, and default to a Mac anisette server.

The anisette state file is renamed so states provisioned under the old
identity are not reused.

fixes claration#298
fixes claration#300
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

2 participants