Skip to content

Override anisette client info to fix -23782 sign-in error (AltServer + AltStore) - #1853

Open
SanpuiRonak wants to merge 2 commits into
altstoreio:classicfrom
SanpuiRonak:fix/23782-akd-client-info
Open

SanpuiRonak wants to merge 2 commits into
altstoreio:classicfrom
SanpuiRonak:fix/23782-akd-client-info

Conversation

@SanpuiRonak

@SanpuiRonak SanpuiRonak commented Oct 28, 2026 •

Copy link
Copy Markdown

Fixes #1852

Problem

Apple currently rejects the client info that remote anisette v3 servers report, and sign-in fails with:

A Mac with macOS version 10.13 or later is required to sign in with this Apple Account. (-23782)

This affects both apps:

  • AltServer (macOS 27): RemoteAnisetteDataFetcher sends the anisette server's client_info / user_agent with Apple's provisioning and GrandSlam requests.
  • AltStore: FetchAnisetteDataOperation does the same when it fetches anisette data from a remote server. It also never sets ALTAppleAPI.authenticationUserAgent, so it always falls back to akd/1.0 CFNetwork/808.1.4, even when the anisette data comes from AltServer.

Fix

Identify as akd on macOS, with the same values iloader v2.4.1 uses (nab138/iloader@d319ce7):

  • X-MMe-Client-Info: <Mac15,7> <macOS;27.0;26A5378j> <com.apple.AuthKit/1 (com.apple.akd/1.0)>
  • User-Agent: akd/1.0 CFNetwork/811.5.4

AltServer: RemoteAnisetteDataFetcher.fetchClientInfo(from:) returns the override. It's the single source of client info for anisette provisioning, the URL bag lookup and GrandSlam auth, which matches how isideload's set_client_info_override applies it (see also nab138/isideload@326e562).

AltStore: FetchAnisetteDataOperation uses the override for remote anisette provisioning and data, and sets ALTAppleAPI.shared.authenticationUserAgent to the override's user agent for every anisette source.

In both apps the override is an optional static (clientInfoOverride), so the server-reported client info can come back by setting it to nil once anisette servers report client info Apple accepts. Cached anisette identities are keyed on client info, so existing users re-provision automatically on their next sign-in.

Testing

On macOS 27.0.1 with Xcode on the macOS 27 / iOS 27.1 SDKs, building from classic:

  • AltServer 1.8.2 + this change: signing in with an Apple ID that failed with -23782 succeeds, and installing AltStore works. Official AltServer 1.8.3 still fails with -23782 for the same account.
  • AltStore 2.3.1 + this change, sideloaded with the patched AltServer: on-device sign-in succeeds.

Notes

  • Related: Send the anisette server's user agent with GrandSlam requests - fixes HTTP 503 on sign-in with remote anisette #1851 sends the anisette server's user agent with GrandSlam requests. With this override, the user agent comes from the override instead.

  • Not in this PR, but needed to build classic with the current Xcode:

    • AltServer and AltJIT still list AltSign-Dynamic in packageProductDependencies. 6063de6 moved both targets to AltSign-Static but left those entries behind, so Xcode splits AltSign into separate frameworks and ldid fails to link against OpenSSL.
    • AltStore: the prebuilt Dependencies/libcurl/libcurl.a has misaligned 64-bit members that the new linker rejects. -ld_classic is no longer supported, so I repacked the arm64 slice locally to build.

    Happy to open separate PRs for these.

🤖 Generated with Claude Code

Apple rejects the client info that remote anisette servers currently report,
failing sign-in with "A Mac with macOS version 10.13 or later is required to
sign in with this Apple Account. (-23782)".

Identify as akd on macOS instead, for anisette provisioning and GrandSlam
authentication, using the same override as iloader v2.4.1
(nab138/iloader@d319ce7). The server-reported client info is used again once
the override is removed.

Fixes altstoreio#1852

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@SanpuiRonak SanpuiRonak reopened this Oct 29, 2026
@SanpuiRonak
SanpuiRonak marked this pull request as ready for review October 29, 2026 03:58
AltStore signs in to Apple on-device when sideloading and refreshing apps, so
it needs the same client info override as AltServer:

- When fetching anisette data from a remote anisette server, use akd's client
  info for provisioning and the anisette data instead of the server's.
- Always send akd's user agent with GrandSlam requests, including when the
  anisette data comes from AltServer. AltStore never set
  authenticationUserAgent, so it fell back to "akd/1.0 CFNetwork/808.1.4".

Fixes altstoreio#1852

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@SanpuiRonak SanpuiRonak changed the title [AltServer] Override anisette client info to fix -23782 sign-in error Override anisette client info to fix -23782 sign-in error (AltServer + AltStore) Oct 29, 2026
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