RikkaApps / App-Ops-issue-tracker

Issue tracker for https://play.google.com/store/apps/details?id=rikka.appops
337 stars 29 forks source link

Android 12 location #117

Open gitthangbaby opened 2 years ago

gitthangbaby commented 2 years ago

System info: / 系统信息:

Android Version: 12 (API 31) Device: samsung App Version: 5.5.1.r1429.885ceae9 (1429) Installer: com.google.android.packageinstaller Working Mode: Shizuku V3 (12) Working Profile: no (current: 0)

What did you do? / 你做了什么?

Location permission is now split on Android 12 and it's not supported well in Appops. It's difficult to replicate the normal app settings to Appops. We' re talking about the new fine permission of "precise location". When selecting a mode for Coarse location, it is forced for Fine location. Looks like Coarse=Allow & Fine=Deny is not possible, but sometimes it is kept if it was set in system app settings. It is recommended to use Coarse=Allow & Fine=Ignored at the moment. It is recommended to change the default template. It is no longer enough to set Coarse location there and expect all the others reflect it. Once switched to Android 12, that caused apps to have fine location access. The template actually supports any combination but the way it actually applies is random.

What did you expect to see? / 你期望看到什么?

App could make Coarse and Fine location independent at least, or somehow sync with Android 12+. Permission recovery sometimes sets different location permission, 2 apps with Deny/Deny -> recover -> one is kept, other is set to Allow/Ignore. Default template with Ignore/Deny actually sets Ignore/Allow when new app is installed.

What did you see instead? / 然而你实际上得到的却是?

RikkaW commented 2 years ago

This build (https://github.com/RikkaApps/App-Ops-issue-tracker/releases/download/files/appops-v6.0.0.r1506.21c38a9e.apk) should fix this problem.

gitthangbaby commented 2 years ago

Thanks. I've tested and i see there's a little change there. Allow/Allow -> -/Ignore changes it to Ignore/Ignore first, but later coarse can be set to Allow. Come back to the same screen and it's suddenly "Allow only while using the app" - wrong. I think this fix is very vague, It won't sync to UI "Use precise location". Template won't fill it. Automatic recovery will destroy the new setting.

RikkaW commented 2 years ago

Find out that I broke it at the last moment. This should work https://github.com/RikkaApps/App-Ops-issue-tracker/releases/download/files/appops-v6.0.0.r1508.c5f85fe8.apk.

gitthangbaby commented 2 years ago

it's similar, the transitions need to be looked at without a hurry (and the template application and autorecovery perhaps too). Found plenty of scenarios with random values popping up.

starting configuration [amendment] -> result

Allow/Allow [-/Allow] -> --- Allow/Allow [-/Allow only while] -> Allow only while/Allow only while KO Allow/Allow [-/Ignore] -> Allow/Ignore after return to screen Allow only while/Ignore KO Allow/Allow [-/Deny] -> Not yet set/Deny KO

Allow only while/Allow only while [-/Allow] -> Allow/Allow maybe OK Allow only while/Allow only while [-/Allow only while] -> --- Allow only while/Allow only while [-/Ignore] -> Allow only while/Ignore OK! Allow only while/Allow only while [-/Deny] -> Allow only while/Deny probably OK

Ignore/Ignore [-/Allow] -> Ignore/Allow after return to screen Ignore/Allow only while KO Ignore/Ignore [-/Allow only while] -> Ignore/Allow only while OK! Ignore/Ignore [-/Ignore] -> --- Ignore/Ignore [-/Deny] -> Ignore/Deny probably OK

Deny/Deny [-/Allow] -> Allow/Allow probably OK Deny/Deny [-/Allow only while] -> Allow only while/Allow only while probably Ok Deny/Deny [-/Ignore] -> Allow only while/Ignore KO Deny/Deny [-/Deny] -> ----

gitthangbaby commented 11 months ago

Somehow I handle the locations, but on Samsung OneUI Android 13 the location is not working until I reset permissions for:

Of course it's disappointing to see that system forwards the permission indirectly or whatever happens.

"Android System" has weird UI in AppOps:

"SystemUI" is also weird:

Looks like the only way out of this issue is for AppOps completely ignore these apps. Both resetting, and recovering set something wrong there.