NFC

このページでは、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",
    ]
    }