Agent Config
Requirements (self-hosted)
10.0.x
8.1
8.2
11.0.x
8.2
8.4
A GLPI Network BASIC subscription (or higher) is required. This plugin is also available for all GLPI Network Cloud instances.
Limitation
Concerned Version
Since Android 10 (API level 29)
Limitation
Since Android 10 (API level 29), Google has strengthened restrictions related to accessing sensitive device information, such as IMEI and serial numbers, to protect user privacy. These changes are part of Google’s efforts to limit access to sensitive data and prevent permission abuse by applications.
Here is why we can no longer retrieve this information directly:
1. IMEI and Permission Restrictions
The IMEI is considered sensitive and private information.
Since Android 10, only applications with the special permission
READ_PRIVILEGED_PHONE_STATEcan access the IMEI. This permission is only available to system applications or those preinstalled by the manufacturer.Third-party applications, even with the
READ_PHONE_STATEpermission, can no longer access the IMEI.
2. Serial Number
The serial number is also restricted. Before Android 8 (Oreo), applications could retrieve it via
Build.SERIAL.Since Android 8, accessing the serial number requires the
READ_PHONE_STATEpermission.From Android 10 onward, applications cannot access the serial number unless they are system applications.
A system application is one installed directly in the system partition of an Android device. It is an integral part of the operating system (directly integrated by the manufacturer into the OEM firmware) and enjoys special privileges that standard applications (installed by users) do not have.
Installing an application as a system app is technically possible. However, it involves specific conditions and technical skills:
Root Access Required: The target device must be rooted to allow access to and modification of the system partition, where system applications are installed.
Using ADB: The method requires basic knowledge of using the Android Debug Bridge (ADB) tool to properly copy and configure the APK in the system directory of the device.
We are fully aware of the limitations imposed by Android regarding access to sensitive information (such as the IMEI or serial number) from the inventory agent.
To address these constraints and ensure proper data reporting from the agent, we are currently exploring several alternative approaches, including:
Collaboration with Manufacturers (OEMs): We are considering partnerships with manufacturers to integrate our application directly into the firmware as a system application, which would allow access to the necessary APIs.
Obtaining the Required Permissions from Google: We are analyzing procedures to acquire special permissions (such as
READ_PRIVILEGED_PHONE_STATE) while complying with Google’s privacy and security policies.Alternative Technical Solutions: We are also exploring technical approaches such as using administrator profiles through Android Enterprise or using non-sensitive identifiers that could replace the IMEI or serial number for our specific requirements.
Install the plugin
Go to the marketplace. Download and install the Agent config plugin.

Setting up the plugin
In Setup > General > GLPI Agent Contiguration, select the options you want :
By default, the URL of the inventory is indicated
To secure your instance and limit feedback from your mobile devices, you can enter a login and password for each mobile device to be inventoried
You can use a tag entity (choose Yes and indicate your tag if needed)
Choose the asset type by default (computers or phones, this information indicates the type of device by default, but can be modified individually from each device)
Display QR Code (on central page)
Display Deeplink (on central page)
Manage automatic inventory and frequency for android

Central page
On
Home>GLPI Agent Configuse Deep link or QR Code to preconfigure the agent :

When a factory reset is performed on the phone, the serial number automatically generated by the agent changes You can use Deep Link / QR Code to configure the agent with the serial number previously generated and inventoried in GLPI.
Setup mobile device
Download the Agent GLPI on the Google Store

With Deep Link
Go to GLPI with your device web browser
Click on the DeepLink

App will open and pre-fill the fields for adding a server
Then click on Add server

With QR Code
Open GLPI Agent on your device
Go to
Advanced Settings>Open List Server>Add serversClick on QR Code button
Flash QR Code

App pre-fill the fields for adding a server
Then add server.

Category Global
In mobile device,
Menu>Advanced settings>Category global, select/unselect the informations you want to inventory

Troubleshooting Automatic Inventory (Android)
1. Problem
Symptom: Manual inventory works correctly, but automatic inventory (based on the configured frequency) doesn't always trigger. The device doesn't send information to GLPI after the first manual synchronization.
Cause: On recent Android versions (12 to 16), the operating system applies strict power management. By default, Android puts applications in "Optimized" mode, which restricts or stops background processes to save battery. The GLPI Android Inventory agent is then prevented from waking the device to send its data.
2. Solution:
Configuring Permissions To ensure automatic inventory updates, it may be necessary to remove the software restrictions related to power saving for the GLPI Android Inventory agent.
Troubleshooting Procedure:
On the phone, go to Settings.
Go to the Applications section (or Application Management).
Select the GLPI Android Inventory agent application.
Click on the Battery (or Battery Usage) tab.
Change the default setting to "Unrestricted".
3. Additional Information
Applicable versions: Android 12, 13, 14, 15, and 16.
Deployment Note: For a large fleet, it is recommended to push this setting via your MDM (Mobile Device Management) solution, if supported, to avoid manual configuration on each device.
Contributing
Open a ticket for each bug/feature so it can be discussed
Follow development guidelines
Refer to GitFlow process for branching
Work on a new branch on your own fork
Open a PR that will be reviewed by a developer
Last updated