| // Non-executable realm provisioning components and capabilities that are consistent across | |
| // products. | |
| { | |
| children: [ | |
| { | |
| name: "appmgr", | |
| url: "fuchsia-pkg://fuchsia.com/appmgr#meta/appmgr.cm", | |
| }, | |
| { | |
| name: "archivist", | |
| url: "fuchsia-boot:///#meta/archivist.cm", | |
| }, | |
| // Children below this line may be present on some but not all product configurations (whereas | |
| // children above it are expected to be present on all configs that include core.cml) | |
| // TODO(fxbug.dev/48215): Decide how to make it easier to understand which children aren't present. | |
| { | |
| name: "log-stats", | |
| url: "fuchsia-pkg://fuchsia.com/log-stats#meta/log-stats.cm", | |
| }, | |
| { | |
| name: "test_manager", | |
| url: "fuchsia-pkg://fuchsia.com/test_manager#meta/test_manager.cm", | |
| }, | |
| { | |
| name: "font_provider", | |
| url: "fuchsia-pkg://fuchsia.com/fonts#meta/fonts.cm", | |
| }, | |
| { | |
| name: "remote-control", | |
| url: "fuchsia-pkg://fuchsia.com/remote-control#meta/remote-control.cm", | |
| }, | |
| { | |
| name: "debug_serial", | |
| url: "fuchsia-pkg://fuchsia.com/debug-serial#meta/debug-serial.cm", | |
| }, | |
| ], | |
| capabilities: [ | |
| { | |
| storage: "data", | |
| from: "parent", | |
| subdir: "persistent", | |
| backing_dir: "/minfs", | |
| }, | |
| { protocol: "fuchsia.appmgr.Startup" }, | |
| ], | |
| offer: [ | |
| { | |
| protocol: [ | |
| "/svc/fuchsia.boot.RootResource", | |
| "/svc/fuchsia.kernel.MmioResource", | |
| ], | |
| from: "parent", | |
| to: [ "#debug_serial" ], | |
| }, | |
| { | |
| protocol: [ "/svc/fuchsia.diagnostics.internal.LogStatsController" ], | |
| from: "#log-stats", | |
| to: [ "#archivist" ], | |
| dependency: "weak_for_migration", | |
| }, | |
| { | |
| protocol: "/svc/fuchsia.hardware.serial.NewDeviceProxy", | |
| from: "#debug_serial", | |
| to: [ "#appmgr" ], | |
| }, | |
| { | |
| protocol: [ "fuchsia.pkg.FontResolver" ], | |
| from: "#appmgr", | |
| to: [ "#font_provider" ], | |
| dependency: "weak_for_migration", | |
| }, | |
| // Passing from root realm to appmgr | |
| { | |
| protocol: [ | |
| "/svc/fuchsia.boot.Arguments", | |
| "/svc/fuchsia.boot.FactoryItems", | |
| "/svc/fuchsia.boot.Items", | |
| "/svc/fuchsia.boot.ReadOnlyLog", | |
| "/svc/fuchsia.boot.RootResource", | |
| "/svc/fuchsia.device.manager.Administrator", | |
| "/svc/fuchsia.device.manager.DebugDumper", | |
| "/svc/fuchsia.device.NameProvider", | |
| "/svc/fuchsia.hardware.power.statecontrol.Admin", | |
| "/svc/fuchsia.hardware.power.statecontrol.RebootMethodsWatcherRegister", | |
| "/svc/fuchsia.hardware.pty.Device", | |
| "/svc/fuchsia.kernel.Counter", | |
| "/svc/fuchsia.kernel.DebugBroker", | |
| "/svc/fuchsia.kernel.MmioResource", | |
| "/svc/fuchsia.kernel.RootJob", | |
| "/svc/fuchsia.kernel.RootJobForInspect", | |
| "/svc/fuchsia.kernel.Stats", | |
| "/svc/fuchsia.paver.Paver", | |
| "/svc/fuchsia.process.Launcher", | |
| "/svc/fuchsia.scheduler.ProfileProvider", | |
| "/svc/fuchsia.security.resource.Vmex", | |
| "/svc/fuchsia.sysinfo.SysInfo", | |
| "/svc/fuchsia.thermal.Controller", | |
| "/svc/fuchsia.time.Maintenance", | |
| "/svc/fuchsia.tracing.kernel.Controller", | |
| "/svc/fuchsia.tracing.kernel.Reader", | |
| "/svc/fuchsia.virtualconsole.SessionManager", | |
| ], | |
| from: "parent", | |
| to: [ "#appmgr" ], | |
| }, | |
| { | |
| protocol: [ "/svc/fuchsia.boot.WriteOnlyLog" ], | |
| from: "parent", | |
| to: [ | |
| "#appmgr", | |
| "#test_manager", | |
| ], | |
| }, | |
| { | |
| protocol: [ | |
| "/svc/fuchsia.boot.ReadOnlyLog", | |
| "/svc/fuchsia.sys2.EventSource", | |
| ], | |
| from: "parent", | |
| to: [ "#archivist" ], | |
| }, | |
| { | |
| protocol: [ | |
| "/svc/fuchsia.sys.internal.ComponentEventProvider", | |
| "/svc/fuchsia.sys.internal.LogConnector", | |
| ], | |
| from: "#appmgr", | |
| to: [ "#archivist" ], | |
| dependency: "weak_for_migration", | |
| }, | |
| { | |
| protocol: [ | |
| "/svc/fuchsia.diagnostics.ArchiveAccessor", | |
| "/svc/fuchsia.diagnostics.FeedbackArchiveAccessor", | |
| "/svc/fuchsia.diagnostics.LegacyMetricsArchiveAccessor", | |
| "/svc/fuchsia.logger.Log", | |
| ], | |
| from: "#archivist", | |
| to: [ | |
| "#appmgr", | |
| "#log-stats", | |
| ], | |
| }, | |
| { | |
| protocol: [ "/svc/fuchsia.logger.LogSink" ], | |
| from: "#archivist", | |
| to: [ | |
| "#debug_serial", | |
| "#font_provider", | |
| "#log-stats", | |
| "#remote-control", | |
| "#test_manager", | |
| ], | |
| }, | |
| { | |
| protocol: [ "fuchsia.logger.LogSink" ], | |
| from: "#archivist", | |
| to: [ "#font_provider" ], | |
| }, | |
| { | |
| protocol: [ | |
| "/svc/fuchsia.sys2.BlockingEventSource", | |
| "/svc/fuchsia.sys2.EventSource", | |
| ], | |
| from: "parent", | |
| to: [ "#test_manager" ], | |
| }, | |
| { | |
| protocol: [ | |
| "/svc/fuchsia.net.stack.Stack", | |
| "/svc/fuchsia.overnet.Overnet", | |
| "/svc/fuchsia.overnet.ServicePublisher", | |
| "/svc/fuchsia.sys.Launcher", | |
| "fuchsia.test.manager.Harness", | |
| ], | |
| from: "#appmgr", | |
| to: [ "#remote-control" ], | |
| dependency: "weak_for_migration", | |
| }, | |
| { | |
| protocol: [ | |
| "/svc/fuchsia.device.manager.Administrator", | |
| "/svc/fuchsia.device.NameProvider", | |
| ], | |
| from: "parent", | |
| to: [ "#remote-control" ], | |
| }, | |
| { | |
| storage: "data", | |
| from: "self", | |
| to: [ "#archivist" ], | |
| }, | |
| { | |
| directory: "/boot", | |
| from: "parent", | |
| as: "/config/data", | |
| to: [ "#archivist" ], | |
| subdir: "config/archivist", | |
| }, | |
| { | |
| directory: "config-data", | |
| from: "parent", | |
| to: [ "#font_provider" ], | |
| subdir: "fonts", | |
| }, | |
| { | |
| directory: "config-data", | |
| from: "parent", | |
| to: [ "#test_manager" ], | |
| }, | |
| { | |
| directory: "/config/data", | |
| from: "parent", | |
| to: [ "#test_manager" ], | |
| }, | |
| { | |
| protocol: "/svc/fuchsia.developer.remotecontrol.RemoteControl", | |
| from: "#remote-control", | |
| to: [ "#appmgr" ], | |
| }, | |
| { | |
| protocol: "/svc/fuchsia.fonts.Provider", | |
| from: "#font_provider", | |
| to: [ "#appmgr" ], | |
| }, | |
| { | |
| directory: "/boot", | |
| from: "parent", | |
| to: [ "#appmgr" ], | |
| }, | |
| { | |
| directory: "/dev", | |
| from: "parent", | |
| to: [ "#appmgr" ], | |
| }, | |
| { | |
| directory: "/durable", | |
| from: "parent", | |
| to: [ "#appmgr" ], | |
| }, | |
| { | |
| directory: "/factory", | |
| from: "parent", | |
| to: [ "#appmgr" ], | |
| }, | |
| { | |
| directory: "/minfs", | |
| from: "parent", | |
| to: [ "#appmgr" ], | |
| }, | |
| { | |
| directory: "/pkgfs", | |
| from: "parent", | |
| to: [ "#appmgr" ], | |
| }, | |
| { | |
| directory: "/system", | |
| from: "parent", | |
| to: [ "#appmgr" ], | |
| }, | |
| { | |
| directory: "/blob", | |
| from: "parent", | |
| to: [ "#appmgr" ], | |
| }, | |
| { | |
| directory: "/volume", | |
| from: "parent", | |
| to: [ "#appmgr" ], | |
| }, | |
| { | |
| directory: "/install", | |
| from: "parent", | |
| to: [ "#appmgr" ], | |
| }, | |
| { | |
| directory: "/tmp", | |
| from: "parent", | |
| to: [ "#appmgr" ], | |
| }, | |
| { | |
| // Note: this is the v2 root hub. The hub in the `expose` section below | |
| // is the v1 root hub. | |
| directory: "/hub", | |
| from: "parent", | |
| to: [ | |
| "#appmgr", | |
| "#remote-control", | |
| ], | |
| }, | |
| // Offer lifecycle events to the archivist for diagnostics. | |
| { | |
| event: [ | |
| "running", | |
| "started", | |
| "stopped", | |
| ], | |
| from: "parent", | |
| to: [ "#archivist" ], | |
| }, | |
| { | |
| event: "capability_ready", | |
| from: "parent", | |
| to: [ "#archivist" ], | |
| filter: { path: "/diagnostics" }, | |
| }, | |
| ], | |
| expose: [ | |
| // Non-zircon services for svchost | |
| { | |
| protocol: [ | |
| "/svc/fuchsia.amber.Control", | |
| "/svc/fuchsia.cobalt.LoggerFactory", | |
| "/svc/fuchsia.exception.Handler", | |
| "/svc/fuchsia.feedback.CrashReporter", | |
| "/svc/fuchsia.net.NameLookup", | |
| "/svc/fuchsia.net.stack.Log", | |
| "/svc/fuchsia.net.stack.Stack", | |
| "/svc/fuchsia.netstack.Netstack", | |
| "/svc/fuchsia.pkg.PackageResolver", | |
| "/svc/fuchsia.pkg.RepositoryManager", | |
| "/svc/fuchsia.pkg.rewrite.Engine", | |
| "/svc/fuchsia.posix.socket.Provider", | |
| "/svc/fuchsia.process.Resolver", | |
| "/svc/fuchsia.sys.Environment", | |
| "/svc/fuchsia.sys.Launcher", | |
| "/svc/fuchsia.sys.Loader", | |
| "/svc/fuchsia.tracing.controller.Controller", | |
| "/svc/fuchsia.tracing.provider.Registry", | |
| "/svc/fuchsia.wlan.service.Wlan", | |
| ], | |
| from: "#appmgr", | |
| }, | |
| { | |
| protocol: [ "fuchsia.appmgr.Startup" ], | |
| from: "#appmgr", | |
| }, | |
| // Expose LogSink for use by components in other realms. The archivist | |
| // exposes LogSink, components use it and when component_manager routes | |
| // the protocol it'll defer the binding to the archivist through | |
| // capabiltiy requested for attribution. | |
| { | |
| protocol: [ | |
| "/svc/fuchsia.diagnostics.ArchiveAccessor", | |
| "/svc/fuchsia.diagnostics.FeedbackArchiveAccessor", | |
| "/svc/fuchsia.logger.Log", | |
| "/svc/fuchsia.logger.LogSink", | |
| ], | |
| from: "#archivist", | |
| }, | |
| // device_manager needs the hub for the serial console | |
| { | |
| directory: "/hub", | |
| from: "#appmgr", | |
| }, | |
| ], | |
| } |