Skip to content

Permissions Explanation

Jim Roal edited this page Dec 30, 2018 · 17 revisions

#This page explains why each permission is needed and what it is used for.

This app does not keep any contact, message, SMS, etc information nor does it send anything off of your device. The permissions are all required to support the features of the app, most of which were requested by users to begin with. The app is completely open source so you can browse the code to confirm that there is no misuse of your data. Another way to confirm is to look at data usage in Android settings. This app does not send any information off the device.

Here is the app manifest file that declares the app permissions: https://github.com/jroal/a2dpvolume/blob/master/app/src/main/AndroidManifest.xml

Your location

Here is the class that uses the location permissions: https://github.com/jroal/a2dpvolume/blob/master/app/src/main/java/a2dp/Vol/StoreLoc.java

Coarse (network-based) location

Access coarse location sources such as the cellular network database to determine an approximate device location, where available. Malicious applications can use this to determine approximately where you are.

  • This is needed during the location capture when disconnecting. It is only used for the timeout period that you configure in A2DP Volume preferences.

Fine (GPS) location

Access fine location sources such as the Global Positioning System on the device, where available. Malicious applications can use this to determine where you are, and may consume additional battery power.

  • This is needed during the location capture when disconnecting. It is only used for the timeout period that you configure in A2DP Volume preferences.

Access extra location provider commands

Access extra location provider commands. Malicious applications could use this to interfere with the operation of the GPS or other location sources.

  • This is used to populate the device specific location data that is stored on device disconnect.

Your messages

Receive SMS (removed in 2.12.11)

Allows application to receive and process SMS messages. Malicious applications may monitor your messages or delete them without showing them to you.

  • This is used for the text message (SMS) reader feature. It responds to the text message being recieved and then send the message to the Text-To-Speech engine. The messages are not modified, stored, or manipulated in any way.

Network communication

Create Bluetooth connections

Allows an application to view configuration of the local Bluetooth device, and to make and accept connections with paired devices.

  • This is needed for the automatic Bluetooth connect feature, and to listen for Bluetooth device connections. It is also used to read details about Bluetooth devices such as the MAC address, which is used to uniquely identify each device for storage and retrieval of the settings you select in A2DP Volume.

Storage

Modify/delete USB storage contents modify/delete SD card contents

Allows an application to write to the USB storage. Allows an application to write to the SD card.

  • This is used to store the location data on disconnect, and for exporting and importing the database and location information when you use the Manage Data screen in A2DP Volume.

System tools

Change Wi-Fi state

Allows an application to connect to and disconnect from Wi-Fi access points, and to make changes to configured Wi-Fi networks.

  • This is used to toggle the WIFI state based on your device specific configurations in A2DP Volume.

Bluetooth Administration

Allows an application to configure the local Bluetooth device, and to discover and pair with remote devices.

  • This is needed for the automatic Bluetooth connect feature, and to listen for Bluetooth device connections. It is also used to read details about Bluetooth devices such as the MAC address, which is used to uniquely identify each device for storage and retrieval of the settings you select in A2DP Volume.

Network communication

View Wi-Fi state

Allows an application to view the information about the state of Wi-Fi.

  • This is used to toggle the WIFI state based on your device specific configurations in A2DP Volume.

System tools

Kill background processes

Allows an application to kill background processes of other applications, even if memory isn't low.

  • This is used to attempt to stop a process that was started when a device connected. You configure an app to launch (if desired). It will try to stop it on disconnect. In reality since Froyo (Android 2.2) this generally does not work anyway.

Automatically start at boot

Allows an application to have itself started as soon as the system has finished booting. This can make it take longer to start the device and allow the application to slow down the overall device by always running.

  • This is used for the automatic start at boot feature, if enabled.

Your personal information

read contact data (removed in 2.12.11)

Allows an application to read all of the contact (address) data stored on your device. Malicious applications can use this to send your data to other people.

  • This is used for the SMS reading feature. When you receive an SMS and you have the read SMS feature enabled in A2DP Volume it will look up the name of the sender using the phone number they texted you with. Added in version 2.3.10.

Phone calls

read phone state and identity

Allows the application to access the phone features of the device. An application with this permission can determine the phone number and serial number of this phone, whether a call is active, the number that call is connected to and the like.

  • This is used to tell if you are currently in a phone call. If a phone call is active, message reading is suspended until the call has ended.

Default

press keys and control buttons

Allows the app to deliver its own input events (key presses, etc.) to other apps. Malicious apps may use this to take over the tablet. Allows the app to deliver its own input events (key presses, etc.) to other apps. Malicious apps may use this to take over the phone.

  • This is used to send commands to stop the media from playing on disconnect. The media must be stopped in order to stop the app. This was a feature requested by many.

Other

Google Talk (Removed around 2.11.0)

  • Several permissions were needed to read Google Talk messages since version 2.9.0 when that feature was implemented.

SMS (removed in 2.12.11)

  • There are some permissions needed for reading SMS (text) messages for the integration of the SMS reader feature.

Accessibility Service (removed in 2.12.0)

  • This is used in 2.10.0 and up for setting up the accessibility service to read notifications out while a device is connected. It was then removed in 2.12.x and replace with the newer notification access feature.

Notification Access

  • This is used by the notification reader feature to access the notifications. You must enable this in Android settings! When enabled, A2DP Volume can access all notifications that are posted. A2DP Volume will only read the notifications from the apps you checked in "Apps for Notifications" settings in A2DP Volume. It reads the notification data, attempts to find the useful parts, and reads those out over the sound stream you chose. It does not store or use the notifications for anything else. It does temporarily store a list of which apps you configured notifications for so it can tell if the received notification is redundant, which happens. This is done to prevent reading out the same notification over and over. This record is purged periodically.

Install Shortcut

  • This is used when you open a specific devices location with a long press on that device in the list (and then click "location"). A webview opens up showing the details about the last location capture for that device. There is an action icon floating at the bottom right. Clicking this will make a shortcut to this file on your home screen.

With the introduction of Android Marshmallow (6.0) app permissions are handled differently. You can now deny each permission for an app in the Android settings, apps, and then the app of interest. A2DP Volume will crash if permissions are not granted. Make sure all permissions for A2DP Volume are granted in Android app settings. I will work on a better way to handle this. Check this by going to [Android settings] -> [Apps] -> [A2DP Volume] -> [Permissions] and you should see the screen below. Make sure all are selected as shown below.

Broadcast Sticky

This is used by the service to tell Android that this service is meant to be on-going. Since this app needs to be active to listen for deice connect/disconnect, it needs to keep the background service active. Since Android version 6, it must have an active notification as well. You may also see Android report that this app is running in the background. The app will simply not work without this.

This app only uses these permissions to support the features of the app. This app does not send any info out of your device.

If you have any concerns about these permissions you can always browse the actual code and see how they are used. This project is free, open source, and it has no ads. Open source means that all the programming is open to view by anyone anytime right here on this website.

Old permissions before 2.12.11