2 điểm bởi GN⁺ 2026-01-28 | 1 bình luận | Chia sẻ qua WhatsApp
  • Trình khách SSH JuiceSSH dành cho Android sẽ không còn nhận diện được các khoản thanh toán của người mua trước đây sau tháng 12/2025
  • Giấy phép của người dùng đã mua từ năm 2019 bị vô hiệu hóa, giá tăng thêm 20 USD, và một số người dùng gặp lỗi không thể kích hoạt ngay cả sau khi mua lại
  • Do đội ngũ hỗ trợ không phản hồi, người dùng xem đây trên thực tế như một “exit scam”
  • Bài viết trình bày từng bước cách decompile ứng dụng và sửa mã smali bằng ApkTool, jadx, jarsigner để khôi phục các tính năng Pro
  • Đồng bộ đám mây và plugin không còn hoạt động, nhưng bài viết giới thiệu đây là cách để dùng lại các tính năng Pro

Tình trạng vấn đề của JuiceSSH

  • JuiceSSH là một trình khách SSH có trên Android, và tác giả đánh giá đây là ứng dụng tốt nhất cho đến tháng 12/2025
  • Giấy phép bản Pro đã mua năm 2019 không còn được nhận diện, và giá đã tăng thêm 20 USD
  • Một số người dùng để lại đánh giá rằng ứng dụng không được kích hoạt ngay cả sau khi mua lại
  • Ứng dụng đã bị gỡ khỏi danh sách trên Google Play, và đội ngũ hỗ trợ không phản hồi
  • Tác giả mô tả tình huống này là một exit scam

Chuẩn bị để khôi phục ứng dụng

  • Để làm cho ứng dụng hoạt động trở lại, cần các công cụ như jadx, ApkTool, jarsigner (kèm OpenJDK)
    • Trên Windows có thể cài bằng choco install openjdk
  • Có thể tải APK của JuiceSSH từ PureAPK, hoặc trích xuất trực tiếp bằng adb
  • Khi tải xuống cần xác minh hash SHA256
    • Hash của phiên bản cuối cùng (3.2.2) là d1ee811bcd82f25aea0bdc568896d82017ee174d9c4631c123a9d9173c748232

Bước decompile

  • Dùng ApkTool để decompile mã DEX của APK
    & "C:\Program Files\OpenJDK\jdk-25\bin\java.exe" -jar ./apktool_2.12.1.jar d juicessh.apk
    

Sửa mã smali

  • Cần chỉnh sửa ba tệp smali

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

  • Hàm public boolean H() thực hiện xác minh mua hàng và chữ ký
  • Gỡ bỏ logic xác minh gốc và sửa để luôn trả về true
    public boolean H() {
        return true;
    }
    

2. smali/com/sonelli/oi0.smali

  • Hàm public static boolean d(Object obj) gọi H() ở trên để kiểm tra tính hợp lệ của giao dịch mua
  • Sửa để luôn trả về true
    public static boolean d(Object obj) {
        return obj.getClass().getName().equals(User.class.getName());
    }
    

3. smali/com/sonelli/pi0.smali

  • Hàm public static void j(Context context, p pVar)phần cốt lõi của xác thực tính năng Pro
  • Ban đầu nó xác minh phiên người dùng và thực hiện xác thực lại khi hết hạn
  • Ở bản đã sửa, nó tạo một đối tượng người dùng giả, đặt thời điểm hết hạn phiên sau 1 năm rồi luôn gọi callback thành công
    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);
    }
    

Recompile và ký

  • Sau khi chỉnh sửa, build lại APK
    & "C:\Program Files\OpenJDK\jdk-25\bin\java.exe" -jar .\apktool_2.12.1.jar b juicessh
    
  • Tệp được tạo nằm tại juicessh\dist\juicessh.apk
  • Tạo keystore để tự ký và ký 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
    

Kết quả và giới hạn

  • Khi cài APK đã ký, có thể bỏ qua cảnh báo bảo mật và dùng lại các tính năng Pro
  • Tính năng đồng bộ đám mây không hoạt động, và plugin cũng không còn được hỗ trợ
  • Tác giả thể hiện đây là sự mất niềm tin vào nhà phát triển, và đánh giá đây là “một chuyện như trò đùa”

1 bình luận

 
GN⁺ 2026-01-28
Ý kiến trên Hacker News
  • Đội ngũ hỗ trợ hoàn toàn im lặng, nên về thực chất trông giống một exit scam
    Chỉ đến bây giờ vấn đề mới bắt đầu được chú ý, trong khi nhiều người dùng đã mất tiền
    Hai nhà phát triển hiện đang giữ vai trò quản lý tại Microsoft và AWS, đồng thời phớt lờ email
    JuiceSSH bị bỏ mặc và kết thúc mà không có hoàn tiền, không mở mã nguồn, thậm chí không có bản cập nhật cuối cùng
    Tôi đã liên hệ bộ phận hỗ trợ Google Play, nhưng chỉ nhận được câu trả lời rằng sau 120 ngày kể từ khi thanh toán thì không thể hoàn tiền
    Liên kết liên quan: Giới thiệu JuiceSSH, Giới thiệu Sonelli, Paul Maddox, Tom Maddox

    • Một số liên kết ở trên báo lỗi CloudFront, nhưng sonelli.com vẫn còn truy cập được
      Vài tháng trước tôi đã kích hoạt lại giấy phép bằng tính năng trong ứng dụng, nhưng không nhớ chính xác là khi nào
  • Tôi đã dùng ứng dụng này nhiều năm rồi, gần đây khi định dùng tính năng forwarding (tính năng Pro) thì nhận được thông báo phải thanh toán lại
    Tôi đã mua từ năm 2014 với giá 5 euro, nhưng lần này lại trả thêm 30 euro nữa, và ngay sau đó toàn bộ ứng dụng bị khóa
    Tôi đã gửi email nhiều lần nhưng không nhận được bất kỳ phản hồi nào

    • Nếu vẫn còn kịp thì tôi khuyên nên yêu cầu Google hoàn tiền
      Theo chính sách hoàn tiền của Google Play, thông thường chỉ được trong vòng 48 giờ, nhưng trường hợp “giao dịch mua hoàn toàn không hoạt động” có thể là ngoại lệ
    • Tôi không hiểu vì sao lại phải trả tiền cho kiểu tính năng đó
      Termux là một Linux nhỏ gọn trong túi, nên có đủ mọi chức năng liên quan đến SSH
  • Tôi không đồng ý với câu “JuiceSSH là tốt nhất trên Android”, nhưng từ trước đến nay tôi chỉ dùng tổ hợp Termux + Unexpected Keyboard
    Tôi khó hình dung ứng dụng nào khác có thể cải thiện trải nghiệm này
    Tôi tò mò không biết JuiceSSH có gì hay đến vậy

    • Cuộc thảo luận hiện tại là về việc JuiceSSH không còn hoạt động và đã mất hỗ trợ. Chắc đó là câu trả lời rồi
    • Trước đây tôi từng dùng JuiceSSH Pro miễn phí một thời gian ngắn, nhưng giờ thấy Termux tốt hơn nhiều
      Có thể dùng khóa SSH, cấu hình alias, kết nối multi-hop, và hỗ trợ phím tắt của AnySoftKeyboard rất tốt nên làm việc hiệu quả
      Tất cả đều có thể cài từ F-Droid
    • Tôi chưa dùng cả JuiceSSH lẫn Termux, nhưng đã dùng ConnectBot rất ổn cho SSH và port forwarding
      Kết nối các phiên VNC cũng không có vấn đề gì
    • Tôi ngạc nhiên vì không ai nhắc đến ServerBox
      ServerBox (F-Droid) cũng là một lựa chọn thay thế khá ổn
    • Tôi đã mua JuiceSSH Pro từ rất lâu và đến giờ vẫn dùng hằng ngày
      Tôi có thể kết nối một số máy chủ chỉ với một cú nhấp, và tính năng đồng bộ hóa giữa các thiết bị cũng rất tiện
      Gần đây thử dùng Termux thì thấy có vẻ thay thế được, nhưng khả năng giữ kết nối của JuiceSSH khi sao chép/dán hoặc chuyển ứng dụng vẫn tốt hơn
  • Tôi đã không dùng bản Pro từ lâu, nhưng nếu là bây giờ thì có lẽ sẽ dùng ứng dụng Terminal được cung cấp từ Android 15
    Đó là một môi trường Debian VM hoàn chỉnh

    • Tuy nhiên, chip Snapdragon không hỗ trợ tính năng cần thiết, nên chỉ dùng được trên thiết bị Pixel hoặc MediaTek
    • Termux không dùng VM nên có thể dùng nhẹ hơn
    • Hay là bạn đang nói đến Termux? Tôi không tìm thấy ứng dụng Terminal nào khác có tên tương tự
  • Vụ việc lần này có thể là dịp tốt để giới thiệu các công cụ tự động hóa vá lỗi như Morphie hay ReVanced

    • Tôi biết khá rõ về ReVanced, nhưng đây là lần đầu nghe đến Morphie
      Tìm thử thì thấy có thể xem tại morphe.software
      Hiện tại có vẻ là một dự án phái sinh của ReVanced, vốn chỉ hỗ trợ YouTube
      Nhân tiện, trang chính thức của ReVanced ban đầu xuất phát từ ứng dụng YouTube không quảng cáo (Vanced), và giờ đã phát triển thành công cụ có thể vá nhiều ứng dụng khác nhau
  • Tôi vừa phát hiện tất cả plugin tính năng Pro đã bị xóa khỏi Play Store
    Trước đây tôi từng nghĩ đây là ứng dụng SSH tốt nhất trên Android, nên thật sự rất đáng tiếc

  • Chuyện lần này khiến tôi một lần nữa nhận ra rủi ro của việc lưu khóa trên đám mây
    Tôi định xóa toàn bộ khóa trong .ssh rồi thiết lập lại mới dựa trên ed25519

    • Tôi cũng tưởng là mình đã sao lưu khóa SSH vào JuiceSSH, nhưng giờ nhìn lại thì có thể khá nguy hiểm
      Nếu không thay khóa sớm thì có thể thành cơn ác mộng về bảo mật
  • Tôi hiểu vì sao lại có những bài viết như thế này, nhưng cũng nghĩ có thể đây là kết luận quá vội vàng
    Nhà phát triển hoặc đội ngũ hỗ trợ có thể đang quá tải nên phản hồi chậm, hoặc ứng dụng có thể bị lỗi nghiêm trọng
    Có lẽ báo lỗi, yêu cầu hoàn tiền, và dùng ứng dụng thay thế sẽ là cách phản ứng tốt hơn
    Tôi còn lo hơn nếu chuyện này lan sang nhận thức tiêu cực về sideloading

    • Nhưng ứng dụng này đã hoạt động ổn định suốt nhiều năm gần như không thay đổi, rồi đột nhiên giá tăng và tính năng Pro ngừng hoạt động
      Hoàn toàn im lặng mà vẫn thu tiền thì rất khó chấp nhận
      Ít nhất họ cũng nên để lại một câu như “chúng tôi đã mất quyền truy cập vào mã nguồn”
  • Tôi đã thay JuiceSSH hoàn toàn bằng ConnectBot từ 2 năm trước
    Miễn phí và hoạt động rất ổn không vấn đề gì
    Liên kết Play Store

    • Cũng có bản F-Droidkho GitHub
    • Tôi chưa dùng JuiceSSH hay Termux, nhưng ConnectBot là một ứng dụng SSH ổn định và đáng tin cậy