1645955_ja-JP

取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 

1645955_ja-JP

1645955_ja-JP

PaxデバイスAPDU NFCとMifare Ultralight C

こんにちは、

私はPaxデバイスで開発中で、Mifare ULTRALIGHT C(MF0ICU2)を管理したいと考えています。

PaxデバイスはカスタムのPayDroid OSを使用しており、標準的なAndroidではありません。そのため、私はNFCのAndroidライブラリを持っていません。

IPCCをライブラリ経由で公開するNeptuneLiteAPIというものをインストールする必要があります。


まず、命名規則と標準規格について少し混乱しています。APIが話している内容:

  • ISO14443
    • AまたはB
    • 1、2、または3
  • M1カード

通常、Ultralight Cは14443 Type Aですが、このオプションではカードを読み取れず、「M1カード」オプションで読み取れます。M1カードとは何ですか?クラシック1kのことですか?


ドキュメントにはAPDUを使い、この種の呼び出しを実行するコマンドを公開する必要があると書かれています


カードの読み書き(M1機能付き)に成功し、ライブラリはカード対応の互換性モードを使うデフォルトの読み書き方法を公開します

今、認証を設定し、APDUコマンドを使ってチップにコマンドを送ろうとしています。

以下は私が使えるコードの簡略化です


iPicc = getDal().getPicc(piccType);

iPicc.open();
while(){
PiccCardInfo cardInfo = iPicc.detect(EDetectMode.ONLY_M);

if(cardInfo!=null){

//Read : works

byte[] page0=iPicc.m1Read((byte) 0);

// Write : works

iPicc.m1Write((byte)(13),hexStringToByteArray("AAAAAAAA000000000000000000000000"));

}


執筆に関しては3つの方法があります。

  • byte[] :  isoCommand(byte cid, byte[] send)
  • ApduRespInfo : isoCommandByApdu(バイト cid, ApduSendInfo apduSendInfo)
  • byte[] cmdExchange(byte[] dataIn, int recvLen)
  • これらの方法はすべてAPDUコマンドを求めます。

もし私の理解が正しければ、Mifare Ultralight CはAPDUを尊重していないのに、APDUしか方法がないということですか?

あるウェブサイトで、「FF」クラスを使うとチップに直接指示を送れるとわかりました。
しかし、どのコマンドを送信すればいいのか分からず、いくつか試してみた。
エラーが発生しています(残念ながら、これらは標準的なものではなく、NeptuneLiteAPiです)。

  • センサーエリアに特定のカードが存在しない、またはカードが有効化されていないPICC#3(検索カードエラーではありません)
  • PICC#97(予期せぬエラー)

でも不思議なことに、カードの直前で検出され読み書きに成功しているので、カードはしっかり「コネクテッド」されているのです。

直接命令、APDU命令、CRC計算など、いくつかのコマンドを試しましたが、どれも機能しませんでした。


 //byte[] cmd2 = iPicc.isoCommand(cardInfo.getCID(), CryptageUtils.hexStringToByteArray("30")); // PICC#97(unexpected error)
//byte[] cmd2 = iPicc.isoCommand(cardInfo.getCID(), CryptageUtils.hexStringToByteArray("3004")); // PICC#97(unexpected error)
//byte[] cmd2 = iPicc.isoCommand(cardInfo.getCID(), CryptageUtils.hexStringToByteArray("3000")); // PICC#97(unexpected error)
//byte[] cmd2 = iPicc.isoCommand(cardInfo.getCID(), CryptageUtils.hexStringToByteArray("3000A802")); // Avec CRC => No specific card in sensing area, or card is not activated PICC#3(not search card error)
//byte[] cmd2 = iPicc.isoCommand(cardInfo.getCID(), CryptageUtils.hexStringToByteArray("300002A8")); // Avec CRC inversé => No specific card in sensing area, or card is not activated PICC#3(not search card error)

//byte[] cmd2 = iPicc.cmdExchange(CryptageUtils.hexStringToByteArray("3000A802"),17); // Card is not activated. PICC#3(not search card error)
// byte[] cmd2 = iPicc.isoCommand(cardInfo.getCID(), CryptageUtils.hexStringToByteArray("30000000")); // No specific card in sensing area, or card is not activated PICC#3(not search card error)
//byte[] cmd2 = iPicc.isoCommand(cardInfo.getCID(), CryptageUtils.hexStringToByteArray("ff300000")); // No specific card in sensing area, or card is not activated PICC#3(not search card error)
//byte[] cmd2 = iPicc.isoCommand(cardInfo.getCID(), CryptageUtils.hexStringToByteArray("ff30000F")); // No specific card in sensing area, or card is not activated PICC#3(not search card error)
//byte[] cmd2 = iPicc.isoCommand(cardInfo.getCID(), CryptageUtils.hexStringToByteArray("FFCA00000004")); // No specific card in sensing area, or card is not activated PICC#3(not search card error)
//byte[] cmd2 = iPicc.isoCommand(cardInfo.getCID(), CryptageUtils.hexStringToByteArray("3000000004")); // No specific card in sensing area, or card is not activated PICC#3(not search card error)
//byte[] cmd2 = iPicc.isoCommand(cardInfo.getCID(), CryptageUtils.hexStringToByteArray("3001")); // No specific card in sensing area, or card is not activated PICC#3(not search card error)

もしどなたか助けてくれたり、正しい道に導いていただけるなら、本当にありがたいです。

よろしくお願いいたします。

Re: Pax device APDU NFC & Mifare Ultralight C

こんにちは@thibaut @Antoine1 @Erableto 、

この問題の解決策は見つかりましたか?私も同じ問題に直面しました。Mifare Ultralight EV1ではカウンターが読み取れません。主にcmdExchangeで試しましたが、NeptuneLiteライブラリの他の方法も試しましたが、PICC#3や#97のようなエラーが必ず出ます。

Re: Pax device APDU NFC & Mifare Ultralight C

こんにちは@thibautと@Erableto 、

質問の答えは見つかりましたか?
なぜなら、私たちも同じ問題を抱えているからです。

よろしくお願いします。

Re: Pax device APDU NFC & Mifare Ultralight C

こんにちは、ティボー。解決できましたか?私もあなたと同じことをしていますが、Mifare Classic 1kを使っていて、同じ問題を抱えています。私も助けを求めています。

進展があれば随時ご報告します。一緒にやり遂げられるといいな。


よろしくお願いします。

标记 (1)
无评分
版本历史
最后更新:
星期五
更新人: