Add "Connect You" app to Android Page

Connect You is a contacts app that uses the standard contact store to view/manage your contacts. It allows vcf import/export.

The feature that I believe makes this relevant to Privacy Guides is the fact that on top of the system contacts (marked “Device” in the app), it also has a “local” store of contacts, which are stored in the app’s internal storage. That means that an app requesting the contacts permission (many apps won’t work without it) won’t be able to see the contacts stored in the “local” section, allowing you to keep some of your contacts private without needing to expose them to apps.

GrapheneOS may eventually have a feature that allows you to manage your contacts with more granularity, but not everybody has the ability to use GrapheneOS, so I believe that this app, on top of being a perfectly functional and modern Contacts app, also provides a feature that significantly increases privacy.

As per the upcoming criteria, apps listed in the main Android page are for apps that replace core system functionality, which contact management seems to fall under.

Interesting. I’m into your argument in theory.

My main hesitation right now is that the app is 3 weeks old and doesn’t describe itself as a “1.0” release (which is at least more honest than many half-baked app releases we see on GitHub lol). I don’t want to recommend something that isn’t complete and/or may not be around in the long term. There are other apps which provide this privacy functionality that have a much lengthier track-record, for example: Sultanahamer / OpenContacts · GitLab.

I will download and test this app out when I get home though.

1 Like

https://gitlab.com/sultanahamer/OpenContacts/-/blob/master/app/src/main/AndroidManifest.xml

<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
<uses-permission android:name="android.permission.READ_CALL_LOG" />
<uses-permission android:name="android.permission.CALL_PHONE" />

https://github.com/Bnyro/ConnectYou/blob/2d0a543a9974290c6813b44065f2c7f297217f47/app/src/main/AndroidManifest.xml

<uses-permission android:name="android.permission.READ_CONTACTS" />
<uses-permission android:name="android.permission.WRITE_CONTACTS" />

I think the difference is self-evident here.

Open Contacts targets SDK 29, Connect You targets 33 (the latest). The developer also has a great track record of producing apps that are maintained in the long term, even though this one is indeed very new.

On top of that, Open Contacts seems to request a whole host of weird/sensitive permissions such as SYSTEM_ALERT_WINDOW which is the “Draw over other apps” permission and READ_EXTERNAL_STORAGE, WRITE_EXTERNAL_STORAGE which seem to be to allow you to use import/export contacts via vcf, which is absolutely not needed. It also requests CALL_PHONE and READ_CALL_LOG which are definitely not needed for a Contacts app to function properly.

Furthermore, it also doesn’t seem to actually request the most relevant permissions to a Contacts app, which is READ_CONTACTS and WRITE_CONTACTS specifically. Open Contacts seems to only serve as the “Local” portion of Connect You while not providing a way to view/manage your regular contacts.

As a result, I don’t think that Open Contacts is modern, maintained or operates on the principle of least privilege. I would also argue that it doesn’t actually replace or complement standard system functionality. Connect You is an app that allows you to manage your system contacts and also allows you to have a private store of contacts in the app’s internal storage for privacy. That way people can have both in one app and seamlessly move contacts between “Device” and “Local” contacts (the ability to move contacts between the two has just been merged and will appear in the next version). This is now done with version 0.7.0: Release 0.7.0 · Bnyro/ConnectYou · GitHub

1 Like

I think this is more as one to keep an eye on though.

It does seem like something that could be useful.

To be honest, I would recommend giving it a shot as-is. An app’s versioning scheme or whether the developer feels comfortable with calling it “stable” or “beta” often has little bearing on the app’s usability/quality.

Let’s not forget that NewPipe was marked “beta” until very recently, while being one of the most widely used FOSS Android apps.

I’ve been using Connect You and so far it does everything it needs to, and it only looks like that will improve release-by-release (development seems very active, and the developer also uses this app themselves as they couldn’t find any alternatives that they liked, so they have an incentive to keep it maintained in the long run.)

2 Likes

Thanks for recommending this app ! I think this is a great feature i have been looking for quite a while. I had even gone far as using a secondary profile to keep my contacts separate.
I have tried many other apps like ‘simple contacts’ or ‘right contacts’ , but they do not have an option to show some of the contacts to other apps which makes it inconvenient.
Contacts are a big target for marketers nowadays, and we are often forced to give contacts permission to apps but may not like sharing our data with them.

Though one feature that i feel is currently missing from ‘Connect You’ app is ability to select multiple contacts at once , so now we have to take actions like ‘move’ , ‘copy’ , ‘delete’ for one contact at a time , which would make the task very slow for someone like me having loads of contacts saved. Otherwise i have no complaints UI wise or function wise.

I see that you’ve already filed a feature request; let’s see if it’s something the developer wants to implement. :slight_smile:

Seems like this will be done as well: Allow batch functions for copy , move & delete · Issue #60 · you-apps/ConnectYou · GitHub

Edit: This has now been implemented.

1 Like

it would be great if an app like this existed that can also sync with cardDAV. That would allow using apps that require access to contacts without giving it. A bit like storage scopes in grapheneOS but for contacts.

I wonder if a google play listing might be in the works? I think this would help hugely in reaching people.

It seems unlikely, judging by the other apps by the developer, which are also not on Google Play Store. It is however on Accrescent.

what about simple contacts?

The reason for considering recommending a contacts app on Privacy Guides is not its regular contacts app functionality, but the fact that you can store some of your contacts in the app’s internal storage so that they cannot be seen by apps to whom you have granted the contacts permission.

I may be mistaken, but Simple Contacts doesn’t currently have that. I personally would also not use apps from that specific developer, as I feel like they have downplayed and ignored security vulnerabilities in their apps in the past, but that’s besides the point.

Connect You could also only be used for its “Local” storage if you prefer another main contacts app instead. You could have a contacts app for regular contacts that apps can see if they have the contacts permission, and Connect You for its “local” contacts feature, which keeps them contained to Connect You’s internal storage.

5 Likes

That does make sense. I did just install it, and while it does work, I wouldn’t say it replaces the AOSP contacts app yet. I noticed for example I couldn’t add a “company” field yet.

Without being a developer, I think that would be something that could be trivially added. The trouble is that the standard doesn’t seem to be very specific about what fields a contact should have. It’s more or less optional, so it makes it difficult to know which fields to include and which to omit, as some of the ones list here seem incredibly useless for this use case:

Connect You does have a “Note” field where you can add information such as a business’ opening hours or whatever you need. I’m assuming that the reason you want a specific “company” field is so that you can import it from your .vcf file that has a dedicated “company” field, right?

The company (ORG field) is supported by com.android.contacts. When that’s set it will show as a company. You can see the other fields supported in the DataItem.java constructor.

I think, its pretty safe to assume if it supports those items, then it doesn’t need to look at further “custom” ones.

Discussion on Connect You’s tracker about adding new fields to the app:

1 Like

Gonna mark this as waiting (for that discussion to conclude), because this is missing some fields I need in a Contacts app, and it sounds like that is the case for @dngray as well, so I’m comfortable with saying we can’t add this as-is.

It is probably worth noting that Simple Contacts supports storing contacts in the app rather than the OS contact database.

1 Like

Oh, that is nice, I didn’t know Simple Contacts could do that. I still wouldn’t be in favor of recommending that app, but it’s nice to know it has that functionality. Compared to an option like OpenContacts, Simple Contacts is less demanding in terms of permissions, and targets SDK 33.

its marked as completed now