blob: 8a299deb51bf676949068293f0b317b22dba09fb [file] [log] [blame]
// 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.
// This shard contains all capability routes for session manager that are
// expected to be valid on every product.
{
children: [
{
name: "session-manager",
url: "fuchsia-pkg://fuchsia.com/session_manager#meta/session_manager.cm",
startup: "eager",
environment: "#session-env",
},
],
offer: [
// The routes listed below originate from other core components.
// Routes are sorted by source component name.
{
protocol: [
"fuchsia.ui.activity.control.Control",
"fuchsia.ui.activity.Provider",
],
from: "#activity",
to: "#session-manager",
},
{
protocol: [
"fuchsia.bluetooth.gatt.Server",
"fuchsia.bluetooth.le.Central",
"fuchsia.bluetooth.le.Peripheral",
"fuchsia.bluetooth.sys.Access",
"fuchsia.bluetooth.sys.Pairing",
],
from: "#bluetooth-core",
to: "#session-manager",
source_availability: "unknown",
},
{
protocol: "fuchsia.ui.brightness.Control",
from: "#brightness_manager",
to: "#session-manager",
},
{
protocol: "fuchsia.buildinfo.Provider",
from: "#build-info",
to: "#session-manager",
},
{
protocol: [
"fuchsia.cobalt.SystemDataUpdater",
"fuchsia.metrics.MetricEventLoggerFactory",
],
from: "#cobalt",
to: "#session-manager",
},
{
protocol: "only_meant_for_outliving_certain_components",
from: "#exceptions",
to: "#session-manager",
},
{
protocol: "fuchsia.recovery.FactoryReset",
from: "#factory_reset",
to: "#session-manager",
},
{
protocol: [
"fuchsia.feedback.ComponentDataRegister",
"fuchsia.feedback.CrashReporter",
"fuchsia.feedback.CrashReportingProductRegister",
"fuchsia.feedback.DataProvider",
"fuchsia.feedback.LastRebootInfoProvider",
],
from: "#feedback",
to: "#session-manager",
},
{
protocol: "fuchsia.fonts.Provider",
from: "#font_provider",
to: "#session-manager",
},
{
protocol: [
"fuchsia.hwinfo.Board",
"fuchsia.hwinfo.Device",
"fuchsia.hwinfo.Product",
],
from: "#hwinfo",
to: "#session-manager",
},
{
protocol: [
"fuchsia.net.mdns.Publisher",
"fuchsia.net.mdns.ServiceInstanceResolver",
"fuchsia.net.mdns.ServiceSubscriber2",
"fuchsia.net.mdns.Subscriber",
],
from: "#mdns",
to: "#session-manager",
},
{
protocol: [ "fuchsia.memorypressure.Provider" ],
from: "#memory_monitor",
to: "#session-manager",
},
{
protocol: [
"fuchsia.net.http.Loader",
"fuchsia.net.interfaces.State",
"fuchsia.net.name.Lookup",
"fuchsia.net.reachability.Monitor",
"fuchsia.net.routes.State",
"fuchsia.posix.socket.Provider",
],
from: "#network",
to: "#session-manager",
},
{
protocol: [ "fuchsia.vsock.Connector" ],
from: "#vsock",
to: "#session-manager",
source_availability: "unknown",
},
{
protocol: [
"fuchsia.location.namedplace.RegulatoryRegionConfigurator",
"fuchsia.location.namedplace.RegulatoryRegionWatcher",
],
from: "#regulatory_region",
to: "#session-manager",
},
{
protocol: "fuchsia.ssh.AuthorizedKeys",
from: "#ssh-key-manager",
to: "#session-manager",
},
{
protocol: [
"fuchsia.sysmem.Allocator",
"fuchsia.sysmem2.Allocator",
],
from: "parent",
to: "#session-manager",
},
{
protocol: [
"fuchsia.update.channel.Provider",
"fuchsia.update.channelcontrol.ChannelControl",
"fuchsia.update.Manager",
],
from: "#system-update",
to: "#session-manager",
},
// The routes listed below originate from `parent` or from `self`.
{
directory: "dev-class",
from: "parent",
as: "dev-input-report",
to: "#session-manager",
subdir: "input-report",
},
{
directory: "root-ssl-certificates",
from: "parent",
to: "#session-manager",
},
{
directory: "config-data",
from: "parent",
to: "#session-manager",
},
{
directory: "dev-class",
from: "parent",
as: "dev-backlight",
to: "#session-manager",
subdir: "backlight",
},
{
directory: "dev-class",
from: "parent",
as: "dev-light",
to: "#session-manager",
subdir: "light",
},
{
directory: "dev-class",
from: "parent",
as: "dev-class-radar",
to: "#session-manager",
subdir: "radar",
},
{
directory: "dev-class",
from: "parent",
as: "dev-power-sensor",
to: "#session-manager",
subdir: "power-sensor",
},
{
directory: "dev-class",
from: "parent",
as: "dev-temperature",
to: "#session-manager",
subdir: "temperature",
},
{
directory: "dev-class",
from: "parent",
as: "dev-thermal",
to: "#session-manager",
subdir: "thermal",
},
{
directory: "dev-class",
from: "parent",
as: "dev-trippoint",
to: "#session-manager",
subdir: "trippoint",
},
{
directory: "dev-class",
from: "parent",
as: "dev-gpu",
to: "#session-manager",
subdir: "gpu",
},
{
directory: "dev-class",
from: "parent",
as: "dev-block",
to: "#session-manager",
subdir: "block",
},
{
directory: "dev-class",
from: "parent",
as: "dev-skip-block",
to: "#session-manager",
subdir: "skip-block",
},
{
protocol: [
"fuchsia.device.NameProvider",
"fuchsia.diagnostics.LegacyMetricsArchiveAccessor",
"fuchsia.diagnostics.LoWPANArchiveAccessor",
"fuchsia.hardware.power.statecontrol.Admin",
"fuchsia.hardware.power.statecontrol.RebootMethodsWatcherRegister",
"fuchsia.kernel.VmexResource",
"fuchsia.logger.LogSink",
"fuchsia.paver.Paver",
"fuchsia.power.button.Monitor",
"fuchsia.power.profile.Watcher",
"fuchsia.power.systemmode.ClientConfigurator",
"fuchsia.process.Launcher",
"fuchsia.thermal.ClientStateConnector",
],
from: "parent",
to: "#session-manager",
},
{
storage: [
"cache",
"data",
"tmp",
],
from: "self",
to: "#session-manager",
},
{
from: "parent",
to: "#session-manager",
config: [
"fuchsia.session.AutoLaunch",
"fuchsia.session.SessionUrl",
],
},
{
protocol: [
"fuchsia.power.broker.Topology",
"fuchsia.power.system.ActivityGovernor",
],
from: "parent",
to: [ "#session-manager" ],
availability: "optional",
},
{
from: "parent",
to: "#session-manager",
config: "fuchsia.power.SuspendEnabled",
},
// TODO(https://fxbug.dev/42077029): As of 2023-04-26, `session-manager` only uses
// this directory so developers can stop the session from automatically
// launching on boot. Once structured configuration provides first-class
// support for this kind of override, consider removing this stanza.
{
directory: "data",
from: "parent",
as: "root-data",
to: "#session-manager",
rights: [ 'r*' ],
},
// These all originated from session.smart.from_platform.core_shard.cml
// and are required by all products that use session-manager today.
{
protocol: "fuchsia.lightsensor.Sensor",
from: "#ui",
to: "#session-manager",
},
{
protocol: "fuchsia.ultrasound.Factory",
from: "#audio_core",
to: "#session-manager",
source_availability: "unknown",
},
{
protocol: "fuchsia.camera3.DeviceWatcher",
from: "#camera_device_watcher",
to: "#session-manager",
source_availability: "unknown",
},
{
protocol: [ "fuchsia.bluetooth.sys.Bootstrap" ],
from: "#bluetooth-core",
to: "#session-manager",
source_availability: "unknown",
},
{
protocol: "fuchsia.web.ContextProvider",
from: "#context_provider",
to: "#session-manager",
source_availability: "unknown",
},
{
protocol: [
"fuchsia.media.SessionAudioConsumerFactory",
"google.cast.multizone.Leader",
],
from: "#multizone_leader",
to: "#session-manager",
source_availability: "unknown",
},
// Route services provided only by physical hardware.
{
protocol: [
"fuchsia.castauth.CastCertificateRetriever",
"fuchsia.castauth.CastKeySigner",
],
from: "#cast_auth_server",
to: "#session-manager",
source_availability: "unknown",
},
{
protocol: "google.device.key.encryptor.DeviceKeyEncryptor",
from: "#device_key_encryptor",
to: "#session-manager",
source_availability: "unknown",
},
{
dictionary: "trusted-app-capabilities",
from: "#trusted-apps",
to: "#session-manager",
source_availability: "unknown",
},
// These all originated from terminal_capabilities.core_shard.cml and
// are required by all products that use session-manager today.
{
protocol: [
"fuchsia.pkg.RepositoryManager",
"fuchsia.pkg.rewrite.Engine",
],
from: "#pkg-resolver",
to: "#session-manager",
},
{
protocol: "fuchsia.process.Resolver",
from: "#process_resolver",
to: "#session-manager",
},
{
protocol: [
"fuchsia.diagnostics.ArchiveAccessor",
"fuchsia.logger.Log",
"fuchsia.space.Manager",
"fuchsia.sys2.RealmExplorer.root",
"fuchsia.sys2.RealmQuery.root",
],
from: "parent",
to: "#session-manager",
},
{
directory: "boot",
from: "parent",
as: "boot-bin",
to: "#session-manager",
subdir: "bin",
},
{
directory: "pkgfs",
from: "parent",
as: "pkgfs-packages",
to: "#session-manager",
subdir: "packages",
},
{
directory: "bin",
from: "parent",
to: "#session-manager",
},
{
protocol: "fuchsia.bluetooth.sys.HostWatcher",
from: "#bluetooth-core",
to: "#session-manager",
source_availability: "unknown",
},
{
protocol: "fuchsia.hardware.pty.Device",
from: "parent",
to: "#session-manager",
availability: "optional",
},
{
protocol: "fuchsia.virtualization.LinuxManager",
from: "#termina-guest-manager",
to: "#session-manager",
source_availability: "unknown",
},
{
protocol: "fuchsia.virtualization.DebianGuestManager",
from: "#debian-guest-manager",
to: "#session-manager",
source_availability: "unknown",
},
{
protocol: "fuchsia.virtualization.TerminaGuestManager",
from: "#termina-guest-manager",
to: "#session-manager",
source_availability: "unknown",
},
{
protocol: "fuchsia.virtualization.ZirconGuestManager",
from: "#zircon-guest-manager",
to: "#session-manager",
source_availability: "unknown",
},
// The following all originate from 'some_products_capabilities.core_shard.cml'
// and are needed by all products that today use the session-manager
// The routes listed below originate from other core components.
// Routes are sorted by source component name.
{
protocol: [
"fuchsia.identity.account.AccountManager",
"fuchsia.identity.account.DeprecatedAccountManager",
],
from: "#account",
to: "#session-manager",
source_availability: "unknown",
},
{
protocol: [
"fuchsia.media.ActivityReporter",
"fuchsia.media.Audio",
"fuchsia.media.audio.EffectsController",
"fuchsia.media.AudioCore",
"fuchsia.media.AudioDeviceEnumerator",
"fuchsia.media.ProfileProvider",
"fuchsia.media.tuning.AudioTuner",
"fuchsia.media.UsageGainReporter",
"fuchsia.media.UsageReporter",
],
from: "#audio_core",
to: "#session-manager",
source_availability: "unknown",
},
{
protocol: [
"fuchsia.audio.device.ControlCreator",
"fuchsia.audio.device.Provider",
"fuchsia.audio.device.Registry",
],
from: "#audio_device_registry",
to: "#session-manager",
source_availability: "unknown",
},
{
protocol: "fuchsia.power.battery.BatteryManager",
from: "#battery_manager",
to: "#session-manager",
source_availability: "unknown",
},
// Used by Bluetooth in Starnix.
// TODO(b/296933425): Ideally, we wouldn't need to route this directory to Starnix for BT.
// This route should eventually be removed when we can depend solely on Bluetooth FIDL APIs.
{
directory: "dev-class",
from: "parent",
as: "dev-bt-hci",
to: "#session-manager",
subdir: "bt-hci",
source_availability: "unknown",
},
{
protocol: "fuchsia.bluetooth.a2dp.AudioMode",
from: "#bt-a2dp",
to: "#session-manager",
source_availability: "unknown",
},
{
protocol: [ "fuchsia.bluetooth.hfp.Hfp" ],
from: "#bt-hfp-audio-gateway",
to: "#session-manager",
source_availability: "unknown",
},
{
protocol: [ "fuchsia.mediacodec.CodecFactory" ],
from: "#codec_factory",
to: "#session-manager",
source_availability: "unknown",
},
{
protocol: "fuchsia.location.position.EmergencyProvider",
from: "#emergency",
to: "#session-manager",
source_availability: "unknown",
},
{
protocol: [
"fuchsia.factory.AlphaFactoryStoreProvider",
"fuchsia.factory.CastCredentialsFactoryStoreProvider",
"fuchsia.factory.MiscFactoryStoreProvider",
"fuchsia.factory.PlayReadyFactoryStoreProvider",
"fuchsia.factory.WeaveFactoryStoreProvider",
"fuchsia.factory.WidevineFactoryStoreProvider",
],
from: "#factory_store_providers",
to: "#session-manager",
source_availability: "unknown",
},
{
protocol: "fuchsia.storage.ext4.Server",
from: "#fuchsia_storage_ext4_server",
to: "#session-manager",
source_availability: "unknown",
},
{
protocol: "fuchsia.intl.PropertyProvider",
from: "#intl",
to: "#session-manager",
source_availability: "unknown",
},
{
protocol: "fuchsia.lowpan.bootstrap.Thread",
from: "#lowpan-ot-driver",
to: "#session-manager",
source_availability: "unknown",
},
{
protocol: [
"fuchsia.lowpan.device.CountersConnector",
"fuchsia.lowpan.device.DeviceConnector",
"fuchsia.lowpan.device.DeviceExtraConnector",
"fuchsia.lowpan.device.EnergyScanConnector",
"fuchsia.lowpan.DeviceWatcher",
"fuchsia.lowpan.thread.CapabilitiesConnector",
"fuchsia.lowpan.thread.DatasetConnector",
"fuchsia.lowpan.thread.FeatureConnector",
"fuchsia.lowpan.thread.MeshcopConnector",
],
from: "#lowpanservice",
to: "#session-manager",
source_availability: "unknown",
},
{
protocol: [
"fuchsia.media.sessions2.ActiveSession",
"fuchsia.media.sessions2.Discovery",
"fuchsia.media.sessions2.Publisher",
],
from: "#mediasession",
to: "#session-manager",
source_availability: "unknown",
},
{
protocol: [
"fuchsia.net.routes.StateV4",
"fuchsia.net.routes.StateV6",
"fuchsia.net.stack.Stack",
],
from: "#network",
to: "#session-manager",
source_availability: "unknown",
},
{
protocol: [
"fuchsia.net.stackmigrationdeprecated.Control",
"fuchsia.net.stackmigrationdeprecated.State",
],
from: "#network",
to: "#session-manager",
availability: "optional",
},
{
protocol: "fuchsia.opencl.loader.Loader",
from: "#opencl_loader",
to: "#session-manager",
source_availability: "unknown",
},
{
protocol: [ "fuchsia.media.drm.PlayReady" ],
from: "#playready-cdm",
to: "#session-manager",
source_availability: "unknown",
},
{
protocol: [ "fuchsia.process.explorer.Query" ],
from: "#process_explorer",
to: "#session-manager",
source_availability: "unknown",
},
{
protocol: "fuchsia.hardware.radar.RadarBurstReaderProvider",
from: "#radar-proxy",
to: "#session-manager",
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: "#session-manager",
source_availability: "unknown",
},
{
protocol: [ "fuchsia.media.sounds.Player" ],
from: "#soundplayer",
to: "#session-manager",
source_availability: "unknown",
},
{
directory: [
// `tzdata-icu` offers /config/tzdata/icu.
// `tzdata-icu-44-le` offers /config/tzdata/icu/44/le only.
"tzdata-icu",
"tzdata-icu-44-le",
],
from: "#tzdata-provider",
to: "#session-manager",
source_availability: "unknown",
},
{
protocol: [
"fuchsia.accessibility.gesture.ListenerRegistry",
"fuchsia.accessibility.semantics.SemanticsManager",
"fuchsia.accessibility.tts.EngineRegistry",
"fuchsia.accessibility.tts.TtsManager",
"fuchsia.accessibility.virtualkeyboard.Registry",
"fuchsia.element.GraphicalPresenter",
"fuchsia.input.virtualkeyboard.ControllerCreator",
"fuchsia.input.virtualkeyboard.Manager",
"fuchsia.recovery.policy.Device",
"fuchsia.recovery.ui.FactoryResetCountdown",
"fuchsia.session.scene.Manager",
"fuchsia.ui.brightness.ColorAdjustment",
"fuchsia.ui.brightness.ColorAdjustmentHandler",
"fuchsia.ui.composition.Allocator",
"fuchsia.ui.composition.Flatland",
"fuchsia.ui.composition.internal.ScreenCapture",
"fuchsia.ui.composition.ScreenCapture",
"fuchsia.ui.composition.Screenshot",
"fuchsia.ui.display.internal.DisplayPower",
"fuchsia.ui.display.singleton.Info",
"fuchsia.ui.focus.FocusChainListenerRegistry",
"fuchsia.ui.input.ImeService",
"fuchsia.ui.input3.Keyboard",
"fuchsia.ui.input3.KeyEventInjector",
"fuchsia.ui.keyboard.focus.Controller",
"fuchsia.ui.pointerinjector.Registry",
"fuchsia.ui.policy.DeviceListenerRegistry",
"fuchsia.ui.policy.DisplayBacklight",
"fuchsia.ui.scenic.Scenic",
"fuchsia.ui.views.ViewRefInstalled",
],
from: "#ui",
to: "#session-manager",
source_availability: "unknown",
},
{
protocol: [ "fuchsia.vulkan.loader.Loader" ],
from: "#vulkan_loader",
to: "#session-manager",
source_availability: "unknown",
},
{
protocol: [
"fuchsia.weave.Bootstrap",
"fuchsia.weave.Stack",
"fuchsia.weave.StackProvider",
],
from: "#weavestack",
to: "#session-manager",
source_availability: "unknown",
},
{
protocol: [ "fuchsia.media.drm.Widevine" ],
from: "#widevine_cdm",
to: "#session-manager",
source_availability: "unknown",
},
{
protocol: [
"fuchsia.wlan.policy.AccessPointProvider",
"fuchsia.wlan.policy.ClientProvider",
"fuchsia.wlan.product.deprecatedclient.DeprecatedClient",
"fuchsia.wlan.product.deprecatedconfiguration.DeprecatedConfigurator",
],
from: "#wlancfg",
to: "#session-manager",
source_availability: "unknown",
},
{
protocol: [
"fuchsia.update.CommitStatusProvider",
"fuchsia.update.config.OptOut",
"fuchsia.update.config.OptOutAdmin",
"fuchsia.update.installer.Installer",
],
from: "#system-update",
to: "#session-manager",
availability: "same_as_target",
},
{
protocol: "fuchsia.wlan.wlanix.Wlanix",
from: "#wlanix",
to: "#session-manager",
source_availability: "unknown",
},
{
protocol: "fuchsia.hardware.sensors.Playback",
from: "#sensors_playback",
to: "#session-manager",
source_availability: "unknown",
},
{
protocol: "fuchsia.sensors.Manager",
from: "#sensors",
to: "#session-manager",
source_availability: "unknown",
},
],
}