| // 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", |
| }, |
| ], |
| } |