This page describes how to control NFC on a Cuttlefish device using the Cuttlefish NFC feature. NFC is supported on Cuttlefish devices running Android 15 or higher.
Use Casimir
The Cuttlefish NFC feature uses Casimir, an external NFC device simulation tool, which supports injecting APDU bytes for host card emulation. Casimir is implemented in /platform/system/nfc/tools/casimir/
.
When launching Cuttlefish, Casimir is also launched by default. To control Casimir, use the CasimirControlService
service.
CasimirControlService
You can use the CasimirControlService
service through the REST API or the command line interface. For details, see Cuttlefish: Environment Control.
The following table describes the method in CasimirControlService
. For more information, see casimir_control.proto
.
Method | Description |
---|---|
SendApdu | Sends APDU bytes (hex strings) with NFC-A and ISO-DEP. The response is returned as hex strings. |
The following is an example command and a simplified response for sending two APDU bytes, [0x00, 0x11, 0x22]
and [0x33, 0x44, 0x55]
.
Command
cvd env call CasimirControlService SendApdu '{apdu_hex_strings: ["001122", "334455"]}'
Simplified response
Rpc succeeded with OK status { "responseHexStrings": [ "9000", "9000", ] }