blob: da26a910b5e54504213c6a68d8e04b8d164fe5b7 [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: "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: "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" ],
from: "parent",
to: [ "#debug_serial" ],
},
{
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.RootJob",
"/svc/fuchsia.boot.RootJobForInspect",
"/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.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" ],
},
{
protocol: [ "/svc/fuchsia.logger.LogSink" ],
from: "#archivist",
to: [
"#debug_serial",
"#font_provider",
"#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",
},
],
}