diff options
| -rw-r--r-- | core/api/system-current.txt | 7 | ||||
| -rw-r--r-- | core/api/test-current.txt | 1 | ||||
| -rw-r--r-- | core/java/android/nfc/INfcAdapter.aidl | 6 | ||||
| -rw-r--r-- | core/java/android/nfc/NfcAdapter.java | 24 | ||||
| -rw-r--r-- | core/java/android/os/Process.java | 1 | ||||
| -rw-r--r-- | core/res/AndroidManifest.xml | 6 |
6 files changed, 27 insertions, 18 deletions
diff --git a/core/api/system-current.txt b/core/api/system-current.txt index 4d7360e3853e..019b6743d0a8 100644 --- a/core/api/system-current.txt +++ b/core/api/system-current.txt @@ -155,6 +155,7 @@ package android { field public static final String NETWORK_SIGNAL_STRENGTH_WAKEUP = "android.permission.NETWORK_SIGNAL_STRENGTH_WAKEUP"; field public static final String NETWORK_STACK = "android.permission.NETWORK_STACK"; field public static final String NETWORK_STATS_PROVIDER = "android.permission.NETWORK_STATS_PROVIDER"; + field public static final String NFC_SET_CONTROLLER_ALWAYS_ON = "android.permission.NFC_SET_CONTROLLER_ALWAYS_ON"; field public static final String NOTIFICATION_DURING_SETUP = "android.permission.NOTIFICATION_DURING_SETUP"; field public static final String NOTIFY_TV_INPUTS = "android.permission.NOTIFY_TV_INPUTS"; field public static final String OBSERVE_APP_USAGE = "android.permission.OBSERVE_APP_USAGE"; @@ -6723,10 +6724,10 @@ package android.nfc { method @RequiresPermission(android.Manifest.permission.WRITE_SECURE_SETTINGS) public boolean enable(); method @RequiresPermission(android.Manifest.permission.WRITE_SECURE_SETTINGS) public boolean enableNdefPush(); method @RequiresPermission(android.Manifest.permission.WRITE_SECURE_SETTINGS) public boolean enableSecureNfc(boolean); - method @RequiresPermission(android.Manifest.permission.WRITE_SECURE_SETTINGS) public boolean isAlwaysOnEnabled(); - method @RequiresPermission(android.Manifest.permission.WRITE_SECURE_SETTINGS) public boolean isAlwaysOnSupported(); + method @RequiresPermission(android.Manifest.permission.NFC_SET_CONTROLLER_ALWAYS_ON) public boolean isControllerAlwaysOn(); + method @RequiresPermission(android.Manifest.permission.NFC_SET_CONTROLLER_ALWAYS_ON) public boolean isControllerAlwaysOnSupported(); method @RequiresPermission(android.Manifest.permission.WRITE_SECURE_SETTINGS) public boolean removeNfcUnlockHandler(android.nfc.NfcAdapter.NfcUnlockHandler); - method @RequiresPermission(android.Manifest.permission.WRITE_SECURE_SETTINGS) public boolean setAlwaysOn(boolean); + method @RequiresPermission(android.Manifest.permission.NFC_SET_CONTROLLER_ALWAYS_ON) public boolean setControllerAlwaysOn(boolean); method public void setNdefPushMessage(android.nfc.NdefMessage, android.app.Activity, int); field public static final int FLAG_NDEF_PUSH_NO_CONFIRM = 1; // 0x1 } diff --git a/core/api/test-current.txt b/core/api/test-current.txt index 1d094c3d7f40..2f160e9f4252 100644 --- a/core/api/test-current.txt +++ b/core/api/test-current.txt @@ -1064,6 +1064,7 @@ package android.os { field public static final int FIRST_ISOLATED_UID = 99000; // 0x182b8 field public static final int LAST_APP_ZYGOTE_ISOLATED_UID = 98999; // 0x182b7 field public static final int LAST_ISOLATED_UID = 99999; // 0x1869f + field public static final int NFC_UID = 1027; // 0x403 field public static final int NUM_UIDS_PER_APP_ZYGOTE = 100; // 0x64 } diff --git a/core/java/android/nfc/INfcAdapter.aidl b/core/java/android/nfc/INfcAdapter.aidl index bc3d5c4ab1ac..11445e9aec5a 100644 --- a/core/java/android/nfc/INfcAdapter.aidl +++ b/core/java/android/nfc/INfcAdapter.aidl @@ -72,7 +72,7 @@ interface INfcAdapter boolean deviceSupportsNfcSecure(); boolean setNfcSecure(boolean enable); - boolean setAlwaysOn(boolean value); - boolean isAlwaysOnEnabled(); - boolean isAlwaysOnSupported(); + boolean setControllerAlwaysOn(boolean value); + boolean isControllerAlwaysOn(); + boolean isControllerAlwaysOnSupported(); } diff --git a/core/java/android/nfc/NfcAdapter.java b/core/java/android/nfc/NfcAdapter.java index e85eb935a8e7..eed2c77b06b9 100644 --- a/core/java/android/nfc/NfcAdapter.java +++ b/core/java/android/nfc/NfcAdapter.java @@ -2254,13 +2254,13 @@ public final class NfcAdapter { * @hide */ @SystemApi - @RequiresPermission(android.Manifest.permission.WRITE_SECURE_SETTINGS) - public boolean setAlwaysOn(boolean value) { + @RequiresPermission(android.Manifest.permission.NFC_SET_CONTROLLER_ALWAYS_ON) + public boolean setControllerAlwaysOn(boolean value) { if (!sHasNfcFeature) { throw new UnsupportedOperationException(); } try { - return sService.setAlwaysOn(value); + return sService.setControllerAlwaysOn(value); } catch (RemoteException e) { attemptDeadServiceRecovery(e); // Try one more time @@ -2269,7 +2269,7 @@ public final class NfcAdapter { return false; } try { - return sService.setAlwaysOn(value); + return sService.setControllerAlwaysOn(value); } catch (RemoteException ee) { Log.e(TAG, "Failed to recover NFC Service."); } @@ -2286,10 +2286,10 @@ public final class NfcAdapter { */ @SystemApi - @RequiresPermission(android.Manifest.permission.WRITE_SECURE_SETTINGS) - public boolean isAlwaysOnEnabled() { + @RequiresPermission(android.Manifest.permission.NFC_SET_CONTROLLER_ALWAYS_ON) + public boolean isControllerAlwaysOn() { try { - return sService.isAlwaysOnEnabled(); + return sService.isControllerAlwaysOn(); } catch (RemoteException e) { attemptDeadServiceRecovery(e); // Try one more time @@ -2298,7 +2298,7 @@ public final class NfcAdapter { return false; } try { - return sService.isAlwaysOnEnabled(); + return sService.isControllerAlwaysOn(); } catch (RemoteException ee) { Log.e(TAG, "Failed to recover NFC Service."); } @@ -2315,13 +2315,13 @@ public final class NfcAdapter { */ @SystemApi - @RequiresPermission(android.Manifest.permission.WRITE_SECURE_SETTINGS) - public boolean isAlwaysOnSupported() { + @RequiresPermission(android.Manifest.permission.NFC_SET_CONTROLLER_ALWAYS_ON) + public boolean isControllerAlwaysOnSupported() { if (!sHasNfcFeature) { throw new UnsupportedOperationException(); } try { - return sService.isAlwaysOnSupported(); + return sService.isControllerAlwaysOnSupported(); } catch (RemoteException e) { attemptDeadServiceRecovery(e); // Try one more time @@ -2330,7 +2330,7 @@ public final class NfcAdapter { return false; } try { - return sService.isAlwaysOnSupported(); + return sService.isControllerAlwaysOnSupported(); } catch (RemoteException ee) { Log.e(TAG, "Failed to recover NFC Service."); } diff --git a/core/java/android/os/Process.java b/core/java/android/os/Process.java index 9d16f18ab848..9b29fb1dfaac 100644 --- a/core/java/android/os/Process.java +++ b/core/java/android/os/Process.java @@ -127,6 +127,7 @@ public class Process { * @hide */ @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) + @TestApi public static final int NFC_UID = 1027; /** diff --git a/core/res/AndroidManifest.xml b/core/res/AndroidManifest.xml index f65d7a7540e4..4a222721558c 100644 --- a/core/res/AndroidManifest.xml +++ b/core/res/AndroidManifest.xml @@ -1882,6 +1882,12 @@ android:label="@string/permlab_preferredPaymentInfo" android:protectionLevel="normal" /> + <!-- @SystemApi Allows access to set NFC controller always on states. + <p>Protection level: signature|privileged + @hide --> + <permission android:name="android.permission.NFC_SET_CONTROLLER_ALWAYS_ON" + android:protectionLevel="signature|privileged" /> + <!-- @SystemApi Allows an internal user to use privileged SecureElement APIs. Applications holding this permission can access OMAPI reset system API and bypass OMAPI AccessControlEnforcer. |