App Privacy

I don't want this, I want something more legalese !

See the generic Privacy Policy

Actually, I want something a bit more technical and specific to Warframe Alerts

You're in the right place.

Permissions and Reasons

What data does Warframe Alerts gather and why does it need the permissions it asks for ?

ACCESS_NETWORK_STATE, INTERNET

These permissions are used to communicate with the servers to receive alerts and update filters.

VIBRATE, com.google.android.c2dm.permission.RECEIVE, com.czero.warframealerts.permission.C2D_MESSAGE

Vibrate is to vibrate your device when an alert notification is displayed, RECEIVE and C2D_MESSAGE are needed to receive the alert notifications from Google Cloud Messaging which is a core component of keeping the power usage lower, this allows push messages to be sent through the channel your device already has connected to Google.

GET_ACCOUNTS, READ_SYNC_STATS, WAKE_LOCK, WRITE_SYNC_SETTINGS, AUTHENTICATE_ACCOUNTS

These permissions are for the creation on your device of a "Warframe Alerts" account, this is only a placeholder that is used to do background synchronisation of the language files (i18n), the filters and alerts.

What data do we gather ?

This is a sample record kept in the database for a device.


{
   "_id": "device:8c020144-34eb-452d-bc45-179157210fa5",
   "_rev": "11-56999a8e6a8ba826c35891dd5c85d49f",
   "registrations": [
       {
           "id": "cwyYHm9l1Cc:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
           "type": "FCM",
           "status": 0,
           "code": "Ok"
       }
   ],
   "app": {
       "ads": true,
       "code": 131,
       "version": "7.1.4"
   },
   "filters": {
       "aura": [
           "EnemyArmorReductionAuraMod",
       ],
       "blueprint": [
           "AnimaAltHelmetBlueprint",
       ],
       "ignore_planets": [
       ],
       "item": [
           "Forma",
       ],
       "mincredits": 0,
       "mod": [
           "AcceleratedBlastMod",
       ],
       "nocreditonly": false,
       "resource": [
           "AlertFusionBundleLarge",
       ],
       "stancemod": [
           "CrimsonDervishMeleeTree",
       ],
       "version": 8
   },
   "platform": [
       "PC"
   ],
   "os": {
       "device": "generic_x86_64",
       "language": "en",
       "model": "Android SDK built for x86_64",
       "product": "sdk_google_phone_x86_64",
       "release": "6.0",
       "sdk": 23,
       "version": "3.10.0+",
       "version_incremental": "3512684"
   }
}
The filters have been truncated just for breverity, under each category is just a long list of item codes.

What does all that mean ?

FieldDescription
_idDevice ID, this is a unique identifier for your device, it is generated randomly so when sending alerts the server knows who to send to.
_revThis is the revision of the data, it's an internal identifier from CouchDB
registrationsA list of registration IDs to send to, these are generated internally by your device and Google, each one is unique but it can change even from just an app update.
appWhat version of the app you are running and if you have ads enabled or disabled
filtersAll the filters that you've specified in the app
platformWhich platform you wish to receive alerts from
osThis is just general information about your device, this helps me see what languages people want and what versions of android to build for.

Is there anything you've missed ?

I hope not, but Google Analytics, AdMob and Google Firebase keep other details, when the app throws an exception or crashes I (should) get a report from Google with information about the crash, none of that information can be used to identify you as a person, it's similar to what I have above, OS Version, where the crash happened, what process in the app lead to the crash.