AWARE is an Android framework dedicated to instrument, infer, log and share mobile context and sensor information, for application developers, researchers and smartphone users
AWARE is an Android framework dedicated to instrument, infer, log and share mobile context and sensor information, for application developers, researchers and smartphone users. AWARE captures hardware-, software-, and human-based data. The platform is scalable with plugins and can be integrated with other platforms using JSON, MQTT or MySQL. It is currently used by many research efforts worldwide.Visit our official website: www.awareframework.comBeing an app to conduct user-studies, we use numer
ous permissions. Here is how and why we use and need them (they are requested in run-time as needed by a user study):- WRITE_EXTERNAL_STORAGE: the databases of sensors and plugins are stored in the device external storage.- INTERNET: so that we can send the data to your MySQL and dashboard server. Also used to join a study.- ACCESS_NETWORK_STATE: allows us to know when your device has internet available so we know it's a good time to sync the data.- FOREGROUND_SERVICE: this allows the app to collect data more reliably since the introduction of Doze and the Battery Manager AI. It also acts as a reminder to the user that there is an active data collection application running.- READ_SYNC_STATS: we use this for the sync adapters that take care of syncing the data. This allows us to know how long ago did we succeed syncing the data.- READ_SYNC_SETTINGS: allows us to know if a sync adapter is enabled or disabled.- WRITE_SYNC_SETTINGS: allows us to enable or disable a sync adapter.- AUTHENTICATE_ACCOUNTS: allows us to register and enable the sync adapters. A sync adapter requires an account (ours is awareframework), which we create automatically when installing AWARE.- GET_ACCOUNTS: allows us to know whether the account awareframework exists.- WAKE_LOCK: allows us to keep the sensor log working when the device is idle.- RECEIVE_BOOT_COMPLETED: allows us to resume the data collection if the device is rebooted.- ACCESS_COARSE_LOCATION + ACCESS_FINE_LOCATION: used by location sensor if Network provider or GPS provider is enabled, respectively.- ACCESS_WIFI_STATE + CHANGE_WIFI_STATE: used by WiFi sensor to log enabled/disabled events and surrounding access points.- BLUETOOTH + BLUETOOTH_ADMIN: used by Bluetooth sensor to log enabled/disabled events and surrounding BT devices.- GET_TASKS: allows us to know if a sensor/plugin is running on the background- READ_SMS: used to log received, sent SMS (not the actual text message)- READ_CALL_LOG: used to log received, made and missed calls (not the actual call audio or contact information - see next item)- READ_CONTACTS: used to one-way hash (SHA-256) who texted/called. This allows social studies to understand social ties, without revealing the users' contacts information.- READ_PHONE_STATE: to log whether the device is rebooted- RESTART_PACKAGES: allows us to restart a plugin on demand. Plugins are signed with the same certificate.- KILL_BACKGROUND_PROCESSES: allows us to terminate a misbehaving plugin.- VIBRATE: used for the EMA/ESM to get the users' attention to answer a survey.- CAMERA: used to scan the QRCode to join a study.- DISABLE_KEYGUARD: used to turn on the screen and display immediately a mobile survey (EMA/ESM).- BIND_ACCESSIBILITY_SERVICE: to be able to measure keyboard and touch input performance in typing, and touch gestures, we use Accessibility Services API. The same API also logs notifications, crashes and what is the current foreground application.
... moreless ...