Google Play limits the use of high-risk or sensitive permissions, such as the QUERY_ALL_PACKAGES permission, which allows access to the inventory of installed applications on a specific device.

Google QUERY_ALL_PACKAGES Permission 

The inventory of installed applications requested from a user’s device is considered personal and sensitive information by Play, and its usage is only authorized when your app’s core user-facing functionality or purpose necessitates extensive access into installed apps on the user’s device.

To comply with Play policy, if your app does not fulfill the standards for permitted usage listed below, you must delete it from your app’s manifest. Alternative policy-compliant solutions are also suggested below.

If your app fits the policy criteria for the authorized use of the QUERY_ALL_PACKAGES permission, you must declare this and any other high-risk permissions in Play Console using the Permissions Declaration Form.

Apps that do not comply with the policy criteria or fail to submit the Permissions Declaration Form may be withdrawn from Google Play.

Important: If you change how your app uses these restricted permissions, you must revise your declaration with updated and accurate information. Deceptive and undeclared uses of these permissions may result in a suspension of your app and/or termination of your developer account.

Source: Google Official Documentation

What is QUERY_ALL_PACKAGES Permission?

Google Play limits the use of high-risk or sensitive permissions, such as the QUERY_ALL_PACKAGES permission, which allows access to the inventory of installed applications on a specific device. You may now utilize the QUERY_ALL_PACKAGES privilege by submitting a declaration.

If your declaration is absent, you will be unable to submit an app update after July 20. Your app must be updated before July 20.

The QUERY_ALL_PACKAGES permission is only valid on devices running Android 11 or later when your app targets Android API level 30 or later.

To utilize this permission, your app must fit under the approved purposes listed below and have a primary objective of searching for all applications on the device.

You must be able to effectively demonstrate why a less invasive approach of app visibility will not allow your app’s policy-compliant user-facing core functionality to operate properly.

The fundamental objective of the program is specified as its core functionality. The app is “broken” or useless if it lacks the ability to search for all applications on the device.

The app’s description must clearly explain and promote the core functionality, as well as any fundamental features that form this core functionality.

Permitted Use Cases of QUERY_ALL_PACKAGES Permission

Applications that need to discover all installed apps on the device for awareness or interoperability reasons may be eligible for the permission.

Device search, antivirus programs, file managers, and browsers are all permitted uses.

Apps given this permission must adhere to the User Data regulations, including Prominent Disclosure and Consent Requirement, and may not use it for unauthorized or illegal reasons.

QUERY_ALL_PACKAGES Permission Exception

Google Play may provide a temporary exemption to the following applications that do not meet the above-mentioned approved usage.

Apps with a confirmed fundamental purpose that involves financial-transaction capabilities (for example, dedicated banking, dedicated digital wallet) may have comprehensive insight into installed apps only for security reasons.

Invalid Uses of QUERY_ALL_PACKAGES Permission

The following use cases will not be permitted to request the QUERY_ALL_PACKAGES permission:

  • When the usage of the permission is not directly tied to the app’s fundamental purpose.
  • Peer-to-Peer (P2P) sharing is included. To qualify as a legal usage, the app’s primary purpose must be P2P.
  • When data is obtained with the intent of selling it.
  • When app inventory data from Play-distributed applications is meant to be sold or shared for analytics or ad monetization.
  • When a less wide app-visibility mechanism may be used to do the needed job.