Enrolling a Non-GMS (AOSP) Device
Enrolling a Non-GMS (Google Mobile Services) device into Springdel allows it to be managed under your organization’s policies and configurations. The process involves creating an enrollment method, generating a staging QR code with your desired settings, and scanning it on the device during setup. Once enrolled, the device automatically connects to Springdel and receives assigned applications and policies.
Key Benefits
- Supports Non-Google Devices – Enables full MDM capabilities on AOSP devices without Google Play services.
- Flexible Enrollment Options – Enroll via USB, wireless debugging, or ADB scripts (Mac).
- Remote Access Ready – Use the Remote Control app for IT support and diagnostics.
- Offline Setup Support – Enroll devices without requiring Google accounts or app stores.
Before You Begin
To complete this setup, ensure you have:
- Non-GMS (AOSP) Android Device – Not signed in to any Google account and running Android 7.0 or higher.
- Developer Options Access – To enable USB or wireless debugging.
- Springdel Edge Tool or Springdel DPC APK.
- Data-Capable USB Cable – For wired provisioning.
Step 1 - Creating an Enrollment Method
- Log in to your Springdel console.
- Navigate to the Devices section from the left-hand menu.
- Click on the “+” button next to All Fleets to create a new fleet.
- In the pop-up dialog, enter a name for your fleet (e.g., Android) and click Create Fleet.
- Once the fleet is created, go to the Enrollments tab located at the top of the page.
- On the right-hand side, click Create Enrollment, then choose the appropriate platform from the dropdown (e.g., Android Edge).
- Enter a name for your enrollment (e.g., non-GMS) and click Continue.
- Select the fleet folder you created earlier (e.g., Android) and click Next.
- In the Device Naming section, configure how you want devices to be named. Choose the naming type (e.g., custom text, IMEI, or MAC address), set the values accordingly, and click Next.
- If needed, you can enable User Authorization to add an extra layer of security. Toggle the switch on to input a password or upload a CSV containing identifiers. If you prefer not to require authorization, simply toggle it off and click Next to proceed.
- Review the summary of your enrollment settings. If everything looks correct, click Next to complete the enrollment creation.
- After you click Next to complete the enrollment creation, an Enrollment ID and Enrollment QR Code will be shown.
Note: The QR code shown here is for Core Application enrollment.
Step 2 - Preparing the Device
Option 1: USB Debugging (For Windows and MacOS)
- On your non-GMS or AOSP (Android Open Source Project) device, go to Settings > About Device. Tap Build Number 7 times to enable Developer Options.
- In Settings, open Developer Options and toggle USB Debugging ON.
- Connect your device to your PC via data-transferable USB cable.
- Authorize the PC when prompted on the phone.
Option 2: Wireless Debugging (Only for Windows, Android 11+)
- On your device, enable Wireless Debugging under Developer Options. Then, tap the Pair device with pairing code.
- In Springdel Edge Tool, click "Add Remote Device".
- Enter the pairing details and port shown on the device into the tool.
- Click Pair. The device will connect wirelessly and appear in the tool.
Step 3 - (Windows) Enrolling Through Springdel Edge Tool
- Contact your Springdel representative to request the Springdel Edge Tool. You will receive a folder containing the necessary files.
- Once received the necessary files, you can either:
- Install the tool by double-clicking the installer “msi” inside the folder, or
- Run it directly by opening exe without installing.
- Once the application opens, select "PROVISION TOOL". This is used to set up the device with Springdel’s agent and necessary permissions.
- Once the device appears, select the target device and click Next.
- After selecting your device, you will be prompted to configure the provisioning settings. Each option can be customized according to your deployment needs.
- Check for the Latest Springdel DPC Agent
Ensure the tool uses the most recent version of the Springmatic Core (agent) for stability and feature updates. - Install Springdel RC (Remote Control)
This installs the Springdel Remote Control app to enable remote access and troubleshooting capabilities from the Springdel Console. - Set Up Device's Wi-Fi Connection (Optional)
You can pre-configure the device's Wi-Fi connection at this stage, or skip it and configure Wi-Fi manually on the device later. - Enroll Immediately (Optional)
If you wish to enroll the device immediately into the Springdel platform, check this box and enter the Enrollment ID. Alternatively, you may skip this step and enroll the device manually later.
- Check for the Latest Springdel DPC Agent
- Once all provisioning options have been configured, click the Setup button. The Springdel Edge Tool will begin pushing the Springmatic Core agent to the connected device.
- After the installation process, the setup status will appear on the right-hand side.
- If everything is installed and configured correctly, you will see a list of green status messages. This confirms that the device is properly configured and ready for use.
- After the installation is successful, two apps should appear on your device: Springmatic Core and Remote Control. Next, open the Springmatic Core app and proceed with the enrollment.
- After enrollment, you will see a “Pending Permissions” banner. Tap on it and enable all required permissions. Once all permissions are granted, the Pending Permissions banner will disappear, indicating that the device setup is complete.
- At this point, the device should appear in your Springdel dashboard, indicating that it is successfully enrolled and ready for management.
Step 3 - (MacOS) Enrolling Through ADB Commands
- Contact your Springdel representative to request the download link for the Springdel DPC APK file. You will receive an .apk file that contains the Springdel DPC agent.
- Go to the official Android Developers pages and download the macOS version of tools: https://developer.android.com/tools/releases/platform-tools
- Once extracted, you should see a folder named: platform-tools and the Springdel DPC APK file in the same directory. Your folder structure in Downloads should now look like:
- We can then rename the “Springdel DPC V2.5.201.apk” as “DPC25201.apk” for our own convenience.
- Open the Terminal on your Mac and navigate to the platform-tools directory:
cd ~/Downloads/platform-tools
While inside the platform-tools folder in Terminal, type:nano enroll.sh
Here, you are creating a script named enroll.sh to automate the device enrollment process with ADB commands. - Inside nano, type or paste this code:
#!/bin/bash
./adb install "../DPC25201.apk"
./adb shell dpm set-device-owner com.springdel.android.dpc/.DeviceAdminReceiver
./adb shell am start -n com.springdel.android.dpc/.MainActivity
This script does the following:
Line 1: Tells the system this is a Bash script.
Line 2: Installs the DPC APK onto the connected device (adjust the path if needed).
Line 3: Sets the app as the Device Owner (required for MDM control).
Line 4: Starts the Springdel DPC app on the device.
After done, save and exit the nano editor. - Now you should have the enroll.sh file. Move the DPC25201.apk into the platform-tools folder so that when you execute the enroll.sh script, it can automatically locate and install the APK from the same directory.
- After preparing the device, run the following command to verify that your device is properly connected:
./adb devices
You should see your device listed under "List of devices attached." If your device is not listed, make sure:
- USB debugging is enabled on the device.
- The USB cable supports data transfer.
- The connection mode on the phone is set to “File Transfer (MTP)” and not “Charging only.”
- Once your device appears in the list, you can proceed by executing:
sh enroll.sh
This will install the Springdel DPC, set it as the device owner, and launch the application automatically. - After the installation is successful, the Springmatic Core should appear on your device. Next, open the Springmatic Core app and proceed with the enrollment.
- After enrollment, you will see a “Pending Permissions” banner. Tap on it and enable all required permissions. Once all permissions are granted, the Pending Permissions banner will disappear, indicating that the device setup is complete.
- While enabling the required permissions within the Springmatic Core app on the device, the system will also prompt you to install the Remote Control app.
- At this point, the device should appear in your Springdel dashboard, indicating that it is successfully enrolled and ready for management.
- By the end of the setup, you should see both the Springmatic Core app and the Remote Control app installed on the device, ensuring full functionality and remote management capabilities.
Diagnostic
Enrolling Through Springdel Edge Tool
- Installation Failed
If you see red text indicating that installation or permissions have failed in the Springdel Edge Tool, the most common reason is that the device requires user interaction to confirm installations from external sources. Many Android phones will block silent installations unless the user manually taps “Install” when prompted.
To ensure a smooth installation:
- Keep the phone screen on and unlocked during the installation process.
- Watch for any popups requesting permission to install apps or enable system settings.
- Manually tap “Install” when the device asks for confirmation.
These actions help avoid failed installations and ensure that both the Springdel DPC and Remote Control apps are installed correctly.
- Wireless Debugging Not Working
Wireless debugging can be a convenient method, especially for devices without cable access. If the device and the Springdel Edge Tool fail to connect, ensure that both the PC and the device are connected to the same Wi-Fi network. Also, confirm that Developer Options and Wireless Debugging are enabled on the device.
To enable Wireless Debugging:- Go to Settings > About Phone.
- Tap Build Number seven times to activate Developer Options.
- Then navigate to Settings > Developer Options and turn on Wireless Debugging.
-
If you encounter issues with wireless connection, using a USB cable with data transfer support is another option that generally offers a more stable setup experience.
Enrolling Through ADB Commands
- “Set Device Owner Failed” Error
- Issue: During script execution, the terminal shows an error like:
Failure [SET_FAILED_ALREADY_SET] orlang.IllegalStateException: Can't set device owner.
Cause: This error indicates the device is not in a fresh factory-reset state. Android only allows setting a Device Owner during the initial provisioning setup (before any Google account or user data is added).
Solution: Perform a factory reset on the Android device.- Go to Settings > System > Reset Options > Erase all data (factory reset).
- Issue: During script execution, the terminal shows an error like:
-
-
- After resetting, do not set up the device or sign in to any accounts.
-
-
-
- Connect the device again and rerun the enrollment script:
sh enroll.sh
- You should now see
Success: Device owner set to package...
confirming that the DPC has been assigned correctly.
- Connect the device again and rerun the enrollment script:
-
- Permissions Not Prompting / INSTALL_FAILED_ABORTED
- Issue: The terminal returns the error:
Failure [INSTALL_FAILED_ABORTED: User rejected permissions]
Cause: The installation was blocked because the device did not prompt for permission to install apps from unknown sources, or the user missed or rejected the permission pop-up.
Solution: On the device, go to:
- Settings > Apps & Notifications > Special App Access > Install unknown apps.
- Select the file manager or installer app (e.g., Files, Downloads, etc.).
- Toggle Allow from this source.
- Connect the device again and rerun the enrollment script:
sh enroll.sh
- Issue: The terminal returns the error:
-
-
- Keep the device screen on and unlocked, and monitor any pop-ups asking for installation permission.
-
-
-
- Tap Install when prompted.
- Tap Install when prompted.
-
Frequently Asked Questions (FAQs):
1. Which Android platform should I select when creating an enrollment?
Springmatic offers two Android platform options: Android Edge and Android Enterprise.
- Android Edge uses Springmatic Core, a Springdel’s proprietary Policy Controller — to communicate directly with the Springdel backend. This approach allows us to follow Android enterprise best practices while retaining full control over app versions, enforcing instant policy updates, and enabling granular per-device management.
- Android Enterprise uses Google’s built-in Device Policy Controller (DPC) and is suitable for organizations that rely on Google services like the Play Store. It provides standardized device management through Google’s ecosystem.
We recommend choosing Android Edge to unlock the full capabilities and control of your device. It gives administrators greater flexibility, speed, and security, especially for use cases involving internal apps, offline syncing, custom experiences, or stricter compliance needs.
2. What is the difference between a Fleet and an Enrollment?
A Fleet is used to group devices for management, while an Enrollment is the setup configuration to bring devices into the Springdel system.
3. How should I choose the Device Naming Type?
Device naming allows you to define how enrolled devices will be labeled in the platform. For example: If you configure the naming as follows:
- #1 → Manufacturer
- Separator → _ (underscore)
- #2 → Model
Then a device like a Samsung S24 will automatically be named: Samsung_S24. This format helps keep device names consistent and recognizable within your fleet.
4. What does Skip Device Encryption mean?
This option allows you to bypass the device encryption step enforced by Android Management APIs. While skipping encryption may slightly speed up enrollment on older devices, it has minimal impact on newer devices. It's generally recommended to keep encryption enabled unless you have a specific reason to disable it.
5. What does Leave All System Apps Enabled mean?
By default, Android Management disables most system apps during enrollment unless they are explicitly allowed. Enabling "Leave System Apps Enabled" ensures that all system apps (like barcode scanners, camera tools, etc.) remain available after setup. This is especially useful for devices such as PDAs or enterprise scanners that rely on manufacturer-installed system utilities during onboarding.
Generally, it is recommended to leave this option enabled to ensure all essential system applications remain functional.
6. What is the “Profile” option when creating a staging QR code?
It’s an optional field that lets you automatically apply a configuration profile during device setup. You can use it if you have a preconfigured profile ready.
However, Springdel’s best practice is to enroll the device into a Staging Fleet without any profiles attached. This ensures the device enrolls and syncs properly before any policies are applied. Once enrollment is successful and the device is checking in, you may move it into your production fleet or assign it to a profile.
7. What happens if I choose the wrong Locale or Timezone?
The phone’s language and time will follow the selected locale/timezone. Choose the correct settings to prevent post-setup adjustments.
8. Why does it say “Wrong QR code” when scanning during setup?
Ensure that you are scanning the correct Enrollment ID QR Code, not the Staging QR Code. The Staging QR Code is primarily used for enrolling GMS devices directly by tapping 8 times on the welcome screen during the initial setup process.
9. My device enrolled successfully but is not syncing or checking in. What should I do?
As a best practice, re-enroll the device into a Staging Fleet with no profiles attached. Let it fully enroll and sync properly first. After successful enrollment, you may then move it into your production fleet/profile.
10. Can I reuse the same QR code for multiple devices?
Yes. The generated staging QR code can be used repeatedly to enroll other devices using the same configuration.
11. I can’t install the Springmatic Core agent using Springdel Edge Tool. What should I check?
If the installation keeps failing when enrolling a non-GMS or AOSP device through Springdel Edge Tool, make sure the device is not logged into any Google account. Some devices block device owner setup when a Google account is present. Log out of any Google account, then retry the enrollment. You may log back in after the device has been successfully enrolled onto Springdel.
12. My device does not appear in Springdel Edge Tool/ADB Command. What should I check?
If your device is not detected in the Springdel Edge Tool or doesn't appear after running ./adb devices, there are a few key things to verify:
- Ensure the USB cable supports data transfer, not just charging.
- On the device, change the USB connection mode to File Transfer (MTP) instead of "Charging only."
- Confirm that USB Debugging is enabled under Developer Options.
- Try reconnecting the cable, restarting the device, or using a different USB cable or port.
These checks typically resolve most connection detection issues.
13. Do I need to keep the screen on during installation?
Yes. Many devices block silent installations unless the user explicitly approves them. Keeping the screen on ensures you can tap Install if a permission prompt appears.
14. Wireless debugging isn't working, what should I do?
If your wireless debugging isn’t working, try the following steps to troubleshoot:
- Both PC and device are on the same Wi-Fi network.
- Developer options and Wireless Debugging are enabled.
- If issues persist, switch to a USB cable connection for reliability.
15. After installation, I only see one app. What should I do?
The Remote Control app will be installed automatically once you open the Springmatic Core app and the device is connected to the internet. If it's not showing yet, make sure:
- The device has a stable internet connection.
- You have opened the Springmatic Core app at least once.
- All required permissions in the Core app are granted.
Once those conditions are met, the Remote Control app should appear alongside Springmatic Core on your device.
16. What do I do if I accidentally skipped enabling permissions?
Open the Springmatic Core app manually. If you see a Pending Permissions banner, tap it to enable everything required.
17. If none of these steps resolve my issue, what should I do?
If you've gone through all the troubleshooting steps and your issue persists, you may contact Springdel Support for further assistance. Our team will help diagnose and resolve the problem.