1 points par GN⁺ 2024-10-21 | 2 commentaires | Partager sur WhatsApp
  • L’application officielle syncthing-android prend sa retraite, et les dernières versions publiées sur GitHub et F-Droid doivent être livrées avec la version de Syncthing de décembre 2024
  • Cette interruption s’explique à la fois par une distribution sur Google Play devenue « difficile voire impossible » et par l’absence de maintenance active
  • Le blocage des publications sur le Play Store n’est pas l’unique cause ; pour relancer ou continuer à maintenir l’application, il faudrait que quelqu’un prenne en charge une maintenance à long terme
  • Syncthing ne disparaît pas pour autant sur Android, et des alternatives comme l’application existante, Syncthing Fork ou une exécution via Termux sont évoquées
  • La dernière application officielle devrait probablement continuer à fonctionner pendant un certain temps, mais les utilisateurs ayant besoin des nouvelles versions de Syncthing devraient envisager une transition en exportant leur configuration vers le Fork

Fin de l’application officielle syncthing-android

  • Il a été décidé de retirer l’application officielle syncthing-android, et les dernières versions publiées sur GitHub et F-Droid devraient sortir avec la version de Syncthing de décembre 2024
  • Cette fin résulte de deux facteurs conjoints
    • Google a rendu la distribution via le Play Store « difficile voire impossible »
    • l’application n’a plus de maintenance active
  • L’application n’a pas connu de développement significatif depuis longtemps, et la difficulté croissante à publier sur le Play Store a encore réduit l’intérêt et la motivation à investir dans sa maintenance continue
  • Des remerciements ont été adressés aux contributeurs de l’application, et plusieurs utilisateurs ont également exprimé leur gratitude tout en regrettant cette décision

Problèmes de distribution sur le Play Store et limites de maintenance

  • Dans la communauté, certains estiment que les règles du Play Store pénalisent les applications légitimes nécessitant des autorisations avancées
    • les applications ayant besoin de privilèges avancés deviennent difficiles à publier sur le Store
    • certains critiquent aussi le fait que des applications collectant les données des utilisateurs, voire proches de spyware, restent présentes sans véritable sanction
  • Certains proposent de maintenir encore quelques versions sur F-Droid, en y ajoutant des indications de transition ou de la documentation
  • Le projet précise toutefois que l’impossibilité de publier via les canaux de distribution classiques n’est qu’un facteur supplémentaire de démotivation, et non la seule cause
  • Une relance ou une continuité de l’application ne serait possible que si quelqu’un y consacrait un effort de long terme ; l’application était depuis longtemps sous « life support »

Continuer à utiliser Syncthing sur Android

  • Cette décision concerne uniquement l’arrêt de l’application Android officielle, qui était presque en sommeil depuis longtemps
  • Cela ne signifie pas qu’il devient impossible d’utiliser Syncthing sur Android ; d’autres peuvent continuer à distribuer une application Syncthing pour Android
  • Des inquiétudes sont exprimées face au fait qu’Android semble évoluer dans une direction de plus en plus proche d’iOS, ce qui pourrait compliquer les choses, mais il est aussi rappelé qu’une nouvelle application Syncthing open source pour iOS a récemment vu le jour
  • L’auteur de l’annonce explique être lui-même utilisateur de Syncthing sur Android et espérer personnellement que cela reste possible encore longtemps sur la plateforme

Alternatives évoquées : Fork et Termux

  • Comme alternative directe, Catfriend1/syncthing-android est cité
  • La dernière version de l’application officielle existante ne recevra plus de mises à jour, mais elle devrait probablement continuer à bien fonctionner pendant un certain temps
  • Si une version plus récente de Syncthing est nécessaire, il est possible de migrer vers Syncthing Fork
    • la configuration actuelle peut être exportée depuis les réglages de l’application officielle
    • elle peut ensuite être importée dans le Fork
    • du point de vue de Syncthing, les deux applications sont compatibles entre elles
  • L’exécution de Syncthing dans Termux est aussi discutée comme alternative
    • en exportant ou copiant les fichiers puis en ajustant certains réglages, cela fonctionne
    • l’inconvénient est qu’il faut démarrer et arrêter manuellement si l’on ne veut pas garder le téléphone éveillé en permanence
    • certains signalent aussi que si l’optimisation batterie de l’application Termux reste activée dans les réglages Android, le mode doze d’Android peut forcer sa mise en veille
  • La Web GUI est accessible dans le navigateur local à l’adresse http://127.0.0.1:8384, ce qui est également possible avec l’application Syncthing existante

Exemple de configuration Termux + Tasker

  • Un utilisateur a confirmé que la combinaison Syncthing + Tasker + Termux constitue une alternative fonctionnelle
  • La configuration d’installation est la suivante
    • installer Tasker depuis le Play Store
    • installer Termux et termux:tasker depuis F-Droid
  • Les autorisations supplémentaires sont les suivantes
    • Tasker : additional → run commands in termux environment
    • Termux : Appear on top
  • La commande d’installation de Syncthing dans Termux est la suivante
termux-setup-storage
apt install syncthing
  • Créer le fichier ~/.termux/tasker/start-syncthing-for-5minutes.sh et le configurer pour exécuter Syncthing pendant 5 minutes
#!/usr/bin/bash

timeout -s KILL 5m syncthing
  • Dans Tasker, configurer l’exécution de ce script toutes les heures, de 00:00 à 23:59, via Plugin→Termux:Tasker
    • start-syncthing-for-5minutes.sh
    • terminal session: X
  • En désactivant l’option Start browser dans l’interface, le navigateur ne s’ouvre pas automatiquement au démarrage
  • Après avoir exporté la configuration depuis l’application Android existante, il est possible de la copier dans ~/.local/state/syncthing pour reprendre la configuration existante au lieu d’une nouvelle installation
    • ensuite, il est possible de supprimer le nom d’utilisateur et le mot de passe d’accès à l’interface dans config.xml, puis de les redéfinir si nécessaire

2 commentaires

 
GN⁺ 2024-10-21
Avis sur Hacker News
  • Les discussions avec Google n’ont rien donné. Les changements exigés par Google pour obtenir l’autorisation étaient flous, au point qu’il était difficile de savoir comment réagir, et incertain que quoi que ce soit fonctionne.
    Ensuite, d’autres tâches distinctes sont apparues pour rester sur Play, comme la vérification des développeurs et le niveau d’API cible ; au final, il dit avoir compris qu’il n’avait plus la motivation ni le temps de continuer ce jeu.

    • Je doute que Google ait accepté comme excuse, sur un sujet de sécurité, « on ne veut pas utiliser l’API fichiers parce que le code est difficile à écrire ». Je ne vois pas bien quelle discussion aurait été possible du genre « nous ne voulons pas utiliser l’API SAF, donc laissez-nous accéder à toutes les données utilisateur, aux photos, etc. ».
      Ça ressemble à quelqu’un en entreprise qui explose au lieu de corriger des commentaires de PR, en affirmant que sa méthode est meilleure. Apple ne permet pas non plus d’écrire dans des répertoires arbitraires au seul motif que les API ObjC/Swift sont difficiles à utiliser.
  • J’ai autrefois travaillé chez Dropbox, dans les années 2010, en développement Android spécialisé ; je connaissais aussi assez bien les anciennes API de système de fichiers Android, mais j’ai consciemment basculé vers l’expérience développeur/le backend et quitté Android. La plupart de mes anciens collègues Android ont fait à peu près pareil.
    Les procédures sans fin à franchir et les changements d’API nécessaires pour que l’app continue de fonctionner étaient trop pénibles. En 2014, quand le Storage Access Framework « sécurisé » est arrivé, j’ai trouvé une triviale vulnérabilité de traversée de répertoires : il suffisait de passer "../../" dans un nom de fichier pour écrire dans le répertoire privé de n’importe quelle app. C’était tellement évident que je l’ai vu tout de suite en parcourant le code source AOSP pour comprendre SAF.
    Pendant longtemps, Android attribuait aussi le bit d’exécution global aux dossiers d’apps, ce qui permettait une attaque par mandataire confus : une app malveillante créait un lien dur vers les fichiers d’une autre app par leur nom, puis les repassait à cette app pour accéder au contenu des fichiers.
    Je suis content qu’Android ait renforcé sa sécurité, mais il a été construit sur des bases très permissives, que d’innombrables apps ont utilisées ou abusées. À mesure que le verrouillage se renforce, les développeurs qui doivent s’adapter à de grosses ruptures de compatibilité récurrentes risquent de quitter l’écosystème.
    [0] Bug 18512473 fixed in https://android.googlesource.com/platform/frameworks/base/+/...
    [1] Proof of concept video: https://www.dropbox.com/s/8dpd8visrttqbfo/poc.mp4?dl=0

    • Le problème, c’est que le coût de maintenance continue des plateformes mobiles natives est trop élevé. Qui a envie de développer sur une plateforme dont les fondations changent sans arrêt ?
      La vision de webOS me manque. Je ne veux pas dire que l’implémentation de webOS d’il y a 14 ans me manque.
  • Il existe un fork de Syncthing pour Android activement maintenu, qui a reçu 1,3 k étoile, même si ce n’est qu’un indicateur parmi d’autres.
    [1] https://github.com/Catfriend1/syncthing-android

    • Bon à savoir, mais le README dit ceci : « Je prévois de fermer mon compte Google Play Developer. Si vous souhaitez obtenir les derniers fichiers de release gplay pour aider à publier cette app, contactez-moi. »
    • J’utilise ce fork depuis assez longtemps. Quand j’ai commencé avec Syncthing, utiliser Syncthing-Fork semblait être la sagesse commune, mais je ne me souviens plus pourquoi.
    • Curieusement, je ne trouve aucun des deux sur Play maintenant. L’app qui semble être l’originale, installée via Play, est encore sur mon appareil.
    • J’ai exporté les paramètres de l’autre app et les ai importés dans ce fork ; ça semble fonctionner. Tous les réglages sont là et la synchronisation paraît marcher. Bravo aux développeurs.
    • Oui, c’est celui que j’utilise. J’en suis très satisfait depuis des années.
  • Dans le fil d’origine, l’auteur dit qu’il est très difficile de publier sur Google Play.
    Il écrit : « La raison est que Google rend la publication sur Play difficile, voire impossible ». Quelqu’un peut expliquer davantage ce qui se passe ici ?
    [1]: https://forum.syncthing.net/t/discontinuing-syncthing-androi...

    • Dans ce cas, l’auteur ne voulait pas utiliser l’API Storage Access Framework, obligatoire depuis plusieurs années pour accéder aux données hors du sandbox de l’app.
      Cette API est uniquement Java, et comme le cœur de Syncthing n’est pas écrit en Java, il aurait fallu écrire du code de liaison JNI pour appeler Android lors de la lecture et de l’écriture des fichiers. SAF donne une URI à chaque fichier et impose d’interroger en permanence la structure des dossiers ; on ne peut donc pas simplement concaténer des chemins comme avec des fichiers classiques, ce qui est assez fastidieux.
      L’auteur ne voulait pas faire ce travail et a essayé de convaincre Google de continuer à l’autoriser à accéder directement à tous les fichiers, photos et documents, mais Google a refusé. Ici, la « difficulté » semble signifier qu’il est vraiment difficile de publier sur Play si l’on ne suit pas les consignes. Comme sur l’App Store.
    • Je ne connais pas le problème précis de ce développeur, mais je peux parler des problèmes que j’ai rencontrés avec Google Play en tant que développeur Android. Google Play devient de plus en plus strict sur les permissions des apps, et les critères d’approbation sont très opaques.
      Mon app peut obtenir l’approbation d’une permission sur une version mineure, puis être refusée la semaine suivante alors qu’il n’y a eu qu’un changement trivial. Quand on contacte l’assistance Google Play, les réponses sont toujours vagues, standardisées et répétitives. Ne jamais savoir si une mise à jour sera approuvée est une façon épouvantable de développer quoi que ce soit.
    • J’ai créé quelques apps dans le cadre professionnel, et la meilleure analogie est la réglementation gouvernementale. Les exigences du store, les API et les règles sont détaillées à l’excès dans un document de 49 pages, dispersé entre plusieurs endroits, et il n’y a aucun moyen de les implémenter de façon fiable sans connaître les coulisses.
      Au final, cette structure ne punit que les petits développeurs, ceux qui ont peu de budget et peu de temps, et pousse à la consolidation autour des gros acteurs. Les grands peuvent exercer une certaine influence, bénéficient d’une confiance de base, et ont le budget et le temps pour implémenter des exigences absurdes, parfois lourdes. Résultat : cela ressemble à une manière de consolider leur position de marché et de créer des participants captifs qui soutiendront le Play Store pendant les décennies à venir.
  • J’utilisais ça pour mettre ma base de données KeePass sur mon téléphone, et je suis embêté. D’autres personnes dans le même cas ?

    • KeePass2Android fonctionne un peu mieux avec SFTP. Par exemple, il peut fusionner les changements en cas de conflit.
      Je recommande de se connecter en SFTP à une machine, puis de faire tourner Syncthing sur cette machine avec le reste des appareils.
    • syncthing-fork a nettement mieux fonctionné pour moi ces dernières années : https://f-droid.org/en/packages/com.github.catfriend1.syncth...
    • Resilio Sync est aussi plutôt correct, mais c’est un logiciel propriétaire.
    • À terme, KeepassDX devra probablement intégrer lui-même la fonctionnalité Syncthing.
    • KeePass et Joplin sont tous les deux concernés.
  • Pour des utilisateurs qui savent utiliser Syncthing et le veulent vraiment, s’appuyer sur F-Droid comme source d’APK me semble tout à fait possible. Est-ce que s’en servir comme canal de distribution ne suffit pas ?

    • On le verra dans les prochains mois, à mesure que les gens migreront vers « syncthing-fork » via F-Droid ou vers d’autres outils de synchronisation.
  • Je déteste tellement l’informatique mobile.

    • La situation est si mauvaise que l’expérience de développement Win32 de l’époque Pocket PC me manque.
  • Je vais mettre l’APK en lieu sûr avec mes disquettes Turbo Pascal. Syncthing pour Android était indispensable pour gérer ma collection de partitions.

  • Quelqu’un sait combien de temps l’app Android actuelle de Syncthing continuera encore à fonctionner ?