blob: 896f8cf5b32a40ff052292fadde1d98bc6ab711a [file] [log] [blame]
// Copyright 2021 The Fuchsia Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
// Add appmgr to core
{
children: [
{
name: "appmgr",
url: "fuchsia-pkg://fuchsia.com/appmgr#meta/appmgr.cm",
on_terminate: "reboot",
},
],
capabilities: [
// These protocols are services from the v1 component runtime being made available to the v2
// component runtime. They are defined here in `core` rather than `appmgr` because they
// get proxied from the `svc_from_sys` directory. (See the accompanying comment in
// `core.cml`.)
//
// The presence of these protocols creates a dependency cycle between v1 and v2. For this
// reason, when you offer these protocol you typically mark them `weak_for_migration` to
// break the cycle. Be aware that when you do this, you can expect the target component to
// lose access to the protocol at some point when the system is shut down.
{
protocol: [
"fuchsia.accessibility.semantics.SemanticsManager",
"fuchsia.bluetooth.snoop.Snoop",
"fuchsia.factory.AlphaFactoryStoreProvider",
"fuchsia.factory.CastCredentialsFactoryStoreProvider",
"fuchsia.factory.MiscFactoryStoreProvider",
"fuchsia.factory.WeaveFactoryStoreProvider",
"fuchsia.feedback.ComponentDataRegister",
"fuchsia.feedback.CrashReporter",
"fuchsia.feedback.CrashReportingProductRegister",
"fuchsia.feedback.DeviceIdProvider",
"fuchsia.feedback.internal.CrashReportsDirectoryMigrator",
"fuchsia.feedback.internal.FeedbackDataDirectoryMigrator",
"fuchsia.hwinfo.Device",
"fuchsia.intl.PropertyProvider",
"fuchsia.intl.TimeZones",
"fuchsia.lowpan.device.Lookup",
"fuchsia.media.Audio",
"fuchsia.media.AudioCore",
"fuchsia.media.AudioDeviceEnumerator",
"fuchsia.media.ProfileProvider",
"fuchsia.media.SessionAudioConsumerFactory",
"fuchsia.media.sessions2.Discovery",
"fuchsia.media.sessions2.Publisher",
"fuchsia.media.UsageReporter",
"fuchsia.power.manager.DriverManagerRegistration",
"fuchsia.process.Resolver",
"fuchsia.recovery.policy.Device",
"fuchsia.settings.Audio",
"fuchsia.settings.Input",
"fuchsia.settings.Keyboard",
"fuchsia.settings.Privacy",
"fuchsia.stash.SecureStore",
"fuchsia.storage.ext4.Server",
"fuchsia.sys.Environment",
"fuchsia.sys.internal.CrashIntrospect",
"fuchsia.sys.Launcher",
"fuchsia.sys.Loader",
// TODO(fxbug.dev/93338): delete fuchsia.tee.* below when tee_manager migrated to CFv2
"fuchsia.tee.Application.808032e0-fd9e-4e6f-8896-544735c98480",
"fuchsia.tee.DeviceInfo",
"fuchsia.testing.sl4f.FacadeProvider",
"fuchsia.ui.annotation.Registry",
"fuchsia.ui.composition.Allocator",
"fuchsia.ui.composition.Flatland",
"fuchsia.ui.composition.FlatlandDisplay",
"fuchsia.ui.composition.ScreenCapture",
"fuchsia.ui.display.internal.DisplayPower",
"fuchsia.ui.focus.FocusChainListenerRegistry",
"fuchsia.ui.input.accessibility.PointerEventRegistry",
"fuchsia.ui.input.PointerCaptureListenerRegistry",
"fuchsia.ui.lifecycle.LifecycleController",
"fuchsia.ui.pointerinjector.Registry",
"fuchsia.ui.policy.DeviceListenerRegistry",
"fuchsia.ui.policy.Presenter",
"fuchsia.ui.scenic.Scenic",
"fuchsia.ui.views.ViewRefInstalled",
"fuchsia.update.channelcontrol.ChannelControl",
"fuchsia.weave.FactoryDataManager",
"fuchsia.weave.Signer",
],
},
],
// Protocols used from a child are routed to the v1 sys realm.
use: [
{
protocol: [
"fuchsia.ui.input.ImeService",
"fuchsia.ui.input3.Keyboard",
"fuchsia.ui.input3.KeyEventInjector",
"fuchsia.ui.keyboard.focus.Controller",
],
from: "#text_manager",
},
{
protocol: [
"fuchsia.boot.Arguments",
"fuchsia.boot.FactoryItems",
"fuchsia.boot.Items",
"fuchsia.boot.ReadOnlyLog",
"fuchsia.boot.RootResource",
"fuchsia.boot.WriteOnlyLog",
"fuchsia.device.manager.Administrator",
"fuchsia.device.manager.DebugDumper",
"fuchsia.device.NameProvider",
"fuchsia.diagnostics.ArchiveAccessor",
"fuchsia.diagnostics.FeedbackArchiveAccessor",
"fuchsia.diagnostics.LegacyMetricsArchiveAccessor",
"fuchsia.driver.development.DriverDevelopment",
"fuchsia.driver.registrar.DriverRegistrar",
"fuchsia.fshost.BlockWatcher",
"fuchsia.hardware.power.statecontrol.Admin",
"fuchsia.hardware.power.statecontrol.RebootMethodsWatcherRegister",
"fuchsia.hardware.pty.Device",
"fuchsia.hardware.usb.DeviceWatcher",
"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.PowerResource",
"fuchsia.kernel.RootJob",
"fuchsia.kernel.RootJobForInspect",
"fuchsia.kernel.SmcResource",
"fuchsia.kernel.Stats",
"fuchsia.kernel.VmexResource",
"fuchsia.logger.Log",
"fuchsia.paver.Paver",
"fuchsia.power.clientlevel.Connector",
"fuchsia.power.profile.Watcher",
"fuchsia.power.systemmode.ClientConfigurator",
"fuchsia.power.systemmode.Requester",
"fuchsia.process.Launcher",
"fuchsia.scheduler.ProfileProvider",
"fuchsia.sys2.CrashIntrospect",
"fuchsia.sysinfo.SysInfo",
"fuchsia.thermal.ClientStateConnector",
"fuchsia.time.Maintenance",
"fuchsia.tpm.cr50.Cr50",
"fuchsia.tracing.kernel.Controller",
"fuchsia.tracing.kernel.Reader",
"fuchsia.vboot.FirmwareParam",
"fuchsia.virtualconsole.SessionManager",
],
from: "parent",
},
{
protocol: "fuchsia.devicesettings.DeviceSettingsManager",
from: "#device_settings",
},
{
protocol: "fuchsia.sysmem.Allocator",
from: "#sysmem_connector",
},
{
protocol: [
"fuchsia.net.http.Loader",
"fuchsia.net.interfaces.admin.Installer",
"fuchsia.net.interfaces.State",
"fuchsia.net.name.Lookup",
"fuchsia.net.routes.State",
"fuchsia.net.stack.Stack",
"fuchsia.netstack.Netstack",
"fuchsia.posix.socket.Provider",
],
from: "#network",
},
{
protocol: "fuchsia.media.sounds.Player",
from: "#soundplayer",
},
{
protocol: "fuchsia.fonts.Provider",
from: "#font_provider",
},
{
protocol: [
"fuchsia.hwinfo.Board",
"fuchsia.hwinfo.Device",
"fuchsia.hwinfo.Product",
],
from: "#hwinfo",
},
{
protocol: "fuchsia.update.CommitStatusProvider",
from: "#system-update-committer",
},
{
protocol: "fuchsia.developer.remotecontrol.RemoteControl",
from: "#remote-control",
},
// TODO(https://fxbug.dev/97617): If there's no v1 dependencies these should not be routed here.
{
protocol: [
"fuchsia.overnet.MeshController",
"fuchsia.overnet.Overnet",
"fuchsia.overnet.ServiceConsumer",
"fuchsia.overnet.ServicePublisher",
],
from: "#overnetstack",
},
{
protocol: "fuchsia.starnix.developer.Manager",
from: "#starnix_manager",
},
{
protocol: "fuchsia.virtualization.LinuxManager",
from: "#linux_runner",
dependency: "weak_for_migration",
},
{
protocol: "fuchsia.hardware.serial.NewDeviceProxy",
from: "#debug_serial",
},
{
protocol: "fuchsia.systemmetrics.test.SystemMetricsLogger",
from: "#system-metrics-logger",
},
{
protocol: "fuchsia.thermal.test.TemperatureLogger",
from: "#temperature-logger",
},
{
protocol: [
"fuchsia.pkg.PackageCache",
"fuchsia.space.Manager",
],
from: "parent",
},
{
protocol: [
"fuchsia.pkg.PackageResolver",
"fuchsia.pkg.PackageResolverAdmin",
"fuchsia.pkg.RepositoryManager",
"fuchsia.pkg.rewrite.Engine",
],
from: "#pkg-resolver",
},
// TODO(https://fxbug.dev/90433): prune these once MDNS is a CFv2 component.
{
protocol: [
"fuchsia.net.mdns.HostNameResolver",
"fuchsia.net.mdns.HostNameSubscriber",
"fuchsia.net.mdns.ProxyHostPublisher",
"fuchsia.net.mdns.Publisher",
"fuchsia.net.mdns.Resolver",
"fuchsia.net.mdns.ServiceInstancePublisher",
"fuchsia.net.mdns.ServiceInstanceResolver",
"fuchsia.net.mdns.ServiceSubscriber2",
"fuchsia.net.mdns.Subscriber",
],
from: "#mdns",
},
{
protocol: "fuchsia.stash.Store",
from: "#stash",
},
{
protocol: "fuchsia.stash.Store2",
from: "#stash2",
},
{
protocol: "fuchsia.stash.SecureStore",
from: "#stash_secure",
},
{
protocol: "fuchsia.vulkan.loader.Loader",
from: "#vulkan_loader",
},
// Used by Bluetooth shell tools via appmgr.
{
protocol: [
"fuchsia.bluetooth.bredr.Profile",
"fuchsia.bluetooth.gatt.Server",
"fuchsia.bluetooth.le.Central",
"fuchsia.bluetooth.le.Peripheral",
"fuchsia.bluetooth.sys.Access",
"fuchsia.bluetooth.sys.Configuration",
"fuchsia.bluetooth.sys.HostWatcher",
"fuchsia.bluetooth.sys.Pairing",
],
from: "#bluetooth-core",
},
{
protocol: [
"fuchsia.ui.activity.control.Control",
"fuchsia.ui.activity.Provider",
"fuchsia.ui.activity.Tracker",
],
from: "#activity",
},
{
protocol: "fuchsia.ui.brightness.Control",
from: "#brightness_manager",
},
{
protocol: [
"fuchsia.cobalt.LoggerFactory",
"fuchsia.cobalt.SystemDataUpdater",
"fuchsia.metrics.MetricEventLoggerFactory",
],
from: "#cobalt",
},
{
protocol: "fuchsia.diagnostics.persist.DataPersistence-wlan",
from: "#diagnostics-persistence",
},
{
protocol: "fuchsia.ssh.AuthorizedKeys",
from: "#ssh-key-manager",
},
{
protocol: [
"fuchsia.location.namedplace.RegulatoryRegionConfigurator",
"fuchsia.location.namedplace.RegulatoryRegionWatcher",
],
from: "#regulatory_region",
},
{
protocol: [
"fuchsia.element.GraphicalPresenter",
"fuchsia.session.Launcher",
],
from: "#session-manager",
dependency: "weak_for_migration",
},
{
protocol: [
"fuchsia.exception.Handler",
"fuchsia.exception.ProcessLimbo",
],
from: "#exceptions",
},
{
protocol: [
"fuchsia.feedback.ComponentDataRegister",
"fuchsia.feedback.CrashReporter",
"fuchsia.feedback.CrashReportingProductRegister",
"fuchsia.feedback.DataProvider",
"fuchsia.feedback.DataProviderController",
"fuchsia.feedback.LastRebootInfoProvider",
],
from: "#feedback",
},
],
offer: [
{
protocol: [
"fuchsia.boot.WriteOnlyLog",
"fuchsia.hardware.power.statecontrol.Admin",
"fuchsia.logger.LogSink",
"fuchsia.process.Launcher",
],
from: "parent",
to: "#appmgr",
},
{
directory: [
"blob",
"boot",
"dev",
"durable",
"factory",
"hub",
"minfs",
"mnt",
"system",
"tmp",
],
from: "parent",
to: "#appmgr",
},
{
directory: "pkgfs",
from: "parent",
to: "#appmgr",
rights: [ "rx*" ],
},
{
protocol: "fuchsia.factory.MiscFactoryStoreProvider",
from: "self",
to: [ "#hwinfo" ],
dependency: "weak_for_migration",
},
{
storage: "data",
from: "self",
to: "#device_settings",
},
{
protocol: [
"fuchsia.ui.composition.Allocator",
"fuchsia.ui.composition.Flatland",
"fuchsia.ui.scenic.Scenic",
],
from: "self",
to: "#starnix_manager",
dependency: "weak_for_migration",
},
{
protocol: [
"fuchsia.hwinfo.Device",
"fuchsia.sys.Launcher",
],
from: "self",
to: "#remote-control",
dependency: "weak_for_migration",
},
{
protocol: [ "fuchsia.sys.internal.CrashIntrospect" ],
from: "self",
to: "#exceptions",
dependency: "weak_for_migration",
},
{
protocol: "fuchsia.ui.display.internal.DisplayPower",
from: "self",
to: "#brightness_manager",
dependency: "weak",
},
{
protocol: [
"fuchsia.feedback.CrashReporter",
"fuchsia.intl.PropertyProvider",
"fuchsia.intl.TimeZones",
"fuchsia.media.AudioDeviceEnumerator",
"fuchsia.media.ProfileProvider",
"fuchsia.sys.Launcher",
"fuchsia.ui.composition.Allocator",
"fuchsia.ui.composition.Flatland",
"fuchsia.ui.composition.FlatlandDisplay",
"fuchsia.ui.composition.ScreenCapture",
"fuchsia.ui.display.internal.DisplayPower",
"fuchsia.ui.focus.FocusChainListenerRegistry",
"fuchsia.ui.lifecycle.LifecycleController",
"fuchsia.ui.pointerinjector.Registry",
"fuchsia.ui.policy.Presenter",
"fuchsia.ui.scenic.Scenic",
"fuchsia.ui.views.ViewRefInstalled",
],
from: "self",
to: "#session-manager",
},
{
protocol: [ "fuchsia.media.Audio" ],
from: "self",
to: [
"#session-manager",
"#soundplayer",
],
dependency: "weak_for_migration",
},
{
protocol: [ "fuchsia.bluetooth.snoop.Snoop" ],
from: "self",
to: "#bluetooth-core",
dependency: "weak_for_migration",
},
{
protocol: [ "fuchsia.settings.Privacy" ],
from: "self",
to: "#cobalt",
dependency: "weak_for_migration",
},
{
protocol: [
"fuchsia.feedback.DeviceIdProvider",
"fuchsia.intl.PropertyProvider",
"fuchsia.settings.Privacy",
"fuchsia.ui.scenic.Scenic",
"fuchsia.update.channelcontrol.ChannelControl",
],
from: "self",
to: "#feedback",
dependency: "weak_for_migration",
},
],
expose: [
// Non-zircon services for svchost
{
protocol: [
"fuchsia.feedback.CrashReporter",
"fuchsia.hwinfo.Device",
"fuchsia.process.Resolver",
"fuchsia.settings.Input",
"fuchsia.sys.Environment",
"fuchsia.sys.Launcher",
"fuchsia.sys.Loader",
],
from: "self",
},
{
protocol: [
"fuchsia.appmgr.Startup",
"fuchsia.sys.internal.ComponentEventProvider",
"fuchsia.sys.internal.LogConnector",
],
from: "#appmgr",
},
{
directory: "hub-legacy",
from: "#appmgr",
},
{
protocol: [ "fuchsia.virtualization.LinuxManager" ],
from: "#linux_runner",
},
],
}