Merge "Fix testNetworkSettingsPermission for headless User 0" into qt-dev

This commit is contained in:
TreeHugger Robot
2019-06-05 18:40:35 +00:00
committed by Android (Google) Code Review
2 changed files with 16 additions and 15 deletions

View File

@@ -27,6 +27,7 @@
<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" /> <uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" />
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" /> <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
<uses-permission android:name="android.permission.DISABLE_KEYGUARD" /> <uses-permission android:name="android.permission.DISABLE_KEYGUARD" />
<uses-permission android:name="android.permission.INTERACT_ACROSS_USERS" />
<uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.RECORD_AUDIO" /> <uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.WAKE_LOCK" /> <uses-permission android:name="android.permission.WAKE_LOCK" />

View File

@@ -36,6 +36,7 @@ import android.net.wifi.hotspot2.pps.Credential;
import android.net.wifi.hotspot2.pps.HomeSp; import android.net.wifi.hotspot2.pps.HomeSp;
import android.os.Process; import android.os.Process;
import android.os.SystemClock; import android.os.SystemClock;
import android.os.UserHandle;
import android.platform.test.annotations.AppModeFull; import android.platform.test.annotations.AppModeFull;
import android.provider.Settings; import android.provider.Settings;
import android.support.test.uiautomator.UiDevice; import android.support.test.uiautomator.UiDevice;
@@ -771,21 +772,20 @@ public class WifiManagerTest extends AndroidTestCase {
}, PackageManager.MATCH_UNINSTALLED_PACKAGES); }, PackageManager.MATCH_UNINSTALLED_PACKAGES);
for (PackageInfo pi : holding) { for (PackageInfo pi : holding) {
String packageName = pi.packageName; String packageName = pi.packageName;
if (allowedPackages.contains(packageName)) {
// this is an explicitly allowed package // this is an explicitly allowed package
} else { if (allowedPackages.contains(packageName)) continue;
// now check if the packages are from allowed UIDs
boolean allowed = false; // now check if the packages are from allowed UIDs
try { int uid = -1;
if (allowedUIDs.contains(pm.getPackageUid(packageName, 0))) { try {
allowed = true; uid = pm.getPackageUidAsUser(packageName, UserHandle.USER_SYSTEM);
Log.d(TAG, packageName + " is on an allowed UID"); } catch (PackageManager.NameNotFoundException e) {
} continue;
} catch (PackageManager.NameNotFoundException e) { } }
if (!allowed) { if (!allowedUIDs.contains(uid)) {
fail("The NETWORK_SETTINGS permission must not be held by " fail("The NETWORK_SETTINGS permission must not be held by " + packageName
+ packageName + " and must be revoked for security reasons"); + ":" + uid + " and must be revoked for security reasons");
}
} }
} }
} }