Merge "WMS retrieves uid for the package based on the linux user"

This commit is contained in:
TreeHugger Robot
2022-11-30 15:30:00 +00:00
committed by Android (Google) Code Review
3 changed files with 6 additions and 32 deletions

View File

@@ -738,9 +738,8 @@ interface IWindowManager
* If invoked through a package other than a launcher app, returns an empty list.
*
* @param displayId the id of the logical display
* @param packageName the name of the calling package
*/
List<DisplayInfo> getPossibleDisplayInfo(int displayId, String packageName);
List<DisplayInfo> getPossibleDisplayInfo(int displayId);
/**
* Called to show global actions.

View File

@@ -366,7 +366,7 @@ public final class WindowManagerImpl implements WindowManager {
List<DisplayInfo> possibleDisplayInfos;
try {
possibleDisplayInfos = WindowManagerGlobal.getWindowManagerService()
.getPossibleDisplayInfo(displayId, mContext.getPackageName());
.getPossibleDisplayInfo(displayId);
} catch (RemoteException e) {
throw e.rethrowFromSystemServer();
}

View File

@@ -8940,14 +8940,14 @@ public class WindowManagerService extends IWindowManager.Stub
}
@Override
public List<DisplayInfo> getPossibleDisplayInfo(int displayId, String packageName) {
public List<DisplayInfo> getPossibleDisplayInfo(int displayId) {
final int callingUid = Binder.getCallingUid();
final long origId = Binder.clearCallingIdentity();
try {
synchronized (mGlobalLock) {
if (packageName == null || !isRecentsComponent(packageName, callingUid)) {
Slog.e(TAG, "Unable to verify uid for package " + packageName
+ " for getPossibleMaximumWindowMetrics");
if (!mAtmService.isCallerRecents(callingUid)) {
Slog.e(TAG, "Unable to verify uid for getPossibleDisplayInfo"
+ " on uid " + callingUid);
return new ArrayList<>();
}
@@ -8965,31 +8965,6 @@ public class WindowManagerService extends IWindowManager.Stub
return mPossibleDisplayInfoMapper.getPossibleDisplayInfos(displayId);
}
/**
* Returns {@code true} when the calling package is the recents component.
*/
boolean isRecentsComponent(@NonNull String callingPackageName, int callingUid) {
String recentsPackage;
try {
String recentsComponent = mContext.getResources().getString(
R.string.config_recentsComponentName);
if (recentsComponent == null) {
return false;
}
recentsPackage = ComponentName.unflattenFromString(recentsComponent).getPackageName();
} catch (Resources.NotFoundException e) {
Slog.e(TAG, "Unable to verify if recents component", e);
return false;
}
try {
return callingUid == mContext.getPackageManager().getPackageUid(callingPackageName, 0)
&& callingPackageName.equals(recentsPackage);
} catch (PackageManager.NameNotFoundException e) {
Slog.e(TAG, "Unable to verify if recents component", e);
return false;
}
}
void grantEmbeddedWindowFocus(Session session, IBinder focusToken, boolean grantFocus) {
synchronized (mGlobalLock) {
final EmbeddedWindowController.EmbeddedWindow embeddedWindow =