是否可以使Android HCE向后兼容(对于低于4.4 / KitKat的版本)?

时间:2014-02-21 06:50:27

标签: android nfc android-4.4-kitkat hce

我知道HCE功能仅在KitKat中引入,但由于整个概念仅在软件级别,因此不应该探索AOSP代码并提取与HCE相关的更改并将其创建为一些一种类型的库,以便每个支持NFC但小于4.4的Android手机可能与HCE兼容?

1 个答案:

答案 0 :(得分:4)

我认为这并不容易。在Android上,所有与NFC非接触式前端的交互都由NFC系统服务(与NFC接口库(libnfc-nxp或libnfc-nci)交互)处理。整个NFC堆栈看起来像这样:

+----------------------------------------------------------------+
| App using NFC functionality (reader/writer, peer-to-peer, HCE) |
+----------------------------------------------------------------+
                               |
                               |
+----------------------------------------------------------------+
|               Android NFC API (Framework/Java)                 |
+----------------------------------------------------------------+
|         NFC system service (Java + native components)          |
+----------------------------------------------------------------+
|        NFC interface library (libnfc-n__, native code)         |
+----------------------------------------------------------------+
|                NFC interface driver (Kernel)                   |
+----------------------------------------------------------------+
                               |
                               |
+----------------------------------------------------------------+
|         NFC contactless frontend chip (Broadcom, NXP)          |
+----------------------------------------------------------------+

为了添加HCE,需要更改部分NFC接口库(?),NFC系统服务和Android NFC API。虽然应该可以将API层中的相关代码集成到应用程序并直接连接到NFC系统服务,但是如果不修改Android操作系统本身,则无法更改NFC系统服务(和libnfc-n__)。 p>

但是,您可以尝试root设备并修改所有这些组件。 (相关组件都在用户空间中,因此这不应该是一个问题。)但是,您也可以直接在该设备上安装Android 4.4+。