Warning: mysqli::__construct(): (HY000/1203): User howardkn already has more than 'max_user_connections' active connections in D:\Inetpub\vhosts\howardknight.net\al.howardknight.net\includes\artfuncs.php on line 21
Failed to connect to MySQL: (1203) User howardkn already has more than 'max_user_connections' active connections
Warning: mysqli::query(): Couldn't fetch mysqli in D:\Inetpub\vhosts\howardknight.net\al.howardknight.net\index.php on line 66
Article <v358si$2c3s$1@nnrp.usenet.blueworldhosting.com>
Deutsch   English   Français   Italiano  
<v358si$2c3s$1@nnrp.usenet.blueworldhosting.com>

View for Bookmarking (what is this?)
Look up another Usenet article

Path: ...!weretis.net!feeder9.news.weretis.net!usenet.blueworldhosting.com!diablo1.usenet.blueworldhosting.com!nnrp.usenet.blueworldhosting.com!.POSTED!not-for-mail
From: Andrew <andrew@spam.net>
Newsgroups: comp.mobile.android
Subject: Re: ebook-reader permissions - no explanation given
Date: Tue, 28 May 2024 18:47:47 -0000 (UTC)
Organization: BWH Usenet Archive (https://usenet.blueworldhosting.com)
Message-ID: <v358si$2c3s$1@nnrp.usenet.blueworldhosting.com>
References: <v32mbn$65ro$1@dont-email.me> <v341jk$2o71$1@nnrp.usenet.blueworldhosting.com> <v3445v$h104$1@dont-email.me> <v346v1$ttn$1@nnrp.usenet.blueworldhosting.com> <v34bcj$i65i$1@dont-email.me> <v34fl0$2lmh$1@nnrp.usenet.blueworldhosting.com> <co0hikx3he.ln2@Telcontar.valinor> <v34pct$kn94$1@dont-email.me> <v34tcr$le4a$1@dont-email.me> <lbmfifF40ogU2@mid.individual.net> <v355kg$2ndd$1@nnrp.usenet.blueworldhosting.com> <lbmlsaF6f0jU1@mid.individual.net>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
Injection-Date: Tue, 28 May 2024 18:47:47 -0000 (UTC)
Injection-Info: nnrp.usenet.blueworldhosting.com;
	logging-data="77948"; mail-complaints-to="usenet@blueworldhosting.com"
Cancel-Lock: sha1:kjV9cJFrF7Fpe0Be/eyzcWovokM= sha256:XhrB+rRDkRdCfTclP4NIajzYx6hdPN6AsBCdntjMYSc=
	sha1:Y3CZbaAj86joIApMfJ+QFuDZZJE= sha256:auFnCMh13QtD5i397m92CNnzhCCiNcfGrcH/kLNQ0YU=
X-Newsreader: PiaoHong.Usenet.Client.Free:1.65
Bytes: 4897
Lines: 78

Andy Burns wrote on Tue, 28 May 2024 19:25:13 +0100 :

> The "old" way was that the manifest file listed perms required, and you 
> agreed to them at install-time, except there were some perms that apps 
> got "for free", i think the android version that an app is targetted to 
> can change the perms it needs/gets, there's a lot of history ...

I just looked in Muntashirakon (which is the best App Manager by far), 
and it has a "Manifest" button, which provides that data (see below).

> Then runtime perms came along, which offer you the 
> grant/grant-while-running-this-app/deny options, I prefer those.

See below where the ReadERA app seems to do that just-in-time permissions.

> I think the "new" way means (for example if an e-reader app did need to 
> write annotations back to file) that it would only need to request write 
> permission if a user actually used the annotation feature ...

Thanks for helping out as I never understood Android permissions, and, as
you noted, not only do they change over time, but Android permissions may
also have nested complexities which can depend on how apps are written.

In testing a few ebook readers just now, I noticed one app that seemingly
did permissions in a more sophisticated way as you noted above was ReadERA.

I've only tested these apps for a minute or two each, but I like that one
out of the few that I searched for with the Skyica App Finder app today.
 <https://play.google.com/store/apps/details?id=org.readera>
 <https://f-droid.org/en/packages/com.github.axet.bookreader/>
 <https://play.google.com/store/apps/details?id=org.coolreader>
 <https://play.google.com/store/apps/details?id=com.kevinzuccaro.epubreader>
 <https://play.google.com/store/apps/details?id=com.gzhi.neoreader.r2.main.free>

For example, ReadERA has the following Muntashirakon Manifest related tags.
  <permission
    android:name="org.readera.permission.TierSync"
    android:protectionLevel="0x00000002">
  </permission>
  <uses-feature
    android:glEsVersion="0x00010001"
    android:required="true">
  </uses-feature>
  <uses-permission
    android:name="android.permission.WAKE_LOCK">
  </uses-permission>
  <uses-permission
    android:name="android.permission.ACCESS_NETWORK_STATE">
  </uses-permission>
  <uses-permission
    android:name="android.permission.INTERNET">
  </uses-permission>
  <uses-permission
    android:name="android.permission.READ_EXTERNAL_STORAGE">
  </uses-permission>
  <uses-permission
    android:name="android.permission.WRITE_EXTERNAL_STORAGE">
  </uses-permission>
  <uses-permission
    android:name="android.permission.MANAGE_EXTERNAL_STORAGE">
  </uses-permission>
  <uses-permission
    android:name="android.permission.FOREGROUND_SERVICE">
  </uses-permission>
  <uses-permission
    android:name="android.permission.POST_NOTIFICATIONS">
  </uses-permission>
  <uses-permission
    android:name="android.permission.RECEIVE_BOOT_COMPLETED">
  </uses-permission>
  <uses-permission
 android:name="com.google.android.finsky.permission.BIND_GET_INSTALL_REFERRER_SERVICE">
  </uses-permission>

But it's easier to use the Muntashirakon tabs than to eye-grep parse the
manifest file, at least for me it is. 

Thanks for letting me know though, that the Manifest is the cat's meow
on finding which permissions an app might ask to set while in use.