When an app asks for permissions, it should have a “feed fake data” option
mastodon.gamedev.place
mastodon.gamedev.place
Also, and this was even longer ago, apps could not require users to have “an account” in order to run. I remember (this was over a decade ago) my company making a product change that forced users to have an account in order to function and we got (rightfully) rejected by the AppStore for this. It seems they must have softened this stance because I am seeing more and more apps that require an account to function.
https://developer.apple.com/app-store/review/guidelines/#dat...
(iv) Access [...] Where possible, provide alternative solutions for users who don’t grant consent. For example, if a user declines to share Location, offer the ability to manually enter an address.
(v) Account Sign-In: If your app doesn’t include significant account-based features, let people use it without a login [...]There is some big qualification missing or I don't understand what does that even mean. How could a banking app run without an account? An online game? The Twitter app nowadays? Dropbox/Nextcloud/...? Etc.
Yeah, I agree that for a lot of apps, requiring a account is just a marketing gimmick, but I don't think such a general rule could work.
For context that would mean that to browse a site like Hacker News, you couldn't require an account, but to post you could. It covers things like Banks or Steam, etc.
Would that be workable?
Guitar tuners, flashlights, QR scanners, etc. Open source hobby-sized projects which are done when they're done.
Their response, not the exact wording since it was over a decade ago, was along the lines of: "1. We're reviewing your app, not theirs, so what they can do is irrelevant. 2. Your app core use case clearly functions without an account as evidenced by the previous versions having full functionality not requiring an account."
1. Is a standard Apple reply when you compare your app's treatment to others'. Everyone gets this when they bring another developer's app into the argument.
2. Called our bluff and is pretty hard to argue against unless we changed something core to our backend such that it now requires an account. Even if that was the case, I would expect Apple's response to be "change it back".
Throughout the whole exchange with Apple, I had to be Devil's Advocate, since I advised against the change to require an account from the start, being apparently the only person in the company who had actually read the AppStore guidelines. Nobody listened to me, of course.
rules for thee but not for me
Apple has never been fair with its review, sadly.
> I would expect Apple's response to be "change it back".
Companies should not have to bend over to apple's whims just to get their software in end user hands. Hopefully upcoming EU regulation will reign apple's overreach in a bit.
So yes, I will be extremely happy with it. This opens doors to all kinds of software that can compete with one another, and if I don't like it, I can simply uninstall it myself.
Our app was rejected after review until we updated an external support doc to which the app linked. The doc contained system requirements for both iOS and Android devices, and we were specifically rejected for even having mentioned the competing operating system.
> The doc contained system requirements for both iOS and Android devices, and we were specifically rejected for even having mentioned the competing operating system.
same, for us we just open all links in safari now, so if mentions of android show up its not "in the app"... an arguably worsened user experience for no good reason except to keep apple happySo in the end everyone loses, except Apple.
Sure, they keep some actually bad opinions out, but they also keep correct but unpopular opinions out.
The Sun revolves around the Earth! Downvote Galileo!
My phone is not a fashion piece. AFAICT the blue bubbles will show up with an old 4S just as well as with a 14 Pro Max.
I have an iPhone - which I got after many years with Android - because iMessage is an essential app for me. I live in the US, so my business partners do not have [choice of alternative messaging app] installed and they are not going to install it just for me. I'm a doctor working in a hospital that has two complete dead spots for cell reception, and whose IT department blocks WiFi calling. So I can't make phone calls on either service, and only on iOS can I get messages that are really, really important over the hospital WiFi.
I could talk until I was blue in the face about how other methods are better. Or how Apple is being a gigantic bunch of assholes by not using something other than vanilla SMS if you're not an iMessage user. But it's sitting at about 30:1, and you can either go along and be aware of important things going on, or you can be left out.
When business decisions are being made over those conversations, I'd be a fool to ignore it. I don't much like the iOS way, having gotten used to Android and LineageOS, but after my experience with the Nexus 6P that suffered the infamous "battery goes to shit overnight one day" problem that Google wouldn't fix, as well as being dropped from updates after two years, five years of security updates from model introduction sounded pretty nice.
What alternative would you suggest? And is that alternative as universal as SMS?
But on Android, you can replace the default messaging app, and that app can have access to SMS as a fallback, so it's really easy to convince people to switch. "Hey, uh, plain messaging is annoying some of us, please install this app, we can all use it, but it will work even with people who don't have it over the regular text service."
Can't do that on iOS.
It's still getting rolled out a lot of places. Google sees it as the successor to SMS and it's built into native messaging apps. I recently saw cross-carrier support get enabled locally and that made it universal enough that so far anyone I message that's running Android is already connected via RCS.
Apple intentionally doesn't support RCS in order to keep imessages from interoperating with android.
> You don't need Apple to make that decision for you.
I also don't need an app making the decision of whether I need an account. Apple preserves that choice for users. And they're not making any decisions for the user about installing. Effectively zero apps will leave the store over this rule, so the user retains full choice over installing.
I don't want Apple making many system-wide rules on behavior, even on Apple's own systems (which they share with their users.)
That being said, they're very right about this. Making the distinction between, on one side, apps that are useless without accounts (like banking apps) or apps that are made to help with already existing accounts, and on the other side apps that are just forcing accounts to capture and control the users, is a smart and thoughtful move.
You know, this is how almost every rule system on the planet operates. Ultimately there’s an arbiter whose job is to look at the totality of the case.
This isn't what's happening though. If you're a big app you get to do whatever you want, and if you're small then you have to do as you're told.
As opposed to… humans working through a specific situation for a specific solution?
There's also the ethical concern about how apple (or their reviewer) can bully you specifically which means there is no other way to delivery our software to your users, other than complying with a bully.
Sure, the world is rife with ethical concerns.
"not for me" isn't what's happening in a comparison between two third party apps.
> Companies should not have to bend over to apple's whims just to get their software in end user hands. Hopefully upcoming EU regulation will reign apple's overreach in a bit.
Maybe in general, but I think a rule against requiring unnecessary accounts is a good rule. The EU should consider making that a regulation.
Being the voice of "this is never, ever going to be accepted into the AppStore, it is a perfect example of what you can't do" can be a very lonely journey.
If you're going to rip people off with "software as a service" then you need to require an account.
> How could a banking app run without an account?
I use two banking apps that have a FAQ feature that's just a fancy wrapper for their respective online knowledge bases.It's only due to laziness on their part that the entire app needs a login. Even if the only thing I'd like to do is browse the knowledge base.
Similarly, you shouldn't need to be logged in to queue up an arbitrary number of transactions. To execute them sure, but every banking app I've tried makes you login from the outset for no discernible reason.
You need an account for WoW, but not Unreal Tournament, to use 90's examples.
Or else? You're suggesting an organizational solution to a technical problem. This can't possibly work. Fake data is the only practical solution to this, such that the app would see the permission as granted when it is not actually granted.
So no, this is not a viable solution in the long run. Besides, Android is a thing. I personally have never used an iPhone as my real phone precisely because of this — I can't install modded apps, I can't install pirated apps, etc etc. It's not okay to have to jailbreak the thing to make it usable.
I guess we'll have to tell millions of users that their iPhones are all unusable, then. Imagine the shock!
Besides, being able to install modified apps is an important leverage against companies that don't act in their users' best interest. This way you can still use their services, but do so on your own terms.
1. They don't think about these kinds of second-order effects. They see that this company is somehow involved with the government and that's it. Their electorate won't care about these kinds of details because they're "doing something" to supposedly stop the war sooner.
2. They think that Russians would somehow revolt against the government. This doesn't work — the Russian government lacks any meaningful feedback mechanisms. By protesting, you'd expose yourself to immense personal risks for no discernible effect. Unless you're a heavily armed private army heading straight for Moscow.
Whether the effect is "good" depends on if you think someone's device should serve its user or some government.
By me I mean all those people who chose Apple for what it is and ignore Android for what it is, with regards to what we’re talking about.
You have no real problem, only intrusive ideology. Please relax and leave us alone. We’ll speak for ourselves when we feel wronged.
If you want your device to be controlled by Apple, keep installing apps exclusively from the app store when the sideloading inevitably comes. Just like you can already choose to do on macOS.
I don't think "app store competition" is going to be much of a factor for iOS post-DMA, but I do expect hobbyists and open source developers to congregate around AltStore or something and create a repository of free utility apps without having to pay Apple's developer fees.
that is correct. If android users were more willing to use alternate stores, Google would have less control.
That said, I do enjoy being able to sideload apps with no hassle. Google may not allow 18+ apps or some emulators but I can find those no problem.
Office apps (iWork)? There is Office 365, GSuite
Storage providers (iCloud)? All third party storage providers show up next to iCloud when you use the file dialog box - DropBox, Box, Google Drive, One Drive
Streaming apps (AppleTV)? There are dozens and when you search for a TV show or movie, the AppleTV app will tell you which subscribe services have it?
Streaming music (Apple Music)? Spotify, Tidal and Pandora are all on the App Store?
Etc…
> do have a very real problem. I don't want Apple to impose their agenda on me and act like they own the relationship between me and my users
Guess what? I as an end user don’t want to have a “relationship” with you. When I pay for an app, I don’t want to give every Tom, Dick and Harry my credit card information. When I get ready to cancel my subscription, I don’t want to have to deal with you.
Netflix's "you can't sign up through the app" is a prime example of this that immediately comes to mind but there are many more.
An argument can be made that hey.com is, in a way, competitor to the paid iCloud subscription. Yet Apple acts as if they own that relationship and that the app store was valuable in bringing the users to the app: https://www.hey.com/apple/iap/
Do you really think it's fair that all competing services have to be 30% more expensive than Apple's own ones if they play by Apple's rules?
There used to be lots of iOS apps that allowed streaming pirated music. Everyone, including Apple, was seemingly fine with that and never asked where the music came from. But then, suddenly, when Apple Music was preparing to launch, all those apps started magically getting rejected for breaking the rule on "illegal file sharing".
> When I pay for an app,
Stop right here. No one was talking about paid apps. My initial point was about free apps. But if you so insist, in a FREE market, app developers would offer two options: pay through Apple with their 30% tax, or pay directly without it. I'll let you figure out which option most people would choose.
In reality they will make scummest apps possible and ignore the AppStore completely. Only very big players and those whose primary target is AppStore anyway will offer two options.
He said the app was “rejected” as in not allowed in the store.
> Do you really think it's fair that all competing services have to be 30% more expensive than Apple's own ones if they play by Apple's rules?
Well seeing that neither Netflix, Hey or Spotify allow in app purchases and don’t pay Apple 30%…
> There used to be lots of iOS apps that allowed streaming pirated music. Everyone, including Apple, was seemingly fine with that and never asked where the music came from
When has Apple ever allowed apps that focused on pirated music?
And Apple has been selling music on the iPhone since the day it was introduced - well to be pedantic, three months after it went in sale.
> But if you so insist, in a FREE market, app developers would offer two options: pay through Apple with their 30% tax, or pay directly without it.
And there is nothing stopping you from doing that. In fact, Spotify did that for awhile.
We choose it because it repels this “me wanna you should they need to” attitude. Please make apps that obey the rules or ignore the platform. Don’t tell anyone what they have to do for you without a contract.
That will be solved if/when they need to allow alternate App stores. But even then, The App store is Apple's own store, right? They make their own rules on what's allowed or no on their store.
I have no issues with them controlling their store (as an android user, Google does the same despite having much less care). I'm just glad they are seemingly being forced to open up for stores that want different rules.
It should be enforced as a rental.
Either I own my property and control my property, or it's not my property. If not mine, whose is it? All we need to look is who controls it then.
This is all first-sale doctrine stuff. And I don't believe any new laws need be made to enforce this.
And sure, what's "necessary" for the app is nebulous, but the law has tests for differentiating between two nebulous states. Even a policy that had way too much grey area, like fair use, would still protect users more than "app developers can do whatever they want as long as it's in the privacy policy."
"but sure you have photos on your phone, if your phone tells me there aren't any then it's lying"
Yeah, fake data. I remember there was an Android Xposed(?) mod that did that, was quite funny to see heaps of fake names in contact list
Meanwhile, WhatsApp still "punishes" users for denying contacts access by hiding everyone's names (only the phone numbers are shown), including for contacts that have their own names set in their own profiles.
Facebook^W Meta is scum.
At least for me on Android, which is wild.
https://play.google.com/store/apps/details?id=com.trianguloy...
Usernames are not given much weight in the UI--there's no guarantee that my username reflects who I really am. Feels rightly more suspicious IMO to see a message from an unknown number than from "~Elon Musk".
I believe this happens regardless of whether the app has contact permissions or not.
I wish there were some kind of "modern tech" technical review panel on board in, say, EU and US regulatory institutions. Not to impose or forbid certain changes, but to curate an evilness score. Publicly.
And then if a monopolistic company consistently enshittifies things, when the time comes to apply a penalty (for some anti-competitive legal reason), the regulators will apply the reputation ("evilness") score as a multiplier (or divider, if you will) on the sum of the fine.
Evilness can't be measured and expressed fully objectively. So citizens should be able to override a reputation score mutation (remember, they're public) through a referendum.
An advantage of this approach would be that it could increase citizen awareness that things don't have to be this shitty. I'm occasionally amazed by how friends and colleagues put up with being pushed around by their OSes, their apps, their phones, sometimes to the point that cognitive dissonance makes them into apostate apologists.
Nope. With contacts permission granted, unknown numbers turn into ~names (per user's own profile) automatically. When you revoke the permission, the ~name is hidden to punish you.
> [...] there's no guarantee that my username reflects who I really am. Feels rightly more suspicious IMO to see a message from an unknown number than from "~Elon Musk".
It's an entirely separate problem, and as old as mail itself (which predates computers by many millenia). Would you know whether to trust elonmusk@twitter.io, without looking it up?
I would hate to dismiss someone for a troll only to realize they are not the real elon musk
Huh, had no idea that's why I only see numbers.
If I do allow contacts, does it show the name from contacts, rather than whatever display name they chose?
If so then I guess that's kind of a "technically we need contacts to display names, which are resolved locally" deal. But Apple could push back "you're big enough to plumb a display name through, not just resolve locally, and deal with spam implications" if they wanted to take a hard stand.
Would this include… not doing anything? A notice that to use the app that you must grant access?
I hate apps that do that … BUT:
I am thinking of a logistics application that I wrote that requires location access. It effectively serves no purpose without location access.
It’s a small app that we offer to our clients. Not an app for the general public. But it is a situation where I don’t want the app to continue doing anything without location access.
If location access is peripheral to the core function of the app, it's a different story. Like your Yelp and one of many functions of your app is to "search nearby" then you can't just have a screen that does nothing until the user consents.
EDIT: Yes, for OP's use case, you'd just appeal to Apple and prove that the app has no other purpose besides the use case that requires location. I've done this in the past successfully.
> I am thinking of a logistics application that I wrote that requires location access. It effectively serves no purpose without location access.
The logistics app could offer some features like phone numbers, support hours, or even account management features without location access, so users can still get access to those things even if they can’t enable location (or are in Airplane Mode, for instance).
And then the core part of the app could have a message explaining why location access is essential. Perhaps with a link to a privacy policy or other document to explain how it will be used and handled safely. I love apps that do that and even have a button I can tap to go straight to the proper settings screen to grant access (or in some cases I can tap and the app will request again, so I can say yes this time).
Nobody wants to call in their location, nor do our clients want to setup some process for that.
I believe there’s a special publishing mode for yours, but not sure how it works irl.
Which is consistent with what would happen anyways with the above idea of providing fake data when the permission is rejected.
As an app developer I don’t want users to send me location metadata with their photos, but there’s no easy way to communicate this to non-technical users.
If you want Google Photos to back up your photo library… it needs full access to everything to do that.
Very very few apps should need full photo access. But photo backups/cloud libraries are the one I can think of that do.
I was actually surprised no one on ATP brought that up.
> view photos already saved in the cloud
When you open it, it defaults to the "Photos" tab which has a message (not a dialog) asking for all photos access. But if you switch to any other tab (like Search or Library) you've got access to all of your photos in the cloud.
On the one hand you wouldn't realize that if you never tried tapping another tab. But on the other hand, the main "Photos" tab is designed to access all of your local photos and show whether or not they're backed up. Most (although not all) people are probably using Google Photos for this (to save local photos to the cloud), so it at least makes some sense for it to be the main tab with a prominent request.
Yes you're correct that there's no way to give access to only selected local photos, but that permission also doesn't really make sense for the app. Its main purpose is to back up all of your photos automatically.
If you want to upload individual photos just do it directly from photos.google.com. It's a single click. There's no reason to install the app at all.
However they still don’t offer a way to upload specific photos, and if you attempt to share only selected photos in the ios settings app they detect that this isn’t all photos.
Here's a screenshot [1] showing how the permissions prompt originally blocked you from navigating to the other tabs, and some additional reports of the issue [2] [3]. What's worse is that very old versions of the app worked fine in view-only mode without these invasive permissions demands, but then Google decided to update the app to be completely useless unless you surrendered all your photos.
I'm surprised Apple allowed the app on their store for over a year, with what appeared to be a clear violation of their policies.
[1] https://imgur.com/a/l2sErQQ
[2] https://support.google.com/photos/thread/1939628/use-ios-goo...
[3] https://old.reddit.com/r/googlephotos/comments/rhoyb1/google...
That lies in gesture of app developer and that will not happen for the apps you'd want to use that feature (or the fake data feature) with.
On Apple they compromised by requiring that apps with a login support "Sign In with Apple." Since you can signup with an anonymous iCloud email, this is almost as effective as not needing to create an account.
Sounds a lot like EU's GDPR: you must show a cookie popup but if the user denies it then you must still serve the content.
(When companies grow large enough, they become suspiciously similar to governmental regulators.)
It's been the same since runtime permissions on Android, which was like Marshmallow i believe
https://developer.android.com/training/permissions/requestin...
If it's being used locally for showing your location on a map, or searching for nearby businesses, sure, give it fake data.
But if you're talking about an app that does internet speed tests and maps the speeds for different cellular providers, or lets users report local weather conditions to improve forecasts, then I have no problem with those apps being able to say "Either give us an accurate location, or give us no location, we don't want your fake location."
The platforms would have to be an adjudicator of which apps get an exemption for users contributing back data that will affect other people rather than just influencing their own browsing experience.
I think Apple has come up with some good middle grounds on this, you don't have to grant an app "precise location," and you can grant photo access via a system provided image picker that only shows the app photos that you've selected.
I would like the equivalent of a "de-google'd android phone" on ios.
Obviously that is not mainstream, I agree it should come built in. But then both Android and iOS allow bullshit like region-locked apps or preventing screenshots from DRM content, so good luck with that.
Maybe GrapheneOS or similar Projects could do this
Flash with magisk, install Universal Safetynet Fix (https://github.com/Displax/safetynet-fix/) and you're passing safetynet / play integrity API.
I haven't come across a single app that doesn't work due to root currently, but I limit my installed apps.
But that worked and was absolutely painless.
And wipe their storage / cache too so they start from a clean slate.
I have kinda lost faith in it. And it doesn't help that it tries to do everything internally, so you can't e.g. download your pre-patch blobs or upload them after it loses track of them, because it does everything exclusively in complicatedly-magically-named internal folders. There is some seriously bonkers decision-making going on in it.
Also, as a sibling comment mentioned, I have used magisk + safety net fix in the past, and had no issues with banking apps or Google pay.
They are vendor content delivery devices and you are at their mercy.
Looks like Privacy Guard was dropped because the rewrite wasn't worth the effort.
Sometimes I can't comprehend how people come up with that stuff when it was already publicly explained how/why it happened :/
Edit: source here https://news.ycombinator.com/item?id=28096873
Privacy Guard also wasn't as complete as XPrivacy (and its evolutions) were. It's a shame that the feature disappeared, but I don't think it mattered much to begin with.
I myself removed that feature because the effort to have it was more of an hassle than anything else.
There is no such thing. The respective app stores allow you to distribute apps in select regions. This is an important feature for app stores because an app may not be a good experience in all countries. The app may not be localized to all languages, there may not be content moderators for those languages, those countries have a multitude of laws that you need to comply with, your app may include copyrighted content which is only licensed to be distributed it certain countries, etc..
>preventing screenshots from DRM content
This is a feature requested app developers due to the legal requirements when licensing content such as movies. Movie studios don't want people streaming or recording their movies so app platforms need a way to surely show this content.
Of course, but if our industry had any chutzpah, we would have simply said "no, that's impossible" and continued to distribute operating systems where the user has ultimate control over the hardware and recordings. If movie studios want people to watch their content, they'll have to accept the risk of piracy. It's not like clipping and recording from your phone is how the pirate rips appear anyway. Even imagining that a movie was released only for one model of super-secure phone, someone somewhere will either break the security or simply stick their phone in a dark box and record it with a camera. Once they've done so, they can share the un-DRMed version online on pirate sites and everyone else can download it.
As long as the analog hole exists, DRM is anti-consumer without reducing the likelihood that copyrighted content will be reshared freely online.
When you are a platform owner it is important that you evaluate the needs of all stakeholders and not just the needs of the users of the platforms. Telling app developers that you are not willing to compromise is not a great way to convince them to create apps for your platform. Also as a platform you want your platform to appear as a safe place for content owners to have their content on. You will have trouble convincing content owners that your platform is safe if it's security is much worse than everyone else's
I disagree. The literal entire purpose of every single non-user entity involved in this situation is to serve users, and if it's not serving users, then that's a systemic failure. If corporations want a place at the table, they should be serving users, and if they can't serve users, there should not be a table for them to sit at, period.
In the cases referenced, that means DRM should be illegal, period. Platforms shouldn't have to allow DRM to attract content creators, because there should not be competitors that have DRM. If the option to have DRM doesn't exist, then platforms don't have to compete to attract content creators with user-hostile misfeatures like DRM.
Our economy should be designed to serve people, not corporations. Anything else is a failure.
I understand the law says corporations are people. I'm saying the law is wrong.
Bringing content users want to watch is serving users.
>DRM should be illegal, period
Why? It is preventing users from doing illegal things. Saying that DRM should be removed so that users can make illegal copies of the media they are watching is not a strong argument to me.
>Our economy should be designed to serve people, not corporations
People make content and people want to be able to have their copyright not be infringed. Computers by default make it way to easy to violate the copyright of creators which in why making it possible to secure content is such a valuable idea.
Tough shit. Copyright is entirely arbitrary, and it's bad actors have ruined it for everyone else. DRM will be evil for as long as "buying isn't "owning"; until then piracy will be strictly superior.
> Computers by default make it way to easy to violate the copyright of creators
And my kitchen knives by default make it way too easy to violate homicide laws. You can argue it is overall more beneficial to the consumer to disadvantage themselves so the market can thrive, but that's still an anti-consumer market.
Even if copyright wasn't a thing some creators do not want their work to be copied.
>And my kitchen knives by default make it way too easy to violate homicide law
If kitchen knives were made impossible to use for homicide, but could be made for the same exact price in the same amount of time and were just as effective at everything else there would be no reason for people to sell homicide capable knives.
Can't wait for kitchen knives that immediately self-destruct if you use them on items that didn't come from the knife manufacturer's grocery store.
If content were made impossible to pirate, but could be made for the same exact price in the same amount of time and were just as effective at everything else there would be no reason for people to sell piracy capable content.
But, homicide-incapable knives and piracy-incapable content aren't real. They're a fantasy, which does not exist.
All DRM does is make it harder for legitimate users to access content they have paid for.
We cannot create homicide-resistant knives because it is indistinguishable from lawful slaughter and butchering knives. Similarly, computers have a powerful native feature - the ability to infinitely copy digital content until you run out of storage or electricity. This can be used for legal and nonlegal purposes, but neutering it's capabilities is unthinkable.
Copy protection tries to put the genie back in the bottle, and then blames the community when things go wrong. It's a circular process that resists advancement and protects exploitative parties.
Read the rest of my post.
> It is preventing users from doing illegal things.
It's not, clearly. Search your favorite DRM'ed TV show name followed by "torrent S01E03" (to indicate season 1 episode 3) and see how well that DRM is working.
> Saying that DRM should be removed so that users can make illegal copies of the media they are watching is not a strong argument to me.
I didn't say that.
DRM should be removed so that users can access content they've paid for. DRM nearly always effects legitimate users.
> People make content and people want to be able to have their copyright not be infringed. Computers by default make it way to easy to violate the copyright of creators which in why making it possible to secure content is such a valuable idea.
It's not a valuable idea, because it's an impossible idea. If you can view the content, you can pirate it. Period. DRM has done absolutely nothing to stop pirates and has consistently harmed users.
It's worth noting that content creators are often totally on board with releasing without DRM: it's content distributors who are worried about this, generally.
Your explanation for the anti-screen shot DRM doesn’t hold up very well either. I don’t know of any streaming app that doesn’t also have a website that I can take screenshots (as well as full screen captures) on, so it’s clearly not a content licensing requirement.
Your browser does not have DRM support which typically means you are not sent the full quality videos. And not all media apps have a website. Not every app that I am talking about are from massive companies that can support making apps and a website.
To take this argument seriously I’d need you to provide some examples. I use some of the bis streaming services, and they all stream full high quality media to my laptop. Which are the ones that don’t?
> And not all media apps have a website.
Again, examples? Every streaming app that’s ever blocked me from taking a screenshot has also had a streaming website. What portion of the market licenses content with a requirement to use DRM to block screenshots?
This whole screenshot point is silly to begin with, because screenshots aren’t a form of piracy or copyright infringement.
You either take a low resolution capture or the DRM layer prevents content from being displayed when recording.
The legality of the subject is not something I’m talking about. You just asked for examples and I provided them.
As for high quality video capture, it is trivially easy to do. How do you think high quality copies of Netflix-only content ends up on the pirate bay they same day it comes out?
High quality captures are still possible if you connect an external capture device coupled with something that provides the necessary drm authentication or you need a software based drm defeat.
Neither are “trivial” as you say.
Also, here's a screenshot I just took of a Netflix show (it's 1080p, but still...) https://imgur.com/a/evJjf06
Being locked out of Starbucks Thailand app because I don’t want to change my whole iTunes account is ridiculous.
Except these features are not to the detriment of users. If apps were not region locked at the store either they just won't be in the store or they will implement the region lock themselves. Similarly DRM is seemless for users. The users get the same media watching experience they expect, but the content is securely played to stop people from making illegal copies.
>the device the user supposedly owns obeys someone else
The user may own the device, but they don't own a movie that the device is playing. Your device isn't obeying someone else. DRM is a feature that lets your device handle other people's content in a safe manor.
(From: “Blend me in: Privacy-Preserving Input Generalization for Personalized Online Services” https://drive.google.com/file/d/10OmoqMmHFcb7PsQtaU_GW4aCAJe...)
A significant amount of people don’t even know how to forward an email.
Imagine the havoc that would ensue when people try to use Google Maps for navigation, and they choose to feed it fake data because they don’t understand what it means.
Google Maps: “Turn right”
Guy driving alongside the ocean: “ok”
Car: *splash*
There is always someone who will end up enabling this erroneously, but it would provide a lot of value to a lot of users that didn't.
I don't think the GP's scenario is realistic. A user would see that their location on the map is wrong before they even get a chance to begin navigation.
Besides, Google Maps already sometimes tells people to drive through roadblocks and locked gates and such (which it isn't aware of), so it already requires the driver to think for themselves to some extent.
Apple Maps wouldn’t have this issue. It’s capable of running offline (without a data connection) because it can download maps to the device.
apple maps is completely useless here, even though i don’t like using a google app, there’s no alternative
Why would that matter? Even if the map data is cached locally, a navigation app obviously needs a GPS location from the phone, which requires it to be granted permissions. And the fake data would be equally disastrous to any navigation app.
Or are you suggesting that if Apple were to add a feature for generating fake data, it'd only apply to 3p apps and not their own? I'll admit that it would be totally on-brand behavior.
All apps can store data because most need to store data if just for settings and cached. Especially any offline navigation app. There is a difference between app storage and general storage.
This is a strange point to make considering that google maps had offline maps available forever now, and ios only added it in the recently released ios 17 beta.
>Guy driving alongside the ocean: “ok”
>Car: *splash*
This seems like a learning opportunity. Or a Darwinian opportunity. Either way, self-solving.
If anything, they're talking about natural selection which is not eugenics. Eugenics is when you select fitness at birth.
GP would be endorsing genocide, or maybe epigenetics if anything, based on the small out of context comment. I highly doubt either was the intention and wonder how you got to the eugenics conclusion.
I took either as meaning a learning opportunity for one or all of the 1) GPS app makers, 2) the person who blindly followed the directions of a robot, or 3) the rest of us who learn about the event.
What interpretation did you have that suggests they were referring to eugenics?
You're turning the comment into 3 words: "Darwinian opportunity ... [which is] self-solving"
Small reminder that on HN you are supposed to steelman comments when you reply, not strawman. Clearly those 3 words refers to the death of the person, but you can't ignore the remaining 10 words and say the entire comment was about eugenics. So which of the 13 words am I ignoring that you aren't?
Also natural selection and killing off dumb people who are already alive is not eugenics. It's either epigenetics or genocide but like I said in a previous comment: eugenics is used to select fitness _before birth_ not after.
Spektorowski, Alberto; Ireni-Saban, Liza (2013). Politics of Eugenics: Productionism, Population, and National Welfare
https://web.archive.org/web/20211019203011/https://books.goo...
(emphasis mine)
After birth for non-sterile individuals is before birth for their progeny.
If there's an opportunity for learning, it's not being taken
I guess on a planetary scale that's vanishingly rare, but most things are at that scale too.
If we're going to think at those levels, nothing that happens in the UK really matters as we're less than 1% of the world's population...
Not for the passengers.
> the OS should not only let you answer yes or no. Every category should have a "yes, but feed the app fake data" option
Well, I think perhaps "Yes", "No", and "Custom". If you select "Custom" then perhaps there could be a warning message displayed in the "Custom" menu if that would help, but it should not block you from customizing it as you want to do.
Naturally, in the case of photos, you can use a heuristic, because basically everyone will have at least some pictures. However, in the case of other types of data, say, health data, it is not so clearcut.
https://developer.apple.com/documentation/corelocation/claut...
In any case, the iOS location services don’t work that way. You can’t call them and get a location back due to the way the system works. It simply doesn’t have location data at times and needs to wait for it to become available. You tell the operating system you want to receive location updates and then it delivers zero or more when that information becomes available and when it becomes more accurate or changes. So if iOS needed to withhold information, it wouldn’t have to give an empty object back, it would just not deliver any location updates at all.
Also, an empty folder with photos is almost certainly implying lack of permissions. Very few people never took a picture.
If you want to go even harder you could try to do the same with images. Generate some basic images of typical snapshot scenes with some AI model, and further postprocess the pixel data to try and give it a statistical distribution that looks like a real camera rather than AI. Add some realistic EXIF too. Doing this on demand may be quite expensive, so the phone could pre-fill a cache of fresh images during quiet hours or something
This all sounds very excessive, but I will give Apple credit and say they're one company who I could actually see going to these lengths if they decided they wanted it
This isn’t correct. For instance, accessing location services provides CLAuthorizationStatus:
https://developer.apple.com/documentation/corelocation/claut...
…and push notifications have UNAuthorizationStatus:
https://developer.apple.com/documentation/usernotifications/...
…and health data has HKAuthorizationStatus:
https://developer.apple.com/documentation/healthkit/hkauthor...
…and contacts has CNAuthorizationStatus:
https://developer.apple.com/documentation/contacts/cnauthori...
…and photos has PHAuthorizationStatus:
https://developer.apple.com/documentation/photokit/phauthori...
Photos is a special case because the user has the option of denying access, giving limited access, or giving full access. You can determine if the user has denied access, but you cannot distinguish between limited access and full access.
I believe you can check whether you received limited photos access: https://developer.apple.com/documentation/photokit/phauthori...
This is useful for better user control and for purposes of testing and accessibility purposes.
(My own idea of operating system design, one of the ideas involved (there are many other ideas, but most of them are not relevant here) is the "proxy capabilities", with capability-based security including proxy capabilities; all I/O uses it, and it can also be used in a better way than the UNIX pipes (using the command shell), and in other ways. This also includes even the date/time. No system calls other than Yield and Quit can be used without being given a capability key.
Granting the permission bu feeding an alternative data source is easiest for both parties, the developers and the users.
It, of course, will make some scams easier, too. Prepare for banks to use more complex device-enlisting procedures, for instance.
i.e. if tiktok/ig asks for permissions on camera and microphone, no is an option, because you don't need either to use either. If parts of your app can feasibly be used by a user without certain permissions it is on you to design the app in a way where that is possible. No camera or microphone enabled? Conditionally disable the functionality that would require those.
To make this simpler, the burden is on the asker. If you are not clear or trying to be clever, the answer is no. If that sounds draconian, keep in mind, that the app creator has the option to completely forgo this additional step by creating an app that makes permissions optional.
Focusing on enforcing that would make a petty army race unnecessary, and it's the better call for humans anyway.
Sounds good to me, though I think there should be a second component, which would be app sdks: Make designing with conditional permissions in mind a first class citizen, and create clear guidelines, as to how to do that, and why you really, really should do that.
> I'm not sure they all have the right incentives to expend the effort to enforce that in a consistent and user-friendly way. Otherwise would have already.
Alas, this is probably where legislation would so some convincing (see gdpr)
Here's what I get when I turn it off:
``` Turn off Camera access? All apps will be blocked from using the camera. Apps will still work, but they will only be able to access an empty black screen. For example, you can still make and receive video calls, but the other person won't be able to see you. ```
```Turn off Microphone access? All apps will be blocked from using the microphone Apps will still work, but they won't be able to access any sounds from the microphone. For example, you can still make and receive calls, but the other person won't be able to hear you.```
I would prefer it to be per app and not category. I may not want to feed positional data to pretty much everything but Google Maps and any app that calls for help in case of emergency. Same for contacts, personal data etc. I'd however expect an app like that to meet fierce resistance from Google and other businesses that profit from users profiling.
But if (as in most cases) the goal is to data-mine me, fake data should work nicely to impede that.
Of course it won't matter for things like WhatsApp, where people happily sync their entire list of contacts with Facebook/Meta just to have a slightly nicer messaging experience.
I was very unhappy to have to do this, but it wasn’t a slightly nicer experience. The app and the service are only marginally usable until you do this. (At least on mobile)
When you authorize a third party mini program in WeChat to access your personal information, you can choose to generate a fake profile for the mini program instead of supplying your real information.
Here's an article in Chinese describing the feature:
https://www.woshipm.com/pd/2612572.html
Another article with slightly worth page experience:
https://jingyan.baidu.com/article/c275f6ba22f54ca23d7567c6.h...
> There needs to be a feature on android to give fake gps data on a real device. This would be useful for any app that requires gps for no good reason.
> If your flashlight app needs gps to turn on, no problem. You are currently on mount Kilimanjaro.
If a website asks if I have notifications enabled, tell them yes, and send them all into the oblivion.
Edit: to clarify, I already disable all notifications in Firefox. I was referring to websites that check via JavaScript whether you have notifications turned on and trigger a pop up to ask you to enable them.
Here's also a userscript that removes the service worker API from Chromium browsers:
// ==UserScript==
// @name Remove service worker API
// @namespace http://tampermonkey.net/
// @version 0.1
// @description try to take over the world!
// @author You
// @match https://*/*
// @grant none
// @run-at document-start
// ==/UserScript==
delete Object.getPrototypeOf(navigator).serviceWorker;
In Firefox, iirc you can disable that API somewhere in about:config.On Safari you can even disable the option for websites to request notification access. It’s on the Websites tab in Settings.
I don't enable notifications and it's fine, I've never had a problem.
If you don't want notifications, why would you still want the website to send them?
So ideally this would stop that from happening.
But sites that do it are hostile and should just be blocked. What other shenanigans are they pulling?
Source code: https://github.com/BillDietrich/fake_contacts
One could implement the same effects using Frida, but I imagined something more like a browser add-on repository, where users could submit modules for specific software/apps, or that would gatekeep device/OS-level functionality, instead of everyone having to create custom rules in a lower-level general-purpose toolkit like Frida.
There are lots of possibilities in this area for taking back some control of what's happening on one's devices by feeding procedurally-/ML-generated data when software tries to query sensors, GPS, camera/mic, etc. It would also often be useful for software testing, to make certain test cases more practical and reproducible by looping through recorded data.
Compare it with the "unsubscribe" button in spam newsletters that does nothing. Sure, fuck you, I will just block the unique email address you are using and you won't be able to contact me at all.
If everyone was playing nicely, we would not need it.
If apps refuse to work unless you provide detailed location info or other permissions, there's no "provide fake data" option like the post suggests.
The permissions are checked at runtime and each time the permission is needed. (For example, if a build script tries to phone home twice, the build system will run the permission checker twice.)
In addition, the permission checker will have the option of delivering fake data and making the requester think they got permission when they didn't.
This is why I added that, even though it is much more complexity.
For now, all laws are location based because sovereignty is defined by geographical boundaries for historical reasons.
If you use "feed fake data" to avert those laws, I think that is ok. As an example, I am the criminal if I lie to an app to say I am in Pennsylvania to bet on sports. I don't think my phone manufacturer should conspire with law enforcement to prevent me from being able to lie to commit that crime.
It doesn't have to be random to be a problem.
In general any sort of intervention that moves you away from Joe average is bad news for fingerprinting.
More sophistication in this context often makes things worse not better. e.g. In this context volunteering info on every request (fake or random doesn't matter) certainly makes you unique, because the average user doesn't do that
The draconian rhetoric you are using is the same logic someone uses to advocate for no symmetric encryption because it can be implemented incorrectly.
Reiterating your basic fact about fingerprinting doesn't change this, or negate the rest of my statements you ignore because you think nuance and user requirements can be reduced to a binary.
As opposed to sharing your actual latitude,longitude and microphone readings?
This could be achieved with something like Xposed, a cool project is https://github.com/M66B/XPrivacyLua.
I actually made a "clone" with the option to generate data per permission as a school project, good times
The core issue of permissions systems in my mind is the user. All of the pop-up permissions boxes on phones are really nice, it's helpful that Android now removes permissions from apps if they're unused.
But that doesn't stop the average user from just hitting "yes" to permissions without reading them because they just want to use the app they just installed. It's exactly the same problem as nobody reading Ts&Cs etc. Our species has an apathy for this stuff.
We should really just be sandboxing the shit out of everything. On Android (as an example) if I install a file manager app, I can only give it access to _everything_. But also as a user, even if I could give it granular access, it's easier to just give it access to everything because it's...easier.
The location pop-up is nice, I usually hit "only while using the app" but I'm sure plenty of other people give their apps access to fine location data at all times. Is this a platform problem? Maybe Apple is right in being so strict about usage of data, even though privacy is just marketing/a selling point to them (I laugh if people think the world's richest company _genuinely_ cares about privacy on a human rather than financial level).
... which is fine. Incentives to refine data analysis are always welcome.
Also fake data being more chaotic would be good because it would ultimately cause them to over filter and throw out real chaotic data, effectively over fitting their marketing efforts to slightly more average people.
Additionally, a good arms race would be fun here. Keep making the data more and more realistic each generation. Add an option to use plugin datasets so wallstreetbets can crowdsource fucking with investment banks (ie why is everyone suddenly spending all their time at targets?)
If we poison the data maybe Microsoft will realize providing a true "all telemetry off" option would be easier (and cheaper for their bandwidth and storage budgets).
My perspective: Either cheap-monolithic-SOCs get really cheap, (for low end devices), with long-term-support, and low power, or compartmentalised architectures start to gain the traction that will kill of SOCs.
I found that people just generally lacked imagination for the most part and screenshots coupled with quick videos and/or demos did enough to incentivize them onto installing/evaluating using their environment.
I could see this leading to more data quality issues, legal liabilities, and difficult bugs. We should be able to deny access or provide coarser information (e.g., an age range rather than an age or a county/state rather than fine-grained GPS), and applications should be designed to handle those gracefully.
If I prioritize privacy over that better user experience, though, that should absolutely be something I'm allowed to do.
I might not want to give a stranger at a bar my real phone number, so I give them a fake one. Maybe this leads to a worse experience than if I just said "no thanks", but I really value the fact that I'm allowed to do that.
For example I don't care about where I am and neither should you for legal issues or features. This results is situations like me going no holiday and the bank app failing to work/install because they don't have presence in X country. Wanna know if the usage complies with regulations or I want a feature? Ask me, don't guess.
Wanna know how to access my HomeAssistant? Ask me, because there's a ZeroTier network making HA available directly wherever I am.
For fraud prevention it's not necessary to know more of my tracking info. It just makes it easier for the company at the cost of privacy issues for me.
I get the developer's view here, it's harder when someone feeds you wrong data. Tough, we're supposed to deal with that as devs and maybe just ask the question directly rather than guessing through other means. You should be doing that already, because GPS is not always reliable, contacts change, people have complex lives in terms of which laws apply to them.
I understand there are some legit use cases for validated info. Unfortunately, targeted advertising and other types of profiling are also common use cases for the same info. It's a lot like MAC randomization on public wifi - it sucks, it breaks legit use cases, but it was needed because too many companies were using it to track people.
If auto respond to even 0.01% of scam email, they suddenly need to have tools to weave through ridiculous amounts of data. Expensive. Scam becomes negative ROI
Either advocate for tearing the status quo out by its roots, hopefully with some inclination of what to put in its place lest something worse grow instead. Or demand transparent control w/ easily revocable consent ( or something along those lines.) Maximizing chaos and distrust and belligerent behavior beyond the already intolerable levels isn’t going to get a net improvement in things anytime soon.
Example: We use information about the devices that access our web site (screen resolution, browser versions) to figure out how best spend our limited resources. This data is important to us.
Perhaps it’s the ad companies that need to be fed fake data not the app / site.
Not only would they collect my 'sexual orientation' (how I wonder?) but they also would 'share it with 3rd parties'.
https://play.google.com/store/apps/details?id=be.bpost.mybpo...
The only solution (for a non development/testing uses) is for applications to accept no as an answer.
Agreed; feeding fake data is not a substitute for writing good applications. However, that does not mean that feeding fake data is worthless. There are many uses (including, but not limited to, programmers/companies that have failed to write good applications; like you say, testing is also a use of such a thing).
I think before android implemented their permission system, os like Xiaomi’d implemented their permissions by feeding fake data to the app in case user reject a permission.
So if one was looking to preserve privacy and reduce one's own track-ability, sending ambient sounds and 5x5 island location might work against that.
We should base our state of the art on best use of the finite resources we have.
Apps could just accept that and break. Food delivery app could show suggestions from the fake island, social media app could let your friends know you’re 6383km away, calculator app might switch to local currency conversion, etc.
Google will NEVER harm itself by supporting fake data feeds. The only reason G exists at all is because they can exploit the data they harvest from you. If you're given the power to poison that data Google implodes and the whole Android platform becomes extremely unattractive to other massive companies that live off of leeching your private data one way or another.
Yes, an OS built first & foremost for its users/customers would have LOTS of options like that. A mobile web browser built the same would support plugins from day 1. Etc. Etc.
But Android, Chrome, Windows 10+, iOS are ABSOLUTELY not built for their users. They're built as vehicles that enable other services from a slew of big names and it's essential for these platforms to ensure users are NOT given the power to fight against those services.
Maybe it needs a rough location like within 100km of my real location. Android could feed it a fake location and say its exact.
shit in the ocean of piss? that’s the plan?
Take the case of contacts. If I were to use a random ID generate to create contacts and feed those to an app, then with sufficient independent sources of data the app could choose to reject any contact which appears only once. If you happen to be the One And Only True Friend of an Orphan Hermit, then yes, that rule would exclude that data, but if you happen to be personal BFFs with Beyoncé Giselle Knowles-Carter, the system could not only independently validate that such a person exists, but even that your own reported contact information is, say, directly personal rather than a mass-media point-of-contact.
The other problem is that even with generated data, so long as that is intermixed with authentic data, it's often possible to tease out signal from noise. A case here might be with browser history. There are Web browsers which generate spurious traffic. This is "real" in the senses both that it refers to actual online Web resources, and represents traffic generated by your browser, but is generated in the sense that it does not represent volitional activity on your part. However, so long as both activities are present, your actual browsing patterns exist (so that if a concern is that you did in fact visit <https://example.com/xyz>, it would be possible to determine that some entity (genuine or simulated) did so, and that if the URL were simply randomly generated or visited, odds are reasonably low that that URL would appear within a browser history.
Similarly, in a combination of actual and faked contacts, if the question is "did the subject include Known Individual in their contacts", that fact can still be determined, and if statistically improbable, particularly amongst a group of individuals all including Known Individual in their contacts, the general inference of an actual relationship is strong.
The case of being able to entirely separate actual and generated information changes this dynamic ... slightly, but not overhwhelmingly.
My own upshots:
- Data chaffing and fuzzing are hard.
- The signal one wishes to obscure often leaks.
- Entirely-fabricated data is usually reasonably evident, especially in aggregate.
- Whilst some degree of chaffing has some value (signalling, protest, cost-increasing), the most effective course of action is likely effective privacy legislation and regulation.
I really wish there were more effective individual actions. I increasingly feel that there aren't, other than opting out entirely. (Something I increasingly practice myself, FWIW.)
Dunno if it's still maintained though
Apps want to be able to give users a good user experience and if they are given fake data users will get angry that the developer's app is broken and leave 1 star reviews. Denying permissions and letting apps know something is denied is much better because they can adapt their app's experience to work around it.
But if you require gps to make a post, the user does not benefit from it. Unless they have an incentive to share their location, they do not need to give real data. Maybe the dev should give an explanation. If they receive a one star review, the developers should use it as feedback.
This behaviour would get an app rejected from the app stores. The app stores require you justify doing things like that and they require you to gracefully degrade if a user denies a permission.
Denying permissions remains an option, but some digital trash will refuse to work unless you give them your address book and location history. Those apps deserve to be fed fake data.
Clicking the "feed fake data" button is an explicit alternative to denying permissions, it's not a replacement.
No, they don't. Please go and actually talk to app developers for their motivations. Look at the mission statements of the companies making the apps.
>Those apps deserve to be fed fake data.
Or you can just not use the app if the experience it offers is not something you want.
>Clicking the "feed fake data" button is an explicit alternative to denying permissions, it's not a replacement.
It's a worse alternative because apps can not properly handle this case unless they detect the data being fed in is fake.
Yes, it should be a separate option. However, instead of "feed fake data", perhaps the options should be "Allow", "Deny", and "Custom"; if you select "Custom" (which you can do also when installed or in the settings menu, even when the app is not running) then the user can program their own handler of the data requests, and can also choose from a list of such programs which have already been programmed before.
I don't like it
("Weather the Trip" road trip weather app for the U.S.)
These days I'm more of a "one star review and uninstall" kind of user but I've had good experiences with XPrivacy.
Sadly, XPrivacyLua has been discontinued. I don't know any alternative for modern Android releases.
Heck, even the internet access (android.permission.INTERNET) should be a runtime permission. A fakeable one, too.
For devices which don't have GrapheneOS installed but can be rooted, a firewall like AFWall+ is an option. It's not entirely as secure as just not granting the permission in the first place (I know of at least one way to bypass AFWall+, if an app is prepared for it), but it's still a good option.
That would be something for sure
Be on the lookout for my app, "Weather Trip Report" app in a few weeks.
I think I'll win more share of the U.S. market wink nudge nudge
It seems that Google did not like it so in Android 4.0 it is working any more and nobody ported this feature to 4.0.
Just don't grant it permissions if you don't want to. And if it refuses to function without (for no good reason), then don't use the app because it's scammy.
Is there some other situation I'm missing here? Like is there some legitimate app people need to install that won't work if you don't grant it unneeded permissions?
Though like any technical solution trying to fix a culture problem, the fake data generation won't be all roses either. Users will inadvertently enable it and then the app won't work properly and they won't know how to fix it; Think a calendar app where you enabled the fake calendar access by mistake, so you see random crap instead of your expected schedule. Where do you go to fix it? The app doesn't know you're feeding it lies, that's the whole point, so it can't help. So in Android fashion you have to dig twelve levels deep in convoluted menus to revert that. Assuming you even know where to look or what the problem is.
If you want to ruin Facebook, push for legislation. Do it the right way.