- Ứng dụng syncthing-android chính thức sẽ ngừng hoạt động, và bản phát hành cuối cùng trên GitHub và F-Droid dự kiến đi kèm với phiên bản Syncthing tháng 12/2024
- Lý do dừng lại là do việc phân phối qua Google Play đã trở nên ở mức “khó hoặc gần như không thể”, đồng thời không còn bảo trì tích cực
- Việc bị chặn phát hành trên Play Store không phải là nguyên nhân duy nhất; để hồi sinh hoặc tiếp tục duy trì ứng dụng, cần có ai đó đảm nhận bảo trì dài hạn
- Điều này không có nghĩa Syncthing sẽ biến mất khỏi Android, nên các phương án như tiếp tục dùng ứng dụng hiện tại, Syncthing Fork, hoặc chạy qua Termux đang được thảo luận
- Ứng dụng chính thức cuối cùng có thể vẫn hoạt động thêm một thời gian, nhưng người dùng cần phiên bản Syncthing mới hơn nên cân nhắc xuất cấu hình và chuyển sang Fork
Kết thúc ứng dụng syncthing-android chính thức
- Ứng dụng syncthing-android chính thức đã được quyết định cho nghỉ hưu, và bản phát hành cuối cùng trên GitHub và F-Droid sẽ đi kèm với phiên bản Syncthing tháng 12/2024
- Có hai nguyên nhân kết hợp dẫn đến việc dừng lại
- Google đã khiến việc phân phối qua Play trở nên ở mức “khó hoặc gần như không thể”
- Ứng dụng không còn được bảo trì tích cực
- Ứng dụng đã lâu không có phát triển đáng kể, và việc phát hành trên Play cũng ngày càng khó, làm giảm lợi ích và động lực để tiếp tục đầu tư bảo trì
- Dự án đã gửi lời cảm ơn tới những người đóng góp cho ứng dụng, và nhiều người dùng cũng bày tỏ sự biết ơn cùng tiếc nuối về việc bảo trì chấm dứt
Vấn đề phân phối trên Play Store và giới hạn bảo trì
- Trong cộng đồng có ý kiến cho rằng chính sách của Play Store đang vận hành theo hướng bất lợi cho các ứng dụng hợp pháp cần quyền nâng cao
- Những ứng dụng cần quyền nâng cao ngày càng khó được đưa lên Store
- Cũng có chỉ trích rằng các ứng dụng thu thập dữ liệu người dùng hoặc gần như spyware vẫn tồn tại mà không bị hạn chế đáng kể
- Cũng có đề xuất tiếp tục duy trì thêm vài bản phát hành trên F-Droid kèm hướng dẫn chuyển đổi hoặc tài liệu
- Phía dự án nhấn mạnh rằng việc không thể phát hành qua kênh phân phối phổ biến chỉ là một yếu tố làm giảm thêm động lực, chứ không phải nguyên nhân duy nhất
- Việc hồi sinh hay duy trì ứng dụng chỉ có thể xảy ra nếu có người sẵn sàng đầu tư nỗ lực dài hạn, và ứng dụng đã ở trạng thái “life support” trong thời gian dài
Cách tiếp tục dùng Syncthing trên Android
- Quyết định lần này chỉ giới hạn ở việc ngừng ứng dụng Android chính thức vốn đã gần như ở trạng thái ngủ đông suốt thời gian dài
- Điều này không có nghĩa bản thân Syncthing sẽ không còn dùng được trên Android; người khác vẫn có thể tiếp tục phát hành ứng dụng Syncthing cho Android
- Có lo ngại rằng Android đang ngày càng đi theo hướng giống iOS hơn và sẽ trở nên khó khăn hơn, nhưng cũng có nhắc đến việc gần đây đã xuất hiện một ứng dụng Syncthing mã nguồn mở mới cho iOS
- Người đưa ra thông báo chính thức cũng cho biết bản thân là người dùng Syncthing trên Android, và cá nhân hy vọng nó vẫn có thể được sử dụng lâu dài trên Android
Các lựa chọn thay thế được thảo luận: Fork và Termux
- Một phương án thay thế trực tiếp được nhắc đến là Catfriend1/syncthing-android
- Phiên bản cuối cùng của ứng dụng chính thức hiện tại sẽ không còn được cập nhật, nhưng nhiều khả năng vẫn tiếp tục hoạt động tốt trong một thời gian
- Nếu cần phiên bản Syncthing mới hơn, có thể chuyển sang Syncthing Fork
- Có thể xuất cấu hình hiện tại từ phần cài đặt của ứng dụng chính thức
- Có thể nhập vào Fork
- Ở góc nhìn của Syncthing, hai ứng dụng này tương thích với nhau
- Cách chạy Syncthing trong Termux cũng được thảo luận như một lựa chọn thay thế
- Chỉ cần xuất hoặc sao chép tệp và điều chỉnh một phần cấu hình là có thể hoạt động
- Nhược điểm là nếu không muốn điện thoại luôn thức, người dùng phải tự khởi động và dừng thủ công
- Cũng có ý kiến cho rằng nếu bật tối ưu pin cho ứng dụng Termux trong phần cài đặt Android, nó có thể bị buộc vào trạng thái sleep trong chế độ doze của Android
- Có thể truy cập Web GUI tại
http://127.0.0.1:8384 bằng trình duyệt cục bộ, và đây cũng là cách có thể dùng với ứng dụng Syncthing hiện tại
Ví dụ cấu hình Termux + Tasker
- Một người dùng xác nhận tổ hợp Syncthing + Tasker + Termux là một phương án thay thế hoạt động được
- Cấu hình cài đặt như sau
- Cài Tasker từ Play Store
- Cài Termux và
termux:tasker từ F-Droid
- Các quyền bổ sung như sau
- Tasker:
additional → run commands in termux environment
- Termux:
Appear on top
- Lệnh cài Syncthing trong Termux như sau
termux-setup-storage
apt install syncthing
- Tạo tệp
~/.termux/tasker/start-syncthing-for-5minutes.sh và cấu hình để chạy Syncthing trong 5 phút
#!/usr/bin/bash
timeout -s KILL 5m syncthing
- Trong Tasker, cấu hình chạy script đó qua
Plugin→Termux:Tasker mỗi 1 giờ từ 00:00 đến 23:59
start-syncthing-for-5minutes.sh
- terminal session:
X
- Nếu tắt tùy chọn Start browser trong GUI thì trình duyệt sẽ không tự động mở khi khởi động
- Sau khi xuất cấu hình từ ứng dụng Android cũ, có thể sao chép vào
~/.local/state/syncthing để tiếp tục dùng cấu hình cũ thay vì cài mới
- Sau đó có thể xóa username/password dùng để truy cập GUI trong
config.xml, rồi thiết lập lại nếu cần
2 bình luận
Syncthing - mã nguồn mở đồng bộ hóa tệp liên tục
Ý kiến trên Hacker News
Các cuộc thảo luận với Google không đem lại kết quả gì. Những thay đổi mà Google yêu cầu để được cấp quyền quá mơ hồ, nên rất khó biết phải phản hồi thế nào và dù làm gì cũng không rõ có thành công hay không.
Sau đó còn phát sinh thêm các việc riêng rẽ để tiếp tục ở lại Play, như xác minh nhà phát triển, mức API mục tiêu, và cuối cùng tác giả nhận ra rằng mình không còn động lực và thời gian để tiếp tục trò chơi này nữa.
Trông giống một người ở công ty nổi đóa, khăng khăng cách của mình tốt hơn thay vì sửa các bình luận trong PR. Apple cũng sẽ không cho phép ghi vào thư mục tùy ý chỉ vì ObjC/Swift API khó dùng.
Trước đây tôi từng làm phát triển Android chuyên sâu ở Dropbox vào thập niên 2010, cũng biết ở mức nhất định về API hệ thống tệp Android cũ, nhưng tôi đã chủ động chuyển sang mảng trải nghiệm nhà phát triển/backend và rời Android. Hầu hết các đồng nghiệp Android cũ của tôi cũng tương tự.
Các quy trình phải liên tục vượt qua và những thay đổi API để giữ cho ứng dụng tiếp tục hoạt động quá đau đớn. Năm 2014, khi Storage Access Framework “bảo mật” mới ra mắt, tôi phát hiện một lỗ hổng duyệt thư mục rất đơn giản: chỉ cần truyền
"../../"trong tên tệp là có thể ghi vào thư mục riêng tư của bất kỳ ứng dụng nào. Nó lộ rõ ngay khi tôi lướt qua mã nguồn AOSP để hiểu SAF.Trong thời gian dài, Android cũng gán bit thực thi toàn cục cho thư mục ứng dụng, khiến một ứng dụng độc hại có thể tạo hard link theo tên tới tệp của ứng dụng khác, rồi đưa lại cho ứng dụng đó để thực hiện kiểu tấn công đại diện nhầm lẫn nhằm truy cập nội dung tệp.
Việc Android tăng cường bảo mật là điều đáng mừng, nhưng nó được xây trên một nền tảng quá lỏng lẻo, và vô số ứng dụng đã dùng hoặc lạm dụng nền tảng đó. Vì vậy, khi mức khóa chặt ngày càng tăng, các nhà phát triển phải thích nghi với những lần phá vỡ tương thích lớn liên tiếp có lẽ sẽ rời bỏ hệ sinh thái.
[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
Tôi nhớ tầm nhìn của webOS. Không có nghĩa là tôi nhớ chính phần triển khai webOS của 14 năm trước.
Có một fork Syncthing cho Android đang được bảo trì tích cực, và dù chỉ là một chỉ số riêng lẻ, nó đã nhận được 1,3K sao.
[1] https://github.com/Catfriend1/syncthing-android
Nhìn vào thread gốc, tác giả nói rằng việc đăng lên Google Play rất khó.
Họ nói “lý do là Google đang khiến việc phát hành trên Play trở nên khó hoặc gần như bất khả thi”, vậy có ai giải thích thêm chuyện gì đang xảy ra ở đây không?
[1]: https://forum.syncthing.net/t/discontinuing-syncthing-androi...
API này chỉ dành cho Java, còn phần lõi Syncthing không được viết bằng Java, nên có lẽ họ phải viết mã kết nối JNI để gọi Android khi đọc và ghi tệp. SAF cũng khá phiền vì nó gán URI cho từng tệp và phải liên tục truy vấn cấu trúc thư mục; không thể nối đường dẫn như với tệp thông thường.
Tác giả không muốn làm việc đó và cố thuyết phục Google tiếp tục cho phép truy cập trực tiếp vào mọi tệp, ảnh, tài liệu, nhưng Google đã từ chối. “Khó khăn” ở đây có vẻ nghĩa là nếu không tuân thủ hướng dẫn thì việc đăng lên Play thực sự rất khó. Cũng giống App Store thôi.
Ứng dụng của tôi có khi được phê duyệt quyền ở một bản phát hành nhỏ, rồi tuần sau bị từ chối dù chỉ có thay đổi rất nhỏ trong ứng dụng. Khi liên hệ bộ phận hỗ trợ Google Play, câu trả lời luôn mơ hồ, rập khuôn và lặp lại. Không thể biết liệu bản cập nhật ứng dụng có được duyệt hay không, nên đây là một cách rất tệ để phát triển bất cứ thứ gì.
Cuối cùng, cấu trúc này chỉ trừng phạt các nhà phát triển nhỏ, ít ngân sách, thiếu thời gian, và thúc đẩy sự hợp nhất quanh các công ty lớn. Các công ty lớn có thể tạo ảnh hưởng ở mức nào đó, có sẵn độ tin cậy mặc định, và có ngân sách cũng như thời gian để triển khai những yêu cầu vô lý, đôi khi nặng nề. Kết quả là trông như nó củng cố vị thế thị trường và tạo ra những người tham gia gắn bó để chống đỡ Play Store trong nhiều thập kỷ tới.
Tôi đang dùng cái này để đưa cơ sở dữ liệu KeePass lên điện thoại, giờ thấy khó xử quá. Có ai cùng cảnh ngộ không?
Tôi khuyên nên kết nối bằng SFTP tới một máy, rồi trên máy đó chạy Syncthing với các thiết bị còn lại.
Với những người dùng đủ biết và đủ muốn dùng Syncthing, có lẽ việc dựa vào F-Droid làm nguồn APK cũng hoàn toàn khả thi. Chỉ dùng nó làm kênh phân phối thôi thì chưa đủ sao?
Tôi ghét điện toán di động quá.
Tôi sẽ cất APK ở nơi an toàn cùng với các đĩa mềm Turbo Pascal. Syncthing cho Android từng rất thiết yếu để quản lý bộ sưu tập bản nhạc của tôi.
Có ai biết ứng dụng Syncthing Android hiện tại sẽ còn tiếp tục hoạt động trong bao lâu không?