blob: ac3ac61bd6b7ce662aa772fcca8409d9f4cafb84 [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.
{
include: [ "syslog/client.shard.cml" ],
program: {
runner: "elf",
binary: "bin/session_manager",
},
collections: [
// Holds all the sessions this session_manager will create. Capabilities
// offered to and exposed by sessions should be routed here.
{
name: "session",
durability: "transient",
persistent_storage: true,
},
],
capabilities: [
{
protocol: [
"fuchsia.element.GraphicalPresenter",
"fuchsia.element.Manager",
"fuchsia.input.injection.InputDeviceRegistry",
"fuchsia.session.Launcher",
"fuchsia.session.Restarter",
"fuchsia.sessionmanager.Startup",
],
},
],
use: [
{
// The Realm service allows session_manager to start components.
protocol: "fuchsia.component.Realm",
from: "framework",
},
{
protocol: [ "fuchsia.metrics.MetricEventLoggerFactory" ],
from: "parent",
},
],
offer: [
{
// Routed to session-manager via core realm shards.
// These protocols are not available on all products.
protocol: [
"fuchsia.accessibility.gesture.ListenerRegistry",
"fuchsia.accessibility.tts.EngineRegistry",
"fuchsia.accessibility.virtualkeyboard.Registry",
"fuchsia.bluetooth.gatt.Server",
"fuchsia.bluetooth.le.Central",
"fuchsia.bluetooth.le.Peripheral",
"fuchsia.bluetooth.sys.Access",
"fuchsia.camera3.DeviceWatcher",
"fuchsia.castauth.CastKeySigner",
"fuchsia.cobalt.SystemDataUpdater",
"fuchsia.device.NameProvider",
"fuchsia.diagnostics.LegacyMetricsArchiveAccessor",
"fuchsia.feedback.ComponentDataRegister",
"fuchsia.feedback.CrashReportingProductRegister",
"fuchsia.feedback.DataProvider",
"fuchsia.feedback.LastRebootInfoProvider",
"fuchsia.hardware.power.statecontrol.RebootMethodsWatcherRegister",
"fuchsia.hwinfo.Board",
"fuchsia.hwinfo.Device",
"fuchsia.hwinfo.Product",
"fuchsia.input.virtualkeyboard.ControllerCreator",
"fuchsia.input.virtualkeyboard.Manager",
"fuchsia.location.namedplace.RegulatoryRegionConfigurator",
"fuchsia.location.namedplace.RegulatoryRegionWatcher",
"fuchsia.lowpan.bootstrap.Thread",
"fuchsia.media.drm.PlayReady",
"fuchsia.media.drm.Widevine",
"fuchsia.media.SessionAudioConsumerFactory",
"fuchsia.media.sessions2.ActiveSession",
"fuchsia.media.sessions2.Discovery",
"fuchsia.media.sessions2.Publisher",
"fuchsia.media.sounds.Player",
"fuchsia.net.http.Loader",
"fuchsia.net.interfaces.State",
"fuchsia.net.mdns.Publisher",
"fuchsia.net.mdns.Subscriber",
"fuchsia.net.routes.State",
"fuchsia.netstack.Netstack",
"fuchsia.paver.Paver",
"fuchsia.power.battery.BatteryManager",
"fuchsia.power.button.Monitor",
"fuchsia.power.profile.Watcher",
"fuchsia.power.systemmode.ClientConfigurator",
"fuchsia.recovery.FactoryReset",
"fuchsia.recovery.ui.FactoryResetCountdown",
"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.policy.VolumePolicyController",
"fuchsia.settings.Privacy",
"fuchsia.settings.Setup",
"fuchsia.ssh.AuthorizedKeys",
"fuchsia.sys.Environment",
"fuchsia.sys.Loader",
"fuchsia.timezone.Timezone",
"fuchsia.ui.activity.control.Control",
"fuchsia.ui.activity.Provider",
"fuchsia.ui.activity.Tracker",
"fuchsia.ui.brightness.ColorAdjustmentHandler",
"fuchsia.ui.brightness.Control",
"fuchsia.ui.input.PointerCaptureListenerRegistry",
"fuchsia.ui.policy.DeviceListenerRegistry",
"fuchsia.ui.policy.DisplayBacklight",
"fuchsia.ui.shortcut.Registry",
"fuchsia.ultrasound.Factory",
"fuchsia.update.config.OptOut",
"fuchsia.update.config.OptOutAdmin",
"fuchsia.weave.FactoryDataManager",
"fuchsia.weave.Provisioner",
"fuchsia.weave.Signer",
"fuchsia.web.ContextProvider",
"google.device.key.encryptor.DeviceKeyEncryptor",
"google.deviceproperty.Reader",
"google.deviceproperty.Writer",
"google.flashts.Reader",
],
from: "parent",
to: "#session",
},
{
// Routed to session-manager via factory_store_providers.core_shard.cml.
protocol: [
"fuchsia.factory.AlphaFactoryStoreProvider",
"fuchsia.factory.CastCredentialsFactoryStoreProvider",
"fuchsia.factory.MiscFactoryStoreProvider",
"fuchsia.factory.PlayReadyFactoryStoreProvider",
"fuchsia.factory.WeaveFactoryStoreProvider",
"fuchsia.factory.WidevineFactoryStoreProvider",
],
from: "parent",
to: "#session",
},
{
// Routed to session-manager via build_info.core_shard.cml.
protocol: [ "fuchsia.buildinfo.Provider" ],
from: "parent",
to: "#session",
},
{
// Routed to session-manager via codec_factory.core_shard.cml.
protocol: [ "fuchsia.mediacodec.CodecFactory" ],
from: "parent",
to: "#session",
},
{
// Routed to session-manager via wlancfg.core_shard.cml.
protocol: [
"fuchsia.wlan.policy.AccessPointProvider",
"fuchsia.wlan.policy.ClientProvider",
"fuchsia.wlan.product.deprecatedclient.DeprecatedClient",
"fuchsia.wlan.product.deprecatedconfiguration.DeprecatedConfigurator",
],
from: "parent",
to: "#session",
},
{
// Routed to session-manager via memory_monitor.core_shard.cml.
protocol: [
"fuchsia.memory.Monitor",
"fuchsia.memorypressure.Provider",
],
from: "parent",
to: "#session",
},
{
// Routed to session-manager via omaha_client_service.core_shard.cml or
// system_update_checker.core_shard.cml.
protocol: [
"fuchsia.update.channel.Provider",
"fuchsia.update.channelcontrol.ChannelControl",
"fuchsia.update.Manager",
],
from: "parent",
to: "#session",
},
{
// Routed to session-manager via emergency.core_shard.cml
protocol: [ "fuchsia.location.position.EmergencyProvider" ],
from: "parent",
to: "#session",
},
{
// Routed to session-manager via bt-a2dp-common.core_shard.cml
protocol: [ "fuchsia.bluetooth.a2dp.AudioMode" ],
from: "parent",
to: "#session",
},
{
// Routed to session-manager via bt-hfp-audio-gateway.core_shard.cml
protocol: [ "fuchsia.bluetooth.hfp.Hfp" ],
from: "parent",
to: "#session",
},
{
// Routed to session-manager via bt-bootstrap.core_shard.cml
protocol: [ "fuchsia.bluetooth.sys.Bootstrap" ],
from: "parent",
to: "#session",
},
{
// Routed to session-manager via weavestack.core_shard.cml
protocol: [
"fuchsia.weave.Bootstrap",
"fuchsia.weave.Stack",
"fuchsia.weave.StackProvider",
],
from: "parent",
to: "#session",
},
{
// Routed to session-manager via lowpanservice.core_shard.cml
protocol: [
"fuchsia.lowpan.device.CountersConnector",
"fuchsia.lowpan.device.DeviceConnector",
"fuchsia.lowpan.device.DeviceExtraConnector",
"fuchsia.lowpan.device.EnergyScanConnector",
"fuchsia.lowpan.DeviceWatcher",
"fuchsia.lowpan.thread.DatasetConnector",
"fuchsia.lowpan.thread.MeshcopConnector",
],
from: "parent",
to: "#session",
},
{
// Routed to session-manager via account.core_shard.cml
protocol: [ "fuchsia.identity.account.AccountManager" ],
from: "parent",
to: "#session",
},
{
// Routed to session-manager via ui.core_shard.cml
protocol: [
"fuchsia.accessibility.semantics.SemanticsManager",
"fuchsia.session.scene.Manager",
],
from: "parent",
to: "#session",
},
{
// Routed to session-manager via audio_core
protocol: [
"fuchsia.media.ActivityReporter",
"fuchsia.media.Audio",
"fuchsia.media.audio.EffectsController",
"fuchsia.media.AudioCore",
"fuchsia.media.AudioDeviceEnumerator",
"fuchsia.media.ProfileProvider",
"fuchsia.media.UsageGainReporter",
"fuchsia.media.UsageReporter",
],
from: "parent",
to: "#session",
},
{
// Routed to session-manager from core.cml in all products.
// i.e. not via a core realm shard.
protocol: [
// TODO(fxbug.dev/96053): remove once basemgr has migrated to
// Cobalt 1.1.
"fuchsia.cobalt.LoggerFactory",
"fuchsia.feedback.CrashReporter",
"fuchsia.fonts.Provider",
"fuchsia.hardware.power.statecontrol.Admin",
"fuchsia.intl.PropertyProvider",
"fuchsia.intl.TimeZones",
"fuchsia.logger.LogSink",
"fuchsia.metrics.MetricEventLoggerFactory",
"fuchsia.net.name.Lookup",
"fuchsia.posix.socket.Provider",
"fuchsia.process.Launcher",
"fuchsia.sys.Launcher",
"fuchsia.sysmem.Allocator",
"fuchsia.tracing.provider.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.ImeService",
"fuchsia.ui.input3.Keyboard",
"fuchsia.ui.input3.KeyEventInjector",
"fuchsia.ui.keyboard.focus.Controller",
"fuchsia.ui.lifecycle.LifecycleController",
"fuchsia.ui.pointerinjector.Registry",
"fuchsia.ui.policy.Presenter",
"fuchsia.ui.scenic.Scenic",
"fuchsia.ui.shortcut.Manager",
"fuchsia.ui.views.ViewRefInstalled",
"fuchsia.vulkan.loader.Loader",
],
from: "parent",
to: "#session",
},
{
storage: "cache",
from: "parent",
to: "#session",
},
{
storage: "data",
from: "parent",
to: "#session",
},
{
storage: "tmp",
from: "parent",
to: "#session",
},
{
directory: "config-data",
from: "parent",
to: "#session",
},
{
directory: "dev-input-report",
from: "parent",
to: "#session",
},
{
directory: "root-ssl-certificates",
from: "parent",
to: "#session",
},
// Allow components in the session to restart it (the session).
{
protocol: "fuchsia.session.Restarter",
from: "self",
to: "#session",
},
],
expose: [
{
protocol: [
"fuchsia.element.GraphicalPresenter",
"fuchsia.element.Manager",
"fuchsia.input.injection.InputDeviceRegistry",
"fuchsia.session.Launcher",
"fuchsia.session.Restarter",
"fuchsia.sessionmanager.Startup",
],
from: "self",
},
],
config: {
session_url: {
type: "string",
max_size: 512,
},
},
}