我知道HCE功能仅在KitKat中引入,但由于整个概念仅在软件级别,因此是否应该探索AOSP代码并提取与HCE相关的更改并将其创建为某种库,以便每部支持NFC但低于4.4的Android手机都可以与HCE兼容?
我认为这并不容易。在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__)。
但是,您可以尝试植根设备并修改所有这些组件。(相关组件都在用户空间中,所以这应该不是问题。但是,您也可以直接在该设备上安装Android 4.4 +。