| // 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.SessionAudioConsumerFactory", |
| "fuchsia.media.sessions2.Discovery", |
| "fuchsia.media.sessions2.Publisher", |
| "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.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.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.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", |
| }, |
| ], |
| } |