The ChromiumOS Platform

This repo holds (most) of the custom code that makes up the ChromiumOS platform. That largely covers daemons, programs, and libraries that were written specifically for ChromiumOS.

We moved from multiple separate repos in platform/ to a single repo in platform2/ for a number of reasons:

  • Make it easier to work across multiple projects simultaneously
  • Increase code re-use (via common libs) rather than duplicate utility functions multiple items over
  • Share the same build system

While most projects were merged, not all of them were. Some projects were standalone already (such as vboot), or never got around to being folded in (such as imageloader). Some day those extra projects might get merged in.

Similarly, some projects that were merged in, were then merged back out. This was due to the evolution of the Brillo project and collaboration with Android. That means the AOSP repos are the upstream and ChromiumOS carries copies.

Local Project Directory

ProjectDescription
arcTools/deamons/init-scripts to run ARC
attestationDaemon and client for managing remote attestation
avtest_label_detectTest tool for OCRing device labels
biodBiometrics daemon
bootid-loggerSimple command to record the current boot id to the log.
bootlockboxDaemon and client for boot lockbox service.
bootsplashFrecon-based animated boot splash service
bootstatTools for tracking points in the overall boot process (for metrics)
bpf-monsCollection of BPF monitoring programs for in-depth tracing
build_overridesCustomize GN-based third party products for direct platform2 integration
cameraChromeOS Camera daemon
cecserviceService for switching CEC enabled TVs on and off
cfm-dfu-notificationCFM specific library for DFU notifications
chapsPKCS #11 implementation for TPM 1 devices
chromeos-common-scriptShared scripts for partitions and basic disk information
chromeos-configCrOS unified build runtime config manager
chromeos-dbus-bindingsSimplifies the implementation of D-Bus daemons and proxies
chromeos-nvt-tcon-updaterLibrary for integrating the Novatek TCON firmware updater into a CrOS device
codelabCodelab exercise
common-mkCommon build & test logic for platform2 projects
crash-reporterThe system crash handler & reporter
cros-codecsHardware accelerated video middleware
cros-disksDaemon for mounting removable media (e.g. USB sticks and SD cards)
crosdnsHostname resolution service for ChromeOS
croshThe ChromiumOS shell
crosier-chromeCrosier testing framework
croslogThe log manipulation command
cryptohomeDaemon and tools for managing encrypted /home and /var directories
cups_proxyDaemon for proxying CUPS printing request
dbus_perfetto_producerA D-bus event producer of perfetto
debugdCentralized debug daemon for random tools
dev-installTools & settings for managing the developer environment on the device
device_managementDaemon for handling device management related attributes (e.g. fwmp, install_attributes etc)
diagnosticsDevice telemetry and diagnostics daemons
disk_updaterUtility for updating root disk firmware (e.g. SSDs and eMMC)
dlcserviceDownloadable Content (DLC) Service daemon
dlpDate Leak Prevention (DLP) daemon
dns-proxyDNS Proxy daemon
easy-unlockDaemon for handling Easy Unlock requests (e.g. unlocking Chromebooks with an Android device)
ethernet-hideTool for hiding Ethernet interfaces while enabling the SSH connection
extended-updatesUtilities supporting the Extended Auto Updates process
farfetchdFarfetchd Readahead Daemon
fbpreprocessorDebug file preprocessing for feedback reports
feature_usageLibrary to provide a unified approach to report feature usage events
featuredFeature daemon for enabling and managing platform features
federatedFederated computation service (Federated Analytics & Federated Learning)
feedbackDaemon for headless systems that want to gather feedback (normally Chrome manages it)
ferrochromeComponents to run Ferrochrome
flex_bluetoothUpdates Floss overrides for ChromeOS Flex
flex_hwisUtility for collecting hardware information and sending it to a remote API
flex_idUtility for generating flex_id, a machine identifier for devices without VPD info
flexorExperimental ChromeOS Flex installer
foomatic_shellSimple shell used by the foomatic-rip package
fuseboxFuseBox service
glib-bridgelibrary for libchrome-glib message loop interoperation
goldfishdAndroid Emulator Daemon
gsclogGSC Log Fetcher
hammerdFirmware updater utility for hammer hardware
hardware_verifierHardware verifier tool
heartdHealth ensure and accident resolve treatment daemon
heatmap-recorderHeatmap recorder tool
hermesChromeOS LPA implementation for eSIM hardware support
hpsChromeOS HPS daemon and utilities
hwdrm-videoproc-taHwdrm video processing trusted application
hwsec-host-utilsHwsec-related host-only utilities
hwsec-optee-pluginHwsec-related optee plugin
hwsec-optee-taHwsec-related optee plugin trusted application
hwsec-test-utilsHwsec-related test-only features
hwsec-utilsHwsec-related features
iioserviceDaemon and libraries that provide sensor data to all processes
image-burnerDaemon for writing disk images (e.g. recovery) to USB sticks & SD cards
imageloaderDaemon for mounting signed disk images
initCrOS common startup init scripts and boot time helpers
installerCrOS installer utility (for AU/recovery/etc...)
ippusb_bridgeHTTP proxy to IPP-enabled printers
kdumpFully featured kernel core debugging after a crash
kerberosDaemon for managing Kerberos tickets
libarc-attestationLibrary to facilitate Android Attestation and Remote Key Provisioning for ARC Keymint Daemon
libbrilloCommon platform utility library
libchromeos-rsCommon platform utility library for Rust
libcontainer
libcrossystemLibrary for getting ChromeOS system properties
libecLibrary for interacting with EC
libhwsecLibrary for the utility functions of all TPM related daemons except for trunks and trousers
libhwsec-foundationLibrary for the utility functions of all TPM related daemons and libraries
libippLibrary for building and parsing IPP (Internet Printing Protocol) frames
libmemsUtility library to configure, manage and retrieve events from IIO sensors
libpasswordproviderPassword Provider library for securely managing credentials with system services
libpmtLibrary for processing Intel PMT data
libsarUtility library to read the config file of IIO Sar sensors
libsegmentationLibrary to check which software features are allowed
libstorageLibrary presenting files, block devices and filesystems
libtouchrawLibrary for processing HID raw touch data
login_managerSession manager for handling the life cycle of the main session (e.g. Chrome)
lorgnetteDaemon for managing attached USB scanners via SANE
lvmdChromeOS LVM daemon
machine-id-regenUtility to periodically update machine-id
media_capabilitiesCommand line tool to show video and camera capabilities
mems_setupBoot-time initializer tool for sensors
metricsClient side user metrics collection
midisMIDI service
mini_udisksDaemon providing a partial UDisks2 API for Flex firmware updates
miniosA minimal OS used during recovery
missiveDaemon for the storage of encrypted records for managed devices.
mistModem USB Interface Switching Tool
mlMachine learning service
ml_benchmarkML performance benchmark for ChromeOS
ml_coreMachine learning feature library
modem-utilities
modemfwdDaemon for managing modem firmware updaters
modemloggerdDaemon for managing modem logging tools
mojo_service_managerDaemon for managing mojo services
mtpdDaemon for handling Media Transfer Protocol (MTP) with devices (e.g. phones)
net-baselibrary of networking primitive data structure and common utilities
nnapiImplementation of the Android Neural Networks API
ocrOptical Character Recognition (OCR) service for ChromeOS
odmlOn-device ML service for ChromeOS
oobe_configUtilities for saving and restoring OOBE config state
os_install_serviceService that can be triggered by the UI to install CrOS to disk from a USB device
p2pService for sharing files between CrOS devices (e.g. updates)
parallaxVisual Analysis Framework
patchmakerUtility for bsdiff-encoding a directory of binaries
patchpanelPlatform networking daemons
pciguardDaemon to secure external PCI devices (thunderbolt etc)
perfetto_simple_producerA simple producer of perfetto: An example demonstrating how to produce Perfetto performance trace data
permission_broker
pmt_toolCommand-line utility for sampling and decoding of Intel PMT data
policy_protoBuild file to compile policy proto file
policy_utilsTools and related library to set or override device policies
power_managerUserspace power management daemon and associated tools
primary_io_managerTracks primary input devices for chromeboxes
print_toolsVarious tools related to the native printing system
printscanmgrChromeOS Printing and Scanning Daemon
privacyChromeOS privacy tools
private_computingDaemon to save and retrieve device active date status into and from preserved file.
pwgtocanonijCUPS filter for certain Canon printers
regions
regmonDaemon to report policy violations of first-party network traffic.
resourcedResource Management Daemon
rgbkbdChromeOS RGB Keyboard Daemon
rmadChromeOS RMA Daemon
routing-simulatorDebugging tool for routing subsystem
run_ociMinimalistic container runtime
runtime_probeRuntime probe tool for ChromeOS
sandboxing-codelabSandboxing exercise
screen-capture-utilsUtilities for screen capturing (screenshot)
secagentdDaemon for detecting and reporting security related events
secanomalydDaemon for detecting and reporting security anomalies
secure-wipeSecure disk wipe
secure_erase_fileHelper tools for securely erasing files from storage (e.g. keys and PII data)
sepolicySELinux policy for ChromeOS
shadercachedShader cache management daemon
shillChromeOS Connection Manager
smbfsFUSE-based filesystem for accessing Samba / Windows networking shares
smbproviderDaemon for connecting Samba / Windows networking shares to the Files.app
soulDaemon and utilities for system logs
spacedDisk space information daemon
st_flash
storage_infoHelper shell functions for retrieving disk information)
swap_managementSwap management service
syslog-catHelper command to forward stdout/stderr from process to syslog
system-proxyDaemon for web proxy authentication support on ChromeOS
system_apiHeaders and .proto files etc. to be shared with chromium
thinpool_migratorTool for migrating the stateful filesystem to use LVM
timberslideTool for working with EC crashes for reporting purposes
touch_firmware_calibration
tpm2-simulatorA software TPM 2.0 implementation (for testing/debugging)
tpm_managerDaemon and client for managing TPM setup and operations
tpm_softclear_utilsUtilities that soft-clear TPM (for testing only)
trimService to manage filesystem trim operations in the background
trunksMiddleware and resource manager for interfacing with TPM 2.0 hardware
typecdSystem daemon to keep track of USB Type C state
u2fdU2FHID emulation daemon for systems with secure elements (not TPMs)
update_engineSystem updater daemon
ureadahead-diffTool to calculate difference between 2 ureadahead packs
usb-debug-utilsExtra tools for debugging USB
usb_bouncerTools for managing USBGuard white-lists and configuration on ChromeOS
userfeedbackVarious utilities to gather extended data for user feedback reports
uwbdDaemon for the UWB on ChromeOS
verityUserspace tools for working dm-verity (verified disk images)
virtual_file_provider
vm_toolsUtilities for Virtual Machine (VM) orchestration
vtpmChromeOS virtual TPM Daemon

AOSP Project Directory

These projects can be found here: https://chromium.googlesource.com/aosp/platform/