# Crosvm on ChromeOS Crosvm has a unique setup to integrate with ChromeOS infrastructure. The chromeos checkout tracks the [cros/chromeos](https://chromium.googlesource.com/chromiumos/platform/crosvm/+/refs/heads/chromeos) branch of crosvm, not the [cros/main](https://chromium.googlesource.com/chromiumos/platform/crosvm/+/refs/heads/main) branch. While upstream development is happening on the `main` branch, changes submitted to that branch are only tested by the crosvm kokoro CI system, not by the ChromeOS CQ. There is a [daily process](https://chromium-review.googlesource.com/q/project:chromiumos%252Fplatform%252Fcrosvm+branch:chromeos) that creates a commit to merge changes from `main` into the `chromeos` branch, which is then tested through the CQ and watched by the crosvm-uprev rotation. ## Uploading changes `repo start` will create a branch tracking `cros/chromeos` so you can develop with the latest, CQ-tested code as a foundation. However, changes are not acceped to the `cros/chromeos` branch, and should be submitted to `cros/main` instead. Use `repo upload -D main` to upload changes to the main branch, which works fine in most cases where gerrit can rebase the commit cleanly. If not, please rebase to `cros/main` manually. ## Building See [Building for ChromeOS](https://google.github.io/crosvm/building_crosvm/chromium_os.html) in the crosvm mdbook.