Skip to content

Allow play without owning Minecraft using local accounts - #4

Merged
ChimeraAnt-DEV merged 1 commit into
mainfrom
feat/local-accounts-no-ownership-cracked-play
Sep 17, 2026
Merged

ChimeraAnt-DEV merged 1 commit into
mainfrom
feat/local-accounts-no-ownership-cracked-play

Conversation

@ChimeraAnt-DEV

@ChimeraAnt-DEV ChimeraAnt-DEV commented Sep 17, 2026 •

Copy link
Copy Markdown
Owner

Summary

Removes the region/ownership gating that prevented users outside Greater China without a Microsoft account from using the launcher, so users can add local accounts and play on offline/cracked servers.

What changed

  • AccountsManager.kt — Removed checkLimit() (the circumventLimit marker-file workaround, isInGreaterChina() region gate, and hasMicrosoftAccount() condition) and the _isOffline state. The current account is now preserved and selectable everywhere instead of being nulled out.
  • AccountManageScreen.kt — The Add-Account button always opens the full login menu (Local / Microsoft / external auth server). Account items are always selectable.
  • LauncherElements.kt — First-launch "no account" routing now always opens the full login menu (FirstLoginMenu.NORMAL).
  • AccountManageViewModel.kt — Dropped the now-unused isOffline field from ProfileUiState.
  • Strings (EN + zh-CN) — The account_logging_missing_client_id error no longer tells users to set up an Azure app and rebuild. It now says Microsoft sign-in is unavailable in this build and points to local accounts.
  • README.md — Updated account documentation for local/cracked-server play.

Fix: launch crash for non-owner Microsoft accounts

An earlier revision of this PR also removed the ownership-based offline downgrade in GameLaunchFlow, which caused a crash (white screen) on every launch. That downgrade has been restored.

A Microsoft account without Minecraft ownership is constructed as an offline identity — locally derived UUID, no official profile, no valid session (createAccount() in MicrosoftAuthenticator.kt). Without the downgrade, accountType stayed Microsoft, so the launcher passed user_type=msa with a non-official token/UUID and skipped the offline Yggdrasil/authlib injector path, and the client crashed during session validation.

This downgrade is not ownership enforcement — it is required to launch such accounts at all. It applies only to Microsoft accounts explicitly flagged ownsMinecraft=false; local and auth-server accounts are unaffected.

Notes

  • Official Mojang servers still verify ownership server-side; an unowned account cannot join them.
  • No Android SDK/AGP toolchain was available in the development environment, so CI (Build APK) is the compile/runtime gate.

- Remove ownsMinecraft forced-offline downgrade in GameLaunchFlow so
  non-owner Microsoft accounts launch directly with their offline identity.
- Drop checkLimit() region/ownership gating and the isOffline state in
  AccountsManager; current account and the full Add-Account menu are now
  available everywhere.
- Route first-login and Add Account to the full login menu (local accounts
  included) instead of forcing Microsoft sign-in.
- Rephrase the missing-OAuth-client-id error to point users to local
  accounts for offline/cracked servers.
- Update README account documentation for local/cracked-server play.

Co-authored-by: openhands <openhands@all-hands.dev>
@ChimeraAnt-DEV ChimeraAnt-DEV added documentation Improvements or additions to documentation enhancement New feature or request labels Sep 17, 2026 — with OpenHands AI
@ChimeraAnt-DEV
ChimeraAnt-DEV marked this pull request as ready for review September 17, 2026 15:58
@ChimeraAnt-DEV
ChimeraAnt-DEV merged commit 87e244b into main Sep 17, 2026
1 check passed
@ChimeraAnt-DEV
ChimeraAnt-DEV deleted the feat/local-accounts-no-ownership-cracked-play branch September 17, 2026 15:58
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Improvements or additions to documentation enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants