Friday, January 20, 2017

Help understanding Whatsapp's permissions


Whatsapp has been nagging me for the past few days that I have to upgrade it to continue using it. With the Facebook acquisition and the Play Store no longer marking the permissions that are "NEW" separately, I'm on a toss up between an upgrade and an uninstall; I'm hoping further information about the permissions will help.


First of all, does anyone know which permissions were added after Facebook's acquisition?
And among the permissions listed, what does "find accounts on this device" allow the app to do? Does "receive text messages" allow the app to read any existing or new incoming SMS messages? And as a minor curiosity, why would it need the "retrive running apps" list?



Here's the permission list from the Play Store:



This app has access to:


In-app purchases


Device & app history



  • retrieve running apps


Identity




  • find accounts on the device

  • add or remove accounts

  • read your own contact card


Contacts/Calendar



  • read your contacts

  • modify your contacts


Location




  • approximate location (network-based)

  • precise location (GPS and network-based)


SMS



  • receive text messages (SMS)

  • send SMS messages


Phone




  • directly call phone numbers


Photos/Media/Files



  • modify or delete the contents of your USB storage

  • test access to protected storage


Camera/Microphone




  • record audio

  • take pictures and videos


Wi-Fi connection information



  • view Wi-Fi connections


Device ID & call information



  • read phone status and identity



Other



  • receive data from Internet

  • read sync statistics

  • prevent device from sleeping

  • full network access

  • control vibration

  • run at startup

  • view network connections


  • connect and disconnect from Wi-Fi

  • use accounts on the device

  • create accounts and set passwords

  • modify system settings

  • read sync settings

  • toggle sync on and off

  • install shortcuts

  • uninstall shortcuts

  • read Google service configuration

  • change your audio settings





Answer



I had sent this question as an email to WhatsApp support too, and I've now received a reply from them with complete explanations of the permissions. Pasting that reply below:




Thanks for your message. We strive to keep this information as up to date and as accurate as possible.
However, at times, it is possible that Google or your handset maker may change, deprecate or remove various permissions.


Category: Your messages


Permission: Receive text messages (android.permission.RECEIVE_SMS)
Explanation: We use this to be able to read the SMS we send to your phone to verify your phone number.



Category: Storage


Permission: Modify or delete the contents of your USB storage (android.permission.WRITE_EXTERNAL_STORAGE)
Explanation: We store your media and chat history backups on the USB storage.


Category: System Tools


Permission: Modify system settings (android.permission.WRITE_SETTINGS)
Explanation: We need this to read your settings, we do not write any settings, but there is only a write settings permission which includes the ability to read settings.
Permission: install shortcuts (com.android.launcher.permission.INSTALL_SHORTCUT)
Explanation: We use this to install a WhatsApp shortcut or conversation shortcut on your homescreen.
Permission: uninstall shortcuts (com.android.launcher.permission.UNINSTALL_SHORTCUT)
Explanation: We use this to make sure we do not create duplicate shortcuts on your homescreen.



Category: Your location


Permission: approximate (network-based) location (android.permission.ACCESS_COARSE_LOCATION)
Explanation: We use this so that you can send your location to your friends.
Permission: precise (GPS) location (android.permission.ACCESS_FINE_LOCATION)
Explanation: We use this so that you can send your location to your friends.


Category: Services that cost you money


Permission: directly call phone numbers (android.permission.CALL_PHONE)
Explanation: We need this so that we can have the "Call" ability in the app.
Permission: send SMS messages (android.permission.SEND_SMS)
Explanation: You may send an SMS by using our tell a friend feature to tell a friend about WhatsApp.



Category: Camera


Permission: Take pictures or videos (android.permission.CAMERA)
Explanation: We use this to allow you to take pictures from inside WhatsApp. Read more here


Category: Microphone


Permission: record audio (android.permission.RECORD_AUDIO)
Explanation: We use this to allow you to record Voice Notes to send to your friends.


Category: Your accounts


Permission: Add or remove accounts (android.permission.MANAGE_ACCOUNTS)
Explanation: We use this to add a WhatsApp account to your device to show your WhatsAppable contacts.
Permission: create accounts and set passwords (android.permission.AUTHENTICATE_ACCOUNTS)

Explanation: We use this to add a WhatsApp account to your device.
Permission: use accounts on the device (android.permission.USE_CREDENTIALS)
Explanation: We need this permission to read and write your WhatsApp credentials.
Permission: find accounts on the device (android.permission.GET_ACCOUNTS)
Explanation: This is necessary to find which accounts to check for WhatsApp contacts.
Permission: read Google service configuration (android.providers.gsf.permission.READ_GSERVICES)
Explanation: This is used for Google Maps integration in WhatsApp location sharing.


Category: Your social information


Permission: modify your contacts (android.permission.WRITE_CONTACTS)
Explanation: This is necessary so that we can add the WhatsApp button into your contacts so you can send a WhatsApp to your friends from anywhere in your phone.

Permission: read your contacts (android.permission.READ_CONTACTS)
Explanation: We use this in order to automatically add all your friends that have WhatsApp installed on their phones.


Category: Your personal information


Permission: read your own contact card (android.permission.READ_PROFILE)
Explanation: We use this to try and set a default profile name.
Permission: read call log (android.permission.READ_CALL_LOG)
Explanation: This permission is not needed but is granted transitively from READ_CONTACTS because we support old versions of Android.
Permission: write call log (android.permission.WRITE_CALL_LOG)
Explanation: This permission is not needed but is granted transitively from WRITE_CONTACTS because we support old versions of Android.


Category: Phone calls



Permission: read phone status and identity (android.permission.READ_PHONE_STATE)
Explanation: We need this so that we don't annoy you when you are on the phone.


Category: Your applications information


Permission: run at startup (android.permission.RECEIVE_BOOT_COMPLETED)
Explanation: We use this to make sure the app is running to make sure you get your messages on time. Permission: retrieve running apps (android.permission.GET_TASKS)
Explanation: We need this in order to see if you are running any Task Killers, which may cause problems with our application.


Category: Sync Settings


Permission: read sync settings (android.permission.READ_SYNC_SETTINGS)
Explanation: We use this to make sure you get your messages on time.
Permission: read sync statistics (android.permission.READ_SYNC_STATS)

Explanation: We use this to debug possible problems in getting your messages on time. Permission: toggle sync on and off (android.permission.WRITE_SYNC_SETTINGS)
Explanation: We use this so that we can make sure your WhatsApp contacts are up to date.


Category: Development tools


Permission: test access to protected storage (android.permission.READ_EXTERNAL_STORAGE)
Explanation: We store data onto the external storage. The permission is granted transitively by android.permission.WRITE_EXTERNAL_STORAGE. We have no idea why Google describes the permission thusly.


Category: Affects Battery


Permission: control vibration (android.permission.VIBRATE)
Explanation: to notify you of a new message, we may vibrate your phone.
Permission: prevent phone from sleeping (android.permission.WAKE_LOCK)
Explanation: We need this to make sure that when a friend sends you a file, it doesn't get broken by your phone going to sleep.



Category: Network communication


Permission: full network access (android.permission.INTERNET)
Explanation: Without this we wouldn't be able to send your chat messages.
Permission: google play billing service (com.android.vending.BILLING)
Explanation: We use this to allow you to pay for the WhatsApp subscription.
Permission: receive data from internet (com.google.android.c2dm.permission.RECEIVE)
Explanation: We use this to make sure that you get your messages on time.
Permission: view wifi connections (android.permission.ACCESS_WIFI_STATE)
Explanation: We use this to check and see if you are on a Wi-Fi that WhatsApp won't work on.
Permission: view network connections (android.permission.ACCESS_NETWORK_STATE)

Explanation: We use this to diagnose your network connection and have the app react accordingly to ensure you get your messages on time.
Permission: full network access (android.permission.INTERNET)
Explanation: We need this to open socket connections to our servers in order to make sending and receiving messages fast.


No comments:

Post a Comment

samsung galaxy s 2 - Cannot restore Kies backup after firmware upgrade

I backed up my Samsung Galaxy S2 on Kies before updating to Ice Cream Sandwich. After the upgrade I tried to restore, but the restore fails ...