| { |
| "children": [ |
| { |
| "name": "driver_manager", |
| "url": "fuchsia-boot:///#meta/driver_manager.cm", |
| }, |
| { |
| "name": "fshost", |
| "url": "fuchsia-boot:///#meta/fshost.cm", |
| }, |
| { |
| "name": "appmgr", |
| "url": "fuchsia-pkg://fuchsia.com/appmgr#meta/appmgr.cm", |
| "startup": "eager", |
| }, |
| { |
| "name": "console", |
| "url": "fuchsia-boot:///#meta/console.cm", |
| }, |
| { |
| "name": "ptysvc", |
| "url": "fuchsia-boot:///#meta/ptysvc.cm", |
| }, |
| { |
| "name": "sysinfo", |
| "url": "fuchsia-boot:///#meta/sysinfo.cm", |
| }, |
| ], |
| "offer": [ |
| { |
| "directory": "/boot", |
| "from": "realm", |
| "to": [ "#driver_manager", "#fshost", "#appmgr" ], |
| "rights": ["rx*"], |
| }, |
| // Services routed from "realm" at the root are either provided by |
| // bootsvc through component_manager's namespace or by component_manager |
| // itself as a builtin service |
| { |
| "protocol": [ |
| "/svc/fuchsia.boot.FactoryItems", |
| "/svc/fuchsia.boot.ReadOnlyLog", |
| "/svc/fuchsia.boot.RootJob", |
| "/svc/fuchsia.boot.RootJobForInspect", |
| "/svc/fuchsia.boot.WriteOnlyLog", |
| "/svc/fuchsia.kernel.Stats", |
| ], |
| "from": "realm", |
| "to": [ "#driver_manager", "#appmgr" ], |
| }, |
| { |
| "protocol": "/svc/fuchsia.boot.RootResource", |
| "from": "realm", |
| "to": [ "#appmgr", "#driver_manager", "#console", "#sysinfo" ], |
| }, |
| { |
| "protocol": [ |
| "/svc/fuchsia.boot.Arguments", |
| "/svc/fuchsia.boot.Items", |
| ], |
| "from": "realm", |
| "to": [ "#driver_manager", "#fshost" ], |
| }, |
| { |
| "protocol": "/svc/fuchsia.process.Launcher", |
| "from": "realm", |
| "to": [ "#driver_manager", "#fshost", "#appmgr" ], |
| }, |
| // ...and the rest of these are services provided by components for each other |
| { |
| // TODO(fxb/34633): DEPRECATED. Do not add new dependencies on the fshost |
| // loader service! |
| "protocol": "/svc/fuchsia.fshost.Loader", |
| "from": "#fshost", |
| "to": [ "#driver_manager" ], |
| }, |
| { |
| "directory": "/dev", |
| "from": "#driver_manager", |
| "to": [ "#fshost", "#appmgr", "#sysinfo" ], |
| }, |
| { |
| "directory": "/minfs", |
| "from": "#fshost", |
| "to": [ "#appmgr", "#driver_manager" ], |
| }, |
| { |
| "directory": "/pkgfs", |
| "from": "#fshost", |
| "to": [ "#appmgr", "#driver_manager" ], |
| }, |
| { |
| "directory": "/system-delayed", |
| "from": "#fshost", |
| "to": [ "#driver_manager" ], |
| }, |
| { |
| "directory": "/system", |
| "from": "#fshost", |
| "to": [ "#appmgr", "#driver_manager" ], |
| }, |
| { |
| "directory": "/blob", |
| "from": "#fshost", |
| "to": [ "#appmgr", "#driver_manager" ], |
| }, |
| { |
| "directory": "/volume", |
| "from": "#fshost", |
| "to": [ "#driver_manager" ], |
| }, |
| { |
| "directory": "/install", |
| "from": "#fshost", |
| "to": [ "#driver_manager" ], |
| }, |
| { |
| "directory": "/tmp", |
| "from": "#fshost", |
| "to": [ "#appmgr", "#driver_manager" ], |
| }, |
| { |
| "directory": "/bin", |
| "from": "#fshost", |
| "to": [ "#driver_manager" ], |
| }, |
| { |
| "protocol": [ |
| "/svc/fuchsia.device.NameProvider", |
| "/svc/fuchsia.device.manager.Administrator", |
| "/svc/fuchsia.device.manager.DebugDumper", |
| "/svc/fuchsia.kernel.Counter", |
| "/svc/fuchsia.kernel.DebugBroker", |
| "/svc/fuchsia.paver.Paver", |
| "/svc/fuchsia.scheduler.ProfileProvider", |
| "/svc/fuchsia.virtualconsole.SessionManager", |
| ], |
| "from": "#driver_manager", |
| "to": [ "#appmgr" ], |
| }, |
| { |
| "protocol": [ |
| "/svc/fuchsia.cobalt.LoggerFactory", |
| "/svc/fuchsia.tracing.provider.Registry", |
| ], |
| "from": "#appmgr", |
| "to": [ "#driver_manager", "#fshost" ], |
| }, |
| // Offer the kernel serial console to the driver_manager |
| { |
| "protocol": "/svc/fuchsia.hardware.pty.Device", |
| "from": "#console", |
| "to": [ "#driver_manager" ], |
| "as": "/svc/console", |
| }, |
| // Offer the pty service to appmgr |
| { |
| "protocol": "/svc/fuchsia.hardware.pty.Device", |
| "from": "#ptysvc", |
| "to": [ |
| "#appmgr", |
| "#driver_manager", |
| ], |
| }, |
| |
| // driver_manager needs the v1 hub for the serial console |
| { |
| "directory": "/hub", |
| "from": "#appmgr", |
| "to": [ "#driver_manager" ], |
| }, |
| { |
| "protocol": "/svc/fuchsia.sysinfo.SysInfo", |
| "from": "#sysinfo", |
| "to": [ "#appmgr", "#driver_manager" ], |
| }, |
| // Offer the ELF runner to children. |
| { |
| "runner": "elf", |
| "from": "realm", |
| "to": [ |
| "#appmgr", |
| "#console", |
| "#driver_manager", |
| "#fshost", |
| "#ptysvc", |
| "#sysinfo", |
| ], |
| }, |
| // Non-zircon services for svchost |
| { |
| "protocol": [ |
| "/svc/fuchsia.amber.Control", |
| "/svc/fuchsia.devicesettings.DeviceSettingsManager", |
| "/svc/fuchsia.exception.Handler", |
| "/svc/fuchsia.logger.Log", |
| "/svc/fuchsia.logger.LogSink", |
| "/svc/fuchsia.net.NameLookup", |
| "/svc/fuchsia.net.stack.Log", |
| "/svc/fuchsia.net.stack.Stack", |
| "/svc/fuchsia.netstack.Netstack", |
| "/svc/fuchsia.pkg.PackageResolver", |
| "/svc/fuchsia.pkg.RepositoryManager", |
| "/svc/fuchsia.pkg.rewrite.Engine", |
| "/svc/fuchsia.posix.socket.Provider", |
| "/svc/fuchsia.process.Resolver", |
| "/svc/fuchsia.sys.Environment", |
| "/svc/fuchsia.sys.Launcher", |
| "/svc/fuchsia.tracing.controller.Controller", |
| "/svc/fuchsia.wlan.service.Wlan", |
| ], |
| "from": "#appmgr", |
| "to": [ "#driver_manager" ], |
| }, |
| { |
| "protocol": [ |
| "/svc/fuchsia.fshost.Admin", |
| "/svc/fuchsia.fshost.Filesystems", |
| "/svc/fuchsia.fshost.Registry", |
| ], |
| "from": "#fshost", |
| "to": [ "#driver_manager" ], |
| }, |
| ], |
| "expose": [ |
| // This handle is used by component manager to resolve packages from the |
| // base package set. |
| { "directory": "/pkgfs-delayed", "from": "#fshost", "as": "/pkgfs" }, |
| ] |
| } |