k-d*_*eux 4 android apdu nfc android-service hce
我正在搜索Android源代码,因为我想了解何时解析应用程序的AndroidManifest.xml.
即如果应用程序注册NFC服务
<service
android:name=".demo.service.ApduService"
android:exported="true"
android:permission="android.permission.BIND_NFC_SERVICE">
<intent-filter>
<action android:name="android.nfc.cardemulation.action.HOST_APDU_SERVICE" />
</intent-filter>
<meta-data
android:name="android.nfc.cardemulation.host_apdu_service"
android:resource="@xml/apduservice" />
</service>
Run Code Online (Sandbox Code Playgroud)
使用以下apduservice.xml
<host-apdu-service xmlns:android="http://schemas.android.com/apk/res/android"
android:description="@string/servicedesc"
android:requireDeviceUnlock="false" >
<aid-group
android:category="other"
android:description="@string/aiddescription" >
<aid-filter android:name="23498234098234098" />
</aid-group>
Run Code Online (Sandbox Code Playgroud)
Android操作系统何时何地读取辅助过滤器并注册ID?
(我知道它将存储在哪里,以及如何存储,但我无法找到实际ID被提取并转发到NFC堆栈的事件)
主机和脱离主机CE服务列表何时更新?
每当添加,更改,更新,删除应用程序包等时,都会收集和更新有关主机和脱离主机APDU服务(基于HCE和SE的CE)的信息.这由com.android.nfc中的广播接收器处理. cardemulation.RegisteredServicesCache.广播接收器对以下事件敏感:
ACTION_PACKAGE_ADDEDACTION_PACKAGE_CHANGEDACTION_PACKAGE_REMOVEDACTION_PACKAGE_REPLACEDACTION_PACKAGE_FIRST_LAUNCHACTION_PACKAGE_RESTARTEDACTION_EXTERNAL_APPLICATIONS_AVAILABLEACTION_EXTERNAL_APPLICATIONS_UNAVAILABLE此外,每次启用NFC服务时都会更新AID.
生成的服务列表如何以及在何处?
在更新过程中,该系统查询的服务为目的的行为过滤器的列表android.nfc.cardemulation.action.HOST_APDU_SERVICE和android.nfc.cardemulation.action.OFF_HOST_APDU_SERVICE.对于每个服务,检查应用程序是否拥有使用NFC的权限以及服务是否需要BIND_NFC_SERVICE许可.如果是这种情况,则考虑将服务用于卡仿真.
提取AID列表的方式和位置?
然后,主机和脱离主机APDU服务存储在andoid.nfc.cardemulation.ApduServiceInfo对象的列表中.该类的构造函数处理<service>标记中指定的元数据并提取 AID列表.
使用新列表更新卡仿真系统的方式和位置?
列表编译完成后,会传递给com.android.nfc.cardemulation.RegisteredAidCache.在那里,服务和AID列表用于编译主机上和主机外AID路由的路由表.
| 归档时间: |
|
| 查看次数: |
592 次 |
| 最近记录: |