blob: de1ebd1c798a0392d63363d2ea4c9a836eb1d9d2 [file] [log] [blame]
{
include: [
"//src/developer/memory/monitor/meta/memory_monitor.sys_shard.cml",
"inspect/client.shard.cml",
"syslog/client.shard.cml",
],
program: {
runner: "elf",
binary: "bin/appmgr",
// Run appmgr in a job with ZX_POL_AMBIENT_MARK_VMO_EXEC job policy, so that it can in turn
// implement the v1 'deprecated-ambient-replace-as-executable' feature.
job_policy_ambient_mark_vmo_exec: "true",
lifecycle: { stop_event: "notify" },
},
capabilities: [
{
protocol: "fuchsia.appmgr.Startup",
path: "/appmgr_svc/fuchsia.appmgr.Startup",
},
{
protocol: [
"fuchsia.test.manager.Query",
"fuchsia.test.manager.RunBuilder",
],
},
{
directory: "hub",
rights: [ "rw*" ],
path: "/hub",
},
// These protocols exposed by appmgr are services from the v1 component
// runtime being made available to the v2 component runtime. These all cause
// dependency cycles between the two runtimes. Cycles require trickier
// runtime logic to ensure correctness, are a general design smell, and may
// be disallowed in the future.
{
protocol: [
"fuchsia.bluetooth.bredr.Profile",
"fuchsia.cobalt.LoggerFactory",
"fuchsia.deprecatedtimezone.Timezone",
"fuchsia.exception.Handler",
"fuchsia.factory.MiscFactoryStoreProvider",
"fuchsia.feedback.CrashReporter",
"fuchsia.feedback.CrashReportingProductRegister",
"fuchsia.hwinfo.Device",
"fuchsia.intl.PropertyProvider",
"fuchsia.media.Audio",
"fuchsia.media.AudioDeviceEnumerator",
"fuchsia.media.SessionAudioConsumerFactory",
"fuchsia.media.sessions2.Discovery",
"fuchsia.media.sessions2.Publisher",
"fuchsia.mediacodec.CodecFactory",
"fuchsia.memorypressure.Provider",
"fuchsia.metrics.MetricEventLoggerFactory",
"fuchsia.net.interfaces.State",
"fuchsia.net.name.Lookup",
"fuchsia.net.neighbor.Controller",
"fuchsia.net.stack.Log",
"fuchsia.net.stack.Stack",
"fuchsia.netstack.Netstack",
"fuchsia.overnet.Overnet",
"fuchsia.overnet.ServicePublisher",
"fuchsia.posix.socket.Provider",
"fuchsia.power.manager.DriverManagerRegistration",
"fuchsia.process.Resolver",
"fuchsia.settings.Audio",
"fuchsia.settings.Input",
"fuchsia.stash.SecureStore",
"fuchsia.sys.Environment",
"fuchsia.sys.Launcher",
"fuchsia.sys.Loader",
"fuchsia.sysmem.Allocator",
"fuchsia.tracing.controller.Controller",
"fuchsia.tracing.provider.Registry",
"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.virtualization.Manager",
],
},
// These protocols exposed by appmgr are implemented by appmgr.
{
protocol: "fuchsia.sys.internal.LogConnector",
from: "self",
path: "/appmgr_svc/fuchsia.sys.internal.LogConnector",
},
{
protocol: "fuchsia.sys.internal.ComponentEventProvider",
from: "self",
path: "/appmgr_svc/fuchsia.sys.internal.ComponentEventProvider",
},
],
use: [
{
directory: "blob",
rights: [ "rw*" ],
path: "/blob",
},
{
directory: "boot",
rights: [ "rx*" ],
path: "/boot",
},
{
directory: "dev",
rights: [ "rw*" ],
path: "/dev",
},
{
directory: "durable",
rights: [ "rw*" ],
path: "/durable",
},
{
directory: "factory",
rights: [ "r*" ],
path: "/factory",
},
{
directory: "minfs",
rights: [ "rw*" ],
path: "/data",
},
{
directory: "pkgfs",
rights: [ "rx*" ],
path: "/pkgfs",
},
{
directory: "system",
rights: [ "rx*" ],
path: "/system",
},
{
directory: "tmp",
rights: [ "rw*" ],
path: "/tmp",
},
{
directory: "hub",
rights: [ "r*" ],
path: "/hub-v2",
},
// Services used by appmgr with the svc_for_sys prefix are passed through to
// the sys realm
// From bootsvc
{
protocol: "fuchsia.boot.Arguments",
path: "/svc_for_sys/fuchsia.boot.Arguments",
},
{
protocol: "fuchsia.boot.FactoryItems",
path: "/svc_for_sys/fuchsia.boot.FactoryItems",
},
{
protocol: "fuchsia.boot.Items",
path: "/svc_for_sys/fuchsia.boot.Items",
},
{
protocol: "fuchsia.boot.ReadOnlyLog",
path: "/svc_for_sys/fuchsia.boot.ReadOnlyLog",
},
{
protocol: "fuchsia.kernel.RootJob",
path: "/svc_for_sys/fuchsia.kernel.RootJob",
},
{
protocol: "fuchsia.kernel.RootJobForInspect",
path: "/svc_for_sys/fuchsia.kernel.RootJobForInspect",
},
{
protocol: "fuchsia.boot.RootResource",
path: "/svc_for_sys/fuchsia.boot.RootResource",
},
{
protocol: "fuchsia.devicesettings.DeviceSettingsManager",
path: "/svc_for_sys/fuchsia.devicesettings.DeviceSettingsManager",
},
{
protocol: "fuchsia.boot.WriteOnlyLog",
path: "/svc_for_sys/fuchsia.boot.WriteOnlyLog",
},
{
protocol: "fuchsia.kernel.DebugResource",
path: "/svc_for_sys/fuchsia.kernel.DebugResource",
},
{
protocol: "fuchsia.kernel.HypervisorResource",
path: "/svc_for_sys/fuchsia.kernel.HypervisorResource",
},
{
protocol: "fuchsia.kernel.InfoResource",
path: "/svc_for_sys/fuchsia.kernel.InfoResource",
},
{
protocol: "fuchsia.kernel.IoportResource",
path: "/svc_for_sys/fuchsia.kernel.IoportResource",
},
{
protocol: "fuchsia.kernel.IrqResource",
path: "/svc_for_sys/fuchsia.kernel.IrqResource",
},
{
protocol: "fuchsia.kernel.MmioResource",
path: "/svc_for_sys/fuchsia.kernel.MmioResource",
},
{
protocol: "fuchsia.kernel.SmcResource",
path: "/svc_for_sys/fuchsia.kernel.SmcResource",
},
{
protocol: "fuchsia.kernel.Stats",
path: "/svc_for_sys/fuchsia.kernel.Stats",
},
{
protocol: "fuchsia.kernel.VmexResource",
path: "/svc_for_sys/fuchsia.kernel.VmexResource",
},
{
protocol: "fuchsia.tracing.kernel.Controller",
path: "/svc_for_sys/fuchsia.tracing.kernel.Controller",
},
{
protocol: "fuchsia.tracing.kernel.Reader",
path: "/svc_for_sys/fuchsia.tracing.kernel.Reader",
},
// From ptysvc
{
protocol: "fuchsia.hardware.pty.Device",
path: "/svc_for_sys/fuchsia.hardware.pty.Device",
},
// From devcoordinator
{
protocol: "fuchsia.device.NameProvider",
path: "/svc_for_sys/fuchsia.device.NameProvider",
},
{
protocol: "fuchsia.device.manager.Administrator",
path: "/svc_for_sys/fuchsia.device.manager.Administrator",
},
{
protocol: "fuchsia.device.manager.DebugDumper",
path: "/svc_for_sys/fuchsia.device.manager.DebugDumper",
},
{
protocol: "fuchsia.driver.registrar.DriverRegistrar",
path: "/svc_for_sys/fuchsia.driver.registrar.DriverRegistrar",
},
{
protocol: "fuchsia.hardware.power.statecontrol.Admin",
path: "/svc_for_sys/fuchsia.hardware.power.statecontrol.Admin",
},
{
protocol: "fuchsia.kernel.Counter",
path: "/svc_for_sys/fuchsia.kernel.Counter",
},
{
protocol: "fuchsia.kernel.DebugBroker",
path: "/svc_for_sys/fuchsia.kernel.DebugBroker",
},
{
protocol: "fuchsia.paver.Paver",
path: "/svc_for_sys/fuchsia.paver.Paver",
},
{
protocol: "fuchsia.scheduler.ProfileProvider",
path: "/svc_for_sys/fuchsia.scheduler.ProfileProvider",
},
{
protocol: "fuchsia.virtualconsole.SessionManager",
path: "/svc_for_sys/fuchsia.virtualconsole.SessionManager",
},
// From component_manager
{
protocol: "fuchsia.process.Launcher",
path: "/svc_for_sys/fuchsia.process.Launcher",
},
{
protocol: "fuchsia.time.Maintenance",
path: "/svc_for_sys/fuchsia.time.Maintenance",
},
{
protocol: "fuchsia.sys2.CrashIntrospect",
path: "/svc_for_sys/fuchsia.sys2.CrashIntrospect",
},
// From v2 components
{
protocol: "fuchsia.net.http.Loader",
path: "/svc_for_sys/fuchsia.net.http.Loader",
},
{
protocol: "fuchsia.power.BatteryManager",
path: "/svc_for_sys/fuchsia.power.BatteryManager",
},
{
protocol: "fuchsia.power.test.BatterySimulator",
path: "/svc_for_sys/fuchsia.power.test.BatterySimulator",
},
{
protocol: "fuchsia.fonts.Provider",
path: "/svc_for_sys/fuchsia.fonts.Provider",
},
{
protocol: "fuchsia.hwinfo.Product",
path: "/svc_for_sys/fuchsia.hwinfo.Product",
},
{
protocol: "fuchsia.hwinfo.Device",
path: "/svc_for_sys/fuchsia.hwinfo.Device",
},
{
protocol: "fuchsia.hwinfo.Board",
path: "/svc_for_sys/fuchsia.hwinfo.Board",
},
{
protocol: "fuchsia.update.CommitStatusProvider",
path: "/svc_for_sys/fuchsia.update.CommitStatusProvider",
},
{
protocol: "fuchsia.update.installer.Installer",
path: "/svc_for_sys/fuchsia.update.installer.Installer",
},
{
protocol: "fuchsia.developer.remotecontrol.RemoteControl",
path: "/svc_for_sys/fuchsia.developer.remotecontrol.RemoteControl",
},
{
protocol: "fuchsia.starnix.developer.Manager",
path: "/svc_for_sys/fuchsia.starnix.developer.Manager",
},
{
protocol: "fuchsia.hardware.serial.NewDeviceProxy",
path: "/svc_for_sys/fuchsia.hardware.serial.NewDeviceProxy",
},
{
protocol: "fuchsia.systemmetrics.test.SystemMetricsLogger",
path: "/svc_for_sys/fuchsia.systemmetrics.test.SystemMetricsLogger",
},
{
protocol: "fuchsia.thermal.test.TemperatureLogger",
path: "/svc_for_sys/fuchsia.thermal.test.TemperatureLogger",
},
{
protocol: "fuchsia.ui.activity.Provider",
path: "/svc_for_sys/fuchsia.ui.activity.Provider",
},
{
protocol: "fuchsia.ui.brightness.Control",
path: "/svc_for_sys/fuchsia.ui.brightness.Control",
},
{
protocol: "fuchsia.ui.activity.Tracker",
path: "/svc_for_sys/fuchsia.ui.activity.Tracker",
},
{
protocol: "fuchsia.ui.activity.control.Control",
path: "/svc_for_sys/fuchsia.ui.activity.control.Control",
},
{
protocol: "fuchsia.pkg.PackageCache",
path: "/svc_for_sys/fuchsia.pkg.PackageCache",
},
{
protocol: "fuchsia.pkg.PackageResolver",
path: "/svc_for_sys/fuchsia.pkg.PackageResolver",
},
{
protocol: "fuchsia.pkg.PackageResolverAdmin",
path: "/svc_for_sys/fuchsia.pkg.PackageResolverAdmin",
},
{
protocol: "fuchsia.pkg.RepositoryManager",
path: "/svc_for_sys/fuchsia.pkg.RepositoryManager",
},
{
protocol: "fuchsia.pkg.rewrite.Engine",
path: "/svc_for_sys/fuchsia.pkg.rewrite.Engine",
},
{
protocol: "fuchsia.space.Manager",
path: "/svc_for_sys/fuchsia.space.Manager",
},
{
protocol: "fuchsia.vboot.FirmwareParam",
path: "/svc_for_sys/fuchsia.vboot.FirmwareParam",
},
// TODO(fxbug.dev/71830): Remove once the Feedback migration has completed.
{
protocol: "fuchsia.feedback.internal.LastRebootDirectoryMigrator",
path: "/svc_for_sys/fuchsia.feedback.internal.LastRebootDirectoryMigrator",
},
{
protocol: "fuchsia.stash.Store",
path: "/svc_for_sys/fuchsia.stash.Store",
},
{
protocol: "fuchsia.stash.Store2",
path: "/svc_for_sys/fuchsia.stash.Store2",
},
{
protocol: "fuchsia.stash.SecureStore",
path: "/svc_for_sys/fuchsia.stash.SecureStore",
},
{
protocol: "fuchsia.vulkan.loader.Loader",
path: "/svc_for_sys/fuchsia.vulkan.loader.Loader",
},
// From v2 Bluetooth components
{
protocol: "fuchsia.bluetooth.avrcp.PeerManager",
path: "/svc_for_sys/fuchsia.bluetooth.avrcp.PeerManager",
},
{
protocol: "fuchsia.bluetooth.avrcp.test.PeerManagerExt",
path: "/svc_for_sys/fuchsia.bluetooth.avrcp.test.PeerManagerExt",
},
{
protocol: "fuchsia.bluetooth.a2dp.AudioMode",
path: "/svc_for_sys/fuchsia.bluetooth.a2dp.AudioMode",
},
{
protocol: "fuchsia.bluetooth.internal.a2dp.Controller",
path: "/svc_for_sys/fuchsia.bluetooth.internal.a2dp.Controller",
},
{
protocol: "fuchsia.tpm.cr50.Cr50",
path: "/svc_for_sys/fuchsia.tpm.cr50.Cr50",
},
// From archivist
{
protocol: "fuchsia.diagnostics.ArchiveAccessor",
path: "/svc_for_sys/fuchsia.diagnostics.ArchiveAccessor",
},
{
protocol: "fuchsia.diagnostics.FeedbackArchiveAccessor",
path: "/svc_for_sys/fuchsia.diagnostics.FeedbackArchiveAccessor",
},
{
protocol: "fuchsia.diagnostics.LegacyMetricsArchiveAccessor",
path: "/svc_for_sys/fuchsia.diagnostics.LegacyMetricsArchiveAccessor",
},
{
protocol: "fuchsia.logger.Log",
path: "/svc_for_sys/fuchsia.logger.Log",
},
// From build-info
{
protocol: "fuchsia.buildinfo.Provider",
path: "/svc_for_sys/fuchsia.buildinfo.Provider",
},
// From diagnostics-persistence
{
protocol: "fuchsia.diagnostics.persist.DataPersistence-wlan",
path: "/svc_for_sys/fuchsia.diagnostics.persist.DataPersistence-wlan",
},
// From sysinfo
{
protocol: "fuchsia.sysinfo.SysInfo",
path: "/svc_for_sys/fuchsia.sysinfo.SysInfo",
},
// From power_manager
{
protocol: "fuchsia.thermal.Controller",
path: "/svc_for_sys/fuchsia.thermal.Controller",
},
{
protocol: "fuchsia.power.profile.Watcher",
path: "/svc_for_sys/fuchsia.power.profile.Watcher",
},
{
protocol: "fuchsia.hardware.power.statecontrol.RebootMethodsWatcherRegister",
path: "/svc_for_sys/fuchsia.hardware.power.statecontrol.RebootMethodsWatcherRegister",
},
{
protocol: "fuchsia.ssh.AuthorizedKeys",
path: "/svc_for_sys/fuchsia.ssh.AuthorizedKeys",
},
// From dhcpd
{
protocol: "fuchsia.net.dhcp.Server",
path: "/svc_for_sys/fuchsia.net.dhcp.Server",
},
// From wlancfg
{
protocol: "fuchsia.wlan.policy.ClientProvider",
path: "/svc_for_sys/fuchsia.wlan.policy.ClientProvider",
},
{
protocol: "fuchsia.wlan.policy.ClientListener",
path: "/svc_for_sys/fuchsia.wlan.policy.ClientListener",
},
{
protocol: "fuchsia.wlan.policy.AccessPointProvider",
path: "/svc_for_sys/fuchsia.wlan.policy.AccessPointProvider",
},
{
protocol: "fuchsia.wlan.policy.AccessPointListener",
path: "/svc_for_sys/fuchsia.wlan.policy.AccessPointListener",
},
{
protocol: "fuchsia.wlan.product.deprecatedclient.DeprecatedClient",
path: "/svc_for_sys/fuchsia.wlan.product.deprecatedclient.DeprecatedClient",
},
{
protocol: "fuchsia.wlan.product.deprecatedconfiguration.DeprecatedConfigurator",
path: "/svc_for_sys/fuchsia.wlan.product.deprecatedconfiguration.DeprecatedConfigurator",
},
// From wlandevicemonitor
{
protocol: "fuchsia.wlan.device.service.DeviceMonitor",
path: "/svc_for_sys/fuchsia.wlan.device.service.DeviceMonitor",
},
// From wlanstack
{
protocol: "fuchsia.wlan.device.service.DeviceService",
path: "/svc_for_sys/fuchsia.wlan.device.service.DeviceService",
},
// From location
{
protocol: "fuchsia.location.position.EmergencyProvider",
path: "/svc_for_sys/fuchsia.location.position.EmergencyProvider",
},
{
protocol: "fuchsia.location.sensor.WlanBaseStationWatcher",
path: "/svc_for_sys/fuchsia.location.sensor.WlanBaseStationWatcher",
},
{
protocol: "fuchsia.location.namedplace.RegulatoryRegionConfigurator",
path: "/svc_for_sys/fuchsia.location.namedplace.RegulatoryRegionConfigurator",
},
{
protocol: "fuchsia.location.namedplace.RegulatoryRegionWatcher",
path: "/svc_for_sys/fuchsia.location.namedplace.RegulatoryRegionWatcher",
},
// From session_manager
{
protocol: "fuchsia.input.injection.InputDeviceRegistry",
path: "/svc_for_sys/fuchsia.input.injection.InputDeviceRegistry",
},
{
protocol: "fuchsia.session.Launcher",
path: "/svc_for_sys/fuchsia.session.Launcher",
},
// From session_manager
{
protocol: "fuchsia.ui.accessibility.view.Registry",
path: "/svc_for_sys/fuchsia.ui.accessibility.view.Registry",
},
// From test_manager
{
protocol: "fuchsia.test.manager.Query",
path: "/svc_for_sys/fuchsia.test.manager.Query",
},
// From test_manager
{
protocol: "fuchsia.test.manager.RunBuilder",
path: "/svc_for_sys/fuchsia.test.manager.RunBuilder",
},
// These services are used by appmgr directly
{
protocol: [
"fuchsia.boot.WriteOnlyLog",
// For triggering reboot when sysmgr exits
"fuchsia.hardware.power.statecontrol.Admin",
"fuchsia.process.Launcher",
],
},
// From soundplayer
{
protocol: "fuchsia.media.sounds.Player",
path: "/svc_for_sys/fuchsia.media.sounds.Player",
},
],
expose: [
{
directory: "hub",
from: "self",
},
{
protocol: [
"fuchsia.bluetooth.bredr.Profile",
"fuchsia.cobalt.LoggerFactory",
"fuchsia.deprecatedtimezone.Timezone",
"fuchsia.exception.Handler",
"fuchsia.factory.MiscFactoryStoreProvider",
"fuchsia.feedback.CrashReporter",
"fuchsia.feedback.CrashReportingProductRegister",
"fuchsia.hwinfo.Device",
"fuchsia.intl.PropertyProvider",
"fuchsia.media.Audio",
"fuchsia.media.AudioDeviceEnumerator",
"fuchsia.media.SessionAudioConsumerFactory",
"fuchsia.media.sessions2.Discovery",
"fuchsia.media.sessions2.Publisher",
"fuchsia.mediacodec.CodecFactory",
"fuchsia.memorypressure.Provider",
"fuchsia.metrics.MetricEventLoggerFactory",
"fuchsia.net.interfaces.State",
"fuchsia.net.name.Lookup",
"fuchsia.net.neighbor.Controller",
"fuchsia.net.stack.Log",
"fuchsia.net.stack.Stack",
"fuchsia.netstack.Netstack",
"fuchsia.overnet.Overnet",
"fuchsia.overnet.ServicePublisher",
"fuchsia.posix.socket.Provider",
"fuchsia.power.manager.DriverManagerRegistration",
"fuchsia.process.Resolver",
"fuchsia.settings.Audio",
"fuchsia.settings.Input",
"fuchsia.stash.SecureStore",
"fuchsia.sys.Environment",
"fuchsia.sys.Launcher",
"fuchsia.sys.Loader",
"fuchsia.sysmem.Allocator",
"fuchsia.test.manager.Query",
"fuchsia.test.manager.RunBuilder",
"fuchsia.tracing.controller.Controller",
"fuchsia.tracing.provider.Registry",
"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.virtualization.Manager",
],
from: "self",
},
{
protocol: [
"fuchsia.appmgr.Startup",
"fuchsia.sys.internal.ComponentEventProvider",
"fuchsia.sys.internal.LogConnector",
],
from: "self",
},
],
}