Install Silent APK
Résumé
- Nom interne :
InstallSilentApk - Catégorie : Device Admin (MDM)
- Objectif : Télécharger et installer silencieusement un APK depuis une URL, sans aucune interaction utilisateur, en utilisant les privilèges Android Device Owner.
- Type de tâche : Normale
Compatibilité
-
Version minimale AndroMate :
1.1.0 -
Version maximale AndroMate :
1.1.0 -
Android minimum :
Android 13 (API 33) -
Android maximum testé :
Android 16 (API 36) -
Constructeurs supportés :
- ✅ Tous les constructeurs
-
Permissions requises :
- L'agent AndroMate doit être provisionné en tant que Device Owner sur l'appareil — voir la documentation de provisioning MDM / Device Owner. Ce n'est pas une permission runtime classique : sans le statut Device Owner, cette tâche échoue systématiquement.
Description détaillée
La tâche Install Silent APK télécharge un APK depuis apk_url et l'installe sans aucune boîte de dialogue de confirmation utilisateur — une capacité réservée à une application détenant le rôle Device Owner d'Android (scénario appareil entièrement géré / MDM).
C'est l'une des « tâches MDM » qui nécessitent que l'agent AndroMate soit Device Owner : chaque tâche de cette famille partage la même garde, et échoue immédiatement avec DEVICE-OWNER-ERROR-001 si l'agent n'est pas provisionné en tant que Device Owner — avant même de lire apk_url.
L'installation elle-même est asynchrone côté Android ; la tâche bloque jusqu'à ce qu'elle réussisse, échoue, ou que 60 secondes s'écoulent.
Paramètres d'entrée
| Paramètre | Type | Obligatoire | Valeurs possibles | Compatibilité Android | Compatibilité AndroMate | Défaut |
|---|---|---|---|---|---|---|
apk_url |
String | Oui | Une URL HTTP(S) accessible pointant vers un fichier .apk valide |
Android 13 (API 33) → Android 16 (API 36) | 1.1.0 → 1.1.0 | "" |
Paramètres de sortie
La tâche Install Silent APK ne produit aucune sortie. En cas de succès, le paquet décrit par l'APK téléchargé est installé sur l'appareil.
Exceptions
| Code | Nom de l'exception | Description |
|---|---|---|
DEVICE-OWNER-ERROR-001 |
Device Owner requis | L'agent AndroMate n'est pas provisionné en tant que Device Owner sur cet appareil. |
DEVICE-OWNER-ERROR-002 |
Échec de l'installation silencieuse de l'APK | Le téléchargement ou l'installation a échoué (URL invalide, APK corrompu, signature incorrecte, etc. — voir le message d'erreur pour le détail). |
| — | Timeout | L'installation n'a pas terminé dans les 60 secondes (fixe, non configurable). |
Diagramme d'exécution
flowchart TD
Start([▶ InstallSilentApk]) --> CheckOwner{Agent est\nDevice Owner ?}
CheckOwner -->|Non| E1[❌ DEVICE-OWNER-ERROR-001\nDEVICE_OWNER_REQUIRED]
CheckOwner -->|Oui| Download[⬇️ Télécharger l'APK depuis apk_url]
Download --> Install[📦 Installer silencieusement, sans dialogue]
Install --> Wait{Résultat dans\n60s ?}
Wait -->|Non| E2[❌ Timeout]
Wait -->|Succès| Success1[✅ Paquet installé]
Wait -->|Échec| E3[❌ DEVICE-OWNER-ERROR-002\nINSTALL_FAILED]
Success1 --> Success([✅ VoidResult])
E1 --> Error([❌ Exception])
E2 --> Error
E3 --> Error
style Start fill:#e3f2fd
style Success fill:#c8e6c9
style Error fill:#ffcdd2
style Install fill:#fff9c4
Comment ça fonctionne :
- Vérification Device Owner : lève immédiatement
DEVICE-OWNER-ERROR-001si l'agent n'est pas Device Owner. - Téléchargement + installation : télécharge l'APK depuis
apk_urlet l'installe silencieusement (sans invite utilisateur). - Attente : bloque jusqu'à 60 secondes le callback d'installation (asynchrone).
- Résultat : le succès installe le paquet ; l'échec lève
DEVICE-OWNER-ERROR-002avec le message d'erreur sous-jacent ; l'absence de callback dans les 60s lève un timeout.
Détails des paramètres d'entrée
1. Paramètre d'entrée : apk_url
L'URL HTTP(S) depuis laquelle télécharger l'APK.
Exemple
Détails
- Doit être accessible depuis l'appareil et servir un fichier
.apkvalide. - Résolu à l'exécution — peut référencer une
$variable.