| // Copyright 2022 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 sshd-host to core |
| // |
| // TODO(https://fxbug.dev/42080863): Remove unused capabilities once shell tools run outside the sshd realm. |
| { |
| children: [ |
| { |
| name: "sshd-host", |
| url: "fuchsia-pkg://fuchsia.com/sshd-host#meta/sshd-host.cm", |
| startup: "eager", |
| }, |
| ], |
| offer: [ |
| // Needed to configure sshd-host. |
| { |
| directory: "config-data", |
| from: "parent", |
| to: "#sshd-host", |
| subdir: "sshd-host", |
| }, |
| |
| // Needed to operate sshd-host |
| { |
| protocol: [ |
| "fuchsia.boot.Items", |
| "fuchsia.logger.LogSink", |
| "fuchsia.process.Launcher", |
| ], |
| from: "parent", |
| to: "#sshd-host", |
| }, |
| { |
| protocol: "fuchsia.posix.socket.Provider", |
| from: "#network", |
| to: "#sshd-host", |
| }, |
| |
| // Used by both sshd-host and in shell namespace |
| { |
| directory: "data", |
| from: "parent", |
| to: "#sshd-host", |
| }, |
| |
| // Directories in shell namespace |
| { |
| directory: [ |
| "bin", |
| "blob", |
| "boot", |
| "build-info", |
| "dev-topological", |
| "pkgfs", |
| "root-ssl-certificates", |
| "system", |
| "tmp", |
| ], |
| from: "parent", |
| to: "#sshd-host", |
| }, |
| { |
| directory: "mnt", |
| from: "#fs_realm", |
| to: "#sshd-host", |
| source_availability: "unknown", |
| availability: "optional", |
| }, |
| |
| // Protocols in shell namespace. |
| { |
| protocol: [ |
| "fuchsia.boot.Arguments", |
| "fuchsia.boot.FactoryItems", |
| "fuchsia.boot.Items", |
| "fuchsia.boot.ReadOnlyLog", |
| "fuchsia.boot.WriteOnlyLog", |
| "fuchsia.device.NameProvider", |
| "fuchsia.diagnostics.ArchiveAccessor", |
| "fuchsia.diagnostics.FeedbackArchiveAccessor", |
| "fuchsia.diagnostics.host.ArchiveAccessor", |
| "fuchsia.diagnostics.LegacyMetricsArchiveAccessor", |
| "fuchsia.diagnostics.LogSettings", |
| "fuchsia.diagnostics.LoWPANArchiveAccessor", |
| "fuchsia.driver.development.Manager", |
| "fuchsia.driver.registrar.DriverRegistrar", |
| "fuchsia.fshost.BlockWatcher", |
| "fuchsia.hardware.power.statecontrol.Admin", |
| "fuchsia.hardware.power.statecontrol.RebootMethodsWatcherRegister", |
| "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.ProfileResource", |
| "fuchsia.kernel.RootJob", |
| "fuchsia.kernel.RootJobForInspect", |
| "fuchsia.kernel.SmcResource", |
| "fuchsia.kernel.Stats", |
| "fuchsia.kernel.VmexResource", |
| "fuchsia.logger.Log", |
| "fuchsia.paver.Paver", |
| "fuchsia.pkg.PackageCache", |
| "fuchsia.power.clientlevel.Connector", |
| "fuchsia.power.profile.Watcher", |
| "fuchsia.power.systemmode.ClientConfigurator", |
| "fuchsia.power.systemmode.Requester", |
| "fuchsia.process.Launcher", |
| "fuchsia.scheduler.RoleManager", |
| "fuchsia.space.Manager", |
| "fuchsia.sys2.CrashIntrospect", |
| "fuchsia.sysinfo.SysInfo", |
| "fuchsia.thermal.ClientStateConnector", |
| "fuchsia.time.Maintenance", |
| "fuchsia.tracing.kernel.Controller", |
| "fuchsia.tracing.kernel.Reader", |
| ], |
| from: "parent", |
| to: "#sshd-host", |
| }, |
| { |
| protocol: [ |
| "fuchsia.hardware.pty.Device", |
| "fuchsia.tpm.cr50.Cr50", |
| "fuchsia.virtualconsole.SessionManager", |
| ], |
| from: "parent", |
| to: "#sshd-host", |
| availability: "optional", |
| }, |
| |
| // SWD |
| { |
| protocol: "fuchsia.update.CommitStatusProvider", |
| from: "#system-update", |
| to: "#sshd-host", |
| }, |
| { |
| protocol: [ |
| "fuchsia.pkg.PackageResolver", |
| "fuchsia.pkg.RepositoryManager", |
| "fuchsia.pkg.rewrite.Engine", |
| ], |
| from: "#pkg-resolver", |
| to: "#sshd-host", |
| }, |
| |
| // Used by component + iquery shell tool, in use for bringup. |
| { |
| protocol: [ |
| "fuchsia.sys2.LifecycleController.root", |
| "fuchsia.sys2.RealmExplorer.root", |
| "fuchsia.sys2.RealmQuery.root", |
| "fuchsia.sys2.RouteValidator.root", |
| ], |
| from: "parent", |
| to: "#sshd-host", |
| }, |
| |
| // Used by mdns-util. |
| { |
| 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", |
| to: "#sshd-host", |
| }, |
| |
| // Used by Bluetooth shell tools. |
| { |
| protocol: [ |
| "fuchsia.bluetooth.bredr.Profile", |
| "fuchsia.bluetooth.gatt.Server", |
| "fuchsia.bluetooth.gatt2.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", |
| to: "#sshd-host", |
| source_availability: "unknown", |
| }, |
| |
| // Used by `session_control` |
| // TODO(https://fxbug.dev/42153176): Remove once session_control is deleted |
| { |
| protocol: [ |
| "fuchsia.element.GraphicalPresenter", |
| "fuchsia.session.Launcher", |
| ], |
| from: "#session-manager", |
| to: "#sshd-host", |
| source_availability: "unknown", |
| }, |
| |
| // Others |
| { |
| protocol: [ |
| "fuchsia.sysmem.Allocator", |
| "fuchsia.sysmem2.Allocator", |
| ], |
| from: "parent", |
| to: "#sshd-host", |
| }, |
| { |
| 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.posix.socket.Provider", |
| ], |
| from: "#network", |
| to: "#sshd-host", |
| }, |
| { |
| protocol: "fuchsia.fonts.Provider", |
| from: "#font_provider", |
| to: "#sshd-host", |
| }, |
| { |
| protocol: [ |
| "fuchsia.hwinfo.Board", |
| "fuchsia.hwinfo.Device", |
| "fuchsia.hwinfo.Product", |
| ], |
| from: "#hwinfo", |
| to: "#sshd-host", |
| }, |
| { |
| protocol: [ |
| "fuchsia.ui.activity.control.Control", |
| "fuchsia.ui.activity.Provider", |
| ], |
| from: "#activity", |
| to: "#sshd-host", |
| }, |
| { |
| protocol: "fuchsia.ui.brightness.Control", |
| from: "#brightness_manager", |
| to: "#sshd-host", |
| }, |
| { |
| protocol: [ |
| "fuchsia.cobalt.SystemDataUpdater", |
| "fuchsia.metrics.MetricEventLoggerFactory", |
| ], |
| from: "#cobalt", |
| to: "#sshd-host", |
| }, |
| { |
| protocol: "fuchsia.ssh.AuthorizedKeys", |
| from: "#ssh-key-manager", |
| to: "#sshd-host", |
| }, |
| { |
| protocol: [ |
| "fuchsia.location.namedplace.RegulatoryRegionConfigurator", |
| "fuchsia.location.namedplace.RegulatoryRegionWatcher", |
| ], |
| from: "#regulatory_region", |
| to: "#sshd-host", |
| }, |
| { |
| protocol: "fuchsia.process.Resolver", |
| from: "#process_resolver", |
| to: "#sshd-host", |
| }, |
| { |
| protocol: "fuchsia.developer.remotecontrol.connector.Connector", |
| from: "#remote-control", |
| to: "#sshd-host", |
| }, |
| { |
| protocol: "fuchsia.stash.Store", |
| from: "#stash", |
| to: "#sshd-host", |
| }, |
| { |
| protocol: "fuchsia.stash.Store2", |
| from: "#stash2", |
| to: "#sshd-host", |
| }, |
| { |
| protocol: "fuchsia.stash.SecureStore", |
| from: "#stash_secure", |
| to: "#sshd-host", |
| }, |
| { |
| protocol: "fuchsia.vulkan.loader.Loader", |
| from: "#vulkan_loader", |
| to: "#sshd-host", |
| }, |
| |
| // |
| // Protocols below are optional and not available on all builds. |
| // |
| |
| // LoWPAN |
| { |
| protocol: [ |
| "fuchsia.factory.lowpan.FactoryLookup", |
| "fuchsia.factory.lowpan.FactoryRegister", |
| "fuchsia.lowpan.device.CountersConnector", |
| "fuchsia.lowpan.device.DeviceConnector", |
| "fuchsia.lowpan.device.DeviceExtraConnector", |
| "fuchsia.lowpan.device.EnergyScanConnector", |
| "fuchsia.lowpan.DeviceWatcher", |
| "fuchsia.lowpan.driver.Register", |
| "fuchsia.lowpan.experimental.DeviceConnector", |
| "fuchsia.lowpan.experimental.DeviceExtraConnector", |
| "fuchsia.lowpan.experimental.DeviceRouteConnector", |
| "fuchsia.lowpan.experimental.DeviceRouteExtraConnector", |
| "fuchsia.lowpan.experimental.LegacyJoiningConnector", |
| "fuchsia.lowpan.test.DeviceTestConnector", |
| "fuchsia.lowpan.thread.DatasetConnector", |
| "fuchsia.lowpan.thread.FeatureConnector", |
| "fuchsia.lowpan.thread.MeshcopConnector", |
| ], |
| from: "#lowpanservice", |
| to: "#sshd-host", |
| source_availability: "unknown", |
| }, |
| { |
| protocol: "fuchsia.lowpan.bootstrap.Thread", |
| from: "#lowpan-ot-driver", |
| to: "#sshd-host", |
| source_availability: "unknown", |
| }, |
| |
| // Bluetooth |
| { |
| protocol: [ |
| "fuchsia.bluetooth.fastpair.Provider", |
| |
| // TODO(https://fxbug.dev/42088102): Bluetooth owner component should restrict access to Bootstrap API |
| "fuchsia.bluetooth.sys.Bootstrap", |
| ], |
| from: "#bluetooth-core", |
| to: "#sshd-host", |
| source_availability: "unknown", |
| }, |
| { |
| protocol: "fuchsia.bluetooth.rfcomm.test.RfcommTest", |
| from: "#bluetooth-core", |
| to: "#sshd-host", |
| source_availability: "unknown", |
| availability: "optional", |
| }, |
| { |
| protocol: "fuchsia.bluetooth.deviceid.DeviceIdentification", |
| from: "#bt-device-id", |
| to: "#sshd-host", |
| source_availability: "unknown", |
| }, |
| { |
| protocol: [ |
| "fuchsia.bluetooth.avrcp.PeerManager", |
| "fuchsia.bluetooth.avrcp.test.PeerManagerExt", |
| ], |
| from: "#bt-avrcp", |
| to: "#sshd-host", |
| source_availability: "unknown", |
| }, |
| { |
| protocol: "fuchsia.bluetooth.snoop.Snoop", |
| from: "#bt-snoop", |
| to: "#sshd-host", |
| source_availability: "unknown", |
| }, |
| { |
| protocol: "fuchsia.bluetooth.hfp.Hfp", |
| from: "#bt-hfp-audio-gateway", |
| to: "#sshd-host", |
| source_availability: "unknown", |
| }, |
| { |
| protocol: "fuchsia.bluetooth.hfp.test.HfpTest", |
| from: "#bt-hfp-audio-gateway", |
| to: "#sshd-host", |
| source_availability: "unknown", |
| }, |
| { |
| protocol: [ |
| "fuchsia.bluetooth.a2dp.AudioMode", |
| "fuchsia.bluetooth.avdtp.test.PeerManager", |
| "fuchsia.bluetooth.internal.a2dp.Controller", |
| ], |
| from: "#bt-a2dp", |
| to: "#sshd-host", |
| source_availability: "unknown", |
| }, |
| |
| // WLAN |
| { |
| protocol: [ |
| "fuchsia.wlan.policy.AccessPointListener", |
| "fuchsia.wlan.policy.AccessPointProvider", |
| "fuchsia.wlan.policy.ClientListener", |
| "fuchsia.wlan.policy.ClientProvider", |
| "fuchsia.wlan.product.deprecatedclient.DeprecatedClient", |
| "fuchsia.wlan.product.deprecatedconfiguration.DeprecatedConfigurator", |
| ], |
| from: "#wlancfg", |
| to: "#sshd-host", |
| source_availability: "unknown", |
| }, |
| { |
| protocol: "fuchsia.wlan.wlanix.Wlanix", |
| from: "#wlanix", |
| to: "#sshd-host", |
| source_availability: "unknown", |
| }, |
| { |
| protocol: "fuchsia.wlan.device.service.DeviceMonitor", |
| from: "#wlandevicemonitor", |
| to: "#sshd-host", |
| source_availability: "unknown", |
| }, |
| |
| // SWD |
| { |
| protocol: [ |
| "fuchsia.update.channel.Provider", |
| "fuchsia.update.channelcontrol.ChannelControl", |
| "fuchsia.update.config.OptOut", |
| "fuchsia.update.config.OptOutAdmin", |
| "fuchsia.update.Manager", |
| ], |
| from: "#system-update", |
| to: "#sshd-host", |
| availability: "optional", |
| }, |
| { |
| protocol: "fuchsia.update.installer.Installer", |
| from: "#system-update", |
| to: "#sshd-host", |
| }, |
| |
| // Media |
| { |
| protocol: [ |
| "fuchsia.audio.device.ControlCreator", |
| "fuchsia.audio.device.Provider", |
| "fuchsia.audio.device.Registry", |
| ], |
| from: "#audio_device_registry", |
| to: "#sshd-host", |
| source_availability: "unknown", |
| }, |
| { |
| protocol: [ |
| "fuchsia.audio.ffxdaemon.DeviceControl", |
| "fuchsia.audio.ffxdaemon.Player", |
| "fuchsia.audio.ffxdaemon.Recorder", |
| ], |
| from: "#audio_ffx_daemon", |
| to: "#sshd-host", |
| source_availability: "unknown", |
| }, |
| { |
| protocol: [ |
| "fuchsia.media.ActivityReporter", |
| "fuchsia.media.Audio", |
| "fuchsia.media.AudioCore", |
| "fuchsia.media.AudioDeviceEnumerator", |
| "fuchsia.media.UsageGainReporter", |
| "fuchsia.media.UsageReporter", |
| "fuchsia.ultrasound.Factory", |
| ], |
| from: "#audio_core", |
| to: "#sshd-host", |
| source_availability: "unknown", |
| }, |
| { |
| protocol: "fuchsia.media.sounds.Player", |
| from: "#soundplayer", |
| to: "#sshd-host", |
| source_availability: "unknown", |
| }, |
| { |
| protocol: "fuchsia.mediacodec.CodecFactory", |
| from: "#codec_factory", |
| to: "#sshd-host", |
| source_availability: "unknown", |
| }, |
| { |
| protocol: [ |
| "fuchsia.media.sessions2.ActiveSession", |
| "fuchsia.media.sessions2.Discovery", |
| "fuchsia.media.sessions2.Publisher", |
| ], |
| from: "#mediasession", |
| to: "#sshd-host", |
| source_availability: "unknown", |
| }, |
| |
| // Virtualization |
| { |
| protocol: "fuchsia.virtualization.DebianGuestManager", |
| from: "#debian-guest-manager", |
| to: "#sshd-host", |
| source_availability: "unknown", |
| }, |
| { |
| protocol: "fuchsia.virtualization.ZirconGuestManager", |
| from: "#zircon-guest-manager", |
| to: "#sshd-host", |
| source_availability: "unknown", |
| }, |
| { |
| protocol: [ |
| "fuchsia.virtualization.LinuxManager", |
| "fuchsia.virtualization.TerminaGuestManager", |
| ], |
| from: "#termina-guest-manager", |
| to: "#sshd-host", |
| source_availability: "unknown", |
| }, |
| { |
| protocol: "fuchsia.net.virtualization.Control", |
| from: "#network", |
| to: "#sshd-host", |
| source_availability: "unknown", |
| availability: "optional", |
| }, |
| |
| // Cpu performance domain control |
| { |
| service: [ "fuchsia.hardware.cpu.ctrl.Service" ], |
| from: "parent", |
| to: "#sshd-host", |
| }, |
| |
| // Others |
| { |
| protocol: [ |
| "fuchsia.factory.AlphaFactoryStoreProvider", |
| "fuchsia.factory.CastCredentialsFactoryStoreProvider", |
| "fuchsia.factory.MiscFactoryStoreProvider", |
| "fuchsia.factory.PlayReadyFactoryStoreProvider", |
| "fuchsia.factory.WeaveFactoryStoreProvider", |
| "fuchsia.factory.WidevineFactoryStoreProvider", |
| ], |
| from: "#factory_store_providers", |
| to: "#sshd-host", |
| source_availability: "unknown", |
| }, |
| { |
| protocol: "fuchsia.dash.Launcher", |
| from: "#debug-dash-launcher", |
| to: "#sshd-host", |
| source_availability: "unknown", |
| }, |
| { |
| protocol: "fuchsia.camera3.DeviceWatcher", |
| from: "#camera_device_watcher", |
| to: "#sshd-host", |
| source_availability: "unknown", |
| }, |
| { |
| protocol: "fuchsia.recovery.FactoryReset", |
| from: "#factory_reset", |
| to: "#sshd-host", |
| source_availability: "unknown", |
| }, |
| { |
| protocol: [ |
| "fuchsia.feedback.ComponentDataRegister", |
| "fuchsia.feedback.CrashReporter", |
| "fuchsia.feedback.CrashReportingProductRegister", |
| "fuchsia.feedback.DataProvider", |
| "fuchsia.feedback.LastRebootInfoProvider", |
| ], |
| from: "#feedback", |
| to: "#sshd-host", |
| source_availability: "unknown", |
| }, |
| { |
| protocol: [ |
| "fuchsia.exception.Handler", |
| "fuchsia.exception.ProcessLimbo", |
| ], |
| from: "#exceptions", |
| to: "#sshd-host", |
| source_availability: "unknown", |
| }, |
| { |
| protocol: "fuchsia.opencl.loader.Loader", |
| from: "#opencl_loader", |
| to: "#sshd-host", |
| source_availability: "unknown", |
| }, |
| { |
| protocol: "fuchsia.net.tun.Control", |
| from: "#network-tun", |
| to: "#sshd-host", |
| source_availability: "unknown", |
| }, |
| { |
| protocol: "fuchsia.location.position.EmergencyProvider", |
| from: "#emergency", |
| to: "#sshd-host", |
| source_availability: "unknown", |
| }, |
| { |
| protocol: [ |
| "fuchsia.weave.Bootstrap", |
| "fuchsia.weave.Stack", |
| "fuchsia.weave.StackProvider", |
| ], |
| from: "#weavestack", |
| to: "#sshd-host", |
| source_availability: "unknown", |
| }, |
| { |
| protocol: "fuchsia.buildinfo.Provider", |
| from: "#build-info", |
| to: "#sshd-host", |
| source_availability: "unknown", |
| }, |
| { |
| protocol: "fuchsia.process.explorer.Query", |
| from: "#process_explorer", |
| to: "#sshd-host", |
| source_availability: "unknown", |
| }, |
| { |
| protocol: [ |
| "fuchsia.memory.debug.MemoryPressure", |
| "fuchsia.memory.inspection.Collector", |
| "fuchsia.memorypressure.Provider", |
| ], |
| from: "#memory_monitor", |
| to: "#sshd-host", |
| source_availability: "unknown", |
| }, |
| { |
| protocol: [ |
| "fuchsia.test.manager.Query", |
| "fuchsia.test.manager.RunBuilder", |
| ], |
| from: "#test_manager", |
| to: "#sshd-host", |
| source_availability: "unknown", |
| }, |
| { |
| protocol: [ |
| "fuchsia.settings.Accessibility", |
| "fuchsia.settings.Audio", |
| "fuchsia.settings.Display", |
| "fuchsia.settings.DoNotDisturb", |
| "fuchsia.settings.FactoryReset", |
| "fuchsia.settings.Input", |
| "fuchsia.settings.Intl", |
| "fuchsia.settings.Keyboard", |
| "fuchsia.settings.Light", |
| "fuchsia.settings.NightMode", |
| "fuchsia.settings.Privacy", |
| "fuchsia.settings.Setup", |
| ], |
| from: "#setui_service", |
| to: "#sshd-host", |
| source_availability: "unknown", |
| }, |
| { |
| protocol: [ |
| "fuchsia.lightsensor.Sensor", |
| "fuchsia.session.scene.Manager", |
| ], |
| from: "#ui", |
| to: "#sshd-host", |
| dependency: "weak", |
| source_availability: "unknown", |
| }, |
| { |
| protocol: "fuchsia.hardware.radar.RadarBurstReaderProvider", |
| from: "#radar-proxy", |
| to: "#sshd-host", |
| source_availability: "unknown", |
| }, |
| { |
| protocol: "sl4f.Binder", |
| from: "#sl4f", |
| to: "#sshd-host", |
| source_availability: "unknown", |
| }, |
| { |
| protocol: [ |
| "fuchsia.power.battery.BatteryManager", |
| "fuchsia.power.battery.test.BatterySimulator", |
| ], |
| from: "#battery_manager", |
| to: "#sshd-host", |
| source_availability: "unknown", |
| }, |
| { |
| protocol: "fuchsia.storage.ext4.Server", |
| from: "#fuchsia_storage_ext4_server", |
| to: "#sshd-host", |
| source_availability: "unknown", |
| }, |
| { |
| protocol: [ |
| "fuchsia.tracing.controller.Controller", |
| "fuchsia.tracing.perfetto.ProducerConnector", |
| "fuchsia.tracing.provider.Registry", |
| ], |
| from: "#trace_manager", |
| to: "#sshd-host", |
| source_availability: "unknown", |
| }, |
| { |
| protocol: "fuchsia.memory.sampler.Sampler", |
| from: "#memory_sampler", |
| to: "#sshd-host", |
| source_availability: "unknown", |
| }, |
| { |
| protocol: "fuchsia.fuzzer.Manager", |
| from: "#fuzz-manager", |
| to: "#sshd-host", |
| source_availability: "unknown", |
| }, |
| ], |
| } |