# xheghun/devicetrust architecture

> Architecture diagram of the GitHub repository xheghun/devicetrust, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-11-12). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/xheghun/devicetrust
- Repository: https://github.com/xheghun/devicetrust

## Overview

DeviceTrust is an Android library that gathers local integrity evidence and turns it into an advisory risk assessment. The principal flow is an application creating a client, requesting an assessment, and applying the returned risk level; applications can instead collect raw evidence or observe session updates through a monitor. The graph includes documented monitoring and native-check capabilities. The sampled sources show the collection, JNI, scoring, and monitoring calls; broader individual checks are documented in the README, not independently inspected here.

Main entry points: [`device-trust/src/main/kotlin/com/xheghun/devicetrust/DefaultDeviceTrustClient.kt`](https://github.com/xheghun/devicetrust/blob/main/device-trust/src/main/kotlin/com/xheghun/devicetrust/DefaultDeviceTrustClient.kt) (Device trust client), [`device-trust/src/main/kotlin/com/xheghun/devicetrust/Monitoring.kt`](https://github.com/xheghun/devicetrust/blob/main/device-trust/src/main/kotlin/com/xheghun/devicetrust/Monitoring.kt) (Session monitor), [`device-trust/src/main/kotlin/com/xheghun/devicetrust/DeviceTrust.kt`](https://github.com/xheghun/devicetrust/blob/main/device-trust/src/main/kotlin/com/xheghun/devicetrust/DeviceTrust.kt) (Client factory), [`device-trust/src/main/kotlin/com/xheghun/devicetrust/internal/NativeSignalSource.kt`](https://github.com/xheghun/devicetrust/blob/main/device-trust/src/main/kotlin/com/xheghun/devicetrust/internal/NativeSignalSource.kt) (Native signal adapter)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_api["Public API"]
  node_entry["Client factory<br/>[DeviceTrust.kt]"]
  node_client["Device trust client"]
  node_models["Evidence and results<br/>[Models.kt]"]
end

subgraph group_collection["Evidence Collection"]
  node_native["Native signal adapter"]
  node_checks["Native integrity checks<br/>[device_trust.cpp]"]
  node_build["Build signal checks"]
end

subgraph group_assessment["Assessment and Monitoring"]
  node_policy["Risk policy<br/>[TrustPolicy.kt]"]
  node_monitor["Session monitor<br/>[Monitoring.kt]"]
  node_updates["Monitoring updates<br/>[Monitoring.kt]"]
end

node_app(("Android app"))

node_app -->|"creates client"| node_entry
node_entry -->|"constructs"| node_client
node_app -->|"requests assessment"| node_client
node_client -->|"collects native signals"| node_native
node_client -->|"collects build signals"| node_build
node_native -->|"calls JNI checks"| node_checks
node_client -->|"assembles evidence"| node_models
node_client -->|"evaluates evidence"| node_policy
node_policy -->|"returns assessment"| node_models
node_app -->|"starts session"| node_monitor
node_monitor -->|"requests scans"| node_client
node_monitor -->|"publishes events"| node_updates
node_app -->|"observes updates"| node_updates

click node_entry "https://github.com/xheghun/devicetrust/blob/main/device-trust/src/main/kotlin/com/xheghun/devicetrust/DeviceTrust.kt"
click node_client "https://github.com/xheghun/devicetrust/blob/main/device-trust/src/main/kotlin/com/xheghun/devicetrust/DefaultDeviceTrustClient.kt"
click node_models "https://github.com/xheghun/devicetrust/blob/main/device-trust/src/main/kotlin/com/xheghun/devicetrust/Models.kt"
click node_native "https://github.com/xheghun/devicetrust/blob/main/device-trust/src/main/kotlin/com/xheghun/devicetrust/internal/NativeSignalSource.kt"
click node_checks "https://github.com/xheghun/devicetrust/blob/main/device-trust/src/main/cpp/device_trust.cpp"
click node_build "https://github.com/xheghun/devicetrust/blob/main/device-trust/src/main/kotlin/com/xheghun/devicetrust/internal/BuildSignalSource.kt"
click node_policy "https://github.com/xheghun/devicetrust/blob/main/device-trust/src/main/kotlin/com/xheghun/devicetrust/TrustPolicy.kt"
click node_monitor "https://github.com/xheghun/devicetrust/blob/main/device-trust/src/main/kotlin/com/xheghun/devicetrust/Monitoring.kt"
click node_updates "https://github.com/xheghun/devicetrust/blob/main/device-trust/src/main/kotlin/com/xheghun/devicetrust/Monitoring.kt"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_entry,node_client,node_models toneBlue
class node_native,node_checks,node_build toneAmber
class node_policy,node_monitor,node_updates toneMint
class node_app toneIndigo
```

## Components

### Public API

- [Client factory](https://github.com/xheghun/devicetrust/blob/main/device-trust/src/main/kotlin/com/xheghun/devicetrust/DeviceTrust.kt): `device-trust/src/main/kotlin/com/xheghun/devicetrust/DeviceTrust.kt`
- [Device trust client](https://github.com/xheghun/devicetrust/blob/main/device-trust/src/main/kotlin/com/xheghun/devicetrust/DefaultDeviceTrustClient.kt): `device-trust/src/main/kotlin/com/xheghun/devicetrust/DefaultDeviceTrustClient.kt`
- [Evidence and results](https://github.com/xheghun/devicetrust/blob/main/device-trust/src/main/kotlin/com/xheghun/devicetrust/Models.kt): `device-trust/src/main/kotlin/com/xheghun/devicetrust/Models.kt`

### Evidence Collection

- [Native signal adapter](https://github.com/xheghun/devicetrust/blob/main/device-trust/src/main/kotlin/com/xheghun/devicetrust/internal/NativeSignalSource.kt): `device-trust/src/main/kotlin/com/xheghun/devicetrust/internal/NativeSignalSource.kt`
- [Native integrity checks](https://github.com/xheghun/devicetrust/blob/main/device-trust/src/main/cpp/device_trust.cpp): `device-trust/src/main/cpp/device_trust.cpp`
- [Build signal checks](https://github.com/xheghun/devicetrust/blob/main/device-trust/src/main/kotlin/com/xheghun/devicetrust/internal/BuildSignalSource.kt): `device-trust/src/main/kotlin/com/xheghun/devicetrust/internal/BuildSignalSource.kt`

### Assessment and Monitoring

- [Risk policy](https://github.com/xheghun/devicetrust/blob/main/device-trust/src/main/kotlin/com/xheghun/devicetrust/TrustPolicy.kt): `device-trust/src/main/kotlin/com/xheghun/devicetrust/TrustPolicy.kt`
- [Session monitor](https://github.com/xheghun/devicetrust/blob/main/device-trust/src/main/kotlin/com/xheghun/devicetrust/Monitoring.kt): `device-trust/src/main/kotlin/com/xheghun/devicetrust/Monitoring.kt`
- [Monitoring updates](https://github.com/xheghun/devicetrust/blob/main/device-trust/src/main/kotlin/com/xheghun/devicetrust/Monitoring.kt): `device-trust/src/main/kotlin/com/xheghun/devicetrust/Monitoring.kt`

### Other components

- **Android app**

## Connections

- Android app → Client factory: creates client (evidence: `README.md`)
- Client factory → Device trust client: constructs (evidence: `device-trust/src/main/kotlin/com/xheghun/devicetrust/DeviceTrust.kt`)
- Android app → Device trust client: requests assessment (evidence: `README.md`)
- Device trust client → Native signal adapter: collects native signals (evidence: `device-trust/src/main/kotlin/com/xheghun/devicetrust/DefaultDeviceTrustClient.kt`)
- Device trust client → Build signal checks: collects build signals (evidence: `device-trust/src/main/kotlin/com/xheghun/devicetrust/DefaultDeviceTrustClient.kt`)
- Native signal adapter → Native integrity checks: calls JNI checks (evidence: `device-trust/src/main/kotlin/com/xheghun/devicetrust/internal/NativeSignalSource.kt`)
- Device trust client → Evidence and results: assembles evidence (evidence: `device-trust/src/main/kotlin/com/xheghun/devicetrust/DefaultDeviceTrustClient.kt`)
- Device trust client → Risk policy: evaluates evidence (evidence: `device-trust/src/main/kotlin/com/xheghun/devicetrust/DefaultDeviceTrustClient.kt`)
- Risk policy → Evidence and results: returns assessment (evidence: `device-trust/src/main/kotlin/com/xheghun/devicetrust/TrustPolicy.kt`)
- Android app → Session monitor: starts session (evidence: `README.md`)
- Session monitor → Device trust client: requests scans (evidence: `device-trust/src/main/kotlin/com/xheghun/devicetrust/Monitoring.kt`)
- Session monitor → Monitoring updates: publishes events (evidence: `device-trust/src/main/kotlin/com/xheghun/devicetrust/Monitoring.kt`)
- Android app → Monitoring updates: observes updates (evidence: `README.md`)
