# Device Fingerprints [Features](Features.md) / Device Fingerprints The Device Fingerprints subsystem provides hardware telemetry virtualization for Antigravity accounts. By assigning distinct, persistent device identities to each registered account, it prevents telemetry collision and cross-account device linkage in upstream analytics. --- ## 1. Virtualized Telemetry Identifiers Antigravity and its underlying VS Code architecture collect multiple device telemetry signatures to identify the client workstation. The Device Fingerprints module virtualizes four distinct parameters per account: | Parameter Key | Format / Encoding | Telemetry Role | | :--- | :--- | :--- | | `machine_id` | 64-character hexadecimal SHA-256 string | Primary machine hash reported in telemetry payloads | | `updater_id` | 36-character canonical UUIDv4 string | Client identifier used by internal update check routines | | `installation_id` | 36-character canonical UUIDv4 string | Unique installation ID stored in `storage.json` | | `installation_uuid` | 36-character canonical UUIDv4 string | Telemetry session instance UUID stored in protobuf state | --- ## 2. Target File Locations & Injection Hooks When an account switch occurs, the daemon updates these virtual identities atomically across four host filesystem locations before launching or reconnecting to Antigravity: 1. **Protobuf State File**: `~/.config/Antigravity/antigravity_state.pbtxt` (or `%APPDATA%\Antigravity\antigravity_state.pbtxt` on Windows). The daemon updates the serialized `installation_uuid` text field. 2. **VS Code Host Storage**: `~/.config/Antigravity/User/globalStorage/storage.json`. The daemon updates `telemetry.machineId`, `telemetry.macMachineId`, and `telemetry.sqmId`. 3. **Machine ID Cache**: `~/.config/Antigravity/machineid`. Direct hex string replacement. 4. **Platform-Specific Registry / DBus**: Under Linux, matches `dbus` machine-id semantics; under Windows, virtualizes `Cryptography\MachineGuid`. --- ## 3. Profile Generation & Inspection Interface The Device Fingerprints management screen (accessible via the Account Switcher top ribbon) lists all configured accounts alongside their bound hardware profiles: - **Random Profile Generator**: Generates cryptographically secure, random 64-character hex strings and UUIDv4 pairs conforming to telemetry specifications. - **Manual Identifier Overrides**: Allows developers to inspect, export, or manually input specific device identifiers for deterministic multi-workstation testing. - **Synchronous Profile Swapping**: During automated or manual account rotation, fingerprint injection executes synchronously with keyring credential rotation. This prevents the host application from launching with mismatched credentials and telemetry signatures. --- ## 4. Hardware Isolation Guarantees The virtualization engine strictly enforces the following guarantees: - **Zero Cross-Account Bleed**: Switching accounts completely overwrites previous telemetry tokens in host configuration files. - **Persistent Profile Affinity**: Once generated or assigned, an account retains its unique hardware profile indefinitely across reboots, unless manually regenerated by the user. - **Pre-Flight Snapshotting**: All modified configuration files are backed up with a `.swiss.bak` extension before writing virtual profiles, allowing safe recovery if the host application crashes during a write.