From 9ae597b6f265c3bc6ef91ff7f4c171607ca87067 Mon Sep 17 00:00:00 2001 From: sunjian Date: Mon, 14 Aug 2017 15:45:04 -0700 Subject: [PATCH] Fix Android O: AccountManager API not working in managed profile. Bug: 64577509 Test: NONE Change-Id: I25650b2002d392ef9b7f4f4732106b22bc0eaae2 --- .../accounts/AccountManagerService.java | 34 +++++++++---------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/services/core/java/com/android/server/accounts/AccountManagerService.java b/services/core/java/com/android/server/accounts/AccountManagerService.java index 1604729ee7f34..c0bbe3502a45e 100644 --- a/services/core/java/com/android/server/accounts/AccountManagerService.java +++ b/services/core/java/com/android/server/accounts/AccountManagerService.java @@ -5289,25 +5289,25 @@ public class AccountManagerService long identityToken = Binder.clearCallingIdentity(); try { packages = mPackageManager.getPackagesForUid(callingUid); - } finally { - Binder.restoreCallingIdentity(identityToken); - } - if (packages == null) { - Log.d(TAG, "No packages for callingUid " + callingUid); - return false; - } - for (String name : packages) { - try { - PackageInfo packageInfo = mPackageManager.getPackageInfo(name, 0 /* flags */); - if (packageInfo != null - && (packageInfo.applicationInfo.privateFlags - & ApplicationInfo.PRIVATE_FLAG_PRIVILEGED) != 0) { - return true; - } - } catch (PackageManager.NameNotFoundException e) { - Log.d(TAG, "Package not found " + e.getMessage()); + if (packages == null) { + Log.d(TAG, "No packages for callingUid " + callingUid); return false; } + for (String name : packages) { + try { + PackageInfo packageInfo = + mPackageManager.getPackageInfo(name, 0 /* flags */); + if (packageInfo != null + && (packageInfo.applicationInfo.privateFlags + & ApplicationInfo.PRIVATE_FLAG_PRIVILEGED) != 0) { + return true; + } + } catch (PackageManager.NameNotFoundException e) { + Log.d(TAG, "Package not found " + e.getMessage()); + } + } + } finally { + Binder.restoreCallingIdentity(identityToken); } return false; }