diff --git a/play-services-core/src/main/java/org/microg/gms/auth/AuthManagerServiceImpl.java b/play-services-core/src/main/java/org/microg/gms/auth/AuthManagerServiceImpl.java index ad058ea82c..9909ef1eb4 100644 --- a/play-services-core/src/main/java/org/microg/gms/auth/AuthManagerServiceImpl.java +++ b/play-services-core/src/main/java/org/microg/gms/auth/AuthManagerServiceImpl.java @@ -232,7 +232,14 @@ public Bundle requestGoogleAccountsAccess(String packageName) throws RemoteExcep @Override public int hasCapabilities(HasCapabilitiesRequest request) throws RemoteException { - Log.w(TAG, "Not implemented: hasCapabilities(" + request.account + ", " + Arrays.toString(request.capabilities) + ")"); + PackageUtils.assertGooglePackagePermission(context, GooglePackagePermission.ACCOUNT); + List services = Arrays.asList(AccountManager.get(context).getUserData(request.account, "services").split(",")); + for (String capability : request.capabilities) { + if (capability.startsWith("service_") && !services.contains(capability.substring(8)) || !services.contains(capability)) { + return 6; + } + } + Log.w(TAG, "Not fully implemented: hasCapabilities(" + request.account + ", " + Arrays.toString(request.capabilities) + ")"); return 1; }