blob: f478029d5df28ac2562dbfb9cb34317a539c9091 [file] [log] [blame]
// 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",
},
],
},
],
}