Merge "WMS retrieves uid for the package based on the linux user" into tm-qpr-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
1549391e56
@@ -727,9 +727,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.
|
||||
|
||||
@@ -357,7 +357,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();
|
||||
}
|
||||
|
||||
@@ -8878,14 +8878,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<>();
|
||||
}
|
||||
|
||||
@@ -8903,31 +8903,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 =
|
||||
|
||||
Reference in New Issue
Block a user