blob: 1bcd34eb7d59cfc732d4c6b86cacef4757cfa5f2 [file] [log] [blame]
{
include: [
"sdk/lib/diagnostics/inspect/client.shard.cml",
"sdk/lib/diagnostics/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.pkg.FontResolver",
"fuchsia.test.manager.Harness",
],
},
{
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.buildinfo.Provider",
"fuchsia.cobalt.LoggerFactory",
"fuchsia.exception.Handler",
"fuchsia.feedback.CrashReporter",
"fuchsia.feedback.CrashReportingProductRegister",
"fuchsia.hwinfo.Device",
"fuchsia.metrics.MetricEventLoggerFactory",
"fuchsia.net.NameLookup",
"fuchsia.net.neighbor.Controller",
"fuchsia.net.stack.Log",
"fuchsia.net.stack.Stack",
"fuchsia.netstack.Netstack",
"fuchsia.overnet.Overnet",
"fuchsia.overnet.ServicePublisher",
"fuchsia.pkg.PackageResolver",
"fuchsia.pkg.RepositoryManager",
"fuchsia.pkg.rewrite.Engine",
"fuchsia.posix.socket.Provider",
"fuchsia.power.manager.DriverManagerRegistration",
"fuchsia.process.Resolver",
"fuchsia.stash.SecureStore",
"fuchsia.sys.Environment",
"fuchsia.sys.Launcher",
"fuchsia.sys.Loader",
"fuchsia.tracing.controller.Controller",
"fuchsia.tracing.provider.Registry",
"fuchsia.ui.focus.FocusChainListenerRegistry",
"fuchsia.ui.input.ImeService",
"fuchsia.ui.input2.Keyboard",
"fuchsia.ui.input3.Keyboard",
"fuchsia.ui.input3.KeyEventInjector",
"fuchsia.ui.lifecycle.LifecycleController",
"fuchsia.ui.pointerinjector.Registry",
"fuchsia.ui.policy.Presenter",
"fuchsia.ui.scenic.Scenic",
"fuchsia.ui.shortcut.Manager",
"fuchsia.ui.views.ViewRefInstalled",
],
},
// 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.device.manager.DriverHostDevelopment",
path: "/svc_for_sys/fuchsia.device.manager.DriverHostDevelopment",
},
{
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",
},
// 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.update.CommitStatusProvider",
path: "/svc_for_sys/fuchsia.update.CommitStatusProvider",
},
{
protocol: "fuchsia.developer.remotecontrol.RemoteControl",
path: "/svc_for_sys/fuchsia.developer.remotecontrol.RemoteControl",
},
{
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.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.space.Manager",
path: "/svc_for_sys/fuchsia.space.Manager",
},
{
protocol: "fuchsia.feedback.LastRebootInfoProvider",
path: "/svc_for_sys/fuchsia.feedback.LastRebootInfoProvider",
},
{
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",
},
// 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 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.hardware.power.statecontrol.RebootMethodsWatcherRegister",
path: "/svc_for_sys/fuchsia.hardware.power.statecontrol.RebootMethodsWatcherRegister",
},
// From dhcpd
{
protocol: "fuchsia.net.dhcp.Server",
path: "/svc_for_sys/fuchsia.net.dhcp.Server",
},
// From session_manager
{
protocol: "fuchsia.input.injection.InputDeviceRegistry",
path: "/svc_for_sys/fuchsia.input.injection.InputDeviceRegistry",
},
// 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",
],
},
],
expose: [
{
directory: "hub",
from: "self",
},
{
protocol: [
"fuchsia.buildinfo.Provider",
"fuchsia.cobalt.LoggerFactory",
"fuchsia.exception.Handler",
"fuchsia.feedback.CrashReporter",
"fuchsia.feedback.CrashReportingProductRegister",
"fuchsia.hwinfo.Device",
"fuchsia.metrics.MetricEventLoggerFactory",
"fuchsia.net.NameLookup",
"fuchsia.net.neighbor.Controller",
"fuchsia.net.stack.Log",
"fuchsia.net.stack.Stack",
"fuchsia.netstack.Netstack",
"fuchsia.overnet.Overnet",
"fuchsia.overnet.ServicePublisher",
"fuchsia.pkg.FontResolver",
"fuchsia.pkg.PackageResolver",
"fuchsia.pkg.RepositoryManager",
"fuchsia.pkg.rewrite.Engine",
"fuchsia.posix.socket.Provider",
"fuchsia.power.manager.DriverManagerRegistration",
"fuchsia.process.Resolver",
"fuchsia.stash.SecureStore",
"fuchsia.sys.Environment",
"fuchsia.sys.Launcher",
"fuchsia.sys.Loader",
"fuchsia.test.manager.Harness",
"fuchsia.tracing.controller.Controller",
"fuchsia.tracing.provider.Registry",
"fuchsia.ui.focus.FocusChainListenerRegistry",
"fuchsia.ui.input.ImeService",
"fuchsia.ui.input2.Keyboard",
"fuchsia.ui.input3.Keyboard",
"fuchsia.ui.input3.KeyEventInjector",
"fuchsia.ui.lifecycle.LifecycleController",
"fuchsia.ui.pointerinjector.Registry",
"fuchsia.ui.policy.Presenter",
"fuchsia.ui.scenic.Scenic",
"fuchsia.ui.shortcut.Manager",
"fuchsia.ui.views.ViewRefInstalled",
],
from: "self",
},
{
protocol: [
"fuchsia.appmgr.Startup",
"fuchsia.sys.internal.ComponentEventProvider",
"fuchsia.sys.internal.LogConnector",
],
from: "self",
},
],
}