Android MDM Agent Development
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.
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.