| { |
| program: { |
| 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", |
| }, |
| ], |
| use: [ |
| { runner: "elf" }, |
| { |
| // The Realm service allows session_manager to start components. |
| protocol: "/svc/fuchsia.sys2.Realm", |
| from: "framework", |
| }, |
| { |
| protocol: [ |
| "/svc/fuchsia.cobalt.LoggerFactory", |
| "/svc/fuchsia.logger.LogSink", |
| ], |
| from: "realm", |
| }, |
| { |
| directory: "/config/data", |
| from: "realm", |
| rights: [ "r*" ], |
| }, |
| ], |
| offer: [ |
| { |
| protocol: [ |
| "/svc/fuchsia.accessibility.SettingsManager", |
| "/svc/fuchsia.bluetooth.control.Control", |
| "/svc/fuchsia.bluetooth.gatt.Server", |
| "/svc/fuchsia.bluetooth.le.Peripheral", |
| "/svc/fuchsia.castauth.CastKeySigner", |
| "/svc/fuchsia.castconfig.Provider", |
| "/svc/fuchsia.deprecatedtimezone.Timezone", |
| "/svc/fuchsia.device.manager.Administrator", |
| "/svc/fuchsia.device.NameProvider", |
| "/svc/fuchsia.devicesettings.DeviceSettingsManager", |
| "/svc/fuchsia.feedback.CrashReporter", |
| "/svc/fuchsia.feedback.DataProvider", |
| "/svc/fuchsia.hardware.power.statecontrol.Admin", |
| "/svc/fuchsia.hwinfo.Board", |
| "/svc/fuchsia.hwinfo.Device", |
| "/svc/fuchsia.hwinfo.Product", |
| "/svc/fuchsia.intl.PropertyProvider", |
| "/svc/fuchsia.location.namedplace.RegulatoryRegionConfigurator", |
| "/svc/fuchsia.logger.LogSink", |
| "/svc/fuchsia.media.Audio", |
| "/svc/fuchsia.media.audio.VolumeControl", |
| "/svc/fuchsia.media.AudioCore", |
| "/svc/fuchsia.media.sessions2.Discovery", |
| "/svc/fuchsia.media.sessions2.Publisher", |
| "/svc/fuchsia.media.sounds.Player", |
| "/svc/fuchsia.media.UsageReporter", |
| "/svc/fuchsia.net.Connectivity", |
| "/svc/fuchsia.net.mdns.Publisher", |
| "/svc/fuchsia.net.mdns.Subscriber", |
| "/svc/fuchsia.net.NameLookup", |
| "/svc/fuchsia.netstack.Netstack", |
| "/svc/fuchsia.posix.socket.Provider", |
| "/svc/fuchsia.settings.Accessibility", |
| "/svc/fuchsia.settings.Audio", |
| "/svc/fuchsia.settings.DoNotDisturb", |
| "/svc/fuchsia.settings.Privacy", |
| "/svc/fuchsia.settings.Setup", |
| "/svc/fuchsia.stash.Store", |
| "/svc/fuchsia.sys.Environment", |
| "/svc/fuchsia.sys.Launcher", // so that the session can launch cmx components |
| "/svc/fuchsia.sys2.Realm", |
| "/svc/fuchsia.timezone.Timezone", |
| "/svc/fuchsia.tracing.provider.Registry", |
| "/svc/fuchsia.ui.brightness.Control", |
| "/svc/fuchsia.ui.focus.FocusChainListenerRegistry", |
| "/svc/fuchsia.ui.input.ImeService", |
| "/svc/fuchsia.ui.input2.Keyboard", |
| "/svc/fuchsia.ui.lifecycle.LifecycleController", // to kill scenic if restarting |
| "/svc/fuchsia.ui.scenic.Scenic", // sessions use Scenic to display images |
| "/svc/fuchsia.ui.shortcut.Manager", |
| "/svc/fuchsia.update.channel.Provider", |
| "/svc/fuchsia.update.channelcontrol.ChannelControl", |
| "/svc/fuchsia.wlan.service.Wlan", |
| ], |
| from: "realm", |
| to: [ "#session" ], |
| }, |
| { |
| // features: build-info |
| directory: "/config/build-info", |
| from: "realm", |
| to: [ "#session" ], |
| rights: [ "r*" ], |
| }, |
| { |
| // features: root-ssl-certificates |
| directory: "/config/ssl", |
| from: "realm", |
| to: [ "#session" ], |
| rights: [ "r*" ], |
| }, |
| { |
| // features: isolated-persistent-storage |
| directory: "/data", |
| from: "realm", |
| to: [ "#session" ], |
| rights: [ "rw*" ], |
| }, |
| { |
| directory: "/dev/class/input", |
| from: "realm", |
| to: [ "#session" ], |
| rights: [ "r*" ], |
| }, |
| { |
| directory: "/dev/class/input-report", |
| from: "realm", |
| to: [ "#session" ], |
| rights: [ "r*" ], |
| }, |
| { |
| directory: "/dev/null", |
| from: "realm", |
| to: [ "#session" ], |
| rights: [ "rw*" ], |
| }, |
| { |
| directory: "/dev/zero", |
| from: "realm", |
| to: [ "#session" ], |
| rights: [ "rw*" ], |
| }, |
| { |
| // features: config-data for cast_agent |
| directory: "/pkgfs/packages/config-data/0/data/cast_agent", |
| |
| // There is an approved Component Framework design to support |
| // offering subdirectories. |
| // |
| // WHEN AVAILABLE, THIS SHOULD BE CHANGED TO JUST: |
| // directory: "/pkgfs/packages/config-data/0/data", |
| // as: "/pkgfs-config-data" |
| // and then share "/pkgfs-config-data/cast_agent" with the |
| // cast_agent component. |
| from: "realm", |
| to: [ "#session" ], |
| rights: [ "r*" ], |
| }, |
| { |
| // features: config-data for setui_service (see above) |
| directory: "/pkgfs/packages/config-data/0/data/setui_service", |
| from: "realm", |
| to: [ "#session" ], |
| rights: [ "r*" ], |
| }, |
| { |
| // features: isolated-temp |
| directory: "/tmp", |
| from: "realm", |
| to: [ "#session" ], |
| rights: [ "rw*" ], |
| }, |
| ], |
| expose: [ |
| { |
| protocol: "/svc/fuchsia.session.Launcher", |
| from: "self", |
| }, |
| ], |
| } |