Deprecate ACTION_STORAGE_CHANGED
ACTION_STORAGE_CHANGED is too noisy and fires on too many events. It has been split into ACTION_KEYCHAIN_CHANGED for addition/modification/removal of user certificates and keys, ACTION_TRUST_STORE_CHANGED for changes the the user added and system CA stores on the device and ACTION_KEY_ACCESS_CHANGED for changes to key grants. ACTION_STORAGE_CHANGED will only be sent to applications targeting N and below. Applications targeting future releases should use the new broadcasts. Bug:28450538 Change-Id: I34ff838e9858db65f7308ca2b0f7d652c48fae17
This commit is contained in:
@@ -34268,8 +34268,13 @@ package android.security {
|
||||
method public static java.security.PrivateKey getPrivateKey(android.content.Context, java.lang.String) throws java.lang.InterruptedException, android.security.KeyChainException;
|
||||
method public static deprecated boolean isBoundKeyAlgorithm(java.lang.String);
|
||||
method public static boolean isKeyAlgorithmSupported(java.lang.String);
|
||||
field public static final java.lang.String ACTION_STORAGE_CHANGED = "android.security.STORAGE_CHANGED";
|
||||
field public static final java.lang.String ACTION_KEYCHAIN_CHANGED = "android.security.action.KEYCHAIN_CHANGED";
|
||||
field public static final java.lang.String ACTION_KEY_ACCESS_CHANGED = "android.security.action.KEY_ACCESS_CHANGED";
|
||||
field public static final deprecated java.lang.String ACTION_STORAGE_CHANGED = "android.security.STORAGE_CHANGED";
|
||||
field public static final java.lang.String ACTION_TRUST_STORE_CHANGED = "android.security.action.TRUST_STORE_CHANGED";
|
||||
field public static final java.lang.String EXTRA_CERTIFICATE = "CERT";
|
||||
field public static final java.lang.String EXTRA_KEY_ACCESSIBLE = "android.security.extra.KEY_ACCESSIBLE";
|
||||
field public static final java.lang.String EXTRA_KEY_ALIAS = "android.security.extra.KEY_ALIAS";
|
||||
field public static final java.lang.String EXTRA_NAME = "name";
|
||||
field public static final java.lang.String EXTRA_PKCS12 = "PKCS12";
|
||||
}
|
||||
|
||||
@@ -36976,8 +36976,13 @@ package android.security {
|
||||
method public static java.security.PrivateKey getPrivateKey(android.content.Context, java.lang.String) throws java.lang.InterruptedException, android.security.KeyChainException;
|
||||
method public static deprecated boolean isBoundKeyAlgorithm(java.lang.String);
|
||||
method public static boolean isKeyAlgorithmSupported(java.lang.String);
|
||||
field public static final java.lang.String ACTION_STORAGE_CHANGED = "android.security.STORAGE_CHANGED";
|
||||
field public static final java.lang.String ACTION_KEYCHAIN_CHANGED = "android.security.action.KEYCHAIN_CHANGED";
|
||||
field public static final java.lang.String ACTION_KEY_ACCESS_CHANGED = "android.security.action.KEY_ACCESS_CHANGED";
|
||||
field public static final deprecated java.lang.String ACTION_STORAGE_CHANGED = "android.security.STORAGE_CHANGED";
|
||||
field public static final java.lang.String ACTION_TRUST_STORE_CHANGED = "android.security.action.TRUST_STORE_CHANGED";
|
||||
field public static final java.lang.String EXTRA_CERTIFICATE = "CERT";
|
||||
field public static final java.lang.String EXTRA_KEY_ACCESSIBLE = "android.security.extra.KEY_ACCESSIBLE";
|
||||
field public static final java.lang.String EXTRA_KEY_ALIAS = "android.security.extra.KEY_ALIAS";
|
||||
field public static final java.lang.String EXTRA_NAME = "name";
|
||||
field public static final java.lang.String EXTRA_PKCS12 = "PKCS12";
|
||||
}
|
||||
|
||||
@@ -34345,8 +34345,13 @@ package android.security {
|
||||
method public static java.security.PrivateKey getPrivateKey(android.content.Context, java.lang.String) throws java.lang.InterruptedException, android.security.KeyChainException;
|
||||
method public static deprecated boolean isBoundKeyAlgorithm(java.lang.String);
|
||||
method public static boolean isKeyAlgorithmSupported(java.lang.String);
|
||||
field public static final java.lang.String ACTION_STORAGE_CHANGED = "android.security.STORAGE_CHANGED";
|
||||
field public static final java.lang.String ACTION_KEYCHAIN_CHANGED = "android.security.action.KEYCHAIN_CHANGED";
|
||||
field public static final java.lang.String ACTION_KEY_ACCESS_CHANGED = "android.security.action.KEY_ACCESS_CHANGED";
|
||||
field public static final deprecated java.lang.String ACTION_STORAGE_CHANGED = "android.security.STORAGE_CHANGED";
|
||||
field public static final java.lang.String ACTION_TRUST_STORE_CHANGED = "android.security.action.TRUST_STORE_CHANGED";
|
||||
field public static final java.lang.String EXTRA_CERTIFICATE = "CERT";
|
||||
field public static final java.lang.String EXTRA_KEY_ACCESSIBLE = "android.security.extra.KEY_ACCESSIBLE";
|
||||
field public static final java.lang.String EXTRA_KEY_ALIAS = "android.security.extra.KEY_ALIAS";
|
||||
field public static final java.lang.String EXTRA_NAME = "name";
|
||||
field public static final java.lang.String EXTRA_PKCS12 = "PKCS12";
|
||||
}
|
||||
|
||||
@@ -404,6 +404,9 @@
|
||||
<protected-broadcast android:name="android.os.action.DISCHARGING" />
|
||||
<protected-broadcast android:name="android.search.action.SEARCHABLES_CHANGED" />
|
||||
<protected-broadcast android:name="android.security.STORAGE_CHANGED" />
|
||||
<protected-broadcast android:name="android.security.action.TRUST_STORE_CHANGED" />
|
||||
<protected-broadcast android:name="android.security.action.KEYCHAIN_CHANGED" />
|
||||
<protected-broadcast android:name="android.security.action.KEY_PERMISSION_CHANGED" />
|
||||
<protected-broadcast android:name="android.telecom.action.PHONE_ACCOUNT_REGISTERED" />
|
||||
<protected-broadcast android:name="android.telecom.action.PHONE_ACCOUNT_UNREGISTERED" />
|
||||
<protected-broadcast android:name="android.telecom.action.SHOW_MISSED_CALLS_NOTIFICATION" />
|
||||
|
||||
@@ -179,7 +179,6 @@ public final class KeyChain {
|
||||
// Compatible with old android.security.Credentials.PKCS12
|
||||
public static final String EXTRA_PKCS12 = "PKCS12";
|
||||
|
||||
|
||||
/**
|
||||
* Broadcast Action: Indicates the trusted storage has changed. Sent when
|
||||
* one of this happens:
|
||||
@@ -191,9 +190,49 @@ public final class KeyChain {
|
||||
* <li>trusted storage is reset (all user certs are cleared),
|
||||
* <li>when permission to access a private key is changed.
|
||||
* </ul>
|
||||
*
|
||||
* @deprecated Use {@link #ACTION_KEYCHAIN_CHANGED}, {@link #ACTION_STORAGE_CHANGED} or
|
||||
* {@link #ACTION_KEY_ACCESS_CHANGED}.
|
||||
*/
|
||||
public static final String ACTION_STORAGE_CHANGED = "android.security.STORAGE_CHANGED";
|
||||
|
||||
/**
|
||||
* Broadcast Action: Indicates the contents of the keychain has changed. Sent when a KeyChain
|
||||
* entry is added, modified or removed.
|
||||
*/
|
||||
public static final String ACTION_KEYCHAIN_CHANGED = "android.security.action.KEYCHAIN_CHANGED";
|
||||
|
||||
/**
|
||||
* Broadcast Action: Indicates the contents of the trusted certificate store has changed. Sent
|
||||
* when one the following occurs:
|
||||
*
|
||||
* <ul>
|
||||
* <li>A pre-installed CA is disabled or re-enabled</li>
|
||||
* <li>A CA is added or removed from the trust store</li>
|
||||
* </ul>
|
||||
*/
|
||||
public static final String ACTION_TRUST_STORE_CHANGED =
|
||||
"android.security.action.TRUST_STORE_CHANGED";
|
||||
|
||||
/**
|
||||
* Broadcast Action: Indicates that the access permissions for a private key have changed.
|
||||
*
|
||||
*/
|
||||
public static final String ACTION_KEY_ACCESS_CHANGED =
|
||||
"android.security.action.KEY_ACCESS_CHANGED";
|
||||
|
||||
/**
|
||||
* Used as a String extra field in {@link #ACTION_KEY_ACCESS_CHANGED} to supply the alias of
|
||||
* the key.
|
||||
*/
|
||||
public static final String EXTRA_KEY_ALIAS = "android.security.extra.KEY_ALIAS";
|
||||
|
||||
/**
|
||||
* Used as a boolean extra field in {@link #ACTION_KEY_ACCESS_CHANGED} to supply if the key is
|
||||
* accessible to the application.
|
||||
*/
|
||||
public static final String EXTRA_KEY_ACCESSIBLE = "android.security.extra.KEY_ACCESSIBLE";
|
||||
|
||||
/**
|
||||
* Returns an {@code Intent} that can be used for credential
|
||||
* installation. The intent may be used without any extras, in
|
||||
|
||||
@@ -486,7 +486,7 @@ public class DevicePolicyManagerService extends IDevicePolicyManager.Stub {
|
||||
}
|
||||
if (Intent.ACTION_USER_UNLOCKED.equals(action)
|
||||
|| Intent.ACTION_USER_STARTED.equals(action)
|
||||
|| KeyChain.ACTION_STORAGE_CHANGED.equals(action)) {
|
||||
|| KeyChain.ACTION_TRUST_STORE_CHANGED.equals(action)) {
|
||||
int userId = intent.getIntExtra(Intent.EXTRA_USER_HANDLE, UserHandle.USER_ALL);
|
||||
new MonitoringCertNotificationTask().execute(userId);
|
||||
}
|
||||
@@ -1585,7 +1585,7 @@ public class DevicePolicyManagerService extends IDevicePolicyManager.Stub {
|
||||
filter.addAction(Intent.ACTION_USER_REMOVED);
|
||||
filter.addAction(Intent.ACTION_USER_STARTED);
|
||||
filter.addAction(Intent.ACTION_USER_UNLOCKED);
|
||||
filter.addAction(KeyChain.ACTION_STORAGE_CHANGED);
|
||||
filter.addAction(KeyChain.ACTION_TRUST_STORE_CHANGED);
|
||||
filter.setPriority(IntentFilter.SYSTEM_HIGH_PRIORITY);
|
||||
mContext.registerReceiverAsUser(mReceiver, UserHandle.ALL, filter, null, mHandler);
|
||||
filter = new IntentFilter();
|
||||
|
||||
Reference in New Issue
Block a user