Rename BROADCAST_SCORE_NETWORKS to BROADCAST_NETWORK_PRIVILEGED.

This is necessary/desired for two reasons:

1. UX around network scoring shipped with L despite lacking underlying
platform support. We do not want network scoring applications to
trigger this UX on L devices, and therefore we must break the contract
of what defines a network scorer so that apps build against the new
contract don't trigger the old UX.

2. As a start towards generalizing the term "score" for a potentially
broader role in the future, though that role is very much undefined.

Bug: 18160480
Change-Id: If228977513e32e45bc44dbeda24aa18436fdfca6
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 @@
  * <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 @@
      *
      * @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 @@
      *
      * @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 @@
      * @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 @@
      * <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 @@
                 // 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 @@
         // 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 @@
         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;