Un APK signé sans quitter le téléphone
WebToApp est une application Android qui fabrique un APK à partir d'une URL, d'un dossier HTML, d'un build front-end ou d'un projet Node.js, PHP, Python, Go ou WordPress. Le patch du gabarit, la signature et la conversion en AAB pour Google Play se font dans l'application, avec apksig, sans PC ni file de build distante. Les types serveur, image et vidéo restent masqués tant que l'option Advanced features de la page About est coupée.
Runtimes serveur, keystores et pile réseau dans l'app
- Runtimes serveur embarqués : Node.js 18.20, PHP 8.4 avec Composer, Python 3.14, Go 1.26 et WordPress 7.x sur SQLite. L'APK généré lance le binaire en fork+exec et ouvre sa WebView sur un port local. Les runtimes se téléchargent au premier usage, puis restent en cache.
- Signature sur l'appareil : schémas V1, V2 et V3 activables séparément, keystores PKCS12, PFX, JKS ou BKS.
- Réseau réglable app par app : DNS-over-HTTPS chez sept fournisseurs, proxies HTTP, SOCKS5 et PAC, empreinte TLS de Chrome, Firefox ou Safari imitée par un pont MITM local, bascule sur des URL miroirs. L'Encrypted Client Hello marche sur la WebView du système comme sur GeckoView, téléchargé au premier usage.
- Extensions sans reconstruire l'hôte : modules JS/CSS, userscripts avec l'API
GM_*, extensions Chrome MV3 cherchées dans le Chrome Web Store. - Projet Gradle exportable : une app sort en projet Android Studio (manifeste, activité WebView, configuration, fichiers locaux), sans le keystore ni le runtime complet.
- Agent intégré : jusqu'à 60 outils pilotés par un LLM distant ou local (Ollama, LM Studio, vLLM), avec une autorisation avant toute écriture.
Démos installables et outils internes en APK
- Empaqueter un build React, Vue ou Vite statique, servi en localhost.
- Distribuer la démo d'un thème ou d'une extension WordPress, PHP et SQLite compris.
- Installer en sideload un petit outil d'administration Flask, FastAPI ou Node.js.
- Regrouper plusieurs sites dans une seule app, en onglets, cartes, flux ou tiroir latéral.
Apps serveur en sideload, correctifs à réexporter
Les apps serveur ne passent pas par Google Play. Les APK Node.js, PHP, Python, Go et WordPress sont figés en targetSdk 28 pour lancer leurs binaires depuis le stockage de l'app, et le niveau qu'exige Play active W^X, qui bloque ce lancement. L'export AAB est refusé pour ces cinq types, comme pour tout build aux ressources chiffrées. La documentation renvoie au sideload, à la distribution d'entreprise ou à un store qui accepte targetSdk 28.
L'aperçu et l'APK exporté n'exécutent pas le même code. L'aperçu tourne dans l'app de construction, l'export sur un runtime séparé qui relit la configuration embarquée, et la documentation compte « marche en aperçu, pas après export » parmi les pannes réelles. Comme l'app de construction vise targetSdk 36, W^X y bloque l'aperçu des runtimes PHP, Python, Go et WordPress ; seul Node.js garde le sien. Les notes de version récentes marquent la plupart des corrections « Update the builder » ou « Export again » : les secondes n'atteignent une app générée qu'une fois son APK reconstruit.
L'isolement des extensions MV3 est simulé. La WebView d'Android n'a qu'un contexte JavaScript : les mondes ISOLATED et MAIN sont émulés, et les fonctions GM_* des userscripts restent exposées quelle que soit la directive @grant.
Le projet se décrit comme un atelier APK de poche. Son README l'oppose aux outils qui se bornent à envelopper une URL dans une WebView.
La dernière version est la v2.8.2, du 24 octobre 2026. Dix-neuf versions sont sorties depuis le 6 septembre 2026, aucune marquée comme pré-version. La v2.8.2 a relevé le minimum de l'app de construction à Android 7.0, alors que le README annonce encore Android 6.0 ; les apps générées s'installent toujours dès Android 6.0.
