blob: 3997afb5ffd395c396afe5df6931efcf5a164679 [file] [log] [blame]
// Non-executable realm provisioning components and capabilities that are consistent across
// products.
{
children: [
{
name: "device_settings",
url: "fuchsia-pkg://fuchsia.com/device_settings_manager#meta/device_settings_manager.cm",
},
{
name: "appmgr",
url: "fuchsia-pkg://fuchsia.com/appmgr#meta/appmgr.cm",
},
{
name: "session-manager",
url: "fuchsia-pkg://fuchsia.com/session_manager#meta/session_manager.cm",
environment: "#session-manager-env",
},
{
name: "system-update-committer",
url: "fuchsia-pkg://fuchsia.com/system-update-committer#meta/system-update-committer.cm",
startup: "eager",
},
{
name: "last_reboot",
url: "fuchsia-pkg://fuchsia.com/forensics#meta/last_reboot.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: "activity",
url: "fuchsia-pkg://fuchsia.com/activity#meta/activity.cm",
},
{
name: "battery_manager",
url: "fuchsia-pkg://fuchsia.com/battery-manager#meta/battery_manager.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: "system-metrics-logger",
url: "fuchsia-pkg://fuchsia.com/system-metrics-logger#meta/system-metrics-logger-component.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",
},
{
name: "pkg-cache",
url: "fuchsia-pkg://fuchsia.com/pkg-cache#meta/pkg-cache.cm",
},
{
name: "dhcpd",
url: "fuchsia-pkg://fuchsia.com/dhcpd#meta/dhcpd.cm",
},
{
name: "fatfs-mounter",
url: "fuchsia-pkg://fuchsia.com/fuchsia-fatfs#meta/fatfs-mounter.cm",
},
{
name: "pkg-local-mirror",
url: "fuchsia-pkg://fuchsia.com/pkg-local-mirror#meta/component.cm",
},
],
capabilities: [
{
storage: "data",
from: "parent",
subdir: "persistent",
backing_dir: "minfs",
},
{
storage: "cache",
from: "parent",
subdir: "cache",
backing_dir: "minfs",
},
{
storage: "tmp",
from: "parent",
backing_dir: "tmp",
},
{
protocol: [
"fuchsia.appmgr.Startup",
"fuchsia.sessionmanager.Startup",
],
},
],
offer: [
{
protocol: "fuchsia.devicesettings.DeviceSettingsManager",
from: "#device_settings",
to: [ "#appmgr" ],
},
{
storage: "data",
from: "self",
to: [ "#device_settings" ],
},
{
protocol: "fuchsia.logger.LogSink",
from: "parent",
to: [ "#device_settings" ],
},
{
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.power.BatteryManager",
"fuchsia.power.test.BatterySimulator",
],
from: "#battery_manager",
to: [ "#appmgr" ],
},
{
protocol: "fuchsia.hardware.serial.NewDeviceProxy",
from: "#debug_serial",
to: [ "#appmgr" ],
},
{
protocol: [
"fuchsia.fat.Admin",
"fuchsia.fat.Query",
],
from: "#fatfs-mounter",
to: [ "#appmgr", "#pkg-local-mirror" ],
},
{
protocol: [
"fuchsia.pkg.LocalMirror",
],
from: "#pkg-local-mirror",
to: [ "#appmgr" ],
},
{
directory: "fatfs",
from: "#fatfs-mounter",
to: [ "#appmgr" ],
},
{
protocol: [ "fuchsia.pkg.FontResolver" ],
from: "#appmgr",
to: [ "#font_provider" ],
dependency: "weak_for_migration",
},
{
protocol: "fuchsia.systemmetrics.test.SystemMetricsLogger",
from: "#system-metrics-logger",
to: [ "#appmgr" ],
},
{
protocol: "fuchsia.thermal.test.TemperatureLogger",
from: "#temperature-logger",
to: [ "#appmgr" ],
},
{
protocol: [ "fuchsia.cobalt.LoggerFactory" ],
from: "#appmgr",
to: [
"#last_reboot",
"#sampler",
],
dependency: "weak_for_migration",
},
{
protocol: "fuchsia.pkg.PackageResolver",
from: "#appmgr",
to: [ "#universe-resolver" ],
},
{
directory: "pkgfs",
from: "parent",
to: [ "#pkg-cache" ],
},
{
directory: "blob",
from: "parent",
to: [ "#pkg-cache" ],
},
{
protocol: [
"fuchsia.cobalt.LoggerFactory",
"fuchsia.tracing.provider.Registry",
],
from: "#appmgr",
to: [ "#pkg-cache" ],
dependency: "weak_for_migration",
},
{
protocol: "fuchsia.update.CommitStatusProvider",
from: "#system-update-committer",
to: [ "#pkg-cache" ],
},
{
protocol: [
"fuchsia.pkg.PackageCache",
"fuchsia.space.Manager",
],
from: "#pkg-cache",
to: [ "#appmgr" ],
},
// 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.manager.DriverHostDevelopment",
"fuchsia.device.NameProvider",
"fuchsia.driver.registrar.DriverRegistrar",
"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.metrics.MetricEventLoggerFactory" ],
from: "#appmgr",
to: [ "#log-stats" ],
},
{
protocol: [ "fuchsia.hardware.power.statecontrol.RebootMethodsWatcherRegister" ],
from: "parent",
to: [
"#last_reboot",
"#sampler",
],
},
{
protocol: [ "fuchsia.diagnostics.FeedbackArchiveAccessor" ],
from: "parent",
to: [ "#detect" ],
},
{
protocol: [ "fuchsia.logger.LogSink" ],
from: "parent",
to: [
"#activity",
"#appmgr",
"#battery_manager",
"#debug_serial",
"#detect",
"#dhcpd",
"#fatfs-mounter",
"#font_provider",
"#last_reboot",
"#log-stats",
"#pkg-cache",
"#pkg-local-mirror",
"#remote-control",
"#sampler",
"#session-manager",
"#system-metrics-logger",
"#system-update-committer",
"#temperature-logger",
"#test_manager",
"#universe-resolver",
],
},
{
protocol: [
"fuchsia.hardware.power.statecontrol.Admin",
"fuchsia.paver.Paver",
"fuchsia.update.verify.BlobfsVerifier",
],
from: "parent",
to: [ "#system-update-committer" ],
},
{
protocol: [ "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.process.Launcher",
"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.hwinfo.Device",
"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",
"#last_reboot",
],
dependency: "weak_for_migration",
},
{
protocol: "fuchsia.feedback.CrashReportingProductRegister",
from: "#appmgr",
to: [ "#detect" ],
},
{
protocol: "fuchsia.fonts.Provider",
from: "#font_provider",
to: [ "#appmgr" ],
},
{
protocol: "fuchsia.kernel.Stats",
from: "parent",
to: [ "#system-metrics-logger" ],
},
{
protocol: "fuchsia.tracing.provider.Registry",
from: "#appmgr",
to: [ "#system-metrics-logger" ],
dependency: "weak_for_migration",
},
{
directory: "dev",
from: "parent",
as: "dev-power",
to: [ "#battery_manager" ],
subdir: "class/power",
},
{
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: "dev",
from: "parent",
as: "dev-class-block",
to: [ "#fatfs-mounter" ],
subdir: "class/block",
},
{
directory: "config-data",
from: "parent",
to: [ "#temperature-logger" ],
subdir: "temperature-logger",
},
{
directory: "config-data",
from: "parent",
to: [ "#detect" ],
subdir: "triage-detect",
},
{
directory: "config-data",
from: "parent",
to: [ "#log-stats" ],
subdir: "log-stats",
},
{
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",
"#last_reboot",
],
},
{
directory: "dev",
from: "parent",
to: [
"#appmgr",
"#fatfs-mounter",
],
},
{
directory: "dev",
from: "parent",
as: "dev_class_block",
to: [ "#fatfs-mounter" ],
subdir: "class/block",
},
{
directory: "durable",
from: "parent",
to: [ "#appmgr" ],
},
{
directory: "factory",
from: "parent",
to: [ "#appmgr" ],
},
{
directory: "minfs",
from: "parent",
to: [ "#appmgr" ],
},
{
directory: "pkgfs",
from: "parent",
to: [ "#appmgr" ],
rights: [ "rx*" ],
},
{
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",
],
},
{
directory: "config-data",
from: "parent",
to: [ "#session-manager" ],
subdir: "session_manager",
},
{
directory: "dev",
from: "parent",
as: "dev-input-report",
to: [ "#session-manager" ],
subdir: "class/input-report",
},
{
protocol: [
"fuchsia.cobalt.LoggerFactory",
"fuchsia.sys.Launcher",
"fuchsia.sys2.Realm",
"fuchsia.ui.focus.FocusChainListenerRegistry",
"fuchsia.ui.input.ImeService",
"fuchsia.ui.input2.Keyboard",
"fuchsia.ui.input3.Keyboard",
"fuchsia.ui.lifecycle.LifecycleController",
"fuchsia.ui.scenic.Scenic",
"fuchsia.ui.shortcut.Manager",
"fuchsia.ui.views.ViewRefInstalled",
],
from: "#appmgr",
to: [ "#session-manager" ],
},
{
protocol: "fuchsia.input.injection.InputDeviceRegistry",
from: "#session-manager",
to: [ "#appmgr" ],
dependency: "weak_for_migration",
},
{
protocol: [
"fuchsia.net.NameLookup",
"fuchsia.posix.socket.Provider",
"fuchsia.stash.SecureStore",
],
from: "#appmgr",
to: [ "#dhcpd" ],
},
{
directory: "config-data",
from: "parent",
to: [ "#dhcpd" ],
subdir: "dhcpd",
},
{
protocol: "fuchsia.net.dhcp.Server",
from: "#dhcpd",
to: [ "#appmgr" ],
dependency: "weak_for_migration",
},
{
storage: "data",
from: "self",
to: [
"#dhcpd",
"#last_reboot",
],
},
{
protocol: "fuchsia.feedback.LastRebootInfoProvider",
from: "#last_reboot",
to: [ "#appmgr" ],
},
{
storage: "tmp",
from: "self",
to: [ "#last_reboot" ],
},
{
storage: "cache",
from: "self",
to: [ "#last_reboot" ],
},
],
expose: [
// Non-zircon services for svchost
{
protocol: [
"fuchsia.amber.Control",
"fuchsia.cobalt.LoggerFactory",
"fuchsia.exception.Handler",
"fuchsia.feedback.CrashReporter",
"fuchsia.hwinfo.Device",
"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.sessionmanager.Startup" ],
from: "#session-manager",
},
{
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",
},
],
},
{
name: "session-manager-env",
extends: "realm",
resolvers: [
{
resolver: "universe-resolver",
scheme: "fuchsia-pkg",
from: "#universe-resolver",
},
],
},
],
}