diff options
| -rw-r--r-- | core/java/android/net/NetworkScoreManager.java | 16 | ||||
| -rw-r--r-- | core/java/android/net/NetworkScorerAppManager.java | 6 | ||||
| -rw-r--r-- | core/res/AndroidManifest.xml | 9 | ||||
| -rw-r--r-- | core/res/res/values/strings.xml | 6 | ||||
| -rw-r--r-- | core/tests/coretests/src/android/net/NetworkScorerAppManagerTest.java | 4 | ||||
| -rw-r--r-- | services/core/java/com/android/server/NetworkScoreService.java | 16 |
6 files changed, 29 insertions, 28 deletions
diff --git a/core/java/android/net/NetworkScoreManager.java b/core/java/android/net/NetworkScoreManager.java index 3f68a44..03a2085 100644 --- a/core/java/android/net/NetworkScoreManager.java +++ b/core/java/android/net/NetworkScoreManager.java @@ -41,10 +41,10 @@ import android.os.UserHandle; * <ul> * <li>Declares the {@link android.Manifest.permission#SCORE_NETWORKS} permission. * <li>Includes a receiver for {@link #ACTION_SCORE_NETWORKS} guarded by the - * {@link android.Manifest.permission#BROADCAST_SCORE_NETWORKS} permission which scores networks - * and (eventually) calls {@link #updateScores} with the results. If this receiver specifies an - * android:label attribute, this label will be used when referring to the application throughout - * system settings; otherwise, the application label will be used. + * {@link android.Manifest.permission#BROADCAST_NETWORK_PRIVILEGED} permission which scores + * networks and (eventually) calls {@link #updateScores} with the results. If this receiver + * specifies an android:label attribute, this label will be used when referring to the + * application throughout system settings; otherwise, the application label will be used. * </ul> * * <p>The system keeps track of an active scorer application; at any time, only this application @@ -194,8 +194,8 @@ public class NetworkScoreManager { * * @return true if the operation succeeded, or false if the new package is not a valid scorer. * @throws SecurityException if the caller does not hold the - * {@link android.Manifest.permission#BROADCAST_SCORE_NETWORKS} permission indicating - * that it can manage scorer applications. + * {@link android.Manifest.permission#BROADCAST_NETWORK_PRIVILEGED} permission + * indicating that it can manage scorer applications. * @hide */ public boolean setActiveScorer(String packageName) throws SecurityException { @@ -228,7 +228,7 @@ public class NetworkScoreManager { * * @return true if the broadcast was sent, or false if there is no active scorer. * @throws SecurityException if the caller does not hold the - * {@link android.Manifest.permission#BROADCAST_SCORE_NETWORKS} permission. + * {@link android.Manifest.permission#BROADCAST_NETWORK_PRIVILEGED} permission. * @hide */ public boolean requestScores(NetworkKey[] networks) throws SecurityException { @@ -252,7 +252,7 @@ public class NetworkScoreManager { * @param networkType the type of network this cache can handle. See {@link NetworkKey#type}. * @param scoreCache implementation of {@link INetworkScoreCache} to store the scores. * @throws SecurityException if the caller does not hold the - * {@link android.Manifest.permission#BROADCAST_SCORE_NETWORKS} permission. + * {@link android.Manifest.permission#BROADCAST_NETWORK_PRIVILEGED} permission. * @throws IllegalArgumentException if a score cache is already registered for this type. * @hide */ diff --git a/core/java/android/net/NetworkScorerAppManager.java b/core/java/android/net/NetworkScorerAppManager.java index c33f5ec..46f7194 100644 --- a/core/java/android/net/NetworkScorerAppManager.java +++ b/core/java/android/net/NetworkScorerAppManager.java @@ -79,7 +79,7 @@ public final class NetworkScorerAppManager { * <ul> * <li>Declares the {@link android.Manifest.permission#SCORE_NETWORKS} permission. * <li>Includes a receiver for {@link NetworkScoreManager#ACTION_SCORE_NETWORKS} guarded by the - * {@link android.Manifest.permission#BROADCAST_SCORE_NETWORKS} permission. + * {@link android.Manifest.permission#BROADCAST_NETWORK_PRIVILEGED} permission. * </ul> * * @return the list of scorers, or the empty list if there are no valid scorers. @@ -98,8 +98,8 @@ public final class NetworkScorerAppManager { // Should never happen with queryBroadcastReceivers, but invalid nonetheless. continue; } - if (!permission.BROADCAST_SCORE_NETWORKS.equals(receiverInfo.permission)) { - // Receiver doesn't require the BROADCAST_SCORE_NETWORKS permission, which means + if (!permission.BROADCAST_NETWORK_PRIVILEGED.equals(receiverInfo.permission)) { + // Receiver doesn't require the BROADCAST_NETWORK_PRIVILEGED permission, which means // anyone could trigger network scoring and flood the framework with score requests. continue; } diff --git a/core/res/AndroidManifest.xml b/core/res/AndroidManifest.xml index 8e0cd52..db7174e 100644 --- a/core/res/AndroidManifest.xml +++ b/core/res/AndroidManifest.xml @@ -2500,11 +2500,12 @@ android:description="@string/permdesc_broadcastWapPush" android:protectionLevel="signature" /> - <!-- @SystemApi Allows an application to broadcast a SCORE_NETWORKS request. + <!-- @SystemApi Allows an application to broadcast privileged networking requests. <p>Not for use by third-party applications. @hide --> - <permission android:name="android.permission.BROADCAST_SCORE_NETWORKS" - android:label="@string/permlab_broadcastScoreNetworks" - android:description="@string/permdesc_broadcastScoreNetworks" + <permission android:name="android.permission.BROADCAST_NETWORK_PRIVILEGED" + android:permissionGroup="android.permission-group.NETWORK" + android:label="@string/permlab_broadcastNetworkPrivileged" + android:description="@string/permdesc_broadcastNetworkPrivileged" android:protectionLevel="signature|system" /> <!-- @SystemApi Not for use by third-party applications. --> diff --git a/core/res/res/values/strings.xml b/core/res/res/values/strings.xml index 27616c7..22ea3df 100644 --- a/core/res/res/values/strings.xml +++ b/core/res/res/values/strings.xml @@ -977,10 +977,10 @@ <!-- TODO: Mark these as translatable when API is finalized. --> <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. --> - <string name="permlab_broadcastScoreNetworks" translatable="false">send score networks broadcast</string> + <string name="permlab_broadcastNetworkPrivileged" translatable="false">send privileged network broadcasts</string> <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. --> - <string name="permdesc_broadcastScoreNetworks" translatable="false">Allows the app - to broadcast a notification that networks need to be scored. + <string name="permdesc_broadcastNetworkPrivileged" translatable="false">Allows the app + to send privileged network broadcasts. Never needed for normal apps. </string> diff --git a/core/tests/coretests/src/android/net/NetworkScorerAppManagerTest.java b/core/tests/coretests/src/android/net/NetworkScorerAppManagerTest.java index f916711..9bb44d0 100644 --- a/core/tests/coretests/src/android/net/NetworkScorerAppManagerTest.java +++ b/core/tests/coretests/src/android/net/NetworkScorerAppManagerTest.java @@ -59,7 +59,7 @@ public class NetworkScorerAppManagerTest extends InstrumentationTestCase { // Package 1 - Valid scorer. Pair<ResolveInfo, ResolveInfo> package1 = buildResolveInfo("package1", true, true, false); - // Package 2 - Receiver does not have BROADCAST_SCORE_NETWORKS permission. + // Package 2 - Receiver does not have BROADCAST_NETWORK_PRIVILEGED permission. Pair<ResolveInfo, ResolveInfo> package2 = buildResolveInfo("package2", false, true, false); // Package 3 - App does not have SCORE_NETWORKS permission. @@ -134,7 +134,7 @@ public class NetworkScorerAppManagerTest extends InstrumentationTestCase { resolveInfo.activityInfo.packageName = packageName; resolveInfo.activityInfo.applicationInfo = new ApplicationInfo(); if (hasReceiverPermission) { - resolveInfo.activityInfo.permission = permission.BROADCAST_SCORE_NETWORKS; + resolveInfo.activityInfo.permission = permission.BROADCAST_NETWORK_PRIVILEGED; } ResolveInfo configActivityInfo = null; diff --git a/services/core/java/com/android/server/NetworkScoreService.java b/services/core/java/com/android/server/NetworkScoreService.java index 395e365..bb91a14 100644 --- a/services/core/java/com/android/server/NetworkScoreService.java +++ b/services/core/java/com/android/server/NetworkScoreService.java @@ -115,10 +115,10 @@ public class NetworkScoreService extends INetworkScoreService.Stub { @Override public boolean clearScores() { - // Only the active scorer or the system (who can broadcast BROADCAST_SCORE_NETWORKS) should - // be allowed to flush all scores. + // Only the active scorer or the system (who can broadcast BROADCAST_NETWORK_PRIVILEGED) + // should be allowed to flush all scores. if (NetworkScorerAppManager.isCallerActiveScorer(mContext, getCallingUid()) || - mContext.checkCallingOrSelfPermission(permission.BROADCAST_SCORE_NETWORKS) == + mContext.checkCallingOrSelfPermission(permission.BROADCAST_NETWORK_PRIVILEGED) == PackageManager.PERMISSION_GRANTED) { clearInternal(); return true; @@ -130,16 +130,16 @@ public class NetworkScoreService extends INetworkScoreService.Stub { @Override public boolean setActiveScorer(String packageName) { - mContext.enforceCallingOrSelfPermission(permission.BROADCAST_SCORE_NETWORKS, TAG); + mContext.enforceCallingOrSelfPermission(permission.BROADCAST_NETWORK_PRIVILEGED, TAG); return setScorerInternal(packageName); } @Override public void disableScoring() { - // Only the active scorer or the system (who can broadcast BROADCAST_SCORE_NETOWRKS) should - // be allowed to disable scoring. + // Only the active scorer or the system (who can broadcast BROADCAST_NETWORK_PRIVILEGED) + // should be allowed to disable scoring. if (NetworkScorerAppManager.isCallerActiveScorer(mContext, getCallingUid()) || - mContext.checkCallingOrSelfPermission(permission.BROADCAST_SCORE_NETWORKS) == + mContext.checkCallingOrSelfPermission(permission.BROADCAST_NETWORK_PRIVILEGED) == PackageManager.PERMISSION_GRANTED) { // The return value is discarded here because at this point, the call should always // succeed. The only reason for failure is if the new package is not a valid scorer, but @@ -188,7 +188,7 @@ public class NetworkScoreService extends INetworkScoreService.Stub { @Override public void registerNetworkScoreCache(int networkType, INetworkScoreCache scoreCache) { - mContext.enforceCallingOrSelfPermission(permission.BROADCAST_SCORE_NETWORKS, TAG); + mContext.enforceCallingOrSelfPermission(permission.BROADCAST_NETWORK_PRIVILEGED, TAG); synchronized (mScoreCaches) { if (mScoreCaches.containsKey(networkType)) { throw new IllegalArgumentException( |
