blob: 5b3cbb40384b447b529d977be7c3c3420ea8e186 [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",
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(fxb/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",
},
],
offer: [
{
protocol: [ "/svc/fuchsia.logger.LogSink" ],
from: "#appmgr",
to: [ "#debug_serial" ],
dependency: "weak_for_migration",
},
{
protocol: [ "/svc/fuchsia.boot.RootResource" ],
from: "realm",
to: [ "#debug_serial" ],
},
{
protocol: "/svc/fuchsia.hardware.serial.NewDeviceProxy",
from: "#debug_serial",
to: [ "#appmgr" ],
},
{
protocol: [
"/svc/fuchsia.logger.LogSink",
"/svc/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.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.sys2.EventSource",
"/svc/fuchsia.sysinfo.SysInfo",
"/svc/fuchsia.thermal.Controller",
"/svc/fuchsia.time.Maintenance",
"/svc/fuchsia.virtualconsole.SessionManager",
],
from: "realm",
to: [ "#appmgr" ],
},
{
protocol: [ "/svc/fuchsia.boot.WriteOnlyLog" ],
from: "realm",
to: [
"#appmgr",
"#test_manager",
],
},
{
protocol: [ "/svc/fuchsia.logger.LogSink" ],
from: "#appmgr",
to: [ "#test_manager" ],
dependency: "weak_for_migration",
},
{
protocol: [
"/svc/fuchsia.sys2.BlockingEventSource",
"/svc/fuchsia.sys2.EventSource",
],
from: "realm",
to: [ "#test_manager" ],
},
{
protocol: [
"/svc/fuchsia.logger.LogSink",
"/svc/fuchsia.net.stack.Stack",
"/svc/fuchsia.overnet.Overnet",
"/svc/fuchsia.overnet.ServicePublisher",
"/svc/fuchsia.sys.Launcher",
"/svc/fuchsia.test.manager.Harness",
],
from: "#appmgr",
to: [ "#remote-control" ],
dependency: "weak_for_migration",
},
{
protocol: [
"/svc/fuchsia.device.manager.Administrator",
"/svc/fuchsia.device.NameProvider",
],
from: "realm",
to: [ "#remote-control" ],
},
{
directory: "/config/data",
from: "realm",
to: [ "#font_provider" ],
subdir: "fonts",
},
{
directory: "/config/data",
from: "realm",
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: "realm",
to: [ "#appmgr" ],
},
{
directory: "/dev",
from: "realm",
to: [ "#appmgr" ],
},
{
directory: "/minfs",
from: "realm",
to: [ "#appmgr" ],
},
{
directory: "/pkgfs",
from: "realm",
to: [ "#appmgr" ],
},
{
directory: "/system",
from: "realm",
to: [ "#appmgr" ],
},
{
directory: "/blob",
from: "realm",
to: [ "#appmgr" ],
},
{
directory: "/volume",
from: "realm",
to: [ "#appmgr" ],
},
{
directory: "/install",
from: "realm",
to: [ "#appmgr" ],
},
{
directory: "/tmp",
from: "realm",
to: [ "#appmgr" ],
},
{
// Note: this is the v2 root hub. The hub in the `expose` section below
// is the v1 root hub.
directory: "/hub",
from: "realm",
to: [ "#remote-control" ],
},
// Offer core events to appmgr for routing to the archivist
// TODO: offer directly to archivist when it's a v2 component
{
event: [
"running",
"started",
"stopped",
],
from: "realm",
to: [ "#appmgr" ],
},
{
event: "capability_ready",
from: "realm",
to: [ "#appmgr" ],
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.logger.Log",
"/svc/fuchsia.logger.LogSink",
"/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.tracing.controller.Controller",
"/svc/fuchsia.tracing.provider.Registry",
"/svc/fuchsia.wlan.service.Wlan",
],
from: "#appmgr",
},
// device_manager needs the hub for the serial console
{
directory: "/hub",
from: "#appmgr",
},
],
}