2016/09/14

[nfc]HCE-FはAndroid7から使える

この記事を見るまで、HCE-FがAndroid7から搭載されたことをまったく知らなかった。
第772回:HCE-Fとは - ケータイ Watch

 

APIはこれだろう。
NfcFCardEmulation | Android Developers

  • getNfcidForService()
  • getSystemCodeForService()
  • registerSystemCodeForService()
  • setNfcid2ForService()
  • unregisterSystemCodeForService()

名前がくどいな。。
まあ、CardEmulationクラスも同じような名前を付けているから、ルールに沿っただけか。

 

HCE-Fをサポートする機種でしか使えないのだが、どこで分かれるのだろう?

まず、NFCが載っていて、NfcFをサポートしているのは必須だろう。
NFC Forumとしては、A,B,FのRead/Writeについてはサポートしないといかんのだが、Androidにそこまでの義理はないから、A,BはあってFがないという可能性もなくはないだろう。
ただ、NFCチップはどれも対応していそうな気がするので、ドライバ次第なのか。

NFCチップも、Reader/Writer系のチップと、Emulation系のチップがあるはずだ。
RC-S956やPN532なんかは前者で、PN65NやPN544は後者だ。
Reader/Writer系のチップは買いやすいのだが、Emualtor系のチップは普通の人は買えないんじゃなかろうか。
携帯電話に載せるのはEmulator系のチップになるので、私もよく知らない。

FeliCa Liteや、FeliCaでも暗号化されていないところを読み書きする分には、Read without EncryptionやWrite without Encryptionを使う。
そうじゃない場合は、ReadとWriteを使う。
このReadとWrite、あとは認証系のコマンドもあると思うが、この辺りが使えるかどうかで分かれるんじゃなかろうか。
コマンドの詳細は、18092はどうだったか忘れたが、JISには載ってたと思う。

このReadやWriteを使わないと、無線の間が暗号化されないのだ。
暗号化されないと、データを読めば何をしているのかわかってしまうから、安全でない。
だから、HCE-Fをやるとなれば、それもサポートしないといかんのじゃなかろうかね。

 

試してみたいのだが、うちのNexus5はAndroid7が載らないのだ。。
XDAでビルドしているという話は聞くのだが、それでHCE-Fがサポートされるのかどうかとなると、されないような気がするのよね。。。

0 件のコメント:

コメントを投稿

コメントありがとうございます。
スパムかもしれない、と私が思ったら、
申し訳ないですが勝手に削除することもあります。