Merge "Also check for home activity in BAL" into sc-dev

This commit is contained in:
TreeHugger Robot
2021-07-12 09:36:44 +00:00
committed by Android (Google) Code Review
2 changed files with 17 additions and 1 deletions

View File

@@ -86,6 +86,7 @@ import android.app.IApplicationThread;
import android.app.PendingIntent; import android.app.PendingIntent;
import android.app.ProfilerInfo; import android.app.ProfilerInfo;
import android.app.WaitResult; import android.app.WaitResult;
import android.content.ComponentName;
import android.content.IIntentSender; import android.content.IIntentSender;
import android.content.Intent; import android.content.Intent;
import android.content.IntentSender; import android.content.IntentSender;
@@ -1221,6 +1222,20 @@ class ActivityStarter {
mController.onExecutionComplete(this); mController.onExecutionComplete(this);
} }
private boolean isHomeApp(int uid, @Nullable String packageName) {
if (mService.mHomeProcess != null) {
// Fast check
return uid == mService.mHomeProcess.mUid;
}
if (packageName == null) {
return false;
}
ComponentName activity =
mService.getPackageManagerInternalLocked().getDefaultHomeActivity(
UserHandle.getUserId(uid));
return activity != null && packageName.equals(activity.getPackageName());
}
boolean shouldAbortBackgroundActivityStart(int callingUid, int callingPid, boolean shouldAbortBackgroundActivityStart(int callingUid, int callingPid,
final String callingPackage, int realCallingUid, int realCallingPid, final String callingPackage, int realCallingUid, int realCallingPid,
WindowProcessController callerApp, PendingIntentRecord originatingPendingIntent, WindowProcessController callerApp, PendingIntentRecord originatingPendingIntent,
@@ -1236,7 +1251,7 @@ class ActivityStarter {
} }
// Always allow home application to start activities. // Always allow home application to start activities.
if (mService.mHomeProcess != null && callingUid == mService.mHomeProcess.mUid) { if (isHomeApp(callingUid, callingPackage)) {
if (DEBUG_ACTIVITY_STARTS) { if (DEBUG_ACTIVITY_STARTS) {
Slog.d(TAG, "Activity start allowed for home app callingUid (" + callingUid + ")"); Slog.d(TAG, "Activity start allowed for home app callingUid (" + callingUid + ")");
} }

View File

@@ -348,6 +348,7 @@ public class ActivityStarterTests extends WindowTestsBase {
invocation -> { invocation -> {
throw new RuntimeException("Not stubbed"); throw new RuntimeException("Not stubbed");
}); });
doReturn(null).when(mMockPackageManager).getDefaultHomeActivity(anyInt());
doReturn(mMockPackageManager).when(mAtm).getPackageManagerInternalLocked(); doReturn(mMockPackageManager).when(mAtm).getPackageManagerInternalLocked();
doReturn(false).when(mMockPackageManager).isInstantAppInstallerComponent(any()); doReturn(false).when(mMockPackageManager).isInstantAppInstallerComponent(any());
doReturn(null).when(mMockPackageManager).resolveIntent(any(), any(), anyInt(), anyInt(), doReturn(null).when(mMockPackageManager).resolveIntent(any(), any(), anyInt(), anyInt(),