2016-07-06 36 views
1

Mifare DESFire通信は、いくつかのAndroidデバイスでオフホスト(UICC)ではなくHCEにルーティングされます。M4M - Mifare DESFire EV1:UICCのMifare DESFire仮想カードへのオフホストルーティングのために、どのMifare AIDをNFCルーティングテーブルに追加する必要がありますか?

OMAPIベースのオフホストセキュアエレメントとの通信から、私はすでにAndroidオフホストルーティングテーブルにAIDを追加する方法を学びました。そのため、UICCでそれらを選択できるようになりました。 (ありがとう@MichaelRoland)

私の現在の問題:私は私のUICCに仮想Mifare DESfireカードを持っています。現在、一部のデバイスでは、ネイティブのラップされたMifareコマンドをUICCにルーティングしないため、デフォルトのルーティングを変更するスイッチはありません。だから私はオフホストルーティングテーブルに別のエントリを持っていましたが、どのAIDを使うのか分かりません。

MIFARE DESFireテストアプリケーションF01010のPICCアプリケーションAIDがあります。これは、CLTインターフェイス上でアプリケーションを選択するために使用されるAIDですが、これをAndroidオフホストルーティングテーブルに入力することはできません。さらに、MIFARE DESFireアプリケーションに関連する2つの追加AIDがあります。これは仮想カードマネージャAID(A0000003964D344D1400000000000000)とサービスマネージャAID(A0000003964D344D2400000000000000)です。

しかし、どのAIDをルーティングテーブルに挿入する必要がありますか?

答えて

2

アンドロイド(そしておそらくNFCコントローラ自体は)現在、ISO/IEC 7816-4エイズ/ DF名に基づいてルーティング構成をサポートしています。ネイティブのDESFire AID(つまり、3バイトのAID)やネイティブのラップされたすべての通信にルーティングを追加することはできません。あなたは何ができるか

  • は、アプリケーションの作成時に、あなたのDESFireアプリケーションISO/IEC 716から4 DF名を割り当てます。このDF名は、Androidオフホストルーティング設定で指定できるAIDです。ただし、DESFire ISOコマンドセットを使用し、DESFireアプリケーションを選択するためのSELECT FILE(DF名による)コマンドを発行する必要があります)、AIDベースのルーティングを開始する必要があります。

  • DESFire EV1自体にAID/DF名D2 76 00 00 85 01 00があります。読者がこのAIDを選択すると(SELECT FILE(DF名による)コマンドを使用して)、DESFireカードはISOフレーミング(ISOコマンドとラップされたネイティブコマンドを許可)に切り替え、そのマスターファイルを選択します。このAIDをAndroidに登録して、すべてのDESFire通信をUICCにルーティングすることができます。ただし、各リーダーは、そのSELECT FILEコマンドを送信してDESFire通信を開始する必要があります。

-1

同じAIDを使用するアプリケーション間で競合が発生しないように、アプリを幅広く展開する場合は、ISO7816-5 linkに従う必要があります。 2番目の方法は、常に0x0Fで始まる独自の非登録AIDを使用することです。

例:0x0Fの、0x11を、ただし0x22、0x33の、0x44の

+0

申し訳ありませんが、私はAIDを持っていますが、ルーティングテーブルに何を追加する必要があるのか​​分かりません。私のアプリは、基本的に、このMifare Desfire VC(またはMifare Desfire)のすべてのコマンドがUICCにルーティングされるようにしています。そしてそのために、Mifare Desfire VC(AID)をオフホストルーティングにどのように追加できるかを知る必要があります。 –

+0

こんにちはAndy、アプリケーションレベルからは、実際のルーティングテーブルにアクセスすることはできません。あなたがマニフェストでやっていることは、基本的にどのAIDがどのAIDを使っているかをアンドロイドシステムに登録することだけです。私が知る限り、何をホストするのか、UICCに行くのかを決定する実際のルーティングテーブルはアプリケーションレベルからアクセスできません。デフォルトルーティングを変更する場合は、NFCスタック自体の設定ファイルにアクセスする必要があります。電話機にブロードコムチップがある場合は/etc/libnfc-brcm.confなどです。この場所では基本的にルートを追加する必要があります。 – ph10

関連する問題