Skip to content

Latest commit

 

History

History
81 lines (62 loc) · 3.8 KB

File metadata and controls

81 lines (62 loc) · 3.8 KB

MediaRemote.framework

Scope

Research MediaRemote.framework and related now-playing, media-control, route, and userland access surfaces on:

  • active macOS 26.5 system frameworks
  • installed macOS 27 beta SDK frameworks and generated interfaces

The goal is to document types, functions, signatures, hooks, notifications, callbacks, and experiments that improve userland access to media controls and now-playing state.

Environment

Field Value
Active OS macOS 26.5.2, build 25F84
SDK comparison Xcode 26.6 MacOSX26.5 SDK and Xcode 27.0 beta SDK
Primary machine Apple silicon MacBook Pro
Swift toolchain at repo bootstrap Apple Swift 6.3.3

The first evidence capture is recorded in ../../../research/MediaRemote/baseline-2026-07-15.md.

Evidence Inventory

  • Active framework path
  • Beta SDK framework path
  • otool metadata for support binaries
  • exported symbols from live dyld cache
  • Objective-C class names from exported symbols
  • protocols from selected runtime classes
  • selectors and method strings from dyld capture
  • strings
  • notifications
  • entitlements for support binaries
  • related daemons and agents
  • related services and XPC endpoints
  • runtime interface descriptions for selected classes
  • read-only runtime experiments

Interesting Areas

  • now-playing metadata
  • now-playing queues
  • playback state
  • playback commands
  • origins and clients
  • routes, destinations, and endpoint selection
  • notifications and callbacks
  • app and daemon boundaries
  • sandbox, TCC, entitlement, and SIP-disabled behavior

Notes

Keep raw captures in research/MediaRemote/. Promote stable findings into the topic files in this directory.

Start with read-only discovery before sending playback commands or mutating routes.

Initial local evidence shows the active framework directories are dyld-cache framework shells rather than ordinary binary-bearing framework directories. Live binary inspection should use dyld shared-cache tooling or extracted cache images.

See live-dyld-cache.md for the first live export classification and read-only now-playing probe result.

See runtime-probes.md for the Spotify and fixture-backed runtime results.

Topic Files

  • inventory-captures.md: repeatable capture workflow and latest capture inventory.
  • live-dyld-cache.md: dyld-cache inspection notes, live/SDK symbol counts, and export buckets.
  • symbols.md: exported symbol families and SDK differences.
  • sdk-live-differences.md: macOS 26.5 live exports versus Xcode 26 SDK and Xcode 27 beta SDK deltas.
  • now-playing-architecture.md: now-playing identity, notifications, metadata keys, playback queues, and controller generations.
  • runtime-probes.md: local Swift probes and observed runtime behavior.
  • runtime-interfaces.md: recovered Objective-C runtime class interfaces and high-value request wrappers.
  • agents-daemons.md: mediaremoted, mediaremoteagent, entitlements, mach services, and daemon authority boundaries.
  • daemon-observation.md: repeatable unified-log captures around probe runs and daemon-side client evidence.
  • entitlement-model.md: entitlement helper symbols, daemon bitfield evidence, named entitlement status, and mapping gaps.
  • xpc-and-messages.md: XPC service names, message keys, command paths, endpoint routing, and serialization hints.
  • message-id-map.md: immediate call-site mapping for MRXPC_MESSAGE_ID_KEY domains, ordinals, and high-value now-playing IDs.
  • permissions-policy.md: runtime Code 3 denials, entitlement names, audit-token policy, and signed-helper experiment boundaries.
  • routes-output-devices.md: endpoint, route, output context, output device, and discovery surfaces.
  • experiments.md: experiment log and next steps.
  • references.md: links within this research package.