Fix NetworkScorerAppManager#isCallerActiveScorer.
The current implementation checks whether the caller's uid has the SCORE_NETWORKS permission instead of checking the passed in callingUid. I removed this check entirely because the getActiveScorer method already checks whether the scorer's package has the SCORE_NETWORKS permission. There is no way callingUid can equal the active scoring package's uid without also having the SCORE_NETWORKS permission. Bug: 34107721 Test: runtest --path core/tests/coretests/src/android/net/NetworkScorerAppManagerTest.java Change-Id: Ifd427792169837c84a10a76b208c76137db06ae9
This commit is contained in:
@@ -231,13 +231,7 @@ public class NetworkScorerAppManager {
|
||||
if (defaultApp == null) {
|
||||
return false;
|
||||
}
|
||||
if (callingUid != defaultApp.packageUid) {
|
||||
return false;
|
||||
}
|
||||
// To be extra safe, ensure the caller holds the SCORE_NETWORKS permission. It always
|
||||
// should, since it couldn't become the active scorer otherwise, but this can't hurt.
|
||||
return mContext.checkCallingPermission(Manifest.permission.SCORE_NETWORKS) ==
|
||||
PackageManager.PERMISSION_GRANTED;
|
||||
return callingUid == defaultApp.packageUid;
|
||||
}
|
||||
|
||||
private boolean isNetworkRecommendationsDisabled() {
|
||||
|
||||
@@ -169,6 +169,25 @@ public class NetworkScorerAppManagerTest extends InstrumentationTestCase {
|
||||
assertNull(activeScorer);
|
||||
}
|
||||
|
||||
public void testIsCallerActiveScorer_providerNotAvailable() throws Exception {
|
||||
ContentResolver cr = mTargetContext.getContentResolver();
|
||||
Settings.Global.putInt(cr, Settings.Global.NETWORK_RECOMMENDATIONS_ENABLED, 1);
|
||||
|
||||
assertFalse(mNetworkScorerAppManager.isCallerActiveScorer(924));
|
||||
}
|
||||
|
||||
public void testIsCallerActiveScorer_providerAvailable() throws Exception {
|
||||
setNetworkRecommendationPackageNames("package1");
|
||||
mockScoreNetworksGranted("package1");
|
||||
mockRecommendationServiceAvailable("package1", 924 /* packageUid */);
|
||||
|
||||
ContentResolver cr = mTargetContext.getContentResolver();
|
||||
Settings.Global.putInt(cr, Settings.Global.NETWORK_RECOMMENDATIONS_ENABLED, 1);
|
||||
|
||||
assertTrue(mNetworkScorerAppManager.isCallerActiveScorer(924));
|
||||
assertFalse(mNetworkScorerAppManager.isCallerActiveScorer(925));
|
||||
}
|
||||
|
||||
private void setNetworkRecommendationPackageNames(String... names) {
|
||||
if (names == null) {
|
||||
names = new String[0];
|
||||
|
||||
Reference in New Issue
Block a user