From e6306c485f0d43ce094a708c76bb9f5ea9703fd3 Mon Sep 17 00:00:00 2001 From: Jeff Sharkey Date: Tue, 7 Mar 2017 21:03:18 -0700 Subject: [PATCH] Throw at getPackageSizeInfoAsUser() callers. But only when targeting O; if they're old apps then log and pass a soft failure message to their callback. Test: builds, boots Bug: 35749102 Change-Id: I6c6b5a37c23669e7b1ed3c30207bca610821eb1f --- .../android/app/ApplicationPackageManager.java | 14 ++++++++++---- .../android/server/pm/PackageManagerService.java | 7 ++----- 2 files changed, 12 insertions(+), 9 deletions(-) diff --git a/core/java/android/app/ApplicationPackageManager.java b/core/java/android/app/ApplicationPackageManager.java index 64e2d49d274bd..97992cafee0eb 100644 --- a/core/java/android/app/ApplicationPackageManager.java +++ b/core/java/android/app/ApplicationPackageManager.java @@ -65,6 +65,7 @@ import android.graphics.drawable.BitmapDrawable; import android.graphics.drawable.Drawable; import android.graphics.drawable.LayerDrawable; import android.net.Uri; +import android.os.Build; import android.os.Bundle; import android.os.Handler; import android.os.Looper; @@ -2129,10 +2130,15 @@ public class ApplicationPackageManager extends PackageManager { @Override public void getPackageSizeInfoAsUser(String packageName, int userHandle, IPackageStatsObserver observer) { - try { - mPM.getPackageSizeInfo(packageName, userHandle, observer); - } catch (RemoteException e) { - throw e.rethrowFromSystemServer(); + if (mContext.getApplicationInfo().targetSdkVersion >= Build.VERSION_CODES.O) { + throw new UnsupportedOperationException( + "Shame on you for calling a hidden API. Shame!"); + } else if (observer != null) { + Log.d(TAG, "Shame on you for calling a hidden API. Shame!"); + try { + observer.onGetStatsCompleted(null, false); + } catch (RemoteException ignored) { + } } } diff --git a/services/core/java/com/android/server/pm/PackageManagerService.java b/services/core/java/com/android/server/pm/PackageManagerService.java index aff28320014ed..e2358c2d4eee6 100644 --- a/services/core/java/com/android/server/pm/PackageManagerService.java +++ b/services/core/java/com/android/server/pm/PackageManagerService.java @@ -18625,11 +18625,8 @@ public class PackageManagerService extends IPackageManager.Stub { @Override public void getPackageSizeInfo(final String packageName, int userHandle, final IPackageStatsObserver observer) { - Slog.w(TAG, "Shame on you for calling a hidden API. Shame!"); - try { - observer.onGetStatsCompleted(null, false); - } catch (Throwable ignored) { - } + throw new UnsupportedOperationException( + "Shame on you for calling a hidden API. Shame!"); } private boolean getPackageSizeInfoLI(String packageName, int userId, PackageStats stats) {