Show last authors
1 {{box cssClass="floatinginfobox" title="**Page Contents**"}}
2 {{toc/}}
3 {{/box}}
4
5 = 1. Overview =
6
7 SDK gathering data constantly. Data collectors were divided into two groups:
8 - active - work only when user actively using application,
9 -pasive - work based on alarms (gather data when application stays in background)
10 The collected data is send to server with HTTP methods. Library saving mechanisms work based sharedpreferences and databases.
11 **Every sent hit has a timestamp field (''ts'') synchronized with the server**
12
13
14
15 = 2. Collectors division =
16
17 Data collectors are divided into two groups. First group called active collectors due to Android system restrictions (android Oreo background limits) work only while application is currently in foreground. Full active colelctors list:
18
19 * PACKAGE CHANGE,
20 * BATTERY
21 * SIGNAL_STRENGTH
22 * PROFILE_MODE
23 * HEADSET_PLUG
24 * CPU_PROCESS (for Android below Nougat)
25 * GEOLOCATION (work also as passive collector)
26 * APPS_USAGE (for Android below Lollipop)
27 * ROAMING
28 * NETWORK_CONNECTION
29 * WIFI_DATA_CONNECTION
30
31 Other group called pasive collectors which based on alarm manager fire up on specific time intervals. Full passive collectors list:
32
33 * BATTERY
34 * MEMORY_USEAGE
35 * SCREEN_ORIENTED
36 * CPU_PROCESS
37 * PHONE_INFO
38 * GEOLOCATION (work also as active collector)
39 * APP_LIST
40 * APPS_USAGE
41 * BROWSER
42 * NETWORK_USEAGE
43 * DICTIONARY
44 * CALENDAR_EVENTS
45 * MEDIA_FILES
46 * NFC_COLLECTOR
47 * BLUETOOTH_COLLECTOR
48 * PERMISSION_COLLECTOR
49 * BLUETOOTH_DEVICES_COLLECTOR
50 * FACEBOOK_NETWORK_COLLECTOR
51 * ROOT_COLLECTOR
52 * MOVEMENT_COLLECTOR
53 * USB_COLLECTOR
54 * STANDBY_BUCKET
55
56 Duplicate collectors in both groups are not mistake. It is intended behaviour that help gather at most data and is forced by Android SDK versions or system restrictions.
57
58 = 3. Collectors description =
59
60 == 3.1 APPS_LIST ==
61
62 * **Explanation:**
63 Collect all application's info on device.
64
65 * **Required permissions:**
66 none
67
68 * **Optional permissions:**
69 android.permission.GET_PACKAGE_SIZE{{reference}}Normal permissions cover areas where your app needs to access data or resources outside the app's sandbox, but where there's very little risk to the user's privacy or the operation of other apps. The system doesn't prompt the user to grant normal permissions, and users cannot revoke these permissions.{{/reference}} (obligatory on Android SDK >= 23, Marshmallow 6.0) - allow to gather information about application size (sizeInfo json object)
70 android.permission.QUERY_ALL_PACKAGES (obligatory on Android SDK >= 30, Android 11) - allow to query packages other than Android system packeges and your own package
71 * **Variable description:**
72 versionName - application version name
73 firstInstallTime - application install timestamp
74 launcher - got "good" intent to launch a front-door activity in a package
75 packageName - app package name
76 processName - app process name if packageName equals processname
77 versionCode - app version code
78 minSDK - application target version. It may run on earlier versions, but it knows how to work with any new behavior added at this version
79 largeheap - true when the application has requested a large heap for its processes
80 system - if set, this application is installed in the device's system image.
81 name - app user friendy name
82 uid - The kernel user-ID that has been assigned to this application; currently this is not a unique ID (multiple applications can have the same uid).
83 lastUpdateTime - The time at which the app was last updated
84 systemUpdated - this is set if this application has been installed as an update to a built-in system application
85 sizeInfo - json object with size information, on Marshmallow 6.0 present only with granted optional permission
86 externalcacheSize - Size of the external cache used by the application
87 dataSize - Size of the internal data size for the application
88 codeSize - Size of the code (e.g., APK)
89 externalDataSize - Size of the external data used by the application (e.g., /Android/data/ )
90 cacheSize - Size of cache used by the application. (e.g., /data/data/ /cache)
91 externalStorage - set to true if the application is currently installed on external/removable/unprotected storage
92 persistent - set to true if this application is persistent (whether or not the application should remain running at all times). Persistence mode is intended only for certain system applications.
93 disabled - indicates that all components within this application are considered disabled
94 externalCodeSize - size of the secure container on external storage holding the application's code
95 externalMediaSize - size of the external media size used by the application
96 externalObbSize - size of the package's OBBs placed on external media. OBB files are used to provide additional file assets for Android applications (such as graphics, sounds and video), separate from an application's APK file.
97 * **Example:**
98 {{code language="json"}}{
99 "ts": 1548677212017,
100 "appsList": [
101 {
102 "versionName": "14.03.53",
103 "firstInstallTime": 1230789600000,
104 "launcher": true,
105 "packageName": "com.google.android.youtube",
106 "processName": "com.google.android.youtube",
107 "versionCode": 1403533330,
108 "minSDK": 28,
109 "largeHeap": true,
110 "system": true,
111 "name": "YouTube",
112 "uid": 10093,
113 "externalStorage": false,
114 "persistent": false,
115 "disabled": false,
116 "sizeInfo": {
117 "externalCacheSize": 24576,
118 "dataSize": 552960,
119 "codeSize": 131072000,
120 "externalDataSize": 16384,
121 "externalCodeSize": 0,
122 "externalMediaSize": 0,
123 "externalObbSize": 0,
124 "cacheSize": 139264
125 },
126 "lastUpdateTime": 1548435339281,
127 "systemUpdated": true
128 }
129 ]
130 }{{/code}}
131
132 == 3.2 APPS_USAGE ==
133
134 * **Explanation:**
135 Collect time active an application.The collector uses the class [[UsageStatsManager>>https://developer.android.com/reference/android/app/usage/UsageStatsManager]].
136
137 * **Required permissions:**
138 android.permission.PACKAGE_USAGE_STATS{{reference}}Declaring the permission implies intention to use the API and the user of the device still needs to grant permission through the Settings application.{{/reference}} (obligatory on android sdk >= Lollipop 5.0)
139 android.permission.GET_TASKS{{reference}}Normal permissions cover areas where your app needs to access data or resources outside the app's sandbox, but where there's very little risk to the user's privacy or the operation of other apps. The system doesn't prompt the user to grant normal permissions, and users cannot revoke these permissions.{{/reference}} (obligatory on android sdk <= Kitkat 4.4)
140 since Android 11 geting the data will also be possible only if the device is unlocked by the user. This desn't impact the active collector since it only works when app is in foreground.(((
141 https:~/~/developer.android.com/reference/android/app/usage/UsageStatsManager.html#queryEvents(long,%20long)
142 )))
143 * **Optional permissions:**
144 none
145 * **Variable description:**
146 startTs - application start
147 duration - time of use in milliseconds
148 stopTs - application stop
149 package - application package
150 foreground - true if application was in foreground and screen was on, false otherwise
151
152 * **Example:**
153 {{code language="json"}}{
154 "ts": 1557825443149,
155 "appsUsage2": {
156 "data": [
157 {
158 "duration": 38520,
159 "package": "spicymobile.sample2.mobience",
160 "stopTs": 1557825382397,
161 "startTs": 1557825343877,
162 "foreground": true
163 },
164 {
165 "duration": 62194,
166 "package": "spicymobile.sample2.mobience",
167 "stopTs": 1557825444591,
168 "startTs": 1557825382397,
169 "foreground": false
170 }
171 ],
172 "startTs": 1557825443138,
173 "isFull": true
174 }
175 }{{/code}}
176
177 == 3.3 APPS_USAGE (deprecated) ==
178
179 * **Explanation:**
180 Obsolete collector sending data about application usage. Still in use by old and forgotten user applications.
181
182 * **Required permissions:**
183 none
184
185 * **Optional permissions:**
186 none
187
188 * **Variable description:**
189 data - array list of usage data
190 ms - time of use in milliseconds
191 name - package name or event
192 isFull - irrelevant
193
194 * **Example:**
195 Active collector hit (application has to work as foreground):
196 {{code language="json"}}{
197 "appsUsage": {
198 "data": [
199 {
200 "ms": 2432288,
201 "name": "SCREEN_OFF"
202 },
203 {
204 "ms": 9823,
205 "name": "com.android.systemui"
206 },
207 {
208 "ms": 368060,
209 "name": "SCREEN_OFF"
210 }
211 ],
212 "startTs": 1546371785061,
213 "isFull": true
214 },
215 "ts": 1546374594650
216 }{{/code}}
217
218 == 3.4 BATTERY ==
219
220 * **Explanation:**
221 BatteryInfoCollector collects battery info: level and charge event.
222
223 * **Required permissions:**
224 none
225
226 * **Optional permissions:**
227 none
228
229 * **Variable description:**
230 start - charging start time
231 source - charge source (USB or AC)
232 startTemp - temperature start charging
233 stop - charging stop time
234 startVol - voltage start charging
235 stopVol - voltage stop charging
236 stopTemp - temperature stop charging
237 startLv - battery level start charging
238 stopLv - battery level stop charging
239 level - battery level
240
241 * **Example:**
242 Active collector hit (application has to work as foreground):
243 {{code language="json"}}{
244 "ts": 1548687066900,
245 "batteryInfo": {
246 "start": 1548686926256,
247 "source": "USB",
248 "startTemp": 296,
249 "stop": 1548687068108,
250 "startVol": 4352,
251 "stopVol": 4351,
252 "stopTemp": 297,
253 "startLv": 100,
254 "stopLv": 100
255 }
256 }{{/code}}
257 Pasive collector hit (periodically broadcast alarm):
258 {{code language="json"}}{
259 "ts": 1567146572282,
260 "batteryInfo": {
261 "level": 100
262 }
263 }{{/code}}
264
265 == 3.5 BLUETOOTH_COLLECTOR ==
266
267 * **Explanation:**
268 Bluetooth collector collects information of Bluetooth, Bluetooth LE (for android >= Jelly Bean 4.1) function of
269 that device, contains normal Bluetooth information.
270
271 * **Required permissions:**
272 none
273
274 * **Optional permissions:**
275 android.permission.BLUETOOTH{{reference}}Normal permissions cover areas where your app needs to access data or resources outside the app's sandbox, but where there's very little risk to the user's privacy or the operation of other apps. The system doesn't prompt the user to grant normal permissions, and users cannot revoke these permissions.{{/reference}}
276
277 * **Variable description:**
278 isSupported - is bluetooth or Bluetooth LE supported
279 isEnabled - is bluetooth or Bluetooth LE enabled (required by optional permission)
280
281 * **Example:**
282 {{code language="json"}}{
283 "ts": 1548746645461,
284 "bluetoothInfo": {
285 "bluetooth": {
286 "isSupported": true,
287 "isEnabled": false
288 },
289 "bluetoothLE": {
290 "isSupported": true,
291 "isEnabled": false
292 }
293 }
294 }{{/code}}
295
296 == 3.6 BLUETOOTH_DEVICES_COLLECTOR ==
297
298 * **Explanation:**
299 Bluetooth collector collects information of new devices connected via Bluetooth.
300
301 * **Required permissions:**
302 android.permission.BLUETOOTH{{reference}}Normal permissions cover areas where your app needs to access data or resources outside the app's sandbox, but where there's very little risk to the user's privacy or the operation of other apps. The system doesn't prompt the user to grant normal permissions, and users cannot revoke these permissions.{{/reference}}
303
304 * **Optional permissions:**
305 none
306
307 * **Variable description:**
308 connected - true if new device connected, false otherwise
309 ts - connected/disconnected timestamp
310 device_name - friendly Bluetooth name of the remote device
311 device_address - hardware address of this BluetoothDevice
312
313 * **Example:**
314 {{code language="json"}}{
315 "ts": 1548753718500,
316 "bluetoothConnectedDevice": {
317 "connected": "",
318 "device_name": "",
319 "device_address": "",
320 "ts": 129387329479
321 }
322 }{{/code}}
323
324 == 3.7 BROWSER ==
325
326 * **Explanation:**
327 Collecting data on browser history, bookmarks, phrases. Gathering bookmarks is not possibly since we use accessibility service.
328
329 * **Required permissions:**
330 com.android.browser.permission.READ_HISTORY_BOOKMARKS{{reference}}Normal permissions cover areas where your app needs to access data or resources outside the app's sandbox, but where there's very little risk to the user's privacy or the operation of other apps. The system doesn't prompt the user to grant normal permissions, and users cannot revoke these permissions.{{/reference}} (Removed since android sdk >= Marshmallow 6.0) on Android api level < Lollipop 5.0
331 turned on accessibility for application{{reference}}Declaring the permission implies intention to use the API and the user of the device still needs to grant permission through the Settings application.{{/reference}} on Android api level >= Lollipop 5.0
332
333 * **Optional permissions:**
334 none
335
336 * **Variable description:**
337 visited - visit timestamp
338 visitedLocTs - true if ''visited'' timestamp is device local
339 visits - number of visits
340 title - site title
341 created - creation timestamp
342 createdLocTs - true if ''created'' is device local
343 url - site url
344 type - bookmark type
345
346 * **Example:**
347 {{code language="json"}}{
348 "ts": 1548753718500,
349 "browserHistory": {
350 "spicymobile.sample2.mobience.browser": [
351 {
352 "visited": 1548753703258,
353 "visits": 1,
354 "title": "",
355 "created": 1548753703258,
356 "url": "https://m.onet.pl"
357 },
358 {
359 "visited": 1548753710321,
360 "visits": 1,
361 "title": "",
362 "created": 1548753710321,
363 "url": "Wirtualna Polska - Wszystko co ważne - www.wp.pl"
364 }
365 ]
366 },
367 "browserBookmarks": {
368 "browser": [
369 {
370 "visited": 1568032189945,
371 "visits": 2,
372 "title": "Meczyki.pl - Mecze na żywo, mecze online, sport live",
373 "url": "https://www.meczyki.pl/",
374 "created": 32874623949324,
375 "type": 2
376 },
377 {
378 "visits": 0,
379 "title": "Picasa",
380 "url": "http://picasaweb.google.com/"
381 }
382 ]
383 },
384 "browserPhrases": {
385 "pl.meonmobile.searchplaces.browser": {
386 "1567588171303": "mecz polski"
387 }
388 }
389 }{{/code}}
390
391 == 3.8 CALENDAR_EVENTS ==
392
393 * **Explanation:**
394 Collects calendar events data of a device, with a range of days : before 100 days and after 100
395 days with the collecting dayRequired permissions.
396
397 * **Required permissions:**
398 Manifest.permission.READ_CALENDAR{{reference}}Dangerous permissions cover areas where the app wants data or resources that involve the user's private information, or could potentially affect the user's stored data or the operation of other apps. To use a dangerous permission, your app must prompt the user to grant permission at runtime.{{/reference}}
399
400 * **Optional permissions:**
401 none
402
403 * **Variable description:**
404 eventConfirmed - json array with confirmed events
405 eventTentative - json array with tentative events
406 eventCanceled - json array with canceled events
407 start - start event timestamp
408 title - event title
409 location - event location
410 startDay - event start day
411 endDay - event end day
412 alarm - use alarm true, false otherwise
413 end - end timestamp
414 timezone - timezone
415
416 * **Example:**
417 {{code language="json"}}{
418 "ts": 1548756439048,
419 "calendarEvent": {
420 "eventConfirmed": [
421 {
422 "start": 1546214400000,
423 "title": "Sylwester (święto)",
424 "location": "",
425 "startDay": 1546214400000,
426 "endDay": 1546300800000,
427 "alarm": false,
428 "end": 1546300800000,
429 "timezone": "UTC"
430 },
431 {
432 "start": 1548930600000,
433 "title": "Kolejny test",
434 "location": "",
435 "startDay": 1548930600000,
436 "endDay": 1548934200000,
437 "alarm": true,
438 "end": 1548934200000,
439 "timezone": "Europe/Warsaw"
440 }
441 ]
442 }
443 }{{/code}}
444
445 == 3.9 CALL_LOG - deprecated ==
446
447 * **Explanation:**
448 Collect all data history from phone call log. Due to new Google policy changes we can't collect call informations. [[Read more here>>https://play.google.com/about/privacy-security-deception/permissions/]]
449
450 * **Required permissions:**
451 Manifest.permission.READ_CALL_LOG{{reference}}Dangerous permissions cover areas where the app wants data or resources that involve the user's private information, or could potentially affect the user's stored data or the operation of other apps. To use a dangerous permission, your app must prompt the user to grant permission at runtime.{{/reference}}
452
453 * **Optional permissions:**
454 none
455
456 * **Variable description:**
457 incoming - incoming phone call
458 outgoing - outgoing phone call
459 misscall - missed call
460 voicemail - voice mail
461 rejected - rejected call
462 refused - refused call
463 date - call date
464 seconds - call duration
465
466 * **Example:**
467 {{code language="json"}}{
468 "ts": 1550049621866,
469 "callLogData": {
470 "incoming": [
471 {
472 "date": "",
473 "seconds": ""
474 }
475 ],
476 "misscall": [
477 {
478 "date": "",
479 "seconds": ""
480 }
481 ],
482 "rejected": [
483 {
484 "date": ""
485 }
486 ],
487 "refused": [
488 {
489 "date": ""
490 }
491 ],
492 "outgoing": [
493 {
494 "date": "",
495 "seconds": ""
496 }
497 ],
498 "voicemail": [
499 {
500 "date": "",
501 "seconds": ""
502 }
503 ]
504 }
505 }{{/code}}
506
507 == 3.10 CPU_PROCESS ==
508
509 * **Explanation:**
510 Collect process running cpu on device at time request. Works on android sdk < Nougat 7.0 (since Nougat, application just see it own process).
511
512 * **Required permissions:**
513 none
514
515 * **Optional permissions:**
516 none
517
518 * **Variable description:**
519 cpu_freq - cpu check frequency from configuration file
520 cpu_period - cpu send period from configuration file
521 frequency - cpu send frequency from configuration file
522 processRunning - json array with processes
523 name - process name
524 cpu_min - cpu min
525 cpu_max - cpu max
526 cpu_median - cpu median
527 cpu_average - cpu average
528 residentMemory_min - resident memory min
529 residentMemory_max - resident memory max
530 residentMemory_average - resident memory average
531 residentMemory_median - process resident set size median
532 virtualMemory_min - process virtual memory min
533 virtualMemory_max - process virtual memory max
534 virtualMemory_median - process virtual memory median
535 virtualMemory_average - process virtual memory average
536 ts - current time
537
538 * **Example:**
539 {{code language="json"}}{
540 "ts": 1550049621866,
541 "cpuProcess": {
542 "ts": 1550049622189,
543 "cpu_freq": 10800,
544 "processRunning": [
545 {
546 "residentMemory_median": 23688,
547 "cpu_average": 0,
548 "cpu_max": 0,
549 "residentMemory_max": 23688,
550 "virtualMemory_min": 645076,
551 "name": "com.google.android.partnersetup",
552 "virtualMemory_average": 645076,
553 "virtualMemory_median": 645076,
554 "cpu_median": 0,
555 "residentMemory_average": 23688,
556 "residentMemory_min": 23688,
557 "virtualMemory_max": 645076,
558 "cpu_min": 0
559 },
560 {
561 "residentMemory_median": 29724,
562 "cpu_average": 0,
563 "cpu_max": 0,
564 "residentMemory_max": 29724,
565 "virtualMemory_min": 646644,
566 "name": "com.google.android.packageinstaller",
567 "virtualMemory_average": 646644,
568 "virtualMemory_median": 646644,
569 "cpu_median": 0,
570 "residentMemory_average": 29724,
571 "residentMemory_min": 29724,
572 "virtualMemory_max": 646644,
573 "cpu_min": 0
574 }
575 ],
576 "cpu_period": 30,
577 "frequency": 30
578 }
579 }{{/code}}
580
581 == 3.11 DICTIONARY ==
582
583 * **Explanation:**
584 Collect all data Dictionary of user on device. We cannot access Dictionary from Android sdk >= Marshmallow 6.0.
585
586 * **Required permissions:**
587 android.permission.READ_USER_DICTIONARY{{reference}}Dangerous permissions cover areas where the app wants data or resources that involve the user's private information, or could potentially affect the user's stored data or the operation of other apps. To use a dangerous permission, your app must prompt the user to grant permission at runtime.{{/reference}}
588
589 * **Optional permissions:**
590 none
591
592 * **Variable description:**
593 freq - The frequency column. A value between 1 and 255. Higher values imply higher frequency
594 shortcut - shortcut explanation
595 word - added word
596 locale - country locale
597
598 * **Example:**
599 {{code language="json"}}{
600 "ts": 1548762314784,
601 "dictionary": [
602 {
603 "freq": 250,
604 "shortcut": "dodane do testów",
605 "word": "słowo testowe",
606 "locale": "pl_PL"
607 }
608 ]
609 }{{/code}}
610
611 == 3.12 GEOLOCATION ==
612
613 * **Explanation:**
614 Geolocalization coordinates of a device, information of current GSM cell and GSM signal strength.
615
616 * **Required permissions:**
617 Manifest.permission.ACCESS_FINE_LOCATION{{reference}}Dangerous permissions cover areas where the app wants data or resources that involve the user's private information, or could potentially affect the user's stored data or the operation of other apps. To use a dangerous permission, your app must prompt the user to grant permission at runtime.{{/reference}}
618 Manifest.permission.ACCESS_COARSE_LOCATION{{reference}}Dangerous permissions cover areas where the app wants data or resources that involve the user's private information, or could potentially affect the user's stored data or the operation of other apps. To use a dangerous permission, your app must prompt the user to grant permission at runtime.{{/reference}}
619 Since Android 10 accessing lcation when is not in foreground is posiible only after declaring Manifest.permission.ACCESS_BACKGROUND_LOCATION. Documentation strongly states that accessing background is forbidden for purpose of gathering analytic data. Applications requesting access to background location undergo excessive audit procedure. Because of that there GEOLOCATION can obtain current location only as active collector - when app is in foreground. Last known location can be obtained by passive collector.
620
621 * **Optional permissions:**
622 none
623
624 * **Variable description:**
625 acc - estimated accuracy of this location, in meters
626 spd - speed if it is available, in kilometers/hour over ground
627 ls - name of the provider that generated this fix
628 lt - location time
629 ltLoc - true if time is local
630 cid - gsm cell id, -1 if unknown, 0xffff max legal valu
631 lac - gsm location area code, -1 if unknown, 0xffff max legal value
632 signalData - signal strength json object
633 location - json object containing location data
634 coordinates - json array with latitude and longitude coordinates
635 type - always as Point
636 br - bearing, in degrees, bearing is the horizontal direction of travel of this device, and is not related to the device orientation
637
638 * **Example:**
639 {{code language="json"}}{
640 "ts": 1564136345488,
641 "geolocation": {
642 "acc": 29.54,
643 "ls": "fused",
644 "lt": 1564136345338,
645 "location": {
646 "coordinates": [
647 52.2318224,
648 21.1063799
649 ],
650 "type": "Point"
651 },
652 "cid": 46337572,
653 "br" : 200,
654 "lac": 58170,
655 "ltLoc": true
656 }
657 }{{/code}}
658
659 == 3.13 HEADSET_PLUG ==
660
661 * **Explanation:**
662 Collect all data about headset plugin's information.
663
664 * **Required permissions:**
665 none
666
667 * **Optional permissions:**
668 none
669
670 * **Variable description:**
671 start - plug in timestamp
672 end - plug out timestamp
673 microphone - is microphone
674 headphone - is headphone
675 name - name if exist
676
677 * **Example:**
678 {{code language="json"}}{
679 "ts": 1548763985160,
680 "headsetPlug": {
681 "headsetPlug": [
682 {
683 "start": 1548763789550,
684 "end": 1548763912421,
685 "microphone": false,
686 "headphone": true
687 }
688 ]
689 }
690 }{{/code}}
691
692 == 3.14 MEDIA_FILES ==
693
694 * **Explanation:**
695 Gather Media files information of device.
696
697 * **Required permissions:**
698 Manifest.permission.READ_EXTERNAL_STORAGE{{reference}}Dangerous permissions cover areas where the app wants data or resources that involve the user's private information, or could potentially affect the user's stored data or the operation of other apps. To use a dangerous permission, your app must prompt the user to grant permission at runtime.{{/reference}} (on Android api level >= Jelly Bean 4.1)
699
700 * **Optional permissions:**
701 none
702
703 * **Variable description:**
704 image - json object with image media data
705 nonMedia - json object with non media data
706 audio - json object with audio media data
707 video - json object with video media data
708 totalBytes - size in bytes
709 totalFiles - number of files
710 newFiles - new files number
711 newBytes - size in bytes
712 deletedFiles - deleted files number
713 deletedBytes - deleted size in bytes
714
715 sinceTs - timestamp
716
717 * **Example:**
718 {{code language="json"}}{
719 "ts": 1548764886837,
720 "mediaFiles": {
721 "image": {
722 "totalBytes": 33569637,
723 "totalFiles": 85
724 },
725 "nonMedia": {
726 "totalBytes": 67371316,
727 "totalFiles": 277
728 },
729 "audio": {
730 "totalBytes": 5576521,
731 "totalFiles": 3
732 },
733 "video": {},
734 "sinceTs": 1547018493079
735 }
736 }{{/code}}
737
738 == 3.15 MEMORY_USEAGE ==
739
740 * **Explanation:**
741 Collect used memory info.
742
743 * **Required permissions:**
744 none
745
746 * **Optional permissions:**
747 none
748
749 * **Variable description:**
750 total - total in kB
751 buffers - buffers in kB
752 cached - cached in kB
753 free - free in kB
754
755 * **Example:**
756 {{code language="json"}}{
757 "ts": 1548765433296,
758 "memoryUse": {
759 "total": 2847404,
760 "buffers": 1291312,
761 "cached": 3560,
762 "free": 87684
763 }
764 }{{/code}}
765
766 == 3.16 MESSAGE - deprecated ==
767
768 * **Explanation:**
769 Collect all data history from sms and mms. Due to new Google policy changes we can't collect call informations. [[Read more here>>https://play.google.com/about/privacy-security-deception/permissions/]]
770
771 * **Required permissions:**
772 Manifest.permission.READ_SMS{{reference}}Dangerous permissions cover areas where the app wants data or resources that involve the user's private information, or could potentially affect the user's stored data or the operation of other apps. To use a dangerous permission, your app must prompt the user to grant permission at runtime.{{/reference}}
773
774 * **Optional permissions:**
775 none
776
777 * **Variable description:**
778 date - date
779 bodyLength - message length
780 incoming - incoming sms/mms
781 sent - sent sms/mms
782 inbox - inboxed sms/mms
783 outbox - outbox sms/mms
784 failed - failes send sms/mms
785 queued - waiting in queue sms/mms
786
787 * **Example:**
788 {{code language="json"}}{
789 "smsData": {
790 "draft": [
791 {
792 "date": "",
793 "bodyLength": ""
794 }
795 ],
796 "incoming": [
797 {
798 "date": "",
799 "bodyLength": ""
800 }
801 ],
802 "sent": [
803 {
804 "date": "",
805 "bodyLength": ""
806 }
807 ],
808 "inbox": [
809 {
810 "date": "",
811 "bodyLength": ""
812 }
813 ],
814 "outbox": [
815 {
816 "date": "",
817 "bodyLength": ""
818 }
819 ],
820 "failed": [
821 {
822 "date": "",
823 "bodyLength": ""
824 }
825 ],
826 "queued": [
827 {
828 "date": "",
829 "bodyLength": ""
830 }
831 ]
832 }
833 }{{/code}}
834
835 == 3.17 NETWORK_CONNECTION ==
836
837 * **Explanation:**
838 Collect about connection information: "wifi" or "mobile data" or "no connection".
839
840 * **Required permissions:**
841 Manifest.permission.ACCESS_NETWORK_STATE{{reference}}Normal permissions cover areas where your app needs to access data or resources outside the app's sandbox, but where there's very little risk to the user's privacy or the operation of other apps. The system doesn't prompt the user to grant normal permissions, and users cannot revoke these permissions.{{/reference}}
842
843 * **Optional permissions:**
844 none
845
846 * **Variable description:**
847 type - connection type (no connection, mobile data, wifi)
848 ts - the timestamp when the event occurred
849 locTs - true if ts is local, false otherwise
850
851 * **Example:**
852 {{code language="json"}}{
853 "ts": 1548766520028,
854 "networkConnection": {
855 "connection": [
856 {
857 "type": "no connection",
858 "ts": 1548766200083
859 },
860 {
861 "type": "mobile data",
862 "ts": 1548766402136
863 },
864 {
865 "type": "wifi",
866 "ts": 1548766402739
867 }
868 ]
869 }
870 }{{/code}}
871
872 == 3.18 NETWORK_USAGE ==
873
874 * **Explanation:**
875 Collect all network usage data from all application on device. Works till Android Marshmallow 6.0.
876
877 * **Required permissions:**
878 none
879
880 * **Optional permissions:**
881 none
882
883 * **Variable description:**
884 totalTxBytes - number of bytes transmitted since device boot
885 mobileTxBytes - number of bytes transmitted across mobile networks since device boot
886 mobileRxBytes - number of bytes received across mobile networks since device boot
887 totalRxBytes - number of bytes received since device boot.
888 sinceTs - timestamp
889 locTs - true if sinceTs is local, false otherwise
890 mobileTxPackets - number of packets transmitted across mobile networks since device boot
891 mobileRxPackets - number of packets received across mobile networks since device boot
892 totalRxPackets - number of packets received since device boot
893 totalTxPackets - number of packets transmitted since device boot
894 apps - json array with apps network usage
895 launcher - got "good" intent to launch a front-door activity in a package
896 packageName - application package name
897
898 * **Example:**
899 {{code language="json"}}{
900 "ts": 1548767131411,
901 "networkUsage": {
902 "totalTxBytes": 16731554,
903 "mobileRxBytes": 0,
904 "apps": [
905 {
906 "totalTxBytes": 433532,
907 "launcher": true,
908 "packageName": "spicymobile.sample2.mobience",
909 "totalRxBytes": 550934
910 }
911 ],
912 "totalRxBytes": 92932021,
913 "sinceTs": 1548067012569,
914 "mobileTxPackets": 0,
915 "mobileRxPackets": 0,
916 "mobileTxBytes": 0,
917 "totalRxPackets": 111935,
918 "totalTxPackets": 82378
919 }
920 }{{/code}}
921
922 == 3.19 NFC_COLLECTOR ==
923
924 * **Explanation:**
925 NFC collector collects information of NFC funtion of that device, contains normal NFC NFED information.
926
927 * **Required permissions:**
928 Manifest.permission.NFC{{reference}}Normal permissions cover areas where your app needs to access data or resources outside the app's sandbox, but where there's very little risk to the user's privacy or the operation of other apps. The system doesn't prompt the user to grant normal permissions, and users cannot revoke these permissions.{{/reference}}
929
930 * **Optional permissions:**
931 none
932
933 * **Variable description:**
934 NFC - json object with nfc data
935 NFED - json object with nfed data (Android Beam file transfer)
936 isSupported - true if device support nfc/nfed feature, false otherwise
937 isEnabled - tru if nfc/nfed is enable
938
939 * **Example:**
940 {{code language="json"}}{
941 "ts": 1566982896999,
942 "nfcInfo": {
943 "NFED": {
944 "isSupported": false
945 },
946 "NFC": {
947 "isSupported": false
948 }
949 }
950 }{{/code}}
951
952 == 3.20 PACKAGE_CHANGE ==
953
954 * **Explanation:**
955 Collect all package change event (install new app, remove app, data clear, restart app).
956
957 * **Required permissions:**
958 none
959
960 * **Optional permissions:**
961 none
962
963 * **Variable description:**
964 versionName - version name of application
965 name - application name
966 uid - application uid
967 versionCode - version code of application
968 action - change action (added, removed, restarted, dataCleared, replaced)
969 replacing - true if replaced, false otherwise
970 dataRemoved - true if data removed
971
972 * **Example:**
973 {{code language="json"}}{
974 "ts": 1548768769016,
975 "packageChanges": {
976 "versionName": "27.0.215462205",
977 "name": "com.google.android.talk",
978 "uid": 10076,
979 "versionCode": 25335509,
980 "action": "restarted"
981 }
982 }
983
984 {
985 "ts": 1567150590629,
986 "packageChanges": {
987 "uid": 11422,
988 "name": "pl.meonmobile.searchplaces",
989 "action": "removed",
990 "replacing": false,
991 "dataRemoved": true
992 }
993 }{{/code}}
994
995 == 3.21 PERMISSION_COLLECTOR ==
996
997 * **Explanation:**
998 SDKAppPermission gathers every week list of all the Android permissions that it have and list of enabled data collectors from MobienceSDK.
999
1000 * **Required permissions:**
1001 none
1002
1003 * **Optional permissions:**
1004 none
1005
1006 * **Variable description:**
1007 collectors - json object containing enabled collectors
1008 permission - json array with granted permissions
1009 sysPerm - json array with system level permissions
1010 sigPerm - json array with signature level permissions
1011 dangPerm - json array with dangerous level permissions
1012 gS - true if permission granted, false otherwise
1013 **Important "collectors" section information**
1014 Collector number 3 (Browser) has name "browserPhrases" and if it exists, it means that all three browser collectors (phrases, history, bookmarks) are working.
1015
1016 * **Example:**
1017 {{code language="json"}}{
1018 "ts": 1587626370619,
1019 "SDKAppPermissions": {
1020 "collectors": {
1021 "3": "browserPhrases",
1022 "22": "SDKAppPermissions"
1023 },
1024 "permissions": [
1025 "android.permission.INTERNET",
1026 "android.permission.ACCESS_COARSE_LOCATION",
1027 "android.permission.ACCESS_FINE_LOCATION"
1028 ],
1029 "sysPerm": [
1030 {
1031 "name": "android.permission.DELETE_PACKAGES",
1032 "gS": false
1033 }
1034 ],
1035 "sigPerm": [
1036 {
1037 "name": "android.permission.GET_TOP_ACTIVITY_INFO",
1038 "gS": false
1039 },
1040 {
1041 "name": "android.permission.PACKAGE_USAGE_STATS",
1042 "gS": false
1043 },
1044 {
1045 "name": "accessibility",
1046 "gS": false
1047 },
1048 {
1049 "name": "ignoreBatteryOptimizations",
1050 "gS": false
1051 }
1052 ],
1053 "dangPerm": [
1054 {
1055 "name": "android.permission.ACCESS_COARSE_LOCATION",
1056 "gS": true
1057 },
1058 {
1059 "name": "android.permission.ACCESS_FINE_LOCATION",
1060 "gS": true
1061 },
1062 {
1063 "name": "android.permission.READ_PHONE_STATE",
1064 "gS": true
1065 }
1066 ]
1067 }
1068 }{{/code}}
1069
1070 == 3.22 PHONE_INFO ==
1071
1072 * **Explanation:**
1073 Collect informations of a device, such as: Identifiers of device model, system version, IMSI, IP, network operator of SIM card and mobile network, WiFi network data, etc.
1074
1075 * **Required permissions:**
1076 none
1077
1078 * **Optional permissions:**
1079 android.permission.READ_PHONE_STATE
1080 android.permission.ACCESS_NETWORK_STATE
1081 android.permission.ACCESS_WIFI_STATE
1082
1083 * **Variable description:**
1084 boottime - UNIX timestamp when last boot occurred (available sice sdk 1.4)
1085 awaketime - milliseconds since boot, not counting time spent in deep sleep
1086 df - A string that uniquely identifies this build.
1087 sbr - The screen backlight brightness between 0 and 255
1088 os - android system version
1089 nt - name describe the type of the network, for example (WIFI, MOBILE, offline), requires optional permission ACCESS_NETWORK_STATE
1090 ns - human-readable name describing the subtype of the network, requires optional permission ACCESS_NETWORK_STATE
1091 bssid - basic service set identifier (BSSID) of the current access point, requires optional permission ACCESS_WIFI_STATE
1092 nopc - numeric name (MCC+MNC) of current registered operator.
1093 ip - current ip
1094 vlsm - audio stream level for music playback
1095 dm - The end-user-visible name for the end product.
1096 imsi - unique subscriber ID, for example, the IMSI for a GSM phone, requires optional permission READ_PHONE_STATE
1097 ssid - service set identifier (SSID) of the current 802.11 network, requires optional permission ACCESS_WIFI_STATE
1098 nop - alphabetic name of current registered operator.
1099 mac - MAC address, requires optional permission ACCESS_WIFI_STATE
1100 dr - screen heightXwidth
1101 uptime - milliseconds since boot, including time spent in sleep.
1102 dv - manufacturer of the product/hardware.
1103 sop - Service Provider Name (SPN).
1104 lan - name for the locale's language that is appropriate for display to the user.
1105 sopc - MCC+MNC (mobile country code + mobile network code) of the provider of the SIM. 5 or 6 decimal digits.
1106 pl - device system (currently only support Android)
1107 vlr - audio stream level for the phone ring
1108 dc - device type (TB, CF)
1109 ip - IP address
1110
1111 * **Example:**
1112 {{code language="json"}}{
1113 "ts": 1548770227737,
1114 "phoneInfo": {
1115 "awaketime": 273412299,
1116 "df": "HONOR/LLD-L21/HWLLD-H:8.0.0/HONORLLD-L21/135(C185):user/release-keys",
1117 "sbr": 41,
1118 "os": "8.0.0",
1119 "nt": "WIFI",
1120 "bssid": "7a:8a:20:21:c9:d0",
1121 "nopc": "26002",
1122 "ip": "10.0.0.73",
1123 "vlsm": 0,
1124 "dm": "LLD-L21",
1125 "imsi": "260021722534787",
1126 "ssid": "\"Spicy Mobile\"",
1127 "nop": "T-Mobile.pl",
1128 "mac": "A4:93:3F:5F:00:7E",
1129 "dr": "2032x1080",
1130 "uptime": 1751734597,
1131 "boottime": 1573952930107,
1132 "dv": "HUAWEI",
1133 "sop": "T-Mobile.pl",
1134 "lan": "polski",
1135 "sopc": "26002",
1136 "pl": "Android",
1137 "vlr": 0,
1138 "dc": "CF",
1139 "ip" : "192.168.1.1"
1140 }
1141 }{{/code}}
1142
1143 == 3.23 PROFILE_MODE ==
1144
1145 * **Explanation:**
1146 Collect time change profile mode.
1147
1148 * **Required permissions:**
1149 none
1150
1151 * **Optional permissions:**
1152 none
1153
1154 * **Variable description:**
1155 profile - array containing json objects with profiles
1156 mode - selected mode (normal, silent, vibrate)
1157 ts - timestamp when event occured
1158 locTs - true if timestamp is local, false otherwise
1159
1160 * **Example:**
1161 {{code language="json"}}{
1162 "ts": 1550047296392,
1163 "profileMode": {
1164 "profile": [
1165 {
1166 "ts": 1550047296375,
1167 "mode": "normal"
1168 }
1169 ]
1170 }
1171 }{{/code}}
1172
1173 == 3.24 ROAMING ==
1174
1175 * **Explanation:**
1176 Catch event roaming.
1177
1178 * **Required permissions:**
1179 Manifest.permission.ACCESS_NETWORK_STATE{{reference}}Normal permissions cover areas where your app needs to access data or resources outside the app's sandbox, but where there's very little risk to the user's privacy or the operation of other apps. The system doesn't prompt the user to grant normal permissions, and users cannot revoke these permissions.{{/reference}}
1180
1181 * **Optional permission**s:
1182 none
1183
1184 * **Variable description:**
1185 startRoaming - start roaming timestamp
1186 stopRoaming - stop roaming timestamp
1187
1188 * **Example:**
1189 {{code language="json"}}{
1190 "ts": 1566983257084,
1191 "roamingUse": {
1192 "startRoaming": 1566983257084,
1193 "stopRoaming": 1566983457084
1194 }
1195 }{{/code}}
1196
1197 == 3.25 SCREEN_ORIENTED ==
1198
1199 * **Explanation:**
1200 Collect data about device's orientation.
1201
1202 * **Required permissions:**
1203 none
1204
1205 * **Optional permissions**:
1206 none
1207
1208 * **Variable description:**
1209 oriented - screen rotation (portrait, landscape, reverse portrait, reverse landscape,"")
1210 timestamp - timestamp when event occured
1211
1212 * **Example:**
1213 {{code language="json"}}{
1214 "ts": 1548844277703,
1215 "screenOriented": {
1216 "oriented": "portrait",
1217 "timestamp": 1548844280936
1218 }
1219 }{{/code}}
1220
1221 == 3.26 SIGNAL_STRENGTH ==
1222
1223 * **Explanation:**
1224 Collect phone signal info.
1225
1226 * **Required permissions:**
1227 none
1228
1229 * **Optional permissions:**
1230 none
1231
1232 * **Variable description:**
1233 cdmaDbm - CDMA RSSI value in dBm
1234 cdmaEcio - CDMA Ec/Io value in dB*10
1235 gsmBitErrorRate - GSM bit error rate (0-7, 99) as defined in TS 27.007 8.5
1236 evdoDbm - EVDO RSSI value in dBm
1237 gsmSignalStrength - GSM Signal Strength, valid values are (0-31, 99) as defined in TS 27.007 8.5
1238 isGsm - true if this is for GSM
1239 evdoSnr - EVDO RSSI value in dBm
1240
1241 * **Example:**
1242 {{code language="json"}}{
1243 "ts": 1548844575858,
1244 "signalStrength": {
1245 "cdmaDbm": 0,
1246 "cdmaEcio": 0,
1247 "gsmBitErrorRate": -710850948,
1248 "evdoDbm": 32767,
1249 "gsmSignalStrength": 0,
1250 "isGsm": true,
1251 "evdoSnr": 32767
1252 }
1253 }{{/code}}
1254
1255 == 3.27 WIFI_DATA_CONNECTION ==
1256
1257 * **Explanation:**
1258 Gather list of visible WiFi networks, information of each wifi. To learn more about wifi network restrictions [[click here>>https://developer.android.com/guide/topics/connectivity/wifi-scan#wifi-scan-restrictions]].
1259
1260 * **Required permissions:**
1261 Manifest.permission.ACCESS_WIFI_STATE{{reference}}Normal permissions cover areas where your app needs to access data or resources outside the app's sandbox, but where there's very little risk to the user's privacy or the operation of other apps. The system doesn't prompt the user to grant normal permissions, and users cannot revoke these permissions.{{/reference}} - allow gather information about user connected wifi network
1262
1263 * **Optional permissions:**
1264 **Android <= 8.1 (sdk level <= 27)**
1265 - Manifest.permission.ACCESS_FINE_LOCATION{{reference}}Dangerous permissions cover areas where the app wants data or resources that involve the user's private information, or could potentially affect the user's stored data or the operation of other apps. To use a dangerous permission, your app must prompt the user to grant permission at runtime.{{/reference}} or Manifest.permission.ACCESS_COARSE_LOCATION{{reference}}Dangerous permissions cover areas where the app wants data or resources that involve the user's private information, or could potentially affect the user's stored data or the operation of other apps. To use a dangerous permission, your app must prompt the user to grant permission at runtime.{{/reference}} - to get nearby wifi networks
1266 - Manifest.permission.CHANGE_WIFI_STATE{{reference}}Normal permissions cover areas where your app needs to access data or resources outside the app's sandbox, but where there's very little risk to the user's privacy or the operation of other apps. The system doesn't prompt the user to grant normal permissions, and users cannot revoke these permissions.{{/reference}}, Manifest.permission.ACCESS_FINE_LOCATION{{reference}}Dangerous permissions cover areas where the app wants data or resources that involve the user's private information, or could potentially affect the user's stored data or the operation of other apps. To use a dangerous permission, your app must prompt the user to grant permission at runtime.{{/reference}} or Manifest.permission.ACCESS_COARSE_LOCATION{{reference}}Dangerous permissions cover areas where the app wants data or resources that involve the user's private information, or could potentially affect the user's stored data or the operation of other apps. To use a dangerous permission, your app must prompt the user to grant permission at runtime.{{/reference}} - to start wifi networks scan
1267 **Android 9.0, 10 (sdk level 28, 29)**
1268 - Manifest.permission.ACCESS_FINE_LOCATION{{reference}}Dangerous permissions cover areas where the app wants data or resources that involve the user's private information, or could potentially affect the user's stored data or the operation of other apps. To use a dangerous permission, your app must prompt the user to grant permission at runtime.{{/reference}} or Manifest.permission.ACCESS_COARSE_LOCATION{{reference}}Dangerous permissions cover areas where the app wants data or resources that involve the user's private information, or could potentially affect the user's stored data or the operation of other apps. To use a dangerous permission, your app must prompt the user to grant permission at runtime.{{/reference}}, enabled location services - to get nearby wifi networks
1269 -Manifest.permission.ACCESS_FINE_LOCATION{{reference}}Dangerous permissions cover areas where the app wants data or resources that involve the user's private information, or could potentially affect the user's stored data or the operation of other apps. To use a dangerous permission, your app must prompt the user to grant permission at runtime.{{/reference}} or Manifest.permission.ACCESS_COARSE_LOCATION{{reference}}Dangerous permissions cover areas where the app wants data or resources that involve the user's private information, or could potentially affect the user's stored data or the operation of other apps. To use a dangerous permission, your app must prompt the user to grant permission at runtime.{{/reference}}, enabled location services, Manifest.permission.CHANGE_WIFI_STATE{{reference}}Normal permissions cover areas where your app needs to access data or resources outside the app's sandbox, but where there's very little risk to the user's privacy or the operation of other apps. The system doesn't prompt the user to grant normal permissions, and users cannot revoke these permissions.{{/reference}} - to start wifi networks scan
1270
1271 **Applications targeting Android 10 (API level 29) SDK or higher, has the Manifest.permission.ACCESS_FINE_LOCATION{{reference}}Dangerous permissions cover areas where the app wants data or resources that involve the user's private information, or could potentially affect the user's stored data or the operation of other apps. To use a dangerous permission, your app must prompt the user to grant permission at runtime.{{/reference}}.**
1272
1273 * **Variable description**:
1274 BSSID - basic service set identifier (BSSID) of the current access point.
1275 SSID - service set identifier (SSID) of the current 802.11 network
1276 signal_strength - wifi signal strength
1277 status - 1 if connected, 0 otherwise
1278 connect_hourperiod - connected time in milliseconds
1279 location - json object containing location data
1280 coordinates - json array with latitude and longitude coordinates
1281 type - always as Point
1282
1283 * **Example:**
1284 {{code language="json"}}{
1285 "ts": 1548846466858,
1286 "wifiDataConnection": [
1287 {
1288 "BSSID": "3c:77:e6:55:fc:e8",
1289 "signal_strength": -65,
1290 "SSID": "HP-Print-E8-LaserJet M1217",
1291 "status": 0
1292 },
1293 {
1294 "BSSID": "7a:8a:20:21:c9:d0",
1295 "signal_strength": -49,
1296 "SSID": "Spicy Mobile",
1297 "status": 1,
1298 "connect_hourperiod": 1548846000082,
1299 "location": {
1300 "coordinates": [
1301 52.2318224,
1302 21.1063799
1303 ],
1304 "type": "Point"
1305 },
1306 },
1307 {
1308 "BSSID": "cc:2d:e0:95:72:03",
1309 "signal_strength": -76,
1310 "SSID": "secured",
1311 "status": 0
1312 }
1313 ]
1314 }{{/code}}
1315
1316 == 3.28 FACEBOOK_NETWORK_COLLECTOR ==
1317
1318 * **Explanation:**
1319 Collect user facebook account data.
1320
1321 * **Required permissions**:
1322 none
1323
1324 * **Optional permissions:**
1325 none
1326
1327 * **Variable description:**
1328 birthday - user day of birth
1329 hometown - user hometown
1330 name - user name
1331 location - user location
1332 id - user unique ID
1333 email - user email
1334
1335 * **Example:**
1336 {{code language="json"}}{
1337 "ts": 1548848391393,
1338 "facebookInfo": {
1339 "birthday": "01/01/1989",
1340 "hometown": "Warsaw, Poland",
1341 "name": "Jan Kowalski",
1342 "location": "Warsaw, Poland",
1343 "id": "1477748925836755",
1344 "email": "it@spicymobile.pl"
1345 }
1346 }{{/code}}
1347
1348 == 3.29 ROOT_COLLECTOR ==
1349
1350 * **Explanation:**
1351 Collects information if device is rooted.
1352
1353 * **Required permissions:**
1354 none
1355
1356 * **Optional permissions**:
1357 none
1358
1359 * **Variable description:**
1360 isRooted - true if rooted, false otherwise
1361
1362 * **Example:**
1363 {{code language="json"}}{
1364 "ts": 1549966944836,
1365 "rootEnabled": {
1366 "isRooted": false
1367 }
1368 }{{/code}}
1369
1370 == 3.30 MOVEMENT_COLLECTOR ==
1371
1372 * **Explanation:**
1373 Collects information about user activity transitions (e.g., WALKING).
1374
1375 * **Required permissions:**
1376 com.google.android.gms.permission.ACTIVITY_RECOGNITION{{reference}}Normal permissions cover areas where your app needs to access data or resources outside the app's sandbox, but where there's very little risk to the user's privacy or the operation of other apps. The system doesn't prompt the user to grant normal permissions, and users cannot revoke these permissions.{{/reference}}
1377
1378 * **Optional permissions:**
1379 none
1380
1381 * **Variable description:**
1382 eventName - occured event name (currently supported STILL, WALKING, ON_BICYCLE, ON_FOOT, IN_VEHICLE, RUNNING, UNKNOWN)
1383 \\possible events description:
1384 IN_VEHICLE: The device is in a vehicle, such as a car.
1385 ON_BICYCLE: The device is on a bicycle.
1386 ON_FOOT: The device is on a user who is walking or running.
1387 RUNNING: The device is on a user who is running. This is a sub-activity of ON_FOOT.
1388 STILL: The device is still (not moving).
1389 TILTING: The device angle relative to gravity changed significantly. This often occurs when a device is picked up from a desk or a user who is sitting stands up.
1390 UNKNOWN: Unable to detect the current activity.
1391 WALKING: The device is on a user who is walking. This is a sub-activity of ON_FOOT.
1392 \\type - detected event state (ENTER,EXIT,UNKNOWN)
1393 timestamp - timestamp when event occured
1394
1395 * **Example:**
1396 {{code language="json"}}{
1397 "ts": 1567595978339,
1398 "movement": {
1399 "transitions": [
1400 {
1401 "eventName": "RUNNING",
1402 "location": {
1403 "coordinates": [
1404 37.4219983,
1405 -122.084
1406 ]
1407 },
1408 "type": "ENTER",
1409 "timestamp": 1567595978368
1410 }
1411 ]
1412 }
1413 }{{/code}}
1414
1415 == 3.31 USB_COLLECTOR ==
1416
1417 * **Explanation:**
1418 USB data collector collects information about connected USB devices.
1419
1420 * **Required permissions:**
1421 none
1422
1423 * **Optional permissions**:
1424 none
1425
1426 * **Variable description:**
1427 status - attached or detached
1428 manufacturer - the manufacturer name of the device. Only available for android version >= Lollipop 21.
1429 productName - the product name of the device. Only available for android version >= Lollipop 21.
1430 serialNum - the serial number of the device. Only available for android version >= Lollipop 21.
1431 maxPower - the configuration's max power consumption, in milliamps. Only available for android version >= Lollipop 21.
1432 version - the version number of the device. Only available for android version >= Marshmallow 23.
1433 name - he name of the device. In the standard implementation, this is the path of the device file for the device in the usbfs file system.
1434 timestamp - event timestamp.
1435
1436 * **Example:**
1437 {{code language="json"}}{
1438 "ts": 1581501024406,
1439 "usbConnectedDevice": {
1440 "serialNum": "1226000000000D1F",
1441 "status": "attached",
1442 "productName": "STORE N GO",
1443 "version": "2.0",
1444 "name": "/dev/bus/usb/001/004",
1445 "timestamp": 1581501029080,
1446 "manufacturer": "Verbatim",
1447 "maxPower":100
1448 }
1449 }{{/code}}
1450
1451 == 3.32 STANDBY_BUCKET_COLLECTOR ==
1452
1453 * **Explanation:**
1454 Standby bucket data collector collector collects information about standby bucket the application using SDK is placed in. Android system selects the standby bucket based on how often the user interacts with the application. The amount of background jobs and alarms, that the application can run is the assigned based on the standby bucket the application is categorized into.
1455
1456 * **Required permissions:**
1457 none
1458
1459 * **Optional permissions**:
1460 none
1461
1462 * **Variable description:**
1463 standbyBucketValue - current value of standby bucket while the data collector runs
1464 \\possible values of standby bucket:
1465 Exempted: App is exempted from battery optimisation. There are no limits on the resources allocated for the app
1466 Active: App is currently being used or was very recently used.
1467 Working set: App is in regular use.
1468 Frequent: App is often used, but not every day.
1469 Rare: App is not frequently used.
1470 Restricted: App consumes a great deal of system resources, or may exhibit undesirable behavior
1471
1472 * process - process for which the datacollector is invoked. Main process of the app and Mobigate SDK process may be in different standby buckets.
1473 usageEvents - a list standby bucket changes since app was installed
1474 eventTs - timestamp of bucket change
1475 eventBucket - bucket that the app was categorized into at a given timestamp
1476 * **Example:**
1477 {{code language="json"}}{
1478 "ts": 1557825443149,
1479 "standbyBucket": {
1480 "standbyBucketValue": "STANDBY_BUCKET_ACTIVE",
1481 "process": "SDK",
1482 "usageEvents":[
1483 {
1484 "eventTs": 876876876876876,
1485 "eventBucket": "STANDBY_BUCKET_ACTIVE"
1486 },
1487 {
1488 "eventTs": 876876876876876,
1489 "eventBucket": "STANDBY_BUCKET_ACTIVE"
1490 },
1491 ]
1492 }
1493 }{{/code}}
1494
1495 = 4.0 Default Collection interval =
1496
1497 * **APPS_LIST** - 24h
1498 * **APPS_USAGE** - 24h
1499 * **BATTERY** - passive - level (every 1h), active - charge events broadcast
1500 * **BROWSER** - 24h
1501 * **CALENDAR_EVENTS** - 24h
1502 * **CPU_PROCESS** - 1h
1503 * **DICTIONARY** - 7d
1504 * **GEOLOCATION** - passive - 4h, active - interval 70s, accuracy 5
1505 * **HEADSET_PLUG** - active - broadcast
1506 * **MEDIA_FILES** - 24h
1507 * **MEMORY_USEAGE** - 2h
1508 * **NETWORK_CONNECTION** - active - broadcast
1509 * **NETWORK_USEAGE** - 1h
1510 * **PACKAGE_CHANGE** - active - broadcast
1511 * **PHONE_INFO** - 1h
1512 * **ROAMING** - active - broadcast
1513 * **SCREEN_ORIENTED** - 2h
1514 * **SIGNAL_STRENGTH** - active - broadcast
1515 * **PROFILE_MODE** - active - broadcast
1516 * **WIFI_DATA_CONNECTION** - active - broadcast
1517 * **PERMISSION_COLLECTOR** - 7d
1518 * **NFC_COLLECTOR** - 1h
1519 * **BLUETOOTH_COLLECTOR** - 1h
1520 * **BLUETOOTH_DEVICES_COLLECTOR** - broadcast (works while app is in background)
1521 * **MOVEMENT_COLLECTOR** - broadcast (works while app is in background)
1522 * **FACEBOOK_NETWORK_COLLECTOR** - 24h
1523 * **ROOT_COLLECTOR** - 1m
1524 * **USB_COLLECTOR** - broadcast (works while app is in background)
1525 * **STANDBY_BUCKET_COLLECTOR **- 24h
1526
1527 = 5. Collector json object names =
1528
1529 "appsList","appsUsage2","appsUsage","batteryInfo","bluetoothInfo","bluetoothLE","bluetoothConnectedDevice","browserHistory","browserBookmarks",
1530 "browserPhrases","calendarEvent","callLogData","cpuProcess","dictionary","geolocation","headsetPlug","mediaFiles","memoryUse","smsData","networkConnection",
1531 "networkUsage","nfcInfo","packageChanges","SDKAppPermissions","phoneInfo","profileMode","roamingUse","screenOriented","signalStrength","wifiDataConnection",
1532 "facebookInfo","rootEnabled","movement","usbConnectedDevice", "standbyBucket"
1533
1534 = 6. Description of permissions =
1535
1536 A full description of all permits on the android system can be found [[here>>https://developer.android.com/reference/android/Manifest.permission#constants_1]]
1537
1538 ----
1539
1540 {{references/}}
Spicy Mobile
spicymobile.pl