Freedom251 › Android emulators
Cuttlefish

What Cuttlefish is
Cuttlefish is a virtual Android device for platform and app developers who need to develop and validate code changes without relying on physical hardware. It can run locally or remotely and is configurable: developers can choose a device form factor, RAM, and CPU count. Cuttlefish is designed to reproduce Android framework behavior closely, including custom framework implementations, and supports running multiple devices at once with concurrent test execution. Documented testing uses include CTS, framework compliance, continuous integration, and custom test suites.
Locally, Cuttlefish runs on Linux x86 and ARM64 machines, with host virtualization and KVM required. It registers with adb like a regular device and can be viewed and controlled in a browser using a local WebRTC webview. Cuttlefish also supports Google Cloud natively; support for other cloud platforms is planned. Its documented setup uses Debian host packages and device images plus a host package downloaded from Android Continuous Integration. Cuttlefish is free and open source. Its differences from physical devices mainly involve the hardware abstraction layer and software that interacts with custom hardware.
Who it suits
Cuttlefish suits Android platform and app developers who want to develop and validate changes without relying on physical devices. It is also suited to teams running concurrent tests across multiple virtual devices, including CTS, framework compliance, continuous integration, or custom suites.
What it does well
- Configurable form factor, RAM, and CPU count.
- Runs multiple devices and concurrent tests.
- Aims to reproduce Android framework behavior, including custom implementations.
- Registers with adb as a normal device.
- Free and open source.
What to know first
- Local use requires Linux x86 or ARM64 and host KVM virtualization.
- Differences from physical devices include hardware abstraction and custom hardware software.
- Native cloud support is for Google Cloud; other platforms are planned.
Getting started
- Use a Linux x86 or ARM64 host with virtualization and KVM available.
- Build and install the Debian host packages.
- Download device images and a host package from Android Continuous Integration.
- Configure the device form factor, RAM, and CPU count.
- Launch the device and access it through adb or the local browser WebRTC webview.
Verdict
Pick Cuttlefish if you develop Android platform or app code and need configurable virtual devices for validation or concurrent testing. Look elsewhere when your work depends on hardware abstraction or software that interacts with custom hardware, where Cuttlefish differs from physical devices.
Questions
Does Cuttlefish cost anything?
Cuttlefish is free and open source.
Which platforms can run Cuttlefish locally?
It runs locally on Linux x86 and ARM64 machines. Host virtualization with KVM is required.
Can Cuttlefish run more than one device at a time?
Yes. It supports multiple devices in parallel and concurrent test execution.
Which cloud platform does it support?
Cuttlefish natively supports Google Cloud. Support for other cloud platforms is planned.
How can developers interact with a Cuttlefish device?
It registers as a normal device with adb and can be viewed and controlled in a browser through a local WebRTC webview.
Where can I find its setup instructions?
The Cuttlefish documentation is at https://source.android.com/docs/devices/cuttlefish. The documented setup builds and installs Debian host packages and downloads device images and a host package from Android Continuous Integration.
Facts from Cuttlefish's own pages
- Access
- Cuttlefish registers as a normal device with adb and can be viewed and controlled in a browser through a local WebRTC webview. · source.android.com, 8 Oct 2026
- ADB and remote desktop
- Cuttlefish registers as a normal device with adb and can be interacted with through remote desktop. · source.android.com, 8 Oct 2026
- Cloud
- Cuttlefish natively supports Google Cloud; support for other cloud platforms is planned. · source.android.com, 8 Oct 2026
- Cloud support
- Cuttlefish natively supports Google Cloud, while support for other cloud platforms is described as planned. · source.android.com, 8 Oct 2026
- Configuration
- Users can adjust device form factor, RAM, and CPU count. · source.android.com, 8 Oct 2026
- Desktop platforms
- Linux · source.android.com, 19 Sept 2026
- Framework fidelity
- Cuttlefish aims to closely reproduce Android framework behavior, including custom framework implementations. · source.android.com, 8 Oct 2026
- Host platforms
- The documentation says Cuttlefish can run locally on Linux x86 and ARM64 machines. · source.android.com, 8 Oct 2026
- Host requirement
- Cuttlefish requires virtualization with KVM available on the host machine. · source.android.com, 8 Oct 2026
- Intended use
- It helps platform and app developers develop and validate code changes without depending on physical hardware. · source.android.com, 8 Oct 2026
- Limit
- Cuttlefish differs from physical devices mainly at the hardware abstraction layer and in software that interacts with custom hardware. · source.android.com, 8 Oct 2026
- Multi-instance
- Yes · source.android.com, 19 Sept 2026
- Notable limitation
- Differences from physical devices include the hardware abstraction layer and software that interacts with custom hardware. · source.android.com, 8 Oct 2026
- Parallel devices
- Cuttlefish supports running multiple devices in parallel and concurrent test execution. · source.android.com, 8 Oct 2026
- Platform support
- Cuttlefish runs locally on Linux x86 and ARM64 machines. · source.android.com, 8 Oct 2026
- Product
- Cuttlefish is a configurable virtual Android-powered device that runs locally or remotely. · source.android.com, 8 Oct 2026
- Purpose
- It lets platform and app developers develop and validate code changes without depending on physical hardware. · source.android.com, 8 Oct 2026
- Scale
- Cuttlefish supports running multiple devices in parallel and concurrent test execution. · source.android.com, 8 Oct 2026
- Setup
- The documented setup builds and installs Debian host packages and downloads device images and a host package from Android Continuous Integration. · source.android.com, 8 Oct 2026
- Testing
- Documented testing uses include CTS, framework compliance, continuous integration, and custom test suites. · source.android.com, 8 Oct 2026
- Virtualization requirement
- Launching Cuttlefish requires host virtualization with KVM available. · source.android.com, 8 Oct 2026
- What it does
- Cuttlefish is a configurable virtual Android powered device that runs remotely or locally. · source.android.com, 8 Oct 2026
Where Cuttlefish stands on Freedom251
- Android emulators#17 of 19
