@@ -45,7 +45,53 @@ This document describes the data models,classes for handling events, and specifi
45
45
46
46
## 2 High Level Class Diagram
47
47
48
- ****
48
+ ``` mermaid
49
+ classDiagram
50
+ class AndroidDeviceLocation {
51
+ +Double latitude
52
+ +Double longitude
53
+ }
54
+
55
+ class AndroidAppState {
56
+ +String activityClassName
57
+ +AndroidDeviceLocation location
58
+ +String sdkVersion
59
+ +Double batteryLevel
60
+ +Long batteryState
61
+ +Long batteryHealth
62
+ +Long plugState
63
+ +List~String~ networkAddresses
64
+ }
65
+
66
+ class AndroidDeviceProperties {
67
+ +String appName
68
+ +String appVersion
69
+ +String sdkVersion
70
+ +String mobileCarrierName
71
+ +String mobileIsoCountryCode
72
+ +String deviceManufacturer
73
+ +String deviceModel
74
+ +String deviceSystemVersion
75
+ +String androidId
76
+ +String buildTags
77
+ +List~String~ evidenceFilesPresent
78
+ +List~String~ evidencePackagesPresent
79
+ +List~String~ evidenceProperties
80
+ +List~String~ evidenceDirectoriesWritable
81
+ }
82
+
83
+ class MobileEvent {
84
+ +Long time
85
+ +String userId
86
+ +String installationId
87
+ +AndroidDeviceProperties androidDeviceProperties
88
+ +AndroidAppState androidAppState
89
+ }
90
+
91
+ AndroidDeviceLocation ..> AndroidAppState
92
+ AndroidAppState ..> MobileEvent
93
+ AndroidDeviceProperties ..> MobileEvent
94
+ ```
49
95
50
96
## 3 Data Models
51
97
@@ -55,17 +101,25 @@ The data models used in this SDK are auto-generated from 'yaml' files. T
55
101
56
102
The AndroidDeviceLocation consist of the following information:
57
103
58
- - ** time** : {type: integer, required: false}
59
- - It indicates the time at which the location data was collected.
60
104
- ** latitude** : {type: number, required: false}
61
105
- Which indicates the latitude of the collected location.
62
106
- ** longitude** : {type: number, required: false}
63
107
- Which indicates the longitude of the collected location.
64
- - ** accuracy** : {type: number, required: false}
65
- - Indicates the accuracy of the collected latitude and longitude.
66
108
67
109
Class diagram of AndroidDeviceLocation
68
- ** ![ {"theme":"neutral","source":"classDiagram\n\nclass AndroidDeviceLocation{\n +Long time\n +Double latitude\n +Double longitude\n +Double accuracy\n\n +withTime(time)\n +withLatitude(latitude)\n +withLongitude(longitude)\n +withAccuracy(accuracy)\n +toString() string\n +hashCode() int\n +equals() boolean\n}"}] ( /images/android-device-location.png " mermaid-graph ") **
110
+ ``` mermaid
111
+ classDiagram
112
+ class AndroidDeviceLocation{
113
+ +Double latitude
114
+ +Double longitude
115
+
116
+ +withLatitude(latitude)
117
+ +withLongitude(longitude)
118
+ +toString() string
119
+ +hashCode() int
120
+ +equals() boolean
121
+ }
122
+ ```
69
123
70
124
### 3.2 AndroidAppState
71
125
@@ -146,19 +200,45 @@ The AndroidDeviceProperties collects the following information:
146
200
- ** evidence\_ directories\_ writable** : {type: array, items: {type: string}, required: false}
147
201
- It may contain a list of path to common system directories which have write permissions that indicate rooted devices.
148
202
- If it is an empty list then the device is not a rooted device.
149
- - ** build\_ brand** : {type: string, required: false}
150
- - The build brand indicates the consumer-visible brand with which the product/hardware will be associated, if any.
151
- - ** build\_ device** : {type: string, required: false}
152
- - The build device indicates the name of the industrial design.
153
- - ** build\_ fingerprint** : {type: string, required: false}
154
- - The build fingerprint indicated a string that uniquely identifies this build.
155
- - ** build\_ hardware** : {type: string, required: false}
156
- - The build hardware indicates the name of the hardware (from the kernel command line or /proc).
157
- - ** build\_ product** : {type: string, required: false}
158
- - The build product indicates the name of the overall product.
159
203
160
204
Class diagram of AndroidDeviceProperties
161
- ****
205
+ ``` mermaid
206
+ classDiagram
207
+ class AndroidDeviceProperties {
208
+ +String appName
209
+ +String appVersion
210
+ +String sdkVersion
211
+ +String mobileCarrierName
212
+ +String mobileIsoCountryCode
213
+ +String deviceManufacturer
214
+ +String deviceModel
215
+ +String deviceSystemVersion
216
+ +String androidId
217
+ +String buildTags
218
+ +List~String~ evidenceFilesPresent
219
+ +List~String~ evidencePackagesPresent
220
+ +List~String~ evidenceProperties
221
+ +List~String~ evidenceDirectoriesWritable
222
+
223
+ +withAppName(appName)
224
+ +withAppVersion(appVersion)
225
+ +withSdkVersion(sdkVersion)
226
+ +withMobileCarrierName(mobileCarrierName)
227
+ +withMobileIsoCountryCode(mobileIsoCountryCode)
228
+ +withDeviceManufacturer(deviceManufacturer)
229
+ +withDeviceModel(deviceModel)
230
+ +withDeviceSystemVersion(deviceSystemVersion)
231
+ +withAndroidId(androidId)
232
+ +withBuildTags(buildTags)
233
+ +withEvidenceFilesPresent(evidenceFilesPresent)
234
+ +withEvidencePackagesPresent(evidencePackagesPresent)
235
+ +withEvidenceProperties(evidenceProperties)
236
+ +withEvidenceDirectoriesWritable(evidenceDirectoriesWritable)
237
+ +toString() string
238
+ +hashCode() int
239
+ +equals() boolean
240
+ }
241
+ ```
162
242
163
243
164
244
###
@@ -445,11 +525,6 @@ It provides only one instance method:
445
525
- Other build and device informations are collected from android.os.Build provider:
446
526
- The device manufacturer detail is collected from _ Build.MANUFACTURER_ which provides the manufacturer of the product/hardware.
447
527
- The device model from _ Build.MODEL_ which provides the end-user-visible name for the end product.
448
- - The build brand from _ Build.BRAND_ which provide the consumer-visible brand with which the product/hardware will be associated
449
- - The build device from _ Build.DEVICE_ which provides the name of the industrial design.
450
- - The build fingerprint from _ Build.FINGERPRINT_ which provides a string that uniquely identifies this build. Do not attempt to parse this value.
451
- - The build hardware from _ Build.HARDWARE_ which provides the name of the hardware (from the kernel command line or /proc).
452
- - The build product from _ Build.PRODUCT_ which provides the name of the overall product.
453
528
- The build tag from _ Build.TAGS_ which provides comma-separated tags describing the build, like " ; unsigned,debug" ; .
454
529
- It will check and collect evidence from the device which indicates whether the device is rooted with the following different approaches:
455
530
- existingRootFiles()
0 commit comments