2 points par GN⁺ 2026-01-28 | 1 commentaires | Partager sur WhatsApp
  • Le client SSH JuiceSSH pour Android ne reconnaîtra plus les paiements des acheteurs existants après décembre 2025
  • La licence d’un utilisateur achetée en 2019 a été invalidée, le prix a augmenté de 20 dollars, et certains utilisateurs constatent qu’elle ne s’active pas même après un nouvel achat
  • L’équipe de support ne répondant pas, les utilisateurs y voient de facto une « exit scam »
  • L’article explique étape par étape comment décompiler l’application et modifier le code smali à l’aide d’ApkTool, jadx, jarsigner, etc., afin de restaurer les fonctionnalités Pro
  • La synchronisation cloud et les plugins ne fonctionnent plus, mais la méthode est présentée comme un moyen de réutiliser les fonctionnalités Pro

Le problème avec JuiceSSH

  • JuiceSSH est un client SSH disponible sur Android, que l’auteur considérait comme la meilleure application jusqu’en décembre 2025
  • La licence de la version Pro achetée en 2019 n’est plus reconnue, et le prix a augmenté de 20 dollars
  • Certains utilisateurs ont laissé des avis indiquant que l’application ne s’active pas même après un nouvel achat
  • Sur Google Play, l’application a été retirée de la liste, et l’équipe de support ne répond pas
  • L’auteur qualifie cette situation d’exit scam

Préparer la restauration de l’application

  • Pour refaire fonctionner l’application, il faut des outils comme jadx, ApkTool et jarsigner (inclus avec OpenJDK)
    • Sous Windows, l’installation est possible avec choco install openjdk
  • L’APK de JuiceSSH peut être téléchargé depuis PureAPK, ou extrait directement avec adb
  • Lors du téléchargement, il faut vérifier le hash SHA256
    • Le hash de la dernière version (3.2.2) est d1ee811bcd82f25aea0bdc568896d82017ee174d9c4631c123a9d9173c748232

Étape de décompilation

  • Utiliser ApkTool pour décompiler le code DEX de l’APK
    & "C:\Program Files\OpenJDK\jdk-25\bin\java.exe" -jar ./apktool_2.12.1.jar d juicessh.apk
    

Modification du code smali

  • Trois fichiers smali doivent être modifiés

1. smali/com/sonelli/juicessh/models/User.smali

  • La fonction public boolean H() effectue la vérification de l’achat et de la signature
  • Supprimer la logique de vérification d’origine et la remplacer pour retourner toujours true
    public boolean H() {
        return true;
    }
    

2. smali/com/sonelli/oi0.smali

  • La fonction public static boolean d(Object obj) appelle le H() ci-dessus pour vérifier la validité de l’achat
  • La modifier pour retourner toujours true
    public static boolean d(Object obj) {
        return obj.getClass().getName().equals(User.class.getName());
    }
    

3. smali/com/sonelli/pi0.smali

  • La fonction public static void j(Context context, p pVar) est la partie centrale de l’authentification des fonctionnalités Pro
  • À l’origine, elle vérifie la session utilisateur et relance une authentification en cas d’expiration
  • Dans la version modifiée, elle crée un faux objet utilisateur, définit l’expiration de session à un an plus tard, puis appelle toujours le callback de succès
    public static void j(Context context, p pVar) {
        User user = new User();
        user.email = "myemail@google.com";
        user.name = "hello";
        user.given_name = "hello";
        user.sessionExpires = System.currentTimeMillis() + (86400000 * 365);
        user.sessionIdentifier = "";
        b = user;
        pVar.b(user);
    }
    

Recompilation et signature

  • Après modification, reconstruire l’APK
    & "C:\Program Files\OpenJDK\jdk-25\bin\java.exe" -jar .\apktool_2.12.1.jar b juicessh
    
  • Le fichier généré se trouve dans juicessh\dist\juicessh.apk
  • Créer un keystore pour l’auto-signature puis signer l’APK
    keytool -genkey -v -keystore k.keystore -alias a -keyalg RSA -keysize 2048 -validity 50000
    jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore k.keystore ./juicessh/dist/juicessh.apk a
    

Résultat et limites

  • Une fois l’APK signé installé, il est possible de réutiliser les fonctionnalités Pro en ignorant l’avertissement de sécurité
  • La synchronisation cloud ne fonctionne pas, et les plugins ne sont plus pris en charge
  • L’auteur dit avoir perdu confiance dans le développeur et qualifie la situation de « farce »

1 commentaires

 
GN⁺ 2026-01-28
Réactions sur Hacker News
  • L’équipe support est totalement silencieuse, au point que cela ressemble de fait à un exit scam
    Ce n’est que maintenant que le problème commence à attirer l’attention alors que de nombreux utilisateurs ont déjà perdu de l’argent
    Les deux développeurs occupent actuellement des postes de management chez Microsoft et AWS, tout en ignorant les e-mails
    JuiceSSH a été abandonné tel quel, sans remboursement, sans ouverture du code source, ni même une dernière mise à jour
    J’ai contacté le support de Google Play, mais on m’a simplement répondu qu’aucun remboursement n’était possible après 120 jours suivant le paiement
    Liens associés : À propos de JuiceSSH, À propos de Sonelli, Paul Maddox, Tom Maddox

    • Certains des liens ci-dessus renvoient une erreur CloudFront, mais sonelli.com reste accessible
      J’ai réactivé ma licence via une fonctionnalité intégrée à l’application il y a quelques mois, mais je ne me souviens plus exactement quand
  • J’utilise cette appli depuis des années, et récemment, en essayant d’utiliser la fonction de forwarding (fonction Pro), j’ai reçu un message me demandant de payer à nouveau
    Je l’avais déjà achetée en 2014 pour 5 euros, mais cette fois j’ai repayé 30 euros, et immédiatement après, toute l’application s’est verrouillée
    J’ai envoyé plusieurs e-mails, sans jamais recevoir de réponse

    • Si c’est encore possible, je recommande de demander un remboursement à Google
      D’après la politique de remboursement Google Play, ce n’est possible que dans les 48 heures, mais le cas « l’achat ne fonctionne pas du tout » peut faire exception
    • Je ne comprends pas pourquoi on paierait pour ce genre de fonctionnalité
      Termux est un petit Linux dans la poche, donc il a déjà toutes les fonctions liées à SSH
  • Je ne dirais pas que « JuiceSSH est le meilleur sur Android », mais de mon côté je n’ai utilisé que la combinaison Termux + Unexpected Keyboard
    J’ai du mal à imaginer qu’une autre application puisse améliorer cette expérience
    Je me demande ce qui rend JuiceSSH si bon

    • La discussion ici porte sur le fait que JuiceSSH ne fonctionne plus et n’est plus maintenu. Je pense que ça répond à la question
    • J’ai utilisé JuiceSSH Pro gratuitement pendant un moment à l’époque, mais aujourd’hui je trouve que Termux est bien meilleur
      On peut gérer les clés SSH, les alias, les connexions multi-hop, et le support des raccourcis dans AnySoftKeyboard le rend très efficace
      Tout est installable depuis F-Droid
    • Je n’ai utilisé ni JuiceSSH ni Termux, mais j’ai toujours bien utilisé ConnectBot pour SSH et le port forwarding
      Je n’ai eu aucun problème non plus pour me connecter à des sessions VNC
    • Je suis surpris que personne n’ait mentionné ServerBox
      ServerBox (F-Droid) est aussi une bonne alternative
    • J’ai acheté JuiceSSH Pro il y a longtemps et je l’utilise encore tous les jours
      Il permet de se connecter en un clic à quelques serveurs, et la synchronisation entre appareils était pratique
      Après avoir testé Termux récemment, ça semble pouvoir le remplacer, mais pour le copier-coller ou la stabilité des connexions lors d’un changement d’application, JuiceSSH reste meilleur
  • Je n’ai pas utilisé la version Pro depuis longtemps, mais aujourd’hui j’utiliserais probablement l’appli Terminal fournie à partir d’Android 15
    C’est un environnement Debian VM complet

    • En revanche, les puces Snapdragon ne prennent pas en charge la fonctionnalité nécessaire, donc cela ne fonctionne que sur les appareils Pixel ou MediaTek
    • Termux n’utilise pas de VM, donc il peut être utilisé de façon plus légère
    • Tu veux peut-être parler de Termux ? Je n’ai pas trouvé d’autre appli Terminal avec un nom similaire
  • Cette affaire est peut-être une bonne occasion de présenter des outils d’automatisation de patchs comme Morphie ou ReVanced

    • Je connais bien ReVanced, mais c’est la première fois que j’entends parler de Morphie
      En cherchant, j’ai trouvé des infos sur morphe.software
      Cela ressemble pour l’instant à un projet dérivé de ReVanced qui ne prend en charge que YouTube
      Pour référence, le site officiel de ReVanced vient à l’origine de Vanced, l’application YouTube sans pub, et a depuis évolué en outil capable de patcher plusieurs applications
  • Je viens de découvrir que tous les plugins de fonctions Pro ont été supprimés du Play Store
    Je pensais autrefois que c’était le meilleur client SSH sur Android, donc c’est vraiment dommage

  • Cette histoire me rappelle à quel point le stockage de clés dans le cloud est risqué
    Je vais supprimer toutes mes clés .ssh et repartir de zéro avec des clés basées sur ed25519

    • Moi aussi, je pensais avoir sauvegardé mes clés SSH dans JuiceSSH, et maintenant je me dis que cela pourrait être risqué
      Si je ne les remplace pas rapidement, cela pourrait tourner au cauchemar de sécurité
  • Je comprends pourquoi ce genre de message est publié, mais je pense qu’il est peut-être trop hâtif dans ses conclusions
    Les développeurs ou l’équipe support peuvent être débordés, et l’application a peut-être été cassée par un bug
    Signaler le bug, demander un remboursement et utiliser une autre application me semblent être de meilleures réactions
    Je suis encore plus inquiet à l’idée que cela alimente une perception négative du sideloading

    • Mais l’application a fonctionné pendant des années presque sans changement, puis soudain le prix a augmenté et les fonctions Pro ont cessé de marcher
      Encaisser l’argent tout en restant totalement silencieux est difficile à justifier
      Ils auraient au moins dû laisser un message du type « nous avons perdu l’accès au code source »
  • J’ai complètement remplacé JuiceSSH par ConnectBot il y a 2 ans
    C’est gratuit et ça fonctionne très bien sans problème
    Lien Play Store

    • Il existe aussi une version F-Droid et le dépôt GitHub
    • Je n’ai utilisé ni JuiceSSH ni Termux, mais ConnectBot est un client SSH stable et fiable