| // Copyright 2024 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. |
| { |
| children: [ |
| { |
| name: "core", |
| url: "fuchsia-pkg://fuchsia.com/core#meta/core.cm", |
| environment: "#core-env", |
| }, |
| { |
| name: "startup", |
| url: "fuchsia-boot:///startup#meta/startup.cm", |
| startup: "eager", |
| environment: "#elf-env", |
| }, |
| ], |
| offer: [ |
| { |
| protocol: "fuchsia.component.Binder", |
| from: "#core", |
| as: "fuchsia.component.CoreBinder", |
| to: "#startup", |
| source_availability: "unknown", |
| }, |
| { |
| config: [ |
| "fuchsia.bluetooth.LegacyPairing", |
| "fuchsia.bluetooth.ScoOffloadPathIndex", |
| "fuchsia.diagnostics.sampler.ProjectConfigs", |
| "fuchsia.fonts.FontManifest", |
| "fuchsia.fonts.VerboseLogging", |
| "fuchsia.fshost.FxfsBlob", |
| "fuchsia.fshost.StorageHost", |
| "fuchsia.http-client.StopOnIdleTimeoutMillis", |
| "fuchsia.memory.CaptureOnPressureChange", |
| "fuchsia.memory.CriticalCaptureDelay", |
| "fuchsia.memory.ImminentOomCaptureDelay", |
| "fuchsia.memory.NormalCaptureDelay", |
| "fuchsia.memory.WarningCaptureDelay", |
| "fuchsia.power.cpu.BoostEnabled", |
| "fuchsia.power.SuspendEnabled", |
| "fuchsia.recovery.DisplayRotation", |
| "fuchsia.recovery.UseFxBlob", |
| "fuchsia.scenic.DisplayComposition", |
| "fuchsia.scenic.DisplayRotation", |
| "fuchsia.scenic.FrameCounterOverlay", |
| "fuchsia.scenic.FramePredictionMarginInUs", |
| "fuchsia.scenic.FrameSchedulerMinPredictedFrameDurationInUs", |
| "fuchsia.scenic.ICanHazDisplayId", |
| "fuchsia.scenic.ICanHazDisplayMode", |
| "fuchsia.scenic.MaxDisplayHorizontalResolutionPx", |
| "fuchsia.scenic.MaxDisplayRefreshRateMillihertz", |
| "fuchsia.scenic.MaxDisplayVerticalResolutionPx", |
| "fuchsia.scenic.MinDisplayHorizontalResolutionPx", |
| "fuchsia.scenic.MinDisplayRefreshRateMillihertz", |
| "fuchsia.scenic.MinDisplayVerticalResolutionPx", |
| "fuchsia.scenic.PointerAutoFocus", |
| "fuchsia.scenic.Renderer", |
| "fuchsia.session.AutoLaunch", |
| "fuchsia.session.SessionUrl", |
| "fuchsia.session.window.Collection", |
| "fuchsia.session.window.InitialElementUrl", |
| "fuchsia.session.window.InitialViewIdAnnotation", |
| "fuchsia.time.config.HasWakeAlarms", |
| "fuchsia.time.config.WritableUTCTime", |
| "fuchsia.ui.AttachA11yView", |
| "fuchsia.ui.DisplayPixelDensity", |
| "fuchsia.ui.EnableButtonBatonPassing", |
| "fuchsia.ui.EnableMouseBatonPassing", |
| "fuchsia.ui.EnableTouchBatonPassing", |
| "fuchsia.ui.IdleThresholdMs", |
| "fuchsia.ui.ManageDisplayPower", |
| "fuchsia.ui.PowerOffDelayMillis", |
| "fuchsia.ui.PowerOnDelayMillis", |
| "fuchsia.ui.SupportedInputDevices", |
| "fuchsia.ui.ViewingDistance", |
| "fuchsia.ui.VisualDebuggingLevel", |
| "fuchsia.wlan.RecoveryEnabled", |
| "fuchsia.wlan.RecoveryProfile", |
| "fuchsia.wlan.RoamingPolicy", |
| ], |
| from: "#config", |
| to: "#core", |
| availability: "same_as_target", |
| }, |
| { |
| directory: "boot", |
| from: "parent", |
| to: "#core", |
| }, |
| { |
| protocol: [ |
| "fuchsia.boot.Arguments", |
| "fuchsia.boot.FactoryItems", |
| "fuchsia.boot.Items", |
| "fuchsia.boot.ReadOnlyLog", |
| "fuchsia.boot.SvcStashProvider", |
| "fuchsia.boot.WriteOnlyLog", |
| "fuchsia.kernel.CpuResource", |
| "fuchsia.kernel.DebuglogResource", |
| "fuchsia.kernel.DebugResource", |
| "fuchsia.kernel.EnergyInfoResource", |
| "fuchsia.kernel.HypervisorResource", |
| "fuchsia.kernel.InfoResource", |
| "fuchsia.kernel.IommuResource", |
| "fuchsia.kernel.IoportResource", |
| "fuchsia.kernel.IrqResource", |
| "fuchsia.kernel.MexecResource", |
| "fuchsia.kernel.MmioResource", |
| "fuchsia.kernel.MsiResource", |
| "fuchsia.kernel.PowerResource", |
| "fuchsia.kernel.ProfileResource", |
| "fuchsia.kernel.RootJob", |
| "fuchsia.kernel.RootJobForInspect", |
| "fuchsia.kernel.SamplingResource", |
| "fuchsia.kernel.SmcResource", |
| "fuchsia.kernel.StallResource", |
| "fuchsia.kernel.Stats", |
| "fuchsia.kernel.TracingResource", |
| "fuchsia.kernel.VmexResource", |
| "fuchsia.pkg.PackageResolver-boot", |
| "fuchsia.process.Launcher", |
| "fuchsia.sys2.BootController", |
| "fuchsia.sys2.CrashIntrospect", |
| "fuchsia.update.verify.HealthVerification", |
| ], |
| from: "parent", |
| to: "#core", |
| }, |
| { |
| event_stream: [ |
| "capability_requested", |
| "debug_started", |
| "destroyed", |
| "started", |
| "stopped", |
| ], |
| from: "parent", |
| to: "#core", |
| }, |
| { |
| protocol: [ "fuchsia.time.Maintenance" ], |
| from: "parent", |
| to: "#core", |
| }, |
| { |
| protocol: [ "fuchsia.memory.attribution.Provider" ], |
| from: "#elf_runner", |
| to: "#core", |
| }, |
| |
| // ...and the rest of these are capabilities provided by components for each other |
| { |
| directory: [ |
| "base-bin", |
| "blob", |
| "block", |
| "boot-bin", |
| "build-info", |
| "config-data", |
| "data", |
| "dev-builtin", |
| "dev-class", |
| "dev-topological", |
| "factory", |
| "pkgfs", |
| "root-ssl-certificates", |
| "system", |
| "tmp", |
| ], |
| from: "#bootstrap", |
| to: "#core", |
| }, |
| { |
| directory: "debug_block", |
| from: "#bootstrap", |
| to: "#core", |
| availability: "optional", |
| }, |
| |
| // Non-zircon services for bootstrap |
| { |
| protocol: [ |
| "fuchsia.device.NameProvider", |
| "fuchsia.diagnostics.LogSettings", |
| "fuchsia.driver.crash.CrashIntrospect", |
| "fuchsia.driver.development.Manager", |
| "fuchsia.driver.registrar.DriverRegistrar", |
| "fuchsia.fshost.Admin", |
| "fuchsia.fxfs.BlobReader", |
| "fuchsia.hardware.power.statecontrol.Admin", |
| "fuchsia.hardware.power.statecontrol.RebootMethodsWatcherRegister", |
| "fuchsia.hardware.power.statecontrol.ShutdownWatcherRegister", |
| "fuchsia.logger.Log", |
| "fuchsia.paver.Paver", |
| "fuchsia.pkg.PackageCache", |
| "fuchsia.pkg.PackageResolver-base", |
| "fuchsia.pkg.RetainedBlobs", |
| "fuchsia.pkg.RetainedPackages", |
| "fuchsia.power.button.Monitor", |
| "fuchsia.power.clientlevel.Connector", |
| |
| // TODO(https://fxbug.dev/389134835): Remove the initiator |
| // capability. |
| "fuchsia.power.CollaborativeRebootInitiator", |
| "fuchsia.power.internal.CollaborativeRebootScheduler", |
| "fuchsia.power.profile.Watcher", |
| "fuchsia.power.systemmode.ClientConfigurator", |
| "fuchsia.power.systemmode.Requester", |
| "fuchsia.scheduler.deprecated.ProfileProvider", |
| "fuchsia.scheduler.RoleManager", |
| "fuchsia.space.Manager", |
| "fuchsia.sysinfo.SysInfo", |
| "fuchsia.sysmem.Allocator", |
| "fuchsia.sysmem2.Allocator", |
| "fuchsia.thermal.ClientStateConnector", |
| "fuchsia.thermal.SensorManager", |
| ], |
| from: "#bootstrap", |
| to: "#core", |
| }, |
| { |
| protocol: [ |
| "fuchsia.fshost.Recovery", |
| "fuchsia.fshost.StarnixVolumeProvider", |
| "fuchsia.fxfs.FileBackedVolumeProvider", |
| "fuchsia.virtualconsole.SessionManager", |
| ], |
| from: "#bootstrap", |
| to: "#core", |
| availability: "optional", |
| }, |
| { |
| protocol: [ |
| "fuchsia.hardware.pty.Device", |
| "fuchsia.kernel.Counter", |
| "fuchsia.kernel.DebugBroker", |
| "fuchsia.power.cpu.manager.Boost", |
| ], |
| from: "#bootstrap", |
| to: "#core", |
| availability: "same_as_target", |
| }, |
| { |
| protocol: "fuchsia.sys2.ConfigOverride", |
| from: "framework", |
| as: "fuchsia.sys2.ConfigOverride.root", |
| to: "#core", |
| }, |
| { |
| protocol: "fuchsia.sys2.RealmExplorer", |
| from: "framework", |
| as: "fuchsia.sys2.RealmExplorer.root", |
| to: "#core", |
| }, |
| { |
| protocol: "fuchsia.sys2.RealmQuery", |
| from: "framework", |
| as: "fuchsia.sys2.RealmQuery.root", |
| to: "#core", |
| }, |
| { |
| protocol: "fuchsia.component.Introspector", |
| from: "framework", |
| as: "fuchsia.component.Introspector.root", |
| to: "#core", |
| }, |
| { |
| protocol: "fuchsia.sys2.LifecycleController", |
| from: "framework", |
| as: "fuchsia.sys2.LifecycleController.root", |
| to: "#core", |
| }, |
| { |
| protocol: "fuchsia.sys2.RouteValidator", |
| from: "framework", |
| as: "fuchsia.sys2.RouteValidator.root", |
| to: "#core", |
| }, |
| { |
| dictionary: "diagnostics", |
| from: "#bootstrap", |
| to: [ |
| "#core", |
| "#startup", |
| ], |
| }, |
| { |
| dictionary: "driver-services-for-session", |
| from: "#bootstrap", |
| to: "#core", |
| }, |
| { |
| service: [ |
| "fuchsia.hardware.clock.DebugService", |
| "fuchsia.hardware.gnss.Service", |
| "fuchsia.hardware.google.nanohub.DataChannelService", |
| "fuchsia.hardware.google.nanohub.DisplayService", |
| "fuchsia.hardware.google.nanohub.Service", |
| "fuchsia.hardware.haptics.Service", |
| "fuchsia.hardware.nfc.Service", |
| "fuchsia.hardware.overnet.Service", |
| "fuchsia.hardware.power.suspend.SuspendService", |
| "fuchsia.hardware.qcom.hvdcpopti.Service", |
| "fuchsia.hardware.rpmb.Service", |
| "fuchsia.hardware.sockettunnel.Service", |
| "fuchsia.hardware.spmi.DebugService", |
| "fuchsia.hardware.vsock.Service", |
| "fuchsia.power.broker.ElementInfoProviderService", |
| "fuchsia.storage.ftl.Service", |
| |
| // These duplicate a service advertised by devfs, below. |
| // "fuchsia.gpu.magma.Service", |
| // "fuchsia.hardware.backlight.Service", |
| // "fuchsia.hardware.rtc.Service", |
| // "fuchsia.hardware.cpu.ctrl.Service", |
| ], |
| from: "#bootstrap", |
| to: "#core", |
| }, |
| { |
| // All the services devfs will auto expose: |
| service: [ |
| "fuchsia.gpu.magma.DependencyInjectionService", |
| "fuchsia.gpu.magma.PerformanceCounterService", |
| "fuchsia.gpu.magma.Service", |
| "fuchsia.gpu.magma.TrustedService", |
| "fuchsia.hardware.adb.Service", |
| "fuchsia.hardware.adc.Service", |
| "fuchsia.hardware.audio.CodecConnectorService", |
| "fuchsia.hardware.audio.CompositeConnectorService", |
| "fuchsia.hardware.audio.DaiConnectorService", |
| "fuchsia.hardware.audio.Device", |
| "fuchsia.hardware.audio.StreamConfigConnectorInputService", |
| "fuchsia.hardware.audio.StreamConfigConnectorOutputService", |
| "fuchsia.hardware.ax88179.Service", |
| "fuchsia.hardware.backlight.Service", |
| "fuchsia.hardware.bluetooth.EmulatorService", |
| "fuchsia.hardware.bluetooth.Service", |
| "fuchsia.hardware.camera.Service", |
| "fuchsia.hardware.clock.measure.Service", |
| "fuchsia.hardware.cpu.ctrl.Service", |
| "fuchsia.hardware.display.Service", |
| "fuchsia.hardware.fan.Service", |
| "fuchsia.hardware.fastboot.Service", |
| "fuchsia.hardware.goldfish.AddressSpaceService", |
| "fuchsia.hardware.goldfish.ControllerService", |
| "fuchsia.hardware.goldfish.ControlService", |
| "fuchsia.hardware.goldfish.SyncService", |
| "fuchsia.hardware.gpu.mali.UtilsService", |
| "fuchsia.hardware.hrtimer.Service", |
| "fuchsia.hardware.i2c.Service", |
| "fuchsia.hardware.input.Service", |
| "fuchsia.hardware.light.LightService", |
| "fuchsia.hardware.mediacodec.Service", |
| "fuchsia.hardware.midi.Service", |
| "fuchsia.hardware.network.Service", |
| "fuchsia.hardware.pin.DebugService", |
| "fuchsia.hardware.power.sensor.Service", |
| "fuchsia.hardware.powersource.Service", |
| "fuchsia.hardware.pty.Service", |
| "fuchsia.hardware.qualcomm.fastrpc.SecureService", |
| "fuchsia.hardware.radar.Service", |
| "fuchsia.hardware.ram.metrics.Service", |
| "fuchsia.hardware.registers.Service", |
| "fuchsia.hardware.rtc.Service", |
| "fuchsia.hardware.sdio.DriverService", |
| "fuchsia.hardware.serial.Service", |
| "fuchsia.hardware.skipblock.Service", |
| "fuchsia.hardware.spi.ControllerService", |
| "fuchsia.hardware.tee.Service", |
| "fuchsia.hardware.temperature.Service", |
| "fuchsia.hardware.thermal.Service", |
| "fuchsia.hardware.trippoint.TripPointService", |
| "fuchsia.hardware.usb.device.Service", |
| "fuchsia.hardware.usb.peripheral.Service", |
| "fuchsia.hardware.usb.tester.Service", |
| "fuchsia.hardware.usb.virtualbustest.Service", |
| "fuchsia.input.report.Service", |
| "fuchsia.lowpan.spinel.Service", |
| "fuchsia.power.battery.ChargerService", |
| "fuchsia.power.battery.InfoService", |
| "fuchsia.services.test.Device", |
| "fuchsia.tpm.Service", |
| "fuchsia.wlan.device.Service", |
| "google.powerstats.Service", |
| ], |
| from: "#bootstrap", |
| to: "#core", |
| }, |
| { |
| protocol: [ |
| "fuchsia.power.broker.Topology", |
| "fuchsia.power.suspend.Stats", |
| "fuchsia.power.system.ActivityGovernor", |
| "fuchsia.power.system.BootControl", |
| ], |
| from: "#bootstrap", |
| to: "#core", |
| availability: "optional", |
| }, |
| { |
| dictionary: "diagnostics-accessors", |
| from: "#bootstrap", |
| to: "#core", |
| }, |
| { |
| dictionary: "toolbox", |
| from: "#core", |
| as: "toolbox-core", |
| to: "#toolbox", |
| }, |
| { |
| protocol: [ "fuchsia.dash.Launcher" ], |
| from: "#core", |
| to: "#toolbox", |
| availability: "optional", |
| }, |
| { |
| protocol: [ "fuchsia.process.Resolver" ], |
| from: "#core", |
| to: "#bootstrap", |
| dependency: "weak", |
| }, |
| |
| // The source of this protocol, debug-dash-launcher, |
| // may not be available on all products. |
| // Used by console-launcher. |
| { |
| protocol: "fuchsia.dash.Launcher", |
| from: "#core", |
| to: "#bootstrap", |
| dependency: "weak", |
| availability: "optional", |
| }, |
| { |
| runner: "elf", |
| from: "#elf_runner", |
| to: "#core", |
| }, |
| { |
| resolver: "base_resolver", |
| from: "#bootstrap", |
| to: "#core", |
| }, |
| { |
| service: "fuchsia.hardware.tee.proprietary.Service", |
| from: "#bootstrap", |
| to: "#core", |
| availability: "same_as_target", |
| }, |
| { |
| protocol: "fuchsia.security.keymint.SealingKeys", |
| from: "#core", |
| to: "#bootstrap", |
| dependency: "weak", |
| availability: "optional", |
| }, |
| { |
| runner: "builtin_dispatcher", |
| from: "parent", |
| to: "#core", |
| }, |
| { |
| resolver: "fuchsia-builtin", |
| from: "parent", |
| to: "#core", |
| }, |
| ], |
| expose: [ |
| { |
| protocol: "fuchsia.tracing.provider.Registry", |
| from: "#core", |
| availability: "optional", |
| }, |
| ], |
| environments: [ |
| { |
| name: "core-env", |
| extends: "realm", |
| runners: [ |
| { |
| runner: "elf", |
| from: "#elf_runner", |
| }, |
| ], |
| resolvers: [ |
| { |
| resolver: "base_resolver", |
| from: "#bootstrap", |
| scheme: "fuchsia-pkg", |
| }, |
| ], |
| }, |
| ], |
| } |