DVR Time Traveler
Enterprise MDM Deployment Guide
Complete reference for deploying DVR Time Traveler at scale with Mobile Device Management (MDM) platforms
Jump to Section
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)
{
"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
disable_notes_feature: true if organization policy prohibits storing sensitive information on mobile devices
disable_patterns_feature: true if security policy prohibits password storage
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
{
"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
Prepare Logo
PNG or JPEG, recommended size: 200x200 to 400x400 pixels
Configure in MDM
Add logo JSON to mdm_logos array in your MDM console
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
{
"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 |
{
"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 |
🔒 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
- Log in to Google Admin Console
- Go to Devices → Mobile & endpoints → Apps → Managed Google Play apps
- Select DVR Time Traveler
- Click Managed configurations
- Paste your JSON configuration
- Assign to user/device groups
Microsoft Intune
- Open Microsoft Endpoint Manager
- Go to Apps → App configuration policies → Add
- Platform: Android Enterprise
- Select DVR Time Traveler
- Configuration format: Use configuration designer
- Add configuration keys manually or paste JSON
- Assign to groups
VMware Workspace ONE
- Navigate to Apps & Books → Applications → Native
- Select DVR Time Traveler
- Go to App Configuration tab
- Paste JSON configuration
- Save and push to devices
Test DPC (Testing)
- Install Test DPC from Play Store
- Set up managed work profile
- Install DVR Time Traveler in work profile
- Go to Policy Management → App Restrictions
- Select DVR Time Traveler
- Add configuration JSON
- Test settings in app
🔧 Troubleshooting
❓ Settings Not Applying
- App installed from Managed Play Store (not regular Play Store)
- Device properly enrolled in MDM
- Configuration pushed to device
- App restarted after config change
adb shell dumpsys restrictions
❓ License Key Not Recognized
- 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
- Base64 string is complete (starts with
iVBORw0for 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
- 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 |