diff --git a/core/java/android/net/NetworkScoreManager.java b/core/java/android/net/NetworkScoreManager.java index 815d4807a39e4..f0bea5b8e0ad7 100644 --- a/core/java/android/net/NetworkScoreManager.java +++ b/core/java/android/net/NetworkScoreManager.java @@ -265,8 +265,8 @@ public class NetworkScoreManager { * the {@link #ACTION_CHANGE_ACTIVE} broadcast, or using a custom configuration activity. * * @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#SCORE_NETWORKS} permission. + * @throws SecurityException if the caller is not a system process or does not hold the + * {@link android.Manifest.permission#REQUEST_NETWORK_SCORES} permission * @hide */ @SystemApi diff --git a/services/core/java/com/android/server/NetworkScoreService.java b/services/core/java/com/android/server/NetworkScoreService.java index d54ebaafb5bb6..b83dbd686ae58 100644 --- a/services/core/java/com/android/server/NetworkScoreService.java +++ b/services/core/java/com/android/server/NetworkScoreService.java @@ -663,12 +663,12 @@ public class NetworkScoreService extends INetworkScoreService.Stub { @Override public boolean setActiveScorer(String packageName) { // Only the system can set the active scorer - if (isCallerSystemProcess(getCallingUid()) || callerCanRequestScores()) { - return mNetworkScorerAppManager.setActiveScorer(packageName); - } else { + if (!isCallerSystemProcess(getCallingUid()) || !callerCanRequestScores()) { throw new SecurityException( "Caller is neither the system process nor a score requester."); } + + return mNetworkScorerAppManager.setActiveScorer(packageName); } /** @@ -732,23 +732,23 @@ public class NetworkScoreService extends INetworkScoreService.Stub { @Override public List getAllValidScorers() { // Only the system can access this data. - if (isCallerSystemProcess(getCallingUid()) || callerCanRequestScores()) { - return mNetworkScorerAppManager.getAllValidScorers(); - } else { + if (!isCallerSystemProcess(getCallingUid()) || !callerCanRequestScores()) { throw new SecurityException( "Caller is neither the system process nor a score requester."); } + + return mNetworkScorerAppManager.getAllValidScorers(); } @Override public void disableScoring() { // Only the active scorer or the system should be allowed to disable scoring. - if (isCallerActiveScorer(getCallingUid()) || callerCanRequestScores()) { - // no-op for now but we could write to the setting if needed. - } else { + if (!isCallerActiveScorer(getCallingUid()) || !callerCanRequestScores()) { throw new SecurityException( "Caller is neither the active scorer nor the scorer manager."); } + + // no-op for now but we could write to the setting if needed. } /** Clear scores. Callers are responsible for checking permissions as appropriate. */