August 22, 2022
August 22, 2022
David Redmond, Senior Systems Development Engineer
At NexTech Solutions, we have found that automation is pivotal in ensuring that edge deployments, no matter the medium, are reliable, repeatable, and sustainable. Our automation journey now includes automating the provisioning of Android End-User Devices and Android application configuration. The configuration of these devices today is labor intensive and has a high probability of misconfiguration.
Utilizing open-source methods, we have created custom Python modules and functions to automate Android Operating System (OS) configurations, as well as installing and configuring applications on the Android device. Our Python modules and functions are compiled into a Windows or Linux-based application. The simple-to-use MANTLE-Android application allows for quick and easy deployments without worrying about additional dependencies. We utilize the Android Debug Bridge, or ADB, to gain access to each of the Android devices. ADB access, however, removed at the very end of our builds, ensures that the end configuration exceeds the security standards of our customers.
Python: If you are not familiar with Python, it is a popular high-level programming interpretive language that allows for simple-to-use, easy-to-read, and easier development compared to other programming languages. In addition, community support is second to none, with a vast number of open-source libraries.
Android Debug Bridge: A native Android command-line tool that allows for communication to Android devices via USB or over Wi-Fi. The Android SDK, or Software Development Kit, includes the components to run ADB natively or can be included in our MANTLE-Android library. During the deployment, MANTLE-Android calls ADB to instantiate the ADB server, which will scan for any local Android devices. If developer mode is enabled, we can now start sending commands via our Python functions to any available Android devices.
Source-of-Truth: When dealing with large deployments of Android devices, we like to use a “Source-of-Truth” platform to manage our deployments. For example, we can use an open-source tool such as Nautobot to manage our devices, models, users, applications, or anything that tells MANTLE-Android what this device will look like at the end of the build. MANTLE-Android also supports using local methods to manage Android devices, such as Microsoft Excel Workbooks. The main idea behind using a Source-of-Truth is that the end state is already defined. Once you hit “install” MANTLE-Android will configure the device to the validated configuration/design.
Now that we have identified some of the backend components, let us look at what MANTLE-Android configures in the OS. After a factory reset of the device, MANTLE-Android will begin by configuring some of the user-default settings on each device. This involves configuring items such as screen timeout, Wi-Fi connections, security PINs, certificates, Samsung, or Google accounts, Secure Folders, and user/Map data. We configure every component that will allow for a successful application installation and configuration in the next step.
One of the applications we can configure is Mobile Device Managers (MDM), where we can authenticate the remote server, ensure the device is registered after a factory reset, and ensure MDM settings are applied.
Another application that we automate is VPN clients on Android devices. In these types of applications, we either upload a configuration file or input a VPN server IP address with a username and password for authentication.
One of the most complex applications that we currently automate is the Android Team Awareness Kit or more commonly known as ATAK. Due to the wide variances in ATAK configurations, we support loading pre-defined configuration files and plugins, as well as a standard configuration setting for a generic loadout.
MANTLE: Android is constantly evolving as new Android models and versions are released, as well as application versions. Currently, we support MANTLE-Android on Windows and Linux as a desktop application. We are in the planning phase of revamping the desktop application to be a fully containerized web application. The desktop application will continue to be supported as it provides the ability to provision Android devices in a disconnected state. The containerized web application will enable greater support for mass device configurations.
To learn more about MANTLE’s capabilities and how you simplify operations at scale and gain control of your edge operations, click here.
NexTech Solutions is focused on systems and network engineering to support cloud, hybrid, and edge solutions. We devote our time to truly understanding the unique mission requirements of our Federal clientele by building mission-driven solutions that meet today’s and tomorrow’s demands. Offering a diverse and customizable set of classified and unclassified capabilities focused on mission support.