Fix Android O: AccountManager API not working in managed profile.

am: 9ae597b6f2

Change-Id: I4c346731e3b85cce5dd6b6c13b1312c420a60b34
This commit is contained in:
sunjian
2017-08-15 01:23:09 +00:00
committed by android-build-merger

View File

@@ -5330,25 +5330,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;
}