mihonapp / mihon

Free and open source manga reader for Android
Apache License 2.0
7.93k stars 322 forks source link

HyperOS QUERY_ALL_PACKAGES permission is denied by default #476

Open MajorTanya opened 4 months ago

MajorTanya commented 4 months ago

Steps to reproduce

On HyperOS, the system seems to deny the QUERY_ALL_PACKAGES permission by default and requires the user to navigate through the app settings for several layers to find this advanced permission and to grant it.

demo video by a user

Expected behavior

QUERY_ALL_PACKAGES should be granted by the user manually or the system automatically.

Actual behavior

Permission is denied by default with no prompt to grant it. This causes the extension list to be empty on app restart.

Crash logs

No response

Mihon version

0.16.4

Android version

HyperOS

Device

Xiaomi phones with HyperOS

Other details

If possible, Mihon should ask for this permission during the Onboarding flow, or when it detects failure of a package scan on the installed extensions screen.

If not possible, it has to be mentioned somewhere (Onboarding? Website? Support-FAQ thread?) that this is something users have to consider and grant manually.

Proposed command/hint/website entry:

How to fix empty installed extensions list / disappearing extensions on HyperOS:

App info for Mihon > Permissions > Other Permissions > Access List of Installed Apps > Always Allow

Video

Acknowledgements

MajorTanya commented 4 months ago

Update: I myself am using HyperOS 1.0.2.0 now and I cannot see half the options this user had on their phone. Will contact them again to provide OS version info.

MajorTanya commented 2 months ago

Update: Another user with HyperOS has reported an issue that ended up being solved by granting:

App Info > Permissions > Other Permissions > Access list of installed apps (which is what the previous demo video also showed).

Their phone uses the India region version of HyperOS, while mine uses the Global one. It appears that this permission is only available on certain regional variants of HyperOS.

nichbar commented 3 weeks ago

Chinese version of HyperOS has implemented this Mobile terminal application list permission implementation guide. It requires developer to request com.android.permission.GET_INSTALLED_APPS permission dynamically just like requesting READ_EXTERNAL_STORAGE.

If no actual implement action were taken, QUERY_ALL_PACKAGES might be ignored by HyperOS and many chinese ROM (such as ColorOS, OriginOS, HarmonyOS etc.).