Android MDM Agent Development

Job ID: 39424577

Budget: $250 – $750 USD

Here’s a refined MDM (Mobile Device Management) Requirements Specification Document suitable for subcontractor work listings. It’s concise, structured, and clearly outlines deliverables without implementation details:

MDM Android Agent – Requirements Specification

Project Overview

Development of a lightweight Android-based MDM agent that enables remote device management for headless or limited-UI devices. The agent must support secure remote operations, background execution, silent software updates, and full GUI mirroring and control.

Functional Requirements

1. Device Identification
• Retrieve and display a unique Android device ID upon launch.
• Send the device ID to a specified backend endpoint via HTTP.

2. Backend Communication
• Poll a specified backend API (e.g., /api/mdm/command/{deviceId}) every 15 seconds.
• Interpret received JSON commands and execute appropriate actions.

3. APK Installation
• Support remote installation of APKs via a backend command (install_apk).
• If the device is in Device Owner mode, perform silent installation.
• Fallback to user prompt if silent install is not permitted.

4. Full Remote GUI Streaming & Control
• Start an Android MediaProjection service to capture screen images.
• Stream captured images to a backend or frontend dashboard in MJPEG format.
• Enable remote GUI interaction (touch/click simulation) using:
• AccessibilityService for UI element interaction.
• Input injection if permitted.

5. Boot & Crash Persistence
• Launch the app automatically on boot.
• Re-launch itself if terminated or crashes unexpectedly.

6. Permissions & Compliance
• Request and maintain the following permissions:
• INTERNET, REQUEST_INSTALL_PACKAGES, FOREGROUND_SERVICE, RECEIVE_BOOT_COMPLETED, SYSTEM_ALERT_WINDOW.
• Declare proper foreground service types for media projection.
• Ensure compatibility with Android 11+ (API level 30+).

Technical Constraints
• Written in Java (not Kotlin).
• Compatible with Android 11+.
• Works without requiring user interaction post Device Owner provisioning.
• Communicates over HTTPS.

Deliverables
• Fully functional APK file ready for installation.
• Source code in structured Android Studio project format.
• README explaining:
• How to build the APK.
• How to provision as Device Owner using ADB.
• Backend API command structure and expected responses.
• Documentation on how to integrate GUI streaming and remote input on the server side (if not included).


Testing & Validation
• Verify device ID is sent to backend upon launch.
• Simulate backend install_apk command and validate silent install.
• Reboot device and confirm auto-launch.
• Terminate app manually and verify it relaunches.
• Activate screen streaming and validate remote viewing.
• Execute tap/click remotely via test command and confirm execution.