11
15

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Android 7.0のNFC HCE-Fの実装について

Last updated at Posted at 2016-09-16

Android 7.0のNFCにHCE-Fが追加されたということで、AOSPソースコードの変更点について調べてみました。

HCE-Fは、FeliCaのHost-based Card Emulationのことです。

AndroidのNFC機能のソースコードは、external/libnfc-nci と packages/apps/NFC にあります。commit logを探したら、HCE-Fに関するcommitがそれぞれ一つずつありました。

external/libnfc-nci

  • これはNFCチップのドライバとNFCのプロトコルスタックです。

  • NFCチップとHostのやりとりは、 NFC ForumのNCIを使っています。

  • sonyの人による "Implementation of HCE for NFC-F."というcommit

  • https://android.googlesource.com/platform/external/libnfc-nci/+/4fa41c72cb561579743db93db9e1e57845f60860

  • 変更は数十行と少ないです。

  • このcommitでは元々持っている Type 3 tag emulationのコードに、HCE-F用のIDを付加して上位に渡す機能を追加しています。

packages/apps/NFC

  • これはNFCのサービスを含んだアプリケーションです。
  • sonyの人による "Implementation of HCE for NFC-F."というcommit
  • https://android.googlesource.com/platform/packages/apps/Nfc/+/ecb8d7bbd1a44cd3edbcb6c5d903fc8d9a625d70
  • 変更は結構あります。
  • この変更がHCE-Fの実際の処理のようです。
  • EnabledNfcFServices.java HostNfcFEmulationManager.java RegisteredNfcFServicesCache.java RegisteredT3tIdentifiersCache.java SystemCodeRoutingManager.java が追加されてます。
  • 詳しい変更点はあとで調べるかも

frameworks/native/

考察

  • HCE-Fの機能はチップの特別な機能を必要としていないので、NCI対応のNFCチップを搭載しているAndroid端末なら、Android 7.0にアップデートすれば、HCE-Fを使えるようになるみたいです。

参考

11
15
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
11
15

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?