Starting with Android 6 (API 23), users can grant or revoke certain permissions to apps while they are running, instead of when they first install the app. This approach helps streamline the app install process for the user as the user does not have to set permissions he doesn't want, but can still be able to install the app.
It also enables the user to decide which permissions to grant or revoke at run time. For example, an app may ask for camera access and device location, and the user can choose to deny camera access, but allow device location at run time.
To support this Android feature, Fire TV Gen 3 has a new permission setting section which is relevant for apps that target Android 6.0 (API 23) and above to compile.
This new permission setting is found under Settings->Applications->Managed Applications-> (Selected app for which user needs to change the permission) ->Permissions.
This setting is relevant for only the dangerous permissions declared in the manifest file of an app. The dangerous permissions are the permissions which explicitly ask for user-specific information, for example, access to location or storage. The normal permissions in the manifest would continue to be automatically granted to the user.
The developer must handle the scenarios where the user grants or revokes the permission at run time so that the app continues to run with limited capabilities. It is also a best practice to remove irrelevant dangerous permissions from your manifest file so that they do not show up under the Permissions section. For example, an app requesting access to contacts on Fire TV is irrelevant and might end up confusing the user since he does not have contacts maintained on Fire TV and hence can’t perform any action.
You can refer to Android’s best practices for managing runtime permissions for more details, here.