Loading config/hiddenapi-greylist.txt +0 −1 Original line number Original line Diff line number Diff line Loading @@ -56,7 +56,6 @@ Landroid/app/IActivityManager$Stub$Proxy;->getConfiguration()Landroid/content/re Landroid/app/IActivityManager$Stub$Proxy;->getLaunchedFromUid(Landroid/os/IBinder;)I Landroid/app/IActivityManager$Stub$Proxy;->getLaunchedFromUid(Landroid/os/IBinder;)I Landroid/app/IActivityManager$Stub$Proxy;->getProcessLimit()I Landroid/app/IActivityManager$Stub$Proxy;->getProcessLimit()I Landroid/app/IActivityManager$Stub$Proxy;->getProcessPss([I)[J Landroid/app/IActivityManager$Stub$Proxy;->getProcessPss([I)[J Landroid/app/IActivityManager$Stub$Proxy;->isAppForeground(I)Z Landroid/app/IActivityManager$Stub$Proxy;->mRemote:Landroid/os/IBinder; Landroid/app/IActivityManager$Stub$Proxy;->mRemote:Landroid/os/IBinder; Landroid/app/IActivityManager$Stub$Proxy;->setActivityController(Landroid/app/IActivityController;Z)V Landroid/app/IActivityManager$Stub$Proxy;->setActivityController(Landroid/app/IActivityController;Z)V Landroid/app/IActivityManager$Stub$Proxy;->updatePersistentConfiguration(Landroid/content/res/Configuration;)V Landroid/app/IActivityManager$Stub$Proxy;->updatePersistentConfiguration(Landroid/content/res/Configuration;)V Loading core/java/android/app/ActivityManagerInternal.java +3 −0 Original line number Original line Diff line number Diff line Loading @@ -314,4 +314,7 @@ public abstract class ActivityManagerInternal { /** Returns mount mode for process running with given pid */ /** Returns mount mode for process running with given pid */ public abstract int getStorageMountMode(int pid, int uid); public abstract int getStorageMountMode(int pid, int uid); /** Returns true if the given uid is the app in the foreground. */ public abstract boolean isAppForeground(int uid); } } core/java/android/app/IActivityManager.aidl +0 −1 Original line number Original line Diff line number Diff line Loading @@ -421,7 +421,6 @@ interface IActivityManager { void resizeDockedStack(in Rect dockedBounds, in Rect tempDockedTaskBounds, void resizeDockedStack(in Rect dockedBounds, in Rect tempDockedTaskBounds, in Rect tempDockedTaskInsetBounds, in Rect tempDockedTaskInsetBounds, in Rect tempOtherTaskBounds, in Rect tempOtherTaskInsetBounds); in Rect tempOtherTaskBounds, in Rect tempOtherTaskInsetBounds); boolean isAppForeground(int uid); void removeStack(int stackId); void removeStack(int stackId); void makePackageIdle(String packageName, int userId); void makePackageIdle(String packageName, int userId); int getMemoryTrimLevel(); int getMemoryTrimLevel(); Loading services/backup/java/com/android/server/backup/UserBackupManagerService.java +10 −7 Original line number Original line Diff line number Diff line Loading @@ -39,6 +39,7 @@ import static com.android.server.backup.internal.BackupHandler.MSG_SCHEDULE_BACK import android.annotation.Nullable; import android.annotation.Nullable; import android.annotation.UserIdInt; import android.annotation.UserIdInt; import android.app.ActivityManager; import android.app.ActivityManager; import android.app.ActivityManagerInternal; import android.app.AlarmManager; import android.app.AlarmManager; import android.app.AppGlobals; import android.app.AppGlobals; import android.app.IActivityManager; import android.app.IActivityManager; Loading Loading @@ -103,6 +104,7 @@ import com.android.internal.util.DumpUtils; import com.android.internal.util.Preconditions; import com.android.internal.util.Preconditions; import com.android.server.AppWidgetBackupBridge; import com.android.server.AppWidgetBackupBridge; import com.android.server.EventLogTags; import com.android.server.EventLogTags; import com.android.server.LocalServices; import com.android.server.backup.fullbackup.FullBackupEntry; import com.android.server.backup.fullbackup.FullBackupEntry; import com.android.server.backup.fullbackup.PerformFullTransportBackupTask; import com.android.server.backup.fullbackup.PerformFullTransportBackupTask; import com.android.server.backup.internal.BackupHandler; import com.android.server.backup.internal.BackupHandler; Loading Loading @@ -247,10 +249,11 @@ public class UserBackupManagerService { private final TransportManager mTransportManager; private final TransportManager mTransportManager; private final HandlerThread mUserBackupThread; private final HandlerThread mUserBackupThread; private final Context mContext; private Context mContext; private final PackageManager mPackageManager; private PackageManager mPackageManager; private final IPackageManager mPackageManagerBinder; private IPackageManager mPackageManagerBinder; private final IActivityManager mActivityManager; private IActivityManager mActivityManager; private ActivityManagerInternal mActivityManagerInternal; private PowerManager mPowerManager; private PowerManager mPowerManager; private final AlarmManager mAlarmManager; private final AlarmManager mAlarmManager; private final IStorageManager mStorageManager; private final IStorageManager mStorageManager; Loading Loading @@ -460,6 +463,7 @@ public class UserBackupManagerService { mPackageManager = context.getPackageManager(); mPackageManager = context.getPackageManager(); mPackageManagerBinder = AppGlobals.getPackageManager(); mPackageManagerBinder = AppGlobals.getPackageManager(); mActivityManager = ActivityManager.getService(); mActivityManager = ActivityManager.getService(); mActivityManagerInternal = LocalServices.getService(ActivityManagerInternal.class); mAlarmManager = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE); mAlarmManager = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE); mPowerManager = (PowerManager) context.getSystemService(Context.POWER_SERVICE); mPowerManager = (PowerManager) context.getSystemService(Context.POWER_SERVICE); Loading Loading @@ -2074,7 +2078,8 @@ public class UserBackupManagerService { final int privFlags = appInfo.applicationInfo.privateFlags; final int privFlags = appInfo.applicationInfo.privateFlags; headBusy = (privFlags & PRIVATE_FLAG_BACKUP_IN_FOREGROUND) == 0 headBusy = (privFlags & PRIVATE_FLAG_BACKUP_IN_FOREGROUND) == 0 && mActivityManager.isAppForeground(appInfo.applicationInfo.uid); && mActivityManagerInternal.isAppForeground( appInfo.applicationInfo.uid); if (headBusy) { if (headBusy) { final long nextEligible = System.currentTimeMillis() final long nextEligible = System.currentTimeMillis() Loading @@ -2097,8 +2102,6 @@ public class UserBackupManagerService { // queue entirely and move on, but if there's nothing else in the queue // queue entirely and move on, but if there's nothing else in the queue // we should bail entirely. headBusy cannot have been set to true yet. // we should bail entirely. headBusy cannot have been set to true yet. runBackup = (mFullBackupQueue.size() > 1); runBackup = (mFullBackupQueue.size() > 1); } catch (RemoteException e) { // Cannot happen; the Activity Manager is in the same process } } } } } while (headBusy); } while (headBusy); Loading services/core/java/com/android/server/am/ActivityManagerService.java +6 −10 Original line number Original line Diff line number Diff line Loading @@ -5329,16 +5329,7 @@ public class ActivityManagerService extends IActivityManager.Stub } } } } @Override private boolean isAppForeground(int uid) { public boolean isAppForeground(int uid) { int callerUid = Binder.getCallingUid(); if (UserHandle.isCore(callerUid) || callerUid == uid) { return isAppForegroundInternal(uid); } return false; } private boolean isAppForegroundInternal(int uid) { synchronized (this) { synchronized (this) { UidRecord uidRec = mActiveUids.get(uid); UidRecord uidRec = mActiveUids.get(uid); if (uidRec == null || uidRec.idle) { if (uidRec == null || uidRec.idle) { Loading Loading @@ -19694,6 +19685,11 @@ public class ActivityManagerService extends IActivityManager.Stub return pr == null ? Zygote.MOUNT_EXTERNAL_NONE : pr.mountMode; return pr == null ? Zygote.MOUNT_EXTERNAL_NONE : pr.mountMode; } } } } @Override public boolean isAppForeground(int uid) { return ActivityManagerService.this.isAppForeground(uid); } } } long inputDispatchingTimedOut(int pid, final boolean aboveSystem, String reason) { long inputDispatchingTimedOut(int pid, final boolean aboveSystem, String reason) { Loading
config/hiddenapi-greylist.txt +0 −1 Original line number Original line Diff line number Diff line Loading @@ -56,7 +56,6 @@ Landroid/app/IActivityManager$Stub$Proxy;->getConfiguration()Landroid/content/re Landroid/app/IActivityManager$Stub$Proxy;->getLaunchedFromUid(Landroid/os/IBinder;)I Landroid/app/IActivityManager$Stub$Proxy;->getLaunchedFromUid(Landroid/os/IBinder;)I Landroid/app/IActivityManager$Stub$Proxy;->getProcessLimit()I Landroid/app/IActivityManager$Stub$Proxy;->getProcessLimit()I Landroid/app/IActivityManager$Stub$Proxy;->getProcessPss([I)[J Landroid/app/IActivityManager$Stub$Proxy;->getProcessPss([I)[J Landroid/app/IActivityManager$Stub$Proxy;->isAppForeground(I)Z Landroid/app/IActivityManager$Stub$Proxy;->mRemote:Landroid/os/IBinder; Landroid/app/IActivityManager$Stub$Proxy;->mRemote:Landroid/os/IBinder; Landroid/app/IActivityManager$Stub$Proxy;->setActivityController(Landroid/app/IActivityController;Z)V Landroid/app/IActivityManager$Stub$Proxy;->setActivityController(Landroid/app/IActivityController;Z)V Landroid/app/IActivityManager$Stub$Proxy;->updatePersistentConfiguration(Landroid/content/res/Configuration;)V Landroid/app/IActivityManager$Stub$Proxy;->updatePersistentConfiguration(Landroid/content/res/Configuration;)V Loading
core/java/android/app/ActivityManagerInternal.java +3 −0 Original line number Original line Diff line number Diff line Loading @@ -314,4 +314,7 @@ public abstract class ActivityManagerInternal { /** Returns mount mode for process running with given pid */ /** Returns mount mode for process running with given pid */ public abstract int getStorageMountMode(int pid, int uid); public abstract int getStorageMountMode(int pid, int uid); /** Returns true if the given uid is the app in the foreground. */ public abstract boolean isAppForeground(int uid); } }
core/java/android/app/IActivityManager.aidl +0 −1 Original line number Original line Diff line number Diff line Loading @@ -421,7 +421,6 @@ interface IActivityManager { void resizeDockedStack(in Rect dockedBounds, in Rect tempDockedTaskBounds, void resizeDockedStack(in Rect dockedBounds, in Rect tempDockedTaskBounds, in Rect tempDockedTaskInsetBounds, in Rect tempDockedTaskInsetBounds, in Rect tempOtherTaskBounds, in Rect tempOtherTaskInsetBounds); in Rect tempOtherTaskBounds, in Rect tempOtherTaskInsetBounds); boolean isAppForeground(int uid); void removeStack(int stackId); void removeStack(int stackId); void makePackageIdle(String packageName, int userId); void makePackageIdle(String packageName, int userId); int getMemoryTrimLevel(); int getMemoryTrimLevel(); Loading
services/backup/java/com/android/server/backup/UserBackupManagerService.java +10 −7 Original line number Original line Diff line number Diff line Loading @@ -39,6 +39,7 @@ import static com.android.server.backup.internal.BackupHandler.MSG_SCHEDULE_BACK import android.annotation.Nullable; import android.annotation.Nullable; import android.annotation.UserIdInt; import android.annotation.UserIdInt; import android.app.ActivityManager; import android.app.ActivityManager; import android.app.ActivityManagerInternal; import android.app.AlarmManager; import android.app.AlarmManager; import android.app.AppGlobals; import android.app.AppGlobals; import android.app.IActivityManager; import android.app.IActivityManager; Loading Loading @@ -103,6 +104,7 @@ import com.android.internal.util.DumpUtils; import com.android.internal.util.Preconditions; import com.android.internal.util.Preconditions; import com.android.server.AppWidgetBackupBridge; import com.android.server.AppWidgetBackupBridge; import com.android.server.EventLogTags; import com.android.server.EventLogTags; import com.android.server.LocalServices; import com.android.server.backup.fullbackup.FullBackupEntry; import com.android.server.backup.fullbackup.FullBackupEntry; import com.android.server.backup.fullbackup.PerformFullTransportBackupTask; import com.android.server.backup.fullbackup.PerformFullTransportBackupTask; import com.android.server.backup.internal.BackupHandler; import com.android.server.backup.internal.BackupHandler; Loading Loading @@ -247,10 +249,11 @@ public class UserBackupManagerService { private final TransportManager mTransportManager; private final TransportManager mTransportManager; private final HandlerThread mUserBackupThread; private final HandlerThread mUserBackupThread; private final Context mContext; private Context mContext; private final PackageManager mPackageManager; private PackageManager mPackageManager; private final IPackageManager mPackageManagerBinder; private IPackageManager mPackageManagerBinder; private final IActivityManager mActivityManager; private IActivityManager mActivityManager; private ActivityManagerInternal mActivityManagerInternal; private PowerManager mPowerManager; private PowerManager mPowerManager; private final AlarmManager mAlarmManager; private final AlarmManager mAlarmManager; private final IStorageManager mStorageManager; private final IStorageManager mStorageManager; Loading Loading @@ -460,6 +463,7 @@ public class UserBackupManagerService { mPackageManager = context.getPackageManager(); mPackageManager = context.getPackageManager(); mPackageManagerBinder = AppGlobals.getPackageManager(); mPackageManagerBinder = AppGlobals.getPackageManager(); mActivityManager = ActivityManager.getService(); mActivityManager = ActivityManager.getService(); mActivityManagerInternal = LocalServices.getService(ActivityManagerInternal.class); mAlarmManager = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE); mAlarmManager = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE); mPowerManager = (PowerManager) context.getSystemService(Context.POWER_SERVICE); mPowerManager = (PowerManager) context.getSystemService(Context.POWER_SERVICE); Loading Loading @@ -2074,7 +2078,8 @@ public class UserBackupManagerService { final int privFlags = appInfo.applicationInfo.privateFlags; final int privFlags = appInfo.applicationInfo.privateFlags; headBusy = (privFlags & PRIVATE_FLAG_BACKUP_IN_FOREGROUND) == 0 headBusy = (privFlags & PRIVATE_FLAG_BACKUP_IN_FOREGROUND) == 0 && mActivityManager.isAppForeground(appInfo.applicationInfo.uid); && mActivityManagerInternal.isAppForeground( appInfo.applicationInfo.uid); if (headBusy) { if (headBusy) { final long nextEligible = System.currentTimeMillis() final long nextEligible = System.currentTimeMillis() Loading @@ -2097,8 +2102,6 @@ public class UserBackupManagerService { // queue entirely and move on, but if there's nothing else in the queue // queue entirely and move on, but if there's nothing else in the queue // we should bail entirely. headBusy cannot have been set to true yet. // we should bail entirely. headBusy cannot have been set to true yet. runBackup = (mFullBackupQueue.size() > 1); runBackup = (mFullBackupQueue.size() > 1); } catch (RemoteException e) { // Cannot happen; the Activity Manager is in the same process } } } } } while (headBusy); } while (headBusy); Loading
services/core/java/com/android/server/am/ActivityManagerService.java +6 −10 Original line number Original line Diff line number Diff line Loading @@ -5329,16 +5329,7 @@ public class ActivityManagerService extends IActivityManager.Stub } } } } @Override private boolean isAppForeground(int uid) { public boolean isAppForeground(int uid) { int callerUid = Binder.getCallingUid(); if (UserHandle.isCore(callerUid) || callerUid == uid) { return isAppForegroundInternal(uid); } return false; } private boolean isAppForegroundInternal(int uid) { synchronized (this) { synchronized (this) { UidRecord uidRec = mActiveUids.get(uid); UidRecord uidRec = mActiveUids.get(uid); if (uidRec == null || uidRec.idle) { if (uidRec == null || uidRec.idle) { Loading Loading @@ -19694,6 +19685,11 @@ public class ActivityManagerService extends IActivityManager.Stub return pr == null ? Zygote.MOUNT_EXTERNAL_NONE : pr.mountMode; return pr == null ? Zygote.MOUNT_EXTERNAL_NONE : pr.mountMode; } } } } @Override public boolean isAppForeground(int uid) { return ActivityManagerService.this.isAppForeground(uid); } } } long inputDispatchingTimedOut(int pid, final boolean aboveSystem, String reason) { long inputDispatchingTimedOut(int pid, final boolean aboveSystem, String reason) {