Fix Android O: AccountManager API not working in managed profile.
am: 9ae597b6f2
Change-Id: I4c346731e3b85cce5dd6b6c13b1312c420a60b34
diff --git a/services/core/java/com/android/server/accounts/AccountManagerService.java b/services/core/java/com/android/server/accounts/AccountManagerService.java
index c6f2fc0..7e90c92 100644
--- a/services/core/java/com/android/server/accounts/AccountManagerService.java
+++ b/services/core/java/com/android/server/accounts/AccountManagerService.java
@@ -5330,25 +5330,25 @@
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;
}