2 pontos por GN⁺ 2026-01-28 | 1 comentários | Compartilhar no WhatsApp
  • O cliente SSH JuiceSSH para Android deixará de reconhecer os pagamentos de compradores antigos após dezembro de 2025
  • A licença de usuários que compraram em 2019 foi invalidada, o preço aumentou em 20 dólares e alguns usuários relatam que o app não é ativado nem mesmo após recomprá-lo
  • Como a equipe de suporte não responde, os usuários passaram a enxergar isso na prática como um "exit scam"
  • O texto apresenta passo a passo como decompilar o app e modificar código smali usando ApkTool, jadx, jarsigner e outras ferramentas para restaurar os recursos Pro
  • A sincronização em nuvem e os plugins não funcionam mais, mas é apresentado como uma forma de voltar a usar os recursos Pro

A situação problemática do JuiceSSH

  • O JuiceSSH é um cliente SSH disponível para Android, e o autor o considerava o melhor app da categoria até dezembro de 2025
  • A licença da versão Pro comprada em 2019 não é mais reconhecida, e o preço subiu 20 dólares
  • Alguns usuários deixaram avaliações dizendo que o app não é ativado nem depois de recomprado
  • O app foi removido da listagem no Google Play, e a equipe de suporte não responde
  • Diante dessa situação, o autor a descreve como um exit scam

Preparação para restaurar o app

  • Para fazer o app voltar a funcionar, são necessárias ferramentas como jadx, ApkTool e jarsigner (incluído no OpenJDK)
    • No Windows, é possível instalar com choco install openjdk
  • O APK do JuiceSSH pode ser baixado do PureAPK ou extraído diretamente com adb
  • Ao baixar, é necessário verificar o hash SHA256
    • O hash da última versão (3.2.2) é d1ee811bcd82f25aea0bdc568896d82017ee174d9c4631c123a9d9173c748232

Etapa de decompilação

  • Usar o ApkTool para decompilar o código DEX do APK
    & "C:\Program Files\OpenJDK\jdk-25\bin\java.exe" -jar ./apktool_2.12.1.jar d juicessh.apk
    

Modificação do código smali

  • É necessário editar três arquivos smali

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

  • A função public boolean H() faz a verificação de compra e assinatura
  • Remover a lógica original de validação e alterá-la para sempre retornar true
    public boolean H() {
        return true;
    }
    

2. smali/com/sonelli/oi0.smali

  • A função public static boolean d(Object obj) chama o H() acima para verificar a validade da compra
  • Alterá-la para sempre retornar true
    public static boolean d(Object obj) {
        return obj.getClass().getName().equals(User.class.getName());
    }
    

3. smali/com/sonelli/pi0.smali

  • A função public static void j(Context context, p pVar) é a parte central da autenticação dos recursos Pro
  • Originalmente, ela valida a sessão do usuário e refaz a autenticação quando expira
  • Na versão modificada, ela cria um objeto de usuário falso, define a expiração da sessão para 1 ano no futuro e sempre chama o callback de sucesso
    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);
    }
    

Recompilação e assinatura

  • Depois das alterações, gerar novamente o APK
    & "C:\Program Files\OpenJDK\jdk-25\bin\java.exe" -jar .\\apktool_2.12.1.jar b juicessh
    
  • O arquivo gerado fica em juicessh\dist\juicessh.apk
  • Criar um keystore para assinatura própria e assinar o 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
    

Resultado e limitações

  • Ao instalar o APK assinado, é possível ignorar o aviso de segurança e voltar a usar os recursos Pro
  • A sincronização em nuvem não funciona, e os plugins também não são mais suportados
  • O autor descreve essa situação como uma perda de confiança nos desenvolvedores e a considera algo “absurdo”

1 comentários

 
GN⁺ 2026-01-28
Comentários do Hacker News
  • A equipe de suporte está completamente em silêncio, então isso na prática parece um exit scam
    Só agora a questão começou a receber atenção, mesmo com muitos usuários já tendo perdido dinheiro
    Os dois desenvolvedores atualmente ocupam cargos de gestão na Microsoft e na AWS, respectivamente, e estão ignorando e-mails
    O JuiceSSH foi abandonado, sem reembolso, sem abertura do código-fonte e sem nem mesmo uma atualização final
    Entrei em contato com o suporte do Google Play, mas só recebi a resposta de que, após 120 dias da compra, reembolso não é possível
    Links relacionados: Sobre o JuiceSSH, Sobre a Sonelli, Paul Maddox, Tom Maddox

    • Alguns dos links acima dão erro do CloudFront, mas sonelli.com ainda está acessível
      Reativei minha licença há alguns meses usando uma função dentro do app, mas não lembro exatamente quando foi
  • Uso esse app há anos, mas recentemente, ao tentar usar o recurso de forwarding (função Pro), recebi uma mensagem pedindo para pagar de novo
    Eu já tinha comprado em 2014 por 5 euros, mas desta vez paguei mais 30 euros, e imediatamente o app inteiro ficou bloqueado
    Enviei vários e-mails, mas não obtive resposta alguma

    • Se ainda der tempo, recomendo pedir reembolso ao Google
      Segundo a política de reembolso do Google Play, só é possível em até 48 horas, mas “a compra não funciona de jeito nenhum” pode ser uma exceção
    • Não entendo por que pagar por um recurso desses
      O Termux é um pequeno Linux no bolso, então já tem todos os recursos relacionados a SSH
  • Não concordo com a ideia de que “o JuiceSSH é o melhor no Android”, mas eu sempre usei só a combinação Termux + Unexpected Keyboard
    Não consigo imaginar como outro app poderia melhorar essa experiência
    Fico curioso para saber por que o JuiceSSH é tão bom assim

    • A discussão aqui é sobre o fato de o JuiceSSH não funcionar mais e estar sem suporte. Acho que essa é a resposta
    • Usei o JuiceSSH Pro de graça por um breve período no passado, mas hoje sinto que o Termux é muito melhor
      Dá para configurar chaves SSH, aliases e conexões multi-hop, e o suporte a atalhos do AnySoftKeyboard é ótimo para produtividade
      Tudo pode ser instalado pelo F-Droid
    • Nunca usei nem JuiceSSH nem Termux, mas sempre usei ConnectBot com sucesso para SSH e port forwarding
      Também não tive problemas para conectar sessões VNC
    • Me surpreende que ninguém tenha mencionado o ServerBox
      O ServerBox (F-Droid) também é uma boa alternativa
    • Comprei o JuiceSSH Pro há muito tempo e ainda uso diariamente
      Era prático poder acessar alguns servidores com um clique e ter sincronização entre dispositivos
      Testei o Termux recentemente e ele parece capaz de substituir, mas o JuiceSSH ainda é melhor em copiar e colar e em manter a conexão ao alternar entre apps
  • Faz tempo que não uso a versão Pro, mas hoje eu provavelmente usaria o app Terminal disponível a partir do Android 15
    É um ambiente completo de VM Debian

    • Só que os chips Snapdragon não suportam os recursos necessários, então isso só funciona em dispositivos Pixel ou MediaTek
    • O Termux pode ser usado de forma mais leve porque não usa VM
    • Será que você está falando do Termux? Não consegui achar outro app Terminal com nome parecido
  • Essa situação talvez seja uma boa oportunidade para apresentar ferramentas de automação de patch como Morphie ou ReVanced

    • Conheço bem o ReVanced, mas nunca tinha ouvido falar do Morphie
      Pesquisei e vi que dá para conferir em morphe.software
      No momento, parece ser um projeto derivado do ReVanced que só oferece suporte ao YouTube
      Como referência, o site oficial do ReVanced mostra que ele começou a partir do app de YouTube sem anúncios (Vanced) e hoje evoluiu para uma ferramenta que consegue aplicar patch em vários apps
  • Acabei de perceber que todos os plugins de funções Pro foram removidos da Play Store
    Antes eu achava que era o melhor cliente SSH do Android, então isso é realmente lamentável

  • Essa história me fez lembrar novamente dos riscos de armazenar chaves na nuvem
    Vou apagar todas as chaves em .ssh e reconfigurar tudo com base em ed25519

    • Eu também achava que tinha feito backup das minhas chaves SSH no JuiceSSH, mas agora vejo que isso pode ser perigoso
      Se eu não trocar as chaves logo, isso pode virar um pesadelo de segurança
  • Entendo por que esse tipo de post aparece, mas também acho que pode ser uma conclusão precipitada
    Talvez os desenvolvedores ou a equipe de suporte estejam sobrecarregados e demorando para responder, ou talvez o app tenha quebrado por causa de algum bug
    Reportar o bug, pedir reembolso e usar um app alternativo me parecem respostas melhores
    O que mais me preocupa é isso acabar reforçando uma visão negativa sobre sideloading

    • Mas o app funcionou bem por anos com quase nenhuma mudança, e de repente o preço subiu e as funções Pro pararam de funcionar
      Fica difícil aceitar que continuem cobrando enquanto permanecem em silêncio total
      No mínimo, deveriam ter deixado uma mensagem como “perdemos o acesso ao código-fonte”
  • Há 2 anos substituí totalmente o JuiceSSH pelo ConnectBot
    É gratuito e funciona bem sem problemas
    Link da Play Store