Skip to content

Commit 0e40a2d

Browse files
authored
Android: Remove intent encryption workaround and use proper permission model for broadcasts (#31)
1 parent 0585383 commit 0e40a2d

8 files changed

Lines changed: 112 additions & 204 deletions

File tree

packages/demo-hce-module-app/android/app/src/main/AndroidManifest.xml

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,10 @@
33
<uses-permission android:name="android.permission.INTERNET" />
44

55
<uses-permission android:name="android.permission.NFC" />
6-
<uses-feature android:name="android.hardware.nfc.hce" android:required="true" />
6+
<uses-feature android:name="android.hardware.nfc.hce" android:required="false" />
7+
8+
<permission android:name="com.itsecrnd.rtnhceandroid.HCE_BROADCAST" android:protectionLevel="signature" />
9+
<uses-permission android:name="com.itsecrnd.rtnhceandroid.HCE_BROADCAST"/>
710

811
<application
912
android:name=".MainApplication"
@@ -27,10 +30,10 @@
2730
</intent-filter>
2831
</activity>
2932
<service
30-
android:name="com.itsecrnd.rtnhceandroid.HCEService"
33+
android:name="com.itsecrnd.rtnhceandroid.service.HCEService"
3134
android:exported="true"
3235
android:enabled="true"
33-
android:permission="android.permission.BIND_NFC_SERVICE" >
36+
android:permission="android.permission.BIND_NFC_SERVICE">
3437
<intent-filter>
3538
<action android:name="android.nfc.cardemulation.action.HOST_APDU_SERVICE" />
3639
<category android:name="android.intent.category.DEFAULT"/>

packages/native-hce-module/README.md

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,9 @@ Afterwards, follow the subsections below for each platform that you need to supp
6464
...
6565

6666
+ <uses-permission android:name="android.permission.NFC" />
67-
+ <uses-feature android:name="android.hardware.nfc.hce" android:required="true" />
67+
+ <uses-feature android:name="android.hardware.nfc.hce" android:required="false" />
68+
+ <permission android:name="com.itsecrnd.rtnhceandroid.HCE_BROADCAST" android:protectionLevel="signature" />
69+
+ <uses-permission android:name="com.itsecrnd.rtnhceandroid.HCE_BROADCAST"/>
6870

6971
...
7072

@@ -75,10 +77,10 @@ Afterwards, follow the subsections below for each platform that you need to supp
7577
...
7678

7779
+ <service
78-
+ android:name="com.itsecrnd.rtnhceandroid.HCEService"
80+
+ android:name="com.itsecrnd.rtnhceandroid.service.HCEService"
7981
+ android:exported="true"
8082
+ android:enabled="true"
81-
+ android:permission="android.permission.BIND_NFC_SERVICE" >
83+
+ android:permission="android.permission.BIND_NFC_SERVICE">
8284
+ <intent-filter>
8385
+ <action android:name="android.nfc.cardemulation.action.HOST_APDU_SERVICE" />
8486
+ <category android:name="android.intent.category.DEFAULT"/>

packages/native-hce-module/android/src/main/java/com/itsecrnd/rtnhceandroid/AESGCMUtil.java

Lines changed: 0 additions & 89 deletions
This file was deleted.
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
package com.itsecrnd.rtnhceandroid;
22

33
public class IntentKeys {
4+
public static final String PERMISSION_HCE_BROADCAST = "com.itsecrnd.rtnhceandroid.HCE_BROADCAST";
45
public static final String ACTION_RECEIVE_C_APDU = "com.itsecrnd.rtnhceandroid.ACTION_RECEIVE_C_APDU";
56
public static final String ACTION_SEND_R_APDU = "com.itsecrnd.rtnhceandroid.ACTION_SEND_R_APDU";
67
public static final String ACTION_READER_DETECT = "com.itsecrnd.rtnhceandroid.ACTION_READER_DETECT";
78
public static final String ACTION_READER_LOST = "com.itsecrnd.rtnhceandroid.ACTION_READER_LOST";
8-
public static final String KEY_AUTH = "auth";
99
public static final String KEY_CAPDU = "capdu";
1010
public static final String KEY_RAPDU = "rapdu";
1111
}

0 commit comments

Comments
 (0)