tree c8c737dd470a736a99bf32207be30848354c1277
parent 60d548786e5521d819c9eadeaa34fcffe36c45ff
author Yohei Yukawa <yukawa@google.com> 1507845746 -0700
committer Yohei Yukawa <yukawa@google.com> 1507845746 -0700

Suppress warnings from AppOpsManager#checkPackage()

AppOpsManager#checkPackage() is	the recommended API to check whether
a given package belongs to a certain UID or not.  You can check
whether a SecurityException is thrown or not to get the answer.

However, if the given package does not belong to the UID specified,
the app developer not only sees SecurityException but also sees the
warning in messages like below, which is a bit spammy and may actually
confuse QA team.

W AppOps  : Bad call: specified package com.android under uid 12345 but it is really -1
W AppOps  : java.lang.RuntimeException: here
W AppOps  :     at com.android.server.AppOpsService.getOpsRawLocked(AppOpsService.java:1330)
W AppOps  :     at com.android.server.AppOpsService.checkPackage(AppOpsService.java:1049)
W AppOps  :     at com.android.internal.app.IAppOpsService$Stub.onTransact(IAppOpsService.java:169)
W AppOps  :     at android.os.Binder.execTransact(Binder.java:696)

With this CL, AppOpsManager#checkPackage() no longer triggers the
above warnings in logcat.  Hopefully app developers do log something
in logcat if the package name / UID mismatch is actually unexpected.

This CL should have no semantic behavior change anyway.

Fixes: 67745316
Test: Locally verified by making the following API call.
        context.getSystemService(AppOpsManager.class)
                .checkPackage(12345, "com.android")
      While it still throws SecurityException, warning messages are
      no longer shown in the logcat.
Change-Id: Ic7af4ef84ad9e7ae5c0fbaa9cd1343f5443e8603
