blob: 143625663fc9b4378522a5d7c199ec6ee4ef130c [file] [log] [blame]
// 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",
},
],
},
],
}