Merge "Hide app if it shares uid with whitelisted app" into pi-dev
This commit is contained in:
@@ -30,6 +30,7 @@ import android.content.ComponentName;
|
|||||||
import android.content.ContentResolver;
|
import android.content.ContentResolver;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
|
import android.content.pm.PackageManager;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.os.Process;
|
import android.os.Process;
|
||||||
import android.os.StatsDimensionsValue;
|
import android.os.StatsDimensionsValue;
|
||||||
@@ -131,6 +132,7 @@ public class AnomalyDetectionJobService extends JobService {
|
|||||||
StatsManager.EXTRA_STATS_BROADCAST_SUBSCRIBER_COOKIES);
|
StatsManager.EXTRA_STATS_BROADCAST_SUBSCRIBER_COOKIES);
|
||||||
final AnomalyInfo anomalyInfo = new AnomalyInfo(
|
final AnomalyInfo anomalyInfo = new AnomalyInfo(
|
||||||
!ArrayUtils.isEmpty(cookies) ? cookies.get(0) : "");
|
!ArrayUtils.isEmpty(cookies) ? cookies.get(0) : "");
|
||||||
|
final PackageManager packageManager = context.getPackageManager();
|
||||||
Log.i(TAG, "Extra stats value: " + intentDimsValue.toString());
|
Log.i(TAG, "Extra stats value: " + intentDimsValue.toString());
|
||||||
|
|
||||||
try {
|
try {
|
||||||
@@ -141,8 +143,8 @@ public class AnomalyDetectionJobService extends JobService {
|
|||||||
: Settings.Global.getInt(contentResolver,
|
: Settings.Global.getInt(contentResolver,
|
||||||
Settings.Global.APP_AUTO_RESTRICTION_ENABLED, ON) == ON;
|
Settings.Global.APP_AUTO_RESTRICTION_ENABLED, ON) == ON;
|
||||||
final String packageName = batteryUtils.getPackageName(uid);
|
final String packageName = batteryUtils.getPackageName(uid);
|
||||||
if (!powerWhitelistBackend.isSysWhitelistedExceptIdle(packageName)
|
if (!isSystemUid(uid) && !powerWhitelistBackend.isSysWhitelistedExceptIdle(
|
||||||
&& !isSystemUid(uid)) {
|
packageManager.getPackagesForUid(uid))) {
|
||||||
boolean anomalyDetected = true;
|
boolean anomalyDetected = true;
|
||||||
if (anomalyInfo.anomalyType
|
if (anomalyInfo.anomalyType
|
||||||
== StatsManagerConfig.AnomalyType.EXCESSIVE_BACKGROUND_SERVICE) {
|
== StatsManagerConfig.AnomalyType.EXCESSIVE_BACKGROUND_SERVICE) {
|
||||||
|
@@ -64,7 +64,7 @@ import java.util.concurrent.TimeUnit;
|
|||||||
|
|
||||||
@RunWith(SettingsRobolectricTestRunner.class)
|
@RunWith(SettingsRobolectricTestRunner.class)
|
||||||
public class AnomalyDetectionJobServiceTest {
|
public class AnomalyDetectionJobServiceTest {
|
||||||
private static final int UID = 123;
|
private static final int UID = 12345;
|
||||||
private static final String SYSTEM_PACKAGE = "com.android.system";
|
private static final String SYSTEM_PACKAGE = "com.android.system";
|
||||||
private static final String SUBSCRIBER_COOKIES_AUTO_RESTRICTION =
|
private static final String SUBSCRIBER_COOKIES_AUTO_RESTRICTION =
|
||||||
"anomaly_type=6,auto_restriction=true";
|
"anomaly_type=6,auto_restriction=true";
|
||||||
@@ -120,8 +120,8 @@ public class AnomalyDetectionJobServiceTest {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testSaveAnomalyToDatabase_systemWhitelisted_doNotSave() {
|
public void testSaveAnomalyToDatabase_systemWhitelisted_doNotSave() {
|
||||||
doReturn(SYSTEM_PACKAGE).when(mBatteryUtils).getPackageName(anyInt());
|
doReturn(UID).when(mAnomalyDetectionJobService).extractUidFromStatsDimensionsValue(any());
|
||||||
doReturn(true).when(mPowerWhitelistBackend).isSysWhitelisted(SYSTEM_PACKAGE);
|
doReturn(true).when(mPowerWhitelistBackend).isSysWhitelistedExceptIdle(any(String[].class));
|
||||||
|
|
||||||
mAnomalyDetectionJobService.saveAnomalyToDatabase(mContext, mBatteryStatsHelper,
|
mAnomalyDetectionJobService.saveAnomalyToDatabase(mContext, mBatteryStatsHelper,
|
||||||
mUserManager, mBatteryDatabaseManager, mBatteryUtils, mPolicy,
|
mUserManager, mBatteryDatabaseManager, mBatteryUtils, mPolicy,
|
||||||
|
Reference in New Issue
Block a user