aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMakoto Onuki <omakoto@google.com>2023-05-19 06:25:55 +0000
committerAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>2023-05-19 06:25:55 +0000
commit3ccb143429788da79561d423a148faa1f82d02c7 (patch)
treebbdbcd5ea5677f643063f11726d397ff0fec6de9
parentb6d4ab2c7ecac18a55311585abdce29f3ac6f122 (diff)
parentfd22f4fcf420786669eeeead4ef1858f72428aa0 (diff)
downloadContactsProvider-3ccb143429788da79561d423a148faa1f82d02c7.tar.gz
Revert "Adding in permission check for directory queries done in CP2 to prevent directories without permissions from accessing GAL data" am: fd22f4fcf4
Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/providers/ContactsProvider/+/23319105 Change-Id: I192f0b842547ecebb57edfad1d6cdd30cbfa0e04 Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
-rw-r--r--src/com/android/providers/contacts/ContactsProvider2.java26
-rw-r--r--tests/src/com/android/providers/contacts/ContactDirectoryManagerTest.java18
-rw-r--r--tests/src/com/android/providers/contacts/ContactsMockPackageManager.java5
3 files changed, 3 insertions, 46 deletions
diff --git a/src/com/android/providers/contacts/ContactsProvider2.java b/src/com/android/providers/contacts/ContactsProvider2.java
index f4ce5c74..c38cc364 100644
--- a/src/com/android/providers/contacts/ContactsProvider2.java
+++ b/src/com/android/providers/contacts/ContactsProvider2.java
@@ -18,8 +18,6 @@ package com.android.providers.contacts;
import static android.Manifest.permission.INTERACT_ACROSS_USERS;
import static android.Manifest.permission.INTERACT_ACROSS_USERS_FULL;
-import static android.Manifest.permission.READ_CALL_LOG;
-import static android.Manifest.permission.WRITE_CONTACTS;
import static android.content.pm.PackageManager.PERMISSION_GRANTED;
import static com.android.providers.contacts.util.PhoneAccountHandleMigrationUtils.TELEPHONY_COMPONENT_NAME;
@@ -189,6 +187,7 @@ import com.android.providers.contacts.util.DbQueryUtils;
import com.android.providers.contacts.util.LogFields;
import com.android.providers.contacts.util.LogUtils;
import com.android.providers.contacts.util.NeededForTesting;
+import com.android.providers.contacts.util.PhoneAccountHandleMigrationUtils;
import com.android.providers.contacts.util.UserUtils;
import com.android.vcard.VCardComposer;
import com.android.vcard.VCardConfig;
@@ -1374,7 +1373,6 @@ public class ContactsProvider2 extends AbstractContactsProvider
String authority;
String accountName;
String accountType;
- String packageName;
}
/**
@@ -4323,6 +4321,7 @@ public class ContactsProvider2 extends AbstractContactsProvider
@Override
protected int updateInTransaction(
Uri uri, ContentValues values, String selection, String[] selectionArgs) {
+
if (VERBOSE_LOGGING) {
Log.v(TAG, "updateInTransaction: uri=" + uri +
" selection=[" + selection + "] args=" + Arrays.toString(selectionArgs) +
@@ -5972,22 +5971,6 @@ public class ContactsProvider2 extends AbstractContactsProvider
" Caller=" + getCallingPackage() +
" User=" + UserUtils.getCurrentUserHandle(getContext()));
}
- final String packageName = directoryInfo.packageName;
- // enforce permissions
- final int queryType = sUriMatcher.match(uri);
- final PackageManager pm = getContext().getPackageManager();
- if (queryType == PHONE_LOOKUP || queryType == PHONES_FILTER) {
- if (pm.checkPermission(READ_CALL_LOG, packageName) != PERMISSION_GRANTED) {
- Log.w(TAG, "Package " + packageName
- + " does not have permission for phone lookup queries.");
- return null;
- }
- }
- if (pm.checkPermission(WRITE_CONTACTS, packageName) != PERMISSION_GRANTED) {
- Log.w(TAG, "Package " + packageName
- + " does not have permission for contact lookup queries.");
- return null;
- }
cursor = getContext().getContentResolver().query(
directoryUri, projection, selection, selectionArgs, sortOrder);
if (cursor == null) {
@@ -6149,8 +6132,7 @@ public class ContactsProvider2 extends AbstractContactsProvider
Directory._ID,
Directory.DIRECTORY_AUTHORITY,
Directory.ACCOUNT_NAME,
- Directory.ACCOUNT_TYPE,
- Directory.PACKAGE_NAME,
+ Directory.ACCOUNT_TYPE
};
public static final int DIRECTORY_ID = 0;
@@ -6176,8 +6158,6 @@ public class ContactsProvider2 extends AbstractContactsProvider
info.authority = cursor.getString(DirectoryQuery.AUTHORITY);
info.accountName = cursor.getString(DirectoryQuery.ACCOUNT_NAME);
info.accountType = cursor.getString(DirectoryQuery.ACCOUNT_TYPE);
- info.packageName =
- cursor.getString(cursor.getColumnIndex(Directory.PACKAGE_NAME));
mDirectoryCache.put(id, info);
}
} finally {
diff --git a/tests/src/com/android/providers/contacts/ContactDirectoryManagerTest.java b/tests/src/com/android/providers/contacts/ContactDirectoryManagerTest.java
index 7e8a7ad5..a4165ce5 100644
--- a/tests/src/com/android/providers/contacts/ContactDirectoryManagerTest.java
+++ b/tests/src/com/android/providers/contacts/ContactDirectoryManagerTest.java
@@ -27,7 +27,6 @@ import android.database.Cursor;
import android.database.MatrixCursor;
import android.net.Uri;
import android.os.Bundle;
-import android.os.Process;
import android.provider.ContactsContract;
import android.provider.ContactsContract.AggregationExceptions;
import android.provider.ContactsContract.Contacts;
@@ -552,11 +551,6 @@ public class ContactDirectoryManagerTest extends BaseContactsProvider2Test {
mPackageManager.setInstalledPackages(
Lists.newArrayList(createProviderPackage("test.package1", "authority1"),
createPackage("test.packageX", "authorityX", false)));
-// mPackageManager.grantRuntimePermission("test.package1", "android.permission.WRITE_CONTACTS",
-// Process.myUserHandle());
-// mPackageManager.grantRuntimePermission("test.package1", "android.permission.READ_CALL_LOG",
-// Process.myUserHandle());
-
MockContactDirectoryProvider provider1 = (MockContactDirectoryProvider) addProvider(
MockContactDirectoryProvider.class, "authority1");
@@ -591,20 +585,12 @@ public class ContactDirectoryManagerTest extends BaseContactsProvider2Test {
assertEquals("account-name1", cursor.getString(cursor.getColumnIndex("accountName")));
assertEquals("account-type1", cursor.getString(cursor.getColumnIndex("accountType")));
cursor.close();
-// mPackageManager.revokeRuntimePermission("test.package1", "android.permission.WRITE_CONTACTS",
-// Process.myUserHandle());
-// mPackageManager.revokeRuntimePermission("test.package1", "android.permission.READ_CALL_LOG",
-// Process.myUserHandle());
}
public void testProjectionPopulated() throws Exception {
mPackageManager.setInstalledPackages(
Lists.newArrayList(createProviderPackage("test.package1", "authority1"),
createPackage("test.packageX", "authorityX", false)));
-// mPackageManager.grantRuntimePermission("test.package1", "android.permission.WRITE_CONTACTS",
-// Process.myUserHandle());
-// mPackageManager.grantRuntimePermission("test.package1", "android.permission.READ_CALL_LOG",
-// Process.myUserHandle());
MockContactDirectoryProvider provider1 = (MockContactDirectoryProvider) addProvider(
MockContactDirectoryProvider.class, "authority1");
@@ -633,10 +619,6 @@ public class ContactDirectoryManagerTest extends BaseContactsProvider2Test {
AggregationExceptions.RAW_CONTACT_ID1,
AggregationExceptions.RAW_CONTACT_ID2,
});
-// mPackageManager.revokeRuntimePermission("test.package1", "android.permission.WRITE_CONTACTS",
-// Process.myUserHandle());
-// mPackageManager.revokeRuntimePermission("test.package1", "android.permission.READ_CALL_LOG",
-// Process.myUserHandle());
}
/**
diff --git a/tests/src/com/android/providers/contacts/ContactsMockPackageManager.java b/tests/src/com/android/providers/contacts/ContactsMockPackageManager.java
index c583e1df..6210229e 100644
--- a/tests/src/com/android/providers/contacts/ContactsMockPackageManager.java
+++ b/tests/src/com/android/providers/contacts/ContactsMockPackageManager.java
@@ -152,11 +152,6 @@ public class ContactsMockPackageManager extends MockPackageManager {
}
@Override
- public int checkPermission(String permission, String packageName) {
- return PERMISSION_GRANTED;
- }
-
- @Override
public List<ResolveInfo> queryIntentActivitiesAsUser(Intent intent, ResolveInfoFlags flags,
UserHandle user) {
return new ArrayList<>();