我将Android手机更新为4.0.4,然后注意到系统文件夹中出现了一个新文件nfcee access.xml。据我了解,该文件的思想是保留签名列表,并仅允许访问使用此签名之一签名的软件包的SE及其相关 Intent 。到目前为止,该列表中当然是Google电子钱包的签名。
有人知道将来进入此列表的过程如何吗?您需要直接向Google寻求许可吗?
最佳答案
如果您将手机设为root,则可以修改文件。该文件包含允许访问安全元素(SE)的签名和程序包名称的列表。签名是十六进制编码的X.509证书。要创建一个,只需在文件中包含标记<debug />
,它将打印以logcat拒绝SE访问的应用程序的十六进制编码签名,以便轻松剪切并粘贴到该文件中。
要创建可以访问SE的应用,您需要将此权限添加到 list 中:
<uses-permission android:name="android.permission.WRITE_SECURE_SETTINGS" />
要实际访问SE,您需要通过导入
com.android.nfc_extras
来访问隐藏的API:import com.android.nfc_extras.NfcAdapterExtras;
import com.android.nfc_extras.NfcAdapterExtras.CardEmulationRoute;
import com.android.nfc_extras.NfcExecutionEnvironment;
实现此目的的最简单方法是,将应用程序放置在
packages/apps
中并从那里构建它,从而在Android源代码树中编译您的应用程序。您需要将以下行添加到Android.mk
makefile中,以访问SE API:LOCAL_JAVA_LIBRARIES := com.android.nfc_extras
com.android.nfc_extras
中的功能允许启用和禁用SE,向其发送命令以及从中接收响应(类似于IsoDep.transceive()
)。