3.5 KiB
adb-sideload-free-apps
Installer des applications Android libres avec ADB depuis F-Droid, les releases GitHub, GitLab ou Codeberg, ou des pages HTTPS génériques.
Prérequis
- Python 3.11 ou supérieur
adb(Android Debug Bridge) dans lePATHaapt2ouaapt(Android SDK Build Tools) dans lePATH
Démarrage rapide
python -m pip install -e .
cp config.example.toml config.toml
# Modifier config.toml pour ajouter les applications
python -m sideload
Utilisation
sideload [APP] [--list] [--update-all] [--device SERIAL] [--dry-run] [--config PATH]
APP: nom de l’application dans la configuration (omettre pour la sélection interactive)--list: lister les applications configurées--device,-s: numéro de série du périphérique ADB--dry-run: résoudre, télécharger et valider sans installer--update-all: inspecter toutes les applications configurées sur un périphérique choisi une seule fois et mettre à jour uniquement les applications installées dont l’APK distant possède unversionCodesupérieur (incompatible avecAPPet--list)--config,-c: chemin versconfig.toml(par défaut :./config.toml)
--update-all sélectionne le périphérique ADB une seule fois, puis vérifie chaque paquet
configuré avec adb shell dumpsys package. Les applications absentes du périphérique sont
signalées et ignorées sans téléchargement. Une application installée est mise à jour
uniquement lorsque l’APK distant validé possède un versionCode strictement supérieur ; les
versions égales ou inférieures sont ignorées. Une erreur sur une application n’interrompt pas
le traitement des suivantes. La commande affiche un bilan et retourne un code non nul si une
mise à jour a échoué.
Configuration
Voir config.example.toml. Les sources prises en charge sont :
| Source | Champs requis |
|---|---|
fdroid |
url (page F-Droid) |
github |
url (dépôt) |
gitlab |
url (projet) |
codeberg |
url (dépôt Codeberg) |
generic |
url, asset_pattern (page ou répertoire HTTPS) |
Chaque application doit aussi définir name et package. Pour GitHub, GitLab et Codeberg,
définir asset_pattern lorsqu’une release contient plusieurs APK compatibles. Les APK de
debug, de test et non signés sont rejetés par défaut.
La source generic suit les liens HTML HTTPS depuis url. Utiliser
intermediate_patterns dans l’ordre pour parcourir les répertoires ; lorsque plusieurs liens
correspondent, un motif avec des groupes de capture numériques sélectionne le plus grand tuple
numérique. asset_pattern est obligatoire et doit correspondre à un seul APK final. Les champs
optionnels headers et sha256 sont pris en charge ; les valeurs des en-têtes ne sont jamais
écrites dans les logs.
aapt2 valide l’identifiant du paquet APK avant l’installation, avec aapt comme solution de
secours pour les anciennes versions des Android SDK Build Tools. Au moins un des deux outils
doit être disponible dans le PATH. Le script refuse d’installer un APK si aucun outil ne peut
le valider.
Avec --update-all, aapt2 dump badging (avec fallback aapt dump badging) lit également le
versionCode de l’APK distant avant de décider si une installation est nécessaire.
Pour utiliser ADB en Wi-Fi, configurer une adresse explicite après avoir activé le débogage sans fil :
[adb]
mode = "wifi"
address = "192.168.1.42:5555"
Tests
pip install pytest
python -m pytest tests/ -v