diff options
| -rw-r--r-- | services/core/java/com/android/server/am/ActivityManagerService.java | 6 | ||||
| -rw-r--r-- | services/core/java/com/android/server/am/OomAdjuster.java | 23 |
2 files changed, 11 insertions, 18 deletions
diff --git a/services/core/java/com/android/server/am/ActivityManagerService.java b/services/core/java/com/android/server/am/ActivityManagerService.java index ea345a7901a4..2593e512084d 100644 --- a/services/core/java/com/android/server/am/ActivityManagerService.java +++ b/services/core/java/com/android/server/am/ActivityManagerService.java @@ -5915,6 +5915,10 @@ public class ActivityManagerService extends IActivityManager.Stub if (targetPkg == null) { throw new IllegalArgumentException("null target"); } + final int callingUserId = UserHandle.getUserId(r.uid); + if (mPackageManagerInt.filterAppAccess(targetPkg, r.uid, callingUserId)) { + return; + } Preconditions.checkFlagsArgument(modeFlags, Intent.FLAG_GRANT_READ_URI_PERMISSION | Intent.FLAG_GRANT_WRITE_URI_PERMISSION @@ -5926,7 +5930,7 @@ public class ActivityManagerService extends IActivityManager.Stub intent.setFlags(modeFlags); final NeededUriGrants needed = mUgmInternal.checkGrantUriPermissionFromIntent(intent, - r.uid, targetPkg, UserHandle.getUserId(r.uid)); + r.uid, targetPkg, callingUserId); mUgmInternal.grantUriPermissionUncheckedFromIntent(needed, null); } } diff --git a/services/core/java/com/android/server/am/OomAdjuster.java b/services/core/java/com/android/server/am/OomAdjuster.java index 5a543323bee3..af4ff58596a1 100644 --- a/services/core/java/com/android/server/am/OomAdjuster.java +++ b/services/core/java/com/android/server/am/OomAdjuster.java @@ -2782,29 +2782,18 @@ public class OomAdjuster { void setAttachingSchedGroupLSP(ProcessRecord app) { int initialSchedGroup = ProcessList.SCHED_GROUP_DEFAULT; final ProcessStateRecord state = app.mState; - // If the process has been marked as foreground via Zygote.START_FLAG_USE_TOP_APP_PRIORITY, - // then verify that the top priority is actually is applied. + // If the process has been marked as foreground, it is starting as the top app (with + // Zygote#START_AS_TOP_APP_ARG), so boost the thread priority of its default UI thread. if (state.hasForegroundActivities()) { - String fallbackReason = null; try { // The priority must be the same as how does {@link #applyOomAdjLSP} set for // {@link ProcessList.SCHED_GROUP_TOP_APP}. We don't check render thread because it // is not ready when attaching. - if (Process.getProcessGroup(app.getPid()) == THREAD_GROUP_TOP_APP) { - app.getWindowProcessController().onTopProcChanged(); - setThreadPriority(app.getPid(), THREAD_PRIORITY_TOP_APP_BOOST); - } else { - fallbackReason = "not expected top priority"; - } - } catch (Exception e) { - fallbackReason = e.toString(); - } - if (fallbackReason == null) { + app.getWindowProcessController().onTopProcChanged(); + setThreadPriority(app.getPid(), THREAD_PRIORITY_TOP_APP_BOOST); initialSchedGroup = ProcessList.SCHED_GROUP_TOP_APP; - } else { - // The real scheduling group will depend on if there is any component of the process - // did something during attaching. - Slog.w(TAG, "Fallback pre-set sched group to default: " + fallbackReason); + } catch (Exception e) { + Slog.w(TAG, "Failed to pre-set top priority to " + app + " " + e); } } |