Files
adb-sideload-free-apps/README.fr.md

3.5 KiB
Raw Blame History

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.

English

Prérequis

  • Python 3.11 ou supérieur
  • adb (Android Debug Bridge) dans le PATH
  • aapt2 ou aapt (Android SDK Build Tools) dans le PATH

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 lapplication 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 lAPK distant possède un versionCode supérieur (incompatible avec APP et --list)
  • --config, -c : chemin vers config.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 lAPK distant validé possède un versionCode strictement supérieur ; les versions égales ou inférieures sont ignorées. Une erreur sur une application ninterrompt 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 lorsquune 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 lordre 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 lidentifiant du paquet APK avant linstallation, 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 dinstaller 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 lAPK 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