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.
| 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.
- Active framework path
- Beta SDK framework path
-
otoolmetadata 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
- 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
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.
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 forMRXPC_MESSAGE_ID_KEYdomains, 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.