Loading core/java/android/net/NetworkScoreManager.java +8 −8 Original line number Diff line number Diff line Loading @@ -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 Loading Loading @@ -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 { Loading Loading @@ -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 { Loading @@ -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 */ Loading core/java/android/net/NetworkScorerAppManager.java +3 −3 Original line number Diff line number Diff line Loading @@ -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. Loading @@ -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; } Loading core/res/AndroidManifest.xml +5 −4 Original line number Diff line number Diff line Loading @@ -2511,11 +2511,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. --> Loading core/res/res/values/strings.xml +3 −3 Original line number Diff line number Diff line Loading @@ -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> Loading core/tests/coretests/src/android/net/NetworkScorerAppManagerTest.java +2 −2 Original line number Diff line number Diff line Loading @@ -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. Loading Loading @@ -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; Loading Loading
core/java/android/net/NetworkScoreManager.java +8 −8 Original line number Diff line number Diff line Loading @@ -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 Loading Loading @@ -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 { Loading Loading @@ -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 { Loading @@ -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 */ Loading
core/java/android/net/NetworkScorerAppManager.java +3 −3 Original line number Diff line number Diff line Loading @@ -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. Loading @@ -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; } Loading
core/res/AndroidManifest.xml +5 −4 Original line number Diff line number Diff line Loading @@ -2511,11 +2511,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. --> Loading
core/res/res/values/strings.xml +3 −3 Original line number Diff line number Diff line Loading @@ -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> Loading
core/tests/coretests/src/android/net/NetworkScorerAppManagerTest.java +2 −2 Original line number Diff line number Diff line Loading @@ -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. Loading Loading @@ -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; Loading