DVR Time Traveler
Agency & 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 15 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
- Activation code deployment
- App behavior defaults
- Security restrictions
- Organization logo
What MDM Cannot Access
- User data (notes, patterns, reports)
- Device ID (app-generated)
- Subscription time remaining
- Usage statistics
- Investigation details
🔑 Agency Licensing
| Setting | Type | Description |
|---|---|---|
enterprise_license_key |
String | Your organization's activation code (Format: DVRTT-XXXX-XXXX-XXXX) |
organization_name |
String | Organization name displayed in Admin Settings |
License Type
Agency License
Annual subscription — duration determined at purchase. Contact us for pricing and renewal terms.
{
"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 | true | Prevents all IAP (required with agency activation codes) |
💡 Best Practices
disable_notes_feature: true if the agency restricts the "Notes" feature
disable_patterns_feature: true if the agency restricts the "PW/Patterns" feature
false only if your agency uses individual store purchases.
🏢 Agency Mode
Control app terminology and features to match your organization type — law enforcement or investigation
| Setting | Type | Default | Description |
|---|---|---|---|
agency_mode |
String | law_enforcement | App persona. Controls terminology, PDF report headers, and multi-agent slot availability. Values: law_enforcement | investigation |
💡 How Agency Mode Works
{
"enterprise_license_key": "DVRTT-XXXX-XXXX-XXXX",
"organization_name": "Acme Investigations Inc.",
"agency_mode": "investigation",
"disable_in_app_purchases": true,
"custom_support_email": "[email protected]"
}
🖼️ 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 (max 512×512 px)
}
📋 Logo Deployment Process
Prepare Logo
PNG or JPEG, max 512×512 pixels recommended
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
{
"mdm_logos": [
{
"id": "dept_badge_1",
"name": "Department Badge",
"base64": "iVBORw0KGgoAAAANSUhEUgAA...FULL_BASE64_HERE...CYII="
},
{
"id": "traffic_unit",
"name": "Traffic Unit Logo",
"base64": "iVBORw0KGgoAAAANSUhEUgAA...ANOTHER_BASE64...CYII="
}
],
"default_logo_id": "dept_badge_1",
"logo_position_locked": true,
"logo_position_value": "left"
}
⚙️ Report Language Settings
| Setting | Type | Options | Default |
|---|---|---|---|
report_language_locked |
Boolean | true / false | false |
report_language_value |
String | 'en', 'fr', 'es', 'ar', 'de', 'it' | — (follow app) |
{
"report_language_locked": true,
"report_language_value": "fr"
}
Forces French for PDF report generation. Officers can still change the app interface language.
📞 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..."
}],
"default_logo_id": "dept_patch",
"logo_position_locked": true,
"logo_position_value": "left",
"custom_support_email": "[email protected]"
}
Multi-Division Agency
{
"enterprise_license_key": "DVRTT-XXXX-XXXX-XXXX",
"organization_name": "Metro Police",
"disable_in_app_purchases": true,
"mdm_logos": [
{
"id": "traffic",
"name": "Traffic Division",
"base64": "iVBORw0..."
},
{
"id": "patrol",
"name": "Patrol Division",
"base64": "iVBORw0..."
},
{
"id": "k9",
"name": "K9 Unit",
"base64": "iVBORw0..."
}
],
"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 PDF Reports)
{
"enterprise_license_key": "DVRTT-XXXX-XXXX-XXXX",
"organization_name": "Service de Police",
"report_language_locked": true,
"report_language_value": "fr",
"disable_in_app_purchases": true,
"custom_support_email": "[email protected]"
}
Enforces French for all PDF reports. Officers may still change the app interface language themselves.
Complete Configuration (All 15 Settings)
{
"enterprise_license_key": "DVRTT-XXXX-XXXX-XXXX",
"organization_name": "Acme Police Department",
"disable_notes_feature": true,
"disable_patterns_feature": true,
"disable_in_app_purchases": true,
"report_language_locked": true,
"report_language_value": "fr",
"mdm_logos": [
{
"id": "dept_badge",
"name": "Department Badge",
"base64": "iVBORw0KGgo...BASE64..."
}
],
"default_logo_id": "dept_badge",
"logo_position_locked": true,
"logo_position_value": "left",
"custom_support_email": "[email protected]",
"custom_support_url": "https://help.acmepd.gov",
"agency_mode": "law_enforcement",
"deployment_notes": "Deployed 2026-01 – IT ticket #5234 – Approved by Cpt. Smith"
}
All 15 available settings shown. mdm_logos counts as one array setting and can hold up to 10 logos.
🛠️ Platform-Specific Configuration
📥 Download Configuration Schemas
Import the official managed configuration schema into your MDM console to get field descriptions, validation, and auto-complete when configuring DVR Time Traveler.
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
🔄 Replacing a Device (Freeing a Slot)
How agency slots work
Your agency license includes a fixed number of device slots (seats). Each MDM-enrolled device that activates the app consumes one slot. When every slot is in use, a new device will report “License has reached maximum device limit” until a slot is freed.
Self-service: "Release This Device"
MDM-managed devices now have a “Release This Device” button in the app's subscription screen. When an officer is handing back or replacing a phone, they (or you) can tap it to free its seat instantly — no email to SDTech required. The freed seat is immediately available for the replacement device you enroll in MDM.
This is a soft release: if the button is tapped by mistake, the device simply re-claims its seat the next time the app is reopened — as long as it is still MDM-enrolled. To retire a device permanently, un-enroll it from the app in your MDM console; that withdraws its license key so it can no longer reclaim a seat.
Prefer to keep seat management under IT control only? Self-release can be disabled per license — contact SDTech at [email protected] and we will turn it off for your license. Once disabled, only SDTech can free a seat on your behalf (see Option B below).
Option A — Self-service release (fastest)
- Enroll and configure the replacement device in your MDM as usual (push the
enterprise_license_keyand any managed settings). - On the device being retired, open the app, go to the subscription screen, and tap “Release This Device.” Its seat is freed immediately.
- The replacement device activates automatically on its next launch and takes the freed seat.
💾 Back up first: before releasing, the app reminds the officer to export their notes and saved DVR passwords/patterns. This data is stored only on the device and does not move with the seat — back it up via Backup & Restore if it is needed.
Option B — Ask SDTech to free the slot
If self-release is disabled for your license, or you no longer have the old device on hand, we can free the seat for you:
- Enroll and configure the replacement device in your MDM as usual.
- Email SDTech at [email protected] to release the retired device's slot. Include:
- Your
enterprise_license_key(or organization name). - Which device to remove — the old device name/model and the user/officer it belonged to.
- Your
- SDTech releases the slot from the license dashboard, freeing exactly one seat (or all seats at once for a full fleet re-image).
- The replacement device activates automatically on its next launch and takes the freed slot.
Good to know
- MDM (agency) licenses are exempt from migration cooldowns and swap limits — device churn from re-imaging is never throttled.
- If a user simply gets the same device back (same install), it reactivates in its original slot — no action needed.
- For agencies with frequent turnover, ask us to provision a small buffer of extra slots so routine swaps don't hit the limit, and we can batch-clean retired devices periodically.
- Remind users to export/back up their case data before a device is wiped — investigation data is stored only on the device and cannot be recovered by SDTech.
🔧 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
❓ Activation Code Not Recognized
- Key format:
DVRTT-XXXX-XXXX-XXXX(20 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 |
|---|---|---|
| Agency Licensing | 2 | ✔️ Yes |
| Feature Control | 3 | ✔️ Yes |
| Logo Management | 4 | ✔️ Yes |
| Report Language | 2 | ✔️ Yes |
| Support | 3 | ✔️ Yes |
| Total | 15 settings | All live |