d4rken-org / sdmaid

SD Maid is an Android app that helps you manage files and apps.
https://play.google.com/store/apps/details?id=eu.thedarken.sdm
1.53k stars 755 forks source link

Apps with no internet permissions #5591

Closed TheRealMystic closed 2 years ago

TheRealMystic commented 2 years ago

Can you add a new feature that will list all installed apps that do not have internet permissions in their code?

And a way to export the list of such apps to a text file?

Should you consider adding this option, please allow for filtering such apps here:

Screenshot_20220703-015315_SD Maid

Another nice UI addition would be to add a new box in green (like the enhancement label in GitHub) below such apps:

Screenshot_20220703-015111_SD Maid

In this context, the colour used for 'Stopped' apps could be changed to orange or red.

Thanks.

d4rken commented 2 years ago

Nice idea, but not a good fit. 90% of apps will have the internet permission and if we add this, why not other permissions? A whole permission search/filtering thing is out of scope for SD Maid. Sorry.

TheRealMystic commented 2 years ago

I haven't found an app that gives information on this particular permission. All permissions manager apps include the same information already available in System Settings, only presentation is different.

Knowing that 10% (or even less) apps can be useful.

Thanks.

d4rken commented 2 years ago

Knowing that 10% (or even less) apps can be useful.

Can you elaborate on the use-case? What do you do with this information?

TheRealMystic commented 2 years ago

Knowing that 10% (or even less) apps can be useful.

Can you elaborate on the use-case? What do you do with this information?

Apps that do not need internet confirm the following:

  1. There is absolutely no tracking. Excellent from a privacy perspective. We all know what formal privacy policies mean: NOTHING!

  2. Such apps are almost confirmed to do just what they claim to do.

  3. Users like me would look for other apps from the same developer, because that Developer automatically becomes a TRUSTED developer.

I would anyday choose an app that doesn't have this permission over another that provides the same functionality, but requires internet.

I'm well aware there are good reasons too with no malicious intent where apps may need to access internet such as pure anonymous analytics, showing ads purely for the purpose of generating revenue, etc. But almost always somewhere the user has to give up on privacy because data collection is exploited in several different ways, which may or may not be in the developers' control.

d4rken commented 2 years ago

Hm... :thinking: It would be a more useful information than the current AUTOSTART label on apps, which very confusing for most users.

I would be open to remove the AUTOSTART label in the list view, and replace it with a NO_INTERNET label.

No internet sounds like a fault state, we'd need to come up with something shorter and better... Maybe "PRIVACY :+1:", though this assumes things we can't assume, i.e. two apks one without and one with internet permission could send each other data... OFFLINE? hm :thinking: NO I-NET PERM? Tough depending on the current user locale. Maybe "Privacy :+1:" as malicious edge-cases are out of scope anyways?

I'd like to hear some more opinions on this, let's open it for discussion.

TheRealMystic commented 2 years ago

Thanks for reconsidering and reopening the suggestion.

I think the best term would be 'No Tracking'.

As you said, 'No Internet' can be misinterpreted.

'Privacy' alone doesn't say anything. Same is true of 'Offline' as several apps with that permission can still work 'offline'.

Although there are apps that do require internet but they don't track according to the developer (e.g. NetGuard), the same cannot be guaranteed. But an app that has no internet permission in its code is guaranteed to be free of tracking (let me know if this isn't true).

As with removing features, I'm personally against doing that. You will likely put off some of your users. The HELP section links to literature that users can read to avoid misinterpreting things or learning what each feature in the app does.

d4rken commented 2 years ago

As with removing features, I'm personally against doing that.

There would not be enough space for more labels though.

The HELP section links to literature that users can read to avoid misinterpreting things or learning what each feature in the app does.

Most don't read documentation. :cry:

TheRealMystic commented 2 years ago

As with removing features, I'm personally against doing that.

There would not be enough space for more labels though.

You can consider replacing labels with icons on the main screen. And use those same icons before the labels in the Filter screen, so people know what each icon stands for.

The HELP section links to literature that users can read to avoid misinterpreting things or learning what each feature in the app does.

Most don't read documentation. 😒

There is not much that you or anyone could do in such cases. Removing features will surely irk some of your users. And removing features is generally a bad idea.

d4rken commented 2 years ago

You can consider replacing labels with icons on the main screen. And use those same icons before the labels in the Filter screen, so people know what each icon stands for.

Replacing the text with icons in the list view will also be confusing. There are no "well known icons" for most things. There are like 10 tickets about changing the "exclusion" thumbtack icon, saying "the icon should be changed" and everytime I ask for suggestions, there are none :shrug:.

There is not much that you or anyone could do in such cases. Removing features will surely irk some of your users. And removing features is generally a bad idea.

It's not really removing a feature. It would still be available in the details view, and the filter option could stay too, just no longer highlighting apps with ON_BOOT in the top-level list. Currently users think it's bad and something they have to act on (asking for batch options to bulk disable receivers), while in reality there are 1001 legit reasons to have an ON_BOOT receiver (see FAQ).

TheRealMystic commented 2 years ago

Replacing the text with icons in the list view will also be confusing. There are no "well known icons" for most things. There are like 10 tickets about changing the "exclusion" thumbtack icon, saying "the icon should be changed" and everytime I ask for suggestions, there are none 🀷.

On my phone, I see only 1 app as running, and that is SD Maid itself (see screenshot in OP). How come? It is the same now as well. What about all the apps that I have specifically allowed to run without battery optimization? Are they not running?

Since 'Running Apps' are most likely to be very few, is it not possible to move that label ABOVE the package name, to the rightmost area?

Then there should be space for 'No Tracking'.

It's not really removing a feature. It would still be available in the details view, and the filter option could stay too, just no longer highlighting apps with ON_BOOT in the top-level list. Currently users think it's bad and something they have to act on (asking for batch options to bulk disable receivers), while in reality there are 1001 legit reasons to have an ON_BOOT receiver (see FAQ).

What about this icon:

Exclusion

In all fairness, that 'pin' icon currently in use is indeed confusing. I know what it does, so never bothered with it. Since we are excluding something, the above icon should be fine in my opinion. Alternatively, can't you use a label in place of an icon?

d4rken commented 2 years ago

Good Points about the exclusion label.

So far I'd love to hear about a few more opinions from others about your feature idea, if positive we could test it in a beta.

dragonGod97677 commented 2 years ago

Hm... πŸ€” It would be a more useful information than the current AUTOSTART label on apps, which very confusing for most users.

I would be open to remove the AUTOSTART label in the list view, and replace it with a NO_INTERNET label.

No internet sounds like a fault state, we'd need to come up with something shorter and better... Maybe "PRIVACY πŸ‘", though this assumes things we can't assume, i.e. two apks one without and one with internet permission could send each other data... OFFLINE? hm πŸ€” NO I-NET PERM? Tough depending on the current user locale. Maybe "Privacy πŸ‘" as malicious edge-cases are out of scope anyways?

I'd like to hear some more opinions on this, let's open it for discussion.

For me It does confusing but only at first

dragonGod97677 commented 2 years ago

Im okay with removing this, the boot label Screenshot_2022-07-08-17-46-06-24

But not the filter Screenshot_2022-07-08-17-47-30-32

Because when i have a rooted phone and i have apps that runs on boot or after a file has been downloaded or charger has been connected to my device, i can just simply filter them and turn off the receiver for those apps like this Screenshot_2022-07-08-17-49-55-52

It's convenient for me

Tho, to reduce confusion to other not so much techie, thinking, "ah this app has been filtered with BOOT because it runs on boot, i should turn this off so my device boots faster", i suggest renaming it but i dont have a idea for a new name for it right now...oop

TheRealMystic commented 2 years ago

@dragonGod97677

Which phone are you using? Oppo?

TheRealMystic commented 2 years ago

@d4rken

Check this out (OnePlus 8T):

Screenshot_20220709-193540

This is a clean install of OS (Oxygen OS) with only a handful of apps installed. There are 10 Running Services.

But on my Samsung phone with about 300 apps installed, SD Maid shows only 1 as Running - SD Maid itself.

I see the same in the screenshot posted by @dragonGod97677 too.

Is this a bug?

dragonGod97677 commented 2 years ago

@d4rken

Check this out (OnePlus 8T):

Screenshot_20220709-193540

This is a clean install of OS (Oxygen OS) with only a handful of apps installed. There are 10 Running Services.

But on my Samsung phone with about 300 apps installed, SD Maid shows only 1 as Running - SD Maid itself.

I see the same in the screenshot posted by @dragonGod97677 too.

Is this a bug?

as far as i know, sd maid doesn't have a way to know what apps is running on a not rooted device

dragonGod97677 commented 2 years ago

@dragonGod97677

Which phone are you using? Oppo?

Oppo A3s

TheRealMystic commented 2 years ago

Thanks for letting me know that.

d4rken commented 2 years ago

as far as i know, sd maid doesn't have a way to know what apps is running on a not rooted device

:point_up: this

There is some discussion in #946 but without root there just is no good way afaik.

d4rken commented 2 years ago

How about this Screenshot from 2022-07-12 00-40-06 Screenshot from 2022-07-12 00-39-57 Screenshot from 2022-07-12 00-39-30

TheRealMystic commented 2 years ago

Almost perfect 😍😍. 'Almost' because is 'offline' the most apt term? A lot of apps work offline, so won't it be confusing?

Why do you think it is more apt than 'No Tracking'?

TheRealMystic commented 2 years ago

What do you think about this icon:

Tracking

You can change the cross colour to red.

d4rken commented 2 years ago

Why do you think it is more apt than 'No Tracking'?

Text length is important. Otherwise it's just being cut off when 4 tags are visible. Privacy :+1: would be shorter than No Tracking. :thinking:

What do you think about this icon:

Am I missing something and this is a common icon? This looks like it could be the icon of some new crypto currency :thinking:
It's unique, but without explanation no one would recognize it being about internet permission, right?

d4rken commented 2 years ago

Could also call it "Permission :+1:" :thinking:

TheRealMystic commented 2 years ago

I think 'Privacy πŸ‘' would be best among the ones we have considered, given the limitations. Apps with no internet permission may need other permissions for functioning, so this isn't the best choice IMO.

The icon I posted above is the icon for tracking or radar. If you do a google search for tracking, you'll see many similar icons. Since this is about 'no tracking' or not being on anyone's 'radar', I put a cross in the centre.

dragonGod97677 commented 2 years ago

How about "Offline App"?

d4rken commented 2 years ago

Screenshot from 2022-07-12 11-20-52 Though there will probably be issues with the text being cut off in any language :thinking:

dragonGod97677 commented 2 years ago

Screenshot from 2022-07-12 11-20-52 Though there will probably be issues with the text being cut off in any language πŸ€”

Can you make the text scrolling to left? so even at small size, user can read it

d4rken commented 2 years ago

Can you make the text scrolling to left so even at small size, user can read it

Yes like this?

https://user-images.githubusercontent.com/1439229/178458412-e6642949-60c4-413e-8031-184e3e21f866.mp4

dragonGod97677 commented 2 years ago

Yeah like that

dragonGod97677 commented 2 years ago

For me it's okay, what do you think @d4rken and @TheMysticS ?

TheRealMystic commented 2 years ago

Can you make the text scrolling to left so even at small size, user can read it

Yes like this?

device-2022-07-12-112752.mp4

That's lovely. Then why not simply say 'No internet permissions'? That wouldn't indicate a fault state, and is pretty unambiguous.

TheRealMystic commented 2 years ago

For me it's okay, what do you think @d4rken and @TheMysticS ?

Offline app is pretty ambiguous. Apps that have internet permissions, tracking, etc. built into them can work offline. So not the best choice IMO.

dragonGod97677 commented 2 years ago

Can you make the text scrolling to left so even at small size, user can read it

Yes like this? device-2022-07-12-112752.mp4

That's lovely. Then why not simply say 'No internet permissions'? That wouldn't indicate a fault state, and is pretty unambiguous.

That's too long for me even text scrolls. If i make an app and have a almost same issue like this, i prefer short as possible or if just not too long text

TheRealMystic commented 2 years ago

Can you make the text scrolling to left so even at small size, user can read it

Yes like this? device-2022-07-12-112752.mp4

That's lovely. Then why not simply say 'No internet permissions'? That wouldn't indicate a fault state, and is pretty unambiguous.

That's too long for me even text scrolls. If i make an app and have a almost same issue like this, i prefer short as possible or if just not too long text

I agree.

What about 'No Tracking'? Or 'No data collection'? Guess this is too long.

Somehow, Oflline doesn't seem to be the best option.

d4rken commented 2 years ago

With "No internet permission"

https://user-images.githubusercontent.com/1439229/178471446-0e372065-43c8-4278-874d-a50dbb008b69.mp4

TheRealMystic commented 2 years ago

With "No internet permission"

device-2022-07-12-123622.mp4

Doesn't look all that bad. I'm fine with it. Hopefully you both like it too.

d4rken commented 2 years ago

Included in next beta.

TheRealMystic commented 2 years ago

Thank you very much. 😍😍

dragonGod97677 commented 2 years ago

Oh right.. is apps with android:sharedUserId but without android.permission.INTERNET is excluded?

I think even an app is doesn't have a android.permission.INTERNET but have a android:sharedUserId can still connect to internet if the original app with the same user id have internet permission

dragonGod97677 commented 2 years ago

And system apps with android:sharedUserId="android.uid.system" but having a no internet permission tag should be excluded

d4rken commented 2 years ago

The lookup is currently just based on the the packages own permissions. If you think this should be extended, let's discuss that in a new ticket.