このページでは、Cuttlefish の NFC 機能を使って Cuttlefish デバイスで NFC を制御する方法について説明します。NFC は、Android 15 以降を搭載している Cuttlefish デバイスでサポートされています。
Casimir を使用する
Cuttlefish の NFC 機能は Casimir を使用します。Casimir は、外部 NFC デバイスのシミュレーション ツールで、ホストカードのエミュレーション用に APDU バイトを挿入できます。Casimir は /platform/system/nfc/tools/casimir/
に実装されています。
Cuttlefish を起動すると、デフォルトで Casimir も起動します。Casimir の制御には CasimirControlService
サービスを使用します。
CasimirControlService
REST API またはコマンドライン インターフェースを利用して CasimirControlService
サービスを使用できます。詳細については、Cuttlefish: 環境制御をご参照ください。
次の表では CasimirControlService
のメソッドをまとめています。詳細については、casimir_control.proto
をご覧ください。
メソッド | 説明 |
---|---|
SendApdu
|
NFC-A と ISO-DEP を使って APDU バイト(16 進文字列)を送信します。応答は 16 進文字列で返されます。 |
以下は 2 つの APDU バイト([0x00, 0x11, 0x22]
と [0x33, 0x44, 0x55]
)を送信する場合のコマンドの例と簡略化した応答の例です。
コマンド
cvd env call CasimirControlService SendApdu '{apdu_hex_strings: ["001122", "334455"]}'
簡略化した応答
Rpc succeeded with OK status { "responseHexStrings": [ "9000", "9000", ] }