Repository navigation
Conversation
Make mshell own admin-owned windows as completely as ordinary ones, and spell out the anti-cheat-safe posture that keeps this usable on a gaming machine. Nothing here injects into another process or touches the boot chain, so Secure Boot / TPM anti-cheat is unaffected. Helper protocol (proto v5): - PROTO_SHOW: ShowWindow() on a higher-integrity window, so a minimized admin window can actually be restored. ShowWindow can't report a UIPI refusal, so window_unminimize() and window_focus() now confirm the iconic bit cleared and fall back to the elevated helper when it didn't — previously a minimized admin window was unrecoverable with no taskbar. - PROTO_SETSTYLE: set GWL_STYLE/GWL_EXSTYLE cross-integrity, so an admin window loses its title bar and min/max buttons like every other tiled window. window_strip/restore_decorations() use it when the direct call is refused. uiAccess build variant (opt-in, make UIACCESS=1): - Separate uiAccess="true" manifest selected via a windres macro; the default asInvoker build is unchanged so an unsigned shell still boots. - Report the real TokenUIAccess state at startup (the manifest alone does not grant it — the binary must be signed and under Program Files). - INSTALL.md documents the signing / location requirements and the verify step. Also: - Set SDL_VIDEO_MINIMIZE_ON_FOCUS_LOSS=0 process-wide so SDL games stop self-minimizing on focus loss instead of relying on the restore backstop. - probe_uipi: new `manage` subcommand that replays strip/restore/move against an elevated window to confirm on-machine what UIPI refuses. - README: document the no-injection / boot-chain non-goal explicitly. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_017weNsujuHCgUzdttrry2Qe
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.
Make mshell own admin-owned windows as completely as ordinary ones, and
spell out the anti-cheat-safe posture that keeps this usable on a gaming
machine. Nothing here injects into another process or touches the boot
chain, so Secure Boot / TPM anti-cheat is unaffected.
Helper protocol (proto v5):
admin window can actually be restored. ShowWindow can't report a UIPI
refusal, so window_unminimize() and window_focus() now confirm the
iconic bit cleared and fall back to the elevated helper when it didn't
— previously a minimized admin window was unrecoverable with no taskbar.
window loses its title bar and min/max buttons like every other tiled
window. window_strip/restore_decorations() use it when the direct call
is refused.
uiAccess build variant (opt-in, make UIACCESS=1):
default asInvoker build is unchanged so an unsigned shell still boots.
not grant it — the binary must be signed and under Program Files).
step.
Also:
self-minimizing on focus loss instead of relying on the restore backstop.
managesubcommand that replays strip/restore/moveagainst an elevated window to confirm on-machine what UIPI refuses.
Co-Authored-By: Claude Opus 4.8 noreply@anthropic.com
Claude-Session: https://claude.ai/code/session_017weNsujuHCgUzdttrry2Qe