Mifare One (1K/S50、ISO14443A) チップをエミュレートして、物理的な Mifare カードの代わりに NFC 機能を備えた電話を使用できるようにするため、または可能であればデータのみをリーダーに送信するための機能を実装しようとしています。
私はこのタイプのリーダー/ライターを持っています: https://www.evelta.com/er302-high-frequency-nfc-writer-usb/
フォーラム、stackoverflow の質問を調べた後、この記事が最良の例であることがわかりました。
HCE 部分を実装し、プログラムを実行すると、読者は私の電話が Mifare チップであると信じています。
私の問題:
使用しようとした「標準」認証キーに関係なく...認証エラーが発生します。Auth: Authentication failure for Mifare 1K NFC tag using ACR122U NFC readerに関するこの質問を読みましたが、物理的な Mifare カードで動作します...しかし、エミュレートされたもののキーを設定または知る方法がわかりません。
この例が正確な Mifare チップ タイプをエミュレートする理由がわかりません。
それについて読んだ後、物理カードを100%エミュレートできないことがわかりました。そのため、APDU応答で必要なすべてのデータを何らかの形でサービスに送信する必要があります(送受信部分だと思います)。
しかし、私は認証さえできません。
私は他の可能な解決策を探してみました:
AndroidBeam : Android - Android p2p ... シンプルで比較的高レベルの API に聞こえますが、廃止されつつあります。さらに、リーダーが Android を使用することさえ保証されていません ... のような「シンプルな」USB リーダー ハードウェアである可能性があります。私が使う。
SecureElement :皮肉なことに...最も推奨されているようです.「はい、mifareの可能性があります」などを読みましたが、良い例を見つけることができず、公式のGoogleドキュメントにはありません良い例。「ISO/IEC 7816-4」用と読みましたが、Mifare 1K は ISO14443A なので、この API については少し懐疑的です。
「単純に」リーダーにデータを送信する:電話を読んでいるときに、問題を複雑にしたり、何かをエミュレートしたりせずに、単にデータをリーダーに「プッシュ」できれば...それは素晴らしいことですが、どうかはわかりませんそれも可能です。この NFC のトピック全体は、ますます複雑になっているようです。
つまり、データを取得してリーダーに送信するだけです。
私はそれが聞こえるのと同じくらい簡単だと信じるのはおとぎ話のような錯覚だと気づきました. それでも、それを行う方法があることを願っています.
Mifare などをエミュレートせずに、それ自体でデータを送信できれば...結局のところ、重要なのは、チップの種類ではなくカード上のデータであり、解決策が単純であるほど良い.
英語の文法ミスの可能性があることをお詫びします。