| // 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: "system-update-committer", |
| url: "fuchsia-pkg://fuchsia.com/system-update-committer#meta/system-update-committer.cm", |
| startup: "eager", |
| }, |
| |
| // 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: "activity", |
| url: "fuchsia-pkg://fuchsia.com/activity#meta/activity.cm", |
| }, |
| { |
| name: "detect", |
| url: "fuchsia-pkg://fuchsia.com/triage-detect#meta/triage-detect.cm", |
| }, |
| { |
| name: "log-stats", |
| url: "fuchsia-pkg://fuchsia.com/log-stats#meta/log-stats.cm", |
| }, |
| { |
| name: "sampler", |
| url: "fuchsia-pkg://fuchsia.com/sampler#meta/sampler.cm", |
| }, |
| { |
| name: "test_manager", |
| url: "fuchsia-pkg://fuchsia.com/test_manager#meta/test_manager.cm", |
| environment: "#test-manager-env", |
| }, |
| { |
| 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: "remote-diagnostics-bridge", |
| url: "fuchsia-pkg://fuchsia.com/remote-diagnostics-bridge#meta/diagnostics-bridge.cm", |
| }, |
| { |
| name: "debug_serial", |
| url: "fuchsia-pkg://fuchsia.com/debug-serial#meta/debug-serial.cm", |
| }, |
| { |
| name: "temperature-logger", |
| url: "fuchsia-pkg://fuchsia.com/temperature-logger#meta/temperature-logger.cm", |
| }, |
| { |
| name: "universe-resolver", |
| url: "fuchsia-pkg://fuchsia.com/universe-resolver#meta/universe-resolver.cm", |
| }, |
| ], |
| capabilities: [ |
| { |
| storage: "data", |
| from: "parent", |
| subdir: "persistent", |
| backing_dir: "minfs", |
| }, |
| { protocol: "fuchsia.appmgr.Startup" }, |
| ], |
| offer: [ |
| { |
| protocol: [ |
| "fuchsia.boot.RootResource", |
| "fuchsia.kernel.DebugResource", |
| "fuchsia.kernel.HypervisorResource", |
| "fuchsia.kernel.InfoResource", |
| "fuchsia.kernel.IoportResource", |
| "fuchsia.kernel.IrqResource", |
| "fuchsia.kernel.MmioResource", |
| "fuchsia.kernel.SmcResource", |
| "fuchsia.kernel.VmexResource", |
| ], |
| from: "parent", |
| to: [ "#debug_serial" ], |
| }, |
| { |
| protocol: "fuchsia.update.CommitStatusProvider", |
| from: "#system-update-committer", |
| to: [ "#appmgr" ], |
| }, |
| { |
| protocol: [ |
| "fuchsia.ui.activity.control.Control", |
| "fuchsia.ui.activity.Provider", |
| "fuchsia.ui.activity.Tracker", |
| ], |
| from: "#activity", |
| to: [ "#appmgr" ], |
| }, |
| { |
| protocol: "fuchsia.hardware.serial.NewDeviceProxy", |
| from: "#debug_serial", |
| to: [ "#appmgr" ], |
| }, |
| { |
| protocol: [ "fuchsia.pkg.FontResolver" ], |
| from: "#appmgr", |
| to: [ "#font_provider" ], |
| dependency: "weak_for_migration", |
| }, |
| { |
| protocol: "fuchsia.thermal.test.TemperatureLogger", |
| from: "#temperature-logger", |
| to: [ "#appmgr" ], |
| }, |
| { |
| protocol: [ "fuchsia.cobalt.LoggerFactory" ], |
| from: "#appmgr", |
| to: [ "#sampler" ], |
| }, |
| { |
| protocol: "fuchsia.pkg.PackageResolver", |
| from: "#appmgr", |
| to: [ "#universe-resolver" ], |
| }, |
| |
| // Passing from root realm to appmgr |
| { |
| protocol: [ |
| "fuchsia.boot.Arguments", |
| "fuchsia.boot.FactoryItems", |
| "fuchsia.boot.Items", |
| "fuchsia.boot.ReadOnlyLog", |
| "fuchsia.boot.RootResource", |
| "fuchsia.device.manager.Administrator", |
| "fuchsia.device.manager.DebugDumper", |
| "fuchsia.device.NameProvider", |
| "fuchsia.hardware.power.statecontrol.Admin", |
| "fuchsia.hardware.power.statecontrol.RebootMethodsWatcherRegister", |
| "fuchsia.hardware.pty.Device", |
| "fuchsia.kernel.Counter", |
| "fuchsia.kernel.DebugBroker", |
| "fuchsia.kernel.DebugResource", |
| "fuchsia.kernel.HypervisorResource", |
| "fuchsia.kernel.InfoResource", |
| "fuchsia.kernel.IoportResource", |
| "fuchsia.kernel.IrqResource", |
| "fuchsia.kernel.MmioResource", |
| "fuchsia.kernel.RootJob", |
| "fuchsia.kernel.RootJobForInspect", |
| "fuchsia.kernel.SmcResource", |
| "fuchsia.kernel.Stats", |
| "fuchsia.kernel.VmexResource", |
| "fuchsia.paver.Paver", |
| "fuchsia.process.Launcher", |
| "fuchsia.scheduler.ProfileProvider", |
| "fuchsia.sysinfo.SysInfo", |
| "fuchsia.thermal.Controller", |
| "fuchsia.time.Maintenance", |
| "fuchsia.tracing.kernel.Controller", |
| "fuchsia.tracing.kernel.Reader", |
| "fuchsia.virtualconsole.SessionManager", |
| ], |
| from: "parent", |
| to: [ "#appmgr" ], |
| }, |
| { |
| protocol: [ "fuchsia.boot.WriteOnlyLog" ], |
| from: "parent", |
| to: [ |
| "#appmgr", |
| "#test_manager", |
| ], |
| }, |
| { |
| protocol: [ |
| "fuchsia.diagnostics.ArchiveAccessor", |
| "fuchsia.diagnostics.FeedbackArchiveAccessor", |
| "fuchsia.diagnostics.LegacyMetricsArchiveAccessor", |
| "fuchsia.logger.Log", |
| ], |
| from: "parent", |
| to: [ |
| "#appmgr", |
| "#log-stats", |
| "#sampler", |
| ], |
| }, |
| { |
| protocol: [ "fuchsia.diagnostics.FeedbackArchiveAccessor" ], |
| from: "parent", |
| to: [ "#detect" ], |
| }, |
| { |
| protocol: [ "fuchsia.logger.LogSink" ], |
| from: "parent", |
| to: [ |
| "#activity", |
| "#debug_serial", |
| "#detect", |
| "#font_provider", |
| "#log-stats", |
| "#remote-control", |
| "#sampler", |
| "#system-update-committer", |
| "#temperature-logger", |
| "#test_manager", |
| "#universe-resolver", |
| ], |
| }, |
| { |
| protocol: "fuchsia.paver.Paver", |
| from: "parent", |
| to: [ "#system-update-committer" ], |
| }, |
| { |
| protocol: [ |
| "fuchsia.sys2.BlockingEventSource", |
| "fuchsia.sys2.EventSource", |
| ], |
| from: "parent", |
| to: [ "#test_manager" ], |
| }, |
| { |
| directory: "config-data", |
| from: "parent", |
| to: [ "#test_manager" ], |
| }, |
| |
| // These capabilities are offered to test_manager for use by certain non-hermetic tests. |
| { |
| protocol: [ |
| "fuchsia.hardware.display.Provider", |
| "fuchsia.scheduler.ProfileProvider", |
| "fuchsia.sysmem.Allocator", |
| "fuchsia.tracing.provider.Registry", |
| ], |
| from: "parent", |
| to: [ "#test_manager" ], |
| }, |
| { |
| directory: "dev", |
| from: "parent", |
| as: "dev-display-controller", |
| to: [ "#test_manager" ], |
| subdir: "class/display-controller", |
| }, |
| { |
| protocol: [ |
| "fuchsia.net.stack.Stack", |
| "fuchsia.overnet.Overnet", |
| "fuchsia.overnet.ServicePublisher", |
| "fuchsia.sys.Launcher", |
| "fuchsia.test.manager.Harness", |
| ], |
| from: "#appmgr", |
| to: [ "#remote-control" ], |
| dependency: "weak_for_migration", |
| }, |
| { |
| protocol: [ |
| "fuchsia.device.manager.Administrator", |
| "fuchsia.device.NameProvider", |
| ], |
| from: "parent", |
| to: [ "#remote-control" ], |
| }, |
| { |
| protocol: [ |
| "fuchsia.diagnostics.ArchiveAccessor", |
| "fuchsia.logger.LogSink", |
| ], |
| from: "parent", |
| to: [ "#remote-diagnostics-bridge" ], |
| }, |
| { |
| directory: "config-data", |
| from: "parent", |
| to: [ "#font_provider" ], |
| subdir: "fonts", |
| }, |
| { |
| directory: "config-data", |
| from: "parent", |
| to: [ "#sampler" ], |
| subdir: "sampler", |
| }, |
| { |
| protocol: "fuchsia.developer.remotecontrol.RemoteDiagnosticsBridge", |
| from: "#remote-diagnostics-bridge", |
| to: [ "#remote-control" ], |
| }, |
| { |
| protocol: "fuchsia.developer.remotecontrol.RemoteControl", |
| from: "#remote-control", |
| to: [ "#appmgr" ], |
| }, |
| { |
| protocol: "fuchsia.feedback.CrashReporter", |
| from: "#appmgr", |
| to: [ "#detect" ], |
| }, |
| { |
| protocol: "fuchsia.feedback.CrashReportingProductRegister", |
| from: "#appmgr", |
| to: [ "#detect" ], |
| }, |
| { |
| protocol: "fuchsia.fonts.Provider", |
| from: "#font_provider", |
| to: [ "#appmgr" ], |
| }, |
| { |
| directory: "dev", |
| from: "parent", |
| as: "dev-temperature", |
| to: [ "#temperature-logger" ], |
| subdir: "class/temperature", |
| }, |
| { |
| directory: "dev", |
| from: "parent", |
| as: "dev-thermal", |
| to: [ "#temperature-logger" ], |
| subdir: "class/thermal", |
| }, |
| { |
| directory: "config-data", |
| from: "parent", |
| to: [ "#temperature-logger" ], |
| subdir: "temperature-logger", |
| }, |
| { |
| directory: "config-data", |
| from: "parent", |
| to: [ "#detect" ], |
| subdir: "triage-detect", |
| }, |
| { |
| protocol: [ |
| "fuchsia.device.Controller", |
| "fuchsia.hardware.temperature.Device", |
| ], |
| from: "parent", |
| to: [ "#temperature-logger" ], |
| }, |
| { |
| protocol: "fuchsia.tracing.provider.Registry", |
| from: "#appmgr", |
| to: [ "#temperature-logger" ], |
| dependency: "weak_for_migration", |
| }, |
| { |
| 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", |
| ], |
| }, |
| ], |
| expose: [ |
| // Non-zircon services for svchost |
| { |
| protocol: [ |
| "fuchsia.amber.Control", |
| "fuchsia.cobalt.LoggerFactory", |
| "fuchsia.exception.Handler", |
| "fuchsia.feedback.CrashReporter", |
| "fuchsia.metrics.MetricEventLoggerFactory", |
| "fuchsia.net.NameLookup", |
| "fuchsia.net.stack.Log", |
| "fuchsia.net.stack.Stack", |
| "fuchsia.netstack.Netstack", |
| "fuchsia.pkg.PackageResolver", |
| "fuchsia.pkg.RepositoryManager", |
| "fuchsia.pkg.rewrite.Engine", |
| "fuchsia.posix.socket.Provider", |
| "fuchsia.process.Resolver", |
| "fuchsia.sys.Environment", |
| "fuchsia.sys.internal.ComponentEventProvider", |
| "fuchsia.sys.internal.LogConnector", |
| "fuchsia.sys.Launcher", |
| "fuchsia.sys.Loader", |
| "fuchsia.tracing.controller.Controller", |
| "fuchsia.tracing.provider.Registry", |
| ], |
| from: "#appmgr", |
| }, |
| { |
| protocol: [ "fuchsia.appmgr.Startup" ], |
| from: "#appmgr", |
| }, |
| { |
| protocol: [ "fuchsia.diagnostics.internal.DetectController" ], |
| from: "#detect", |
| }, |
| { |
| protocol: [ "fuchsia.diagnostics.internal.LogStatsController" ], |
| from: "#log-stats", |
| }, |
| { |
| protocol: [ "fuchsia.diagnostics.internal.SamplerController" ], |
| from: "#sampler", |
| }, |
| |
| // device_manager needs the hub for the serial console |
| { |
| directory: "hub", |
| from: "#appmgr", |
| }, |
| ], |
| environments: [ |
| { |
| name: "test-manager-env", |
| extends: "realm", |
| resolvers: [ |
| { |
| resolver: "universe-resolver", |
| scheme: "fuchsia-pkg", |
| from: "#universe-resolver", |
| }, |
| ], |
| }, |
| ], |
| } |