DVR Time Traveler

Enterprise MDM Deployment Guide

Complete reference for deploying DVR Time Traveler at scale with Mobile Device Management (MDM) platforms

✅ Google Workspace ✅ Microsoft Intune ✅ VMware Workspace ONE ✅ MobileIron

Overview

📱

Managed Configuration Support

DVR Time Traveler supports 19 configuration settings that IT administrators can deploy remotely through their MDM console. All settings update in real-time without requiring app restarts.

What MDM Can Control

  • Feature enable/disable
  • License key deployment
  • App behavior defaults
  • Security restrictions
  • Organization branding

What MDM Cannot Access

  • User data (notes, patterns, reports)
  • Device ID (app-generated)
  • Subscription time remaining
  • Usage statistics
  • Investigation details

🔑 Enterprise Licensing

Setting Type Description
enterprise_license_key String Your organization's license key (Format: DVRTT-XXXX-XXXX-XXXX)
organization_name String Organization name displayed in Admin Settings

License Types

Trial

30 days, 10 devices

Annual

365 days per license

Perpetual

Never expires (government)

Example Configuration
{
  "enterprise_license_key": "DVRTT-1234-5678-90AB",
  "organization_name": "Acme Police Department"
}

🎛️ Feature Control

Setting Type Default Description
disable_notes_feature Boolean false Completely hides the Notes feature
disable_patterns_feature Boolean false Completely hides DVR Pattern storage
disable_in_app_purchases Boolean false Prevents all IAP (required with enterprise licenses)

💡 Best Practices

Data Security: Set disable_notes_feature: true if organization policy prohibits storing sensitive information on mobile devices
Password Compliance: Set disable_patterns_feature: true if security policy prohibits password storage
Cost Control: Set disable_in_app_purchases: true when using enterprise licenses

🖼️ Logo Management

Push organization logos directly to all devices using MDM configuration

Setting Type Description
mdm_logos JSON Array List of logos to push to devices (max 10)
default_logo_id String Auto-select a specific logo on first launch
logo_position_locked Boolean Prevent users from changing logo position
logo_position_value String Enforce position: 'left' or 'right'

Logo JSON Schema

mdm_logos Array Structure
{
  "id": "dept_badge_1",           // Unique identifier
  "name": "Department Badge",     // Display name in app
  "base64": "iVBORw0KGgo...",     // Base64-encoded PNG/JPEG
  "auto_adjust": true             // Auto-resize (recommended)
}

📋 Logo Deployment Process

1
Prepare Logo

PNG or JPEG, recommended size: 200x200 to 400x400 pixels

2
Convert to Base64

Use online tool: base64-image.de

Or command line: base64 -i logo.png

3
Configure in MDM

Add logo JSON to mdm_logos array in your MDM console

4
Automatic Sync

App syncs logos in real-time when config is pushed

🎨 Auto-Adjust Feature

auto_adjust: true (Recommended)
  • App automatically resizes logo for PDF rendering
  • Maintains aspect ratio
  • Optimized for 1.8" x 2.2" PDF output
  • Compresses to PNG format
auto_adjust: false
  • Renders logo exactly as-is
  • No resizing or optimization
  • Use only if logo is pre-sized perfectly
Complete Logo Configuration Example
{
  "mdm_logos": [
    {
      "id": "dept_badge_1",
      "name": "Department Badge",
      "base64": "iVBORw0KGgoAAAANSUhEUgAA...FULL_BASE64_HERE...CYII=",
      "auto_adjust": true
    },
    {
      "id": "traffic_unit",
      "name": "Traffic Unit Logo",
      "base64": "iVBORw0KGgoAAAANSUhEUgAA...ANOTHER_BASE64...CYII=",
      "auto_adjust": true
    }
  ],
  "default_logo_id": "dept_badge_1",
  "logo_position_locked": true,
  "logo_position_value": "left"
}

⚙️ App Behavior Settings

Setting Type Options Default
force_24_hour_time Boolean true / false false
default_language String 'en', 'fr' 'en'
lock_language_selection Boolean true / false false
Language Lock Example (Quebec Agencies)
{
  "default_language": "fr",
  "lock_language_selection": true
}

Forces French language and prevents users from changing it

📊 Data & Privacy

Setting Type Default Range Description
disable_crash_reporting Boolean false Disables Sentry crash telemetry
max_report_history_days Integer 90 7-365 Auto-delete reports older than X days
🔒 Privacy Guarantee: The app never sends user data (notes, patterns, reports) to external servers. All data stays on-device with AES-256 encryption.

🔒 Security Settings

Setting Type Default Description
require_admin_password Boolean false Forces users to set admin password before accessing feature controls
disable_backup_export Boolean false Prevents users from exporting data

📞 Support & Customization

Setting Type Description
custom_support_email String Override support email with your IT help desk
custom_support_url String Custom help desk URL or internal wiki
deployment_notes String Internal notes for IT reference (not visible to users)

📝 Real-World Configuration Examples

Police Department (Full Lock-Down)

{
  "enterprise_license_key": "DVRTT-1234-5678-90AB",
  "organization_name": "Acme Police Department",
  "disable_in_app_purchases": true,
  "disable_patterns_feature": true,
  "mdm_logos": [{
    "id": "dept_patch",
    "name": "Department Patch",
    "base64": "iVBORw0KGgo...",
    "auto_adjust": true
  }],
  "default_logo_id": "dept_patch",
  "logo_position_locked": true,
  "logo_position_value": "left",
  "max_report_history_days": 30,
  "custom_support_email": "[email protected]"
}

Multi-Division Agency

{
  "enterprise_license_key": "DVRTT-XXXX-XXXX-XXXX",
  "organization_name": "Metro Police",
  "mdm_logos": [
    {
      "id": "traffic",
      "name": "Traffic Division",
      "base64": "iVBORw0...",
      "auto_adjust": true
    },
    {
      "id": "patrol",
      "name": "Patrol Division",
      "base64": "iVBORw0...",
      "auto_adjust": true
    },
    {
      "id": "k9",
      "name": "K9 Unit",
      "base64": "iVBORw0...",
      "auto_adjust": true
    }
  ],
  "logo_position_locked": false,
  "custom_support_email": "[email protected]"
}

Officers can choose their division logo. Logo position can be adjusted by user.

Quebec Agency (French-Only)

{
  "enterprise_license_key": "DVRTT-XXXX-XXXX-XXXX",
  "organization_name": "Service de Police",
  "default_language": "fr",
  "lock_language_selection": true,
  "force_24_hour_time": true,
  "disable_in_app_purchases": true,
  "custom_support_email": "[email protected]"
}

Minimal Configuration

{
  "enterprise_license_key": "DVRTT-1234-5678-90AB",
  "disable_in_app_purchases": true
}

Simplest deployment: Just license key and disable IAP.

🛠️ Platform-Specific Configuration

Google Workspace

  1. Log in to Google Admin Console
  2. Go to Devices → Mobile & endpoints → Apps → Managed Google Play apps
  3. Select DVR Time Traveler
  4. Click Managed configurations
  5. Paste your JSON configuration
  6. Assign to user/device groups

Microsoft Intune

  1. Open Microsoft Endpoint Manager
  2. Go to Apps → App configuration policies → Add
  3. Platform: Android Enterprise
  4. Select DVR Time Traveler
  5. Configuration format: Use configuration designer
  6. Add configuration keys manually or paste JSON
  7. Assign to groups

VMware Workspace ONE

  1. Navigate to Apps & Books → Applications → Native
  2. Select DVR Time Traveler
  3. Go to App Configuration tab
  4. Paste JSON configuration
  5. Save and push to devices

Test DPC (Testing)

  1. Install Test DPC from Play Store
  2. Set up managed work profile
  3. Install DVR Time Traveler in work profile
  4. Go to Policy Management → App Restrictions
  5. Select DVR Time Traveler
  6. Add configuration JSON
  7. Test settings in app
Download Test DPC

🔧 Troubleshooting

❓ Settings Not Applying

Check:
  • App installed from Managed Play Store (not regular Play Store)
  • Device properly enrolled in MDM
  • Configuration pushed to device
  • App restarted after config change
Verify via ADB: adb shell dumpsys restrictions

❓ License Key Not Recognized

Verify:
  • Key format: DVRTT-XXXX-XXXX-XXXX (19 characters with dashes)
  • Key is active (not expired)
  • App package ID matches license
  • No typos in key

❓ Logos Not Appearing

Verify:
  • Base64 string is complete (starts with iVBORw0 for PNG)
  • JSON syntax is valid (use JSONLint)
  • Logo ID is unique
  • Maximum 10 MDM logos
  • Check app logs for sync errors

❓ Real-Time Updates Not Working

Solution:
  • Most settings update instantly
  • Some MDM platforms have propagation delay (5-15 minutes)
  • Try restarting app if config doesn't sync
  • Verify device has network connection

📊 Configuration Summary

Category Settings Count Real-Time Updates
Enterprise Licensing 2 ✅ Yes
Feature Control 3 ✅ Yes
Logo Management 4 ✅ Yes
App Behavior 3 ✅ Yes
Data & Privacy 2 ✅ Yes
Security 2 ✅ Yes
Support 3 ✅ Yes
Total 19 settings All live

💬 Enterprise Support

📧

Email Support

[email protected]

📞

Phone

+1-514-716-4443

🌐

Website

sdtech.app

💼

Sales Inquiries

[email protected]