8 ms·
I guess I'll take the contrarian view here: the developer violated a reasonable Play Store policy, refused to fix the problem, and received an expected outcome.
by boole1854 4y ago
I guess I'll take the contrarian view here: the developer violated a reasonable Play Store policy, refused to fix the problem, and received an expected outcome.
If you read the details of the Play Store complaint, you will see that they say the app was uploading information from the user's contact list without properly disclosing to the user that this was happening [1]. This is a violation of Play Store policy (a disclosure is required). It's not an unreasonable policy.
You can see in the app's source code where some of this happens [2]. In short, the contact list is read off the device, email addresses associated with each contact are parsed out, and the app does HTTP requests to remote servers to get the favicon associated with each email contact domain. Note that this is the sending of information off each user's contact list (the email address domains) to those remote servers. As such, it requires a disclosure to the user.
The developer's response is that he refuses to add a disclosure to the app because he is not uploading "contact info". [3]. Ok... not a great response. Certainly I would expect apps to disclose whether or not they are using any information on my contact list to reach out to third-party servers, even if only domain names. In any case, it's Play Store policy.
In the end, he finally removed the favicon feature. And Play agreed to allow the app back into the store. [4] But he has not yet backed down on shutting down the whole project because he's still upset.
Sources
[1] https://forum.xda-developers.com/t/app-5-0-fairemail-fully-featured-open-source-privacy-oriented-email-app.3824168/post-86913731 https://forum.xda-developers.com/t/app-5-0-fairemail-fully-f...
[2] https://github.com/M66B/FairEmail/blob/master/app/src/main/java/eu/faircode/email/ContactInfo.java https://github.com/M66B/FairEmail/blob/master/app/src/main/j...
[3] https://forum.xda-developers.com/t/app-5-0-fairemail-fully-featured-open-source-privacy-oriented-email-app.3824168/post-86913771 https://forum.xda-developers.com/t/app-5-0-fairemail-fully-f...
[4] https://forum.xda-developers.com/t/app-5-0-fairemail-fully-featured-open-source-privacy-oriented-email-app.3824168/post-86914375 https://forum.xda-developers.com/t/app-5-0-fairemail-fully-f...
- pan69 4y ago> Certainly I would expect apps to disclose whether or not they are using any information on my contact list I would expect the app to ask for permissions when first started and that if access to contacts is one of those permissions that I can disable that. Its for the app to work around not having this permission and if part of the app is not working due to not have the permission, so be it.
- zoed191 4y agoI think your contrarian view is biased and misleading. The HTTP request for favicon of each email’s domain, which you hypothesized, might be the issue that Google was thinking of. However, your hypothesis has never been clearly stated during rounds of emails between the developer and Google. Wouldn’t it be helpful to clarify an issue in reply to the developer, rather than having someone post “a contrarian view” afterwards?
- rjzzleep 4y agoAs other people below have mentioned it's not even enabled by default and has a privacy warning on it
- crowbahr 4y agoMan I only read through the source code to point out the issues with Permissions requests. I hadn't even seen the background of spamming your entire contacts list to a remote server.
- gommm 4y agoThat's because it doesn't. It's an optional feature, the feature shows the favicon for the domain names on your contact list. In order to do that, the app retrieves the favicon from each domain in your contact list. It does this in the App not in an external server. So, reading the code, say you have in your contact list: b@acme.com a@acme.com c@google.com The code makes a single request to acme.com (to get the favicon) and one to support.google.com to get that favicon (there's a special case for google to avoid getting the new doodle of the day). That's it. No one gets the contact list, the most anyone gets is that your ip requested a favicon. Saying that this is sharing the contact list is akin to saying that a browser sends your ip to websites you visit.
- deleted 4y ago[deleted]
- BiteCode_dev 4y agoIn this era of quick outrage, thank you for doing the job of trying to figure out what is really going on, at the risk of taking the less socially acceptable side.
- Dylan16807 4y agoNope, they made some important mistakes and admitted it. You are part of the problem by immediately accepting that post as fact!
- megous 4y agoDid you check the links before congratulating on the fact checking? For example for "And Play agreed to allow the app back into the store. [4]" The linked comment doesn't state this.
- paulnpace 4y agoThank you for the play-by-play. Had a hard time distilling this. Maybe it's just me, but the developer at least appears a bit too emotional and impulsive. I'm not clear why this warrants shutting down, but it's not like there is an objective standard on such a decision.
- g_p 4y agoI think it seems like this is a "straw that broke the camel's back" situation - Google's refusal to actually deliver any kind of sensible level of basic communication with developers seems to be the root cause of this. https://forum.xda-developers.com/t/app-5-0-fairemail-fully-featured-open-source-privacy-oriented-email-app.3824168/post-86914805 https://forum.xda-developers.com/t/app-5-0-fairemail-fully-f... When they simply copy-paste the same message (with no further clarification or content), it's a perfect example of a chronically broken system. Google operates at a scale where they are unlikely to face any incentive or enforcement that requires them to follow the laws around this in Europe, which require meaningful individual interaction from marketplace operators. That they can ignore these laws with impunity effectively shows that (in this context) the rule of law is dead. In my view, it is very hard to blame the developer - they appear to have been trying to understand the issue in good faith, and receiving absolutely nothing of any sense from Google. And their lack of any kind of meaningful human support is hopefully a "canary in the coalmine" for what will happen in future if we don't get a handle on automation of processes and the harm this can cause to real people and businesses.
- NikolaNovak 4y agoThanks for the background; there's usually (not always, but usually:) details and sides and perspectives; it's scary how quickly we can all come to judgment based on single factoid which we integrate into our worldview and spin into something larger. Not to say I don't understand emotions and perception of unfair demands; but I'm grateful to know a slightly bigger picture.
- t0suj4 4y agoJust the fact that we're so quickly to jump on Google for blocking legitimate violators speaks volumes on its reputation.
- gommm 4y agoWell read further about the background, in this case, that specific feature doesn't share the contact list, it just queries domain name. it's optional and anyone asking to show favicon for domain names in contact should expect to know that it's going to be queried in this way? Also, Google didn't give that as the reason for the app being classified as spyware. So it's just the OP being contrarian by taking an optional feature, claiming it shares contact details when it in fact doesn't and everyone voting it up because it sounds reasonable.
- GravityisaHoax 4y agoGoogle may not have given the specific reason but isn't it a reasonable guess based on what they told the dev? It seems like it's what the developer thinks the culprit is too. His commit yesterday was to disable it for the Play Store version, and it included the comment of "Google doesn't allow favicons for privacy reasons".
- gommm 4y agoWell, he's been stumbling in the dark and decided to try this but I don't think it's necessarily a reasonable guess. In hindsight, it's easy to look at this commit and see that as being the reason, but if I were the dev, it wouldn't be my first idea, especially since this feature has been there for a while and since it doesn't actually share contact details at any point, it's just a feature related to contacts that optionally retrieves the favicon. Of course, if I were the dev, I'd eventually try and go through anything that touches contact and disables that to try and see if that solves the problem, but again that shows that Google doesn't communicate at all.
- Avamander 4y agoImplementing BIMI instead of that would've saved him a lot of headache I suspect.
- tadfisher 4y agohttps://github.com/M66B/FairEmail/blob/master/app/src/main/java/eu/faircode/email/Bimi.java https://github.com/M66B/FairEmail/blob/master/app/src/main/j...
- megous 4y agoYou mean this? https://github.com/M66B/FairEmail/blob/master/app/src/main/java/eu/faircode/email/ContactInfo.java#L257 https://github.com/M66B/FairEmail/blob/master/app/src/main/j...
- mordae 4y agoIt doesn't identify the client, though. So the site only learns that the IP has someone on that domain among its contacts. They probably already know more than that, because they've seen some emails being exchanged. Not 100% tight, but definitely less problematic than using Gravatar. The traffic can be sniffed as the certificate validation looks disabled and it falls back to HTTP. Meaning ISP can take a peek. But it's definitely not malicious in any way.
- hvdijk 4y ago> They probably already know more than that, because they've seen some emails being exchanged. Someone being in your contacts list does not mean you have ever had any contact with them.
- deleted 4y ago[deleted]
- boole1854 4y agoSuppose I happen to have someone with an @onlyfans.com email address on my contact list. And I run the FairEmail app on my phone while at work. My phone then hits the corporate DNS server with a request for onlyfans.com, even if I haven't emailed that person. Not great. Or suppose I'm a Russian dissident in Moscow with a list of Ukrainian-government and military contacts on my contact list. I open FairEmail and suddenly my phone does DNS lookups for a dozen sensitive Ukrainian domains. Not great. Edge cases like this can be multiplied. It's not malicious. But it's not great. And it seems reasonable to me for the Play Store to require a disclosure before an app does this.
- megous 4y agoOr you open a web page and it loads pictures from all of those domains, and worse. You hit whatever DNS resolvers with any number of domains you may not like. Play store Google daddy protecting you or not.
- minsc_and_boo 4y ago
- nicolas_t 4y agoI've read the responses from Google that the developer copied and none of them clarifies exactly what's wrong. If this is really the issue then they should have explained it clearly instead of saying that the app is a spyware.
- g_p 4y agoThis seems to be the root problem with Google Play's developer experience - no matter how much you ask them what is wrong, they will not tell you (despite this being straight-up illegal in Europe). You get a copy-paste of the same non-explanation as a non-answer, which is presumably either automated or being sent by a human with no understanding of anything, and therefore might as well be automated.
- bilekas 4y ago> this is the sending of information off each user's contact list (the email address domains) to those remote servers. As such, it requires a disclosure to the user. That's really interesting.. Honestly, I wouldn't have even picked up on that reading the code, as it's only the domain of the email itself. Not any identifiable information. Feels a little but harsh but fair enough. I wonder is there an identifiable marker which could say `"User X has a contact list containing gmail, yahoo and protonmail accounts."` You don't know who the user is at all but you know "A" user has that contact list. Very harsh.
- CodesInChaos 4y agoSome of those contacts might use personal domains, or company addresses, not just big freemailers.
- wander_homer 4y agoI still don't see the issue. So the application then asks the personal domain for a favicon, how is that an issue? Especially when you consider that this feature is off by default and has a red warning label next to it, that this comes at a privacy risk.
- bilekas 4y agoThat's actually a really good point I hadn't considered, from the documentation it mentions only suppoorting standard formats and not those such as MS exchange etc. But you're right, there are personalized which are standard.
- my69thaccount 4y agoFor as long as I've been aware of the feature it's been opt-in and _does_ have a privacy disclosure. FairEmail is better about its privacy disclosures than most apps are. Maybe they just didn't do it in the Google-approved way? Preference that defaults to false: https://github.com/M66B/FairEmail/blob/master/app/src/main/java/eu/faircode/email/ContactInfo.java#L258 https://github.com/M66B/FairEmail/blob/master/app/src/main/j... As to it being contact info, the file is literally called ContactInfo.java.
- GravityisaHoax 4y agoHow do other email apps handle this? Do they just disclose it in the privacy policy? Or do none of them have this feature?