- Samsung Magician cho macOS được cài để thiết lập mã hóa phần cứng, nhưng do không hoạt động bình thường nên đã thử gỡ bỏ và phát hiện không hề có nút xóa
- Khi chạy script dọn dẹp bên trong ứng dụng, phát sinh hơn 500 lỗi và phần lớn tệp vẫn còn do không đổi được quyền sở hữu tệp
- Đã xóa thủ công hàng chục thư mục và tệp, nhưng 8 tệp kernel extension vẫn còn do được SIP bảo vệ, nên phải vào chế độ khôi phục
- Để tắt rồi bật lại SIP, cần khởi động vào chế độ khôi phục hai lần, phải trải qua quy trình tổng cộng 18 bước mới có thể gỡ sạch hoàn toàn
- Dù chỉ là một tiện ích đĩa đơn giản, việc gỡ bỏ lại cực kỳ khó khăn do độ phức tạp quá mức và các thành phần không cần thiết, mang dáng dấp của bloatware
Các vấn đề trong quá trình gỡ Samsung Magician
- Samsung Magician được cài để thiết lập tính năng mã hóa phần cứng cho SSD gắn ngoài, nhưng vì không hoạt động đúng nên cần phải gỡ bỏ
- Bản macOS hoàn toàn không có nút xóa hay tính năng kéo để xóa, thay vào đó có script CleanupMagician_Admin_Mac.sh nằm sâu bên trong ứng dụng
- Khi chạy script này, xuất hiện hơn 500 lỗi
chown: Operation not permitted, khiến việc đổi quyền sở hữu tệp thất bại và không thể xóa
- Script không xử lý lỗi mà cứ lặp qua toàn bộ tệp rồi kết thúc
- Kết quả là phần lớn tệp vẫn còn nguyên trong hệ thống
Thử xóa thủ công
- Vì vậy đã dùng lệnh
rm -rf để thử xóa trực tiếp các thư mục và tệp liên quan đến Samsung
- Đã xóa thủ công ở nhiều đường dẫn như Application Support, Preferences, Caches, LaunchAgents, LaunchDaemons, Extensions, Logs...
- Sau đó kiểm tra bằng lệnh
find / -iname "*samsung*magician*", kết quả cho thấy vẫn còn 27 tệp sót lại
- Tệp kernel extension trong
/Library/StagedExtensions/ và /System/Volumes/Data/Library/StagedExtensions/
- Tệp biên nhận gói cài đặt trong
/private/var/db/receipts/
- Tệp tiến trình cache trong
/private/var/folders/.../C/
- Danh sách Crash Reporter và thư mục Samsung Magician trong Application Support, v.v.
- Dù đã lặp lại lệnh
sudo rm -rf, 8 tệp kernel extension vẫn không thể bị xóa
Quy trình chế độ khôi phục để xóa tệp kernel extension
- Các tệp còn lại được SIP (System Integrity Protection) bảo vệ nên không thể xóa trong chế độ thông thường
- Tắt máy Mac rồi khởi động vào chế độ khôi phục, dùng lệnh
csrutil disable để tắt SIP rồi khởi động lại
- Sau khi xóa các tệp kernel extension, lại vào chế độ khôi phục để dùng lệnh
csrutil enable bật lại SIP
- Trong quá trình này cần khởi động vào chế độ khôi phục 2 lần, tổng cộng 18 bước
- Chỉ để xóa bốn tệp kernel extension và các bản sao của chúng mà vẫn phải khởi động lại hai lần và vào chế độ khôi phục
Cấu trúc bên trong Samsung Magician phức tạp quá mức
- Bên trong chương trình có cả ảnh động PNG theo từng khung hình
- Để hiển thị trạng thái “Health: Good”, ứng dụng dùng 150 tệp PNG
- Ngoài ra còn có các bộ PNG riêng cho “Health: Critical”, giao diện “Gamer”, cũng như hoạt ảnh tiến trình và thành công của nhận diện vân tay
- Kết quả là một tiện ích đĩa đơn giản lại chứa hàng trăm tệp PNG
- Các thành phần bổ sung còn bao gồm
- Electron framework: nhúng toàn bộ Chromium engine chỉ để hiển thị biểu đồ tròn dung lượng đĩa
- Squirrel framework: bao gồm tính năng tự động cập nhật
- ReactiveObjC, Mantle: framework cho lập trình phản ứng
- Font riêng của Samsung với nhiều độ đậm (200~800)
- Các tệp bản địa hóa đa ngôn ngữ (tiếng Hàn, tiếng Nhật, tiếng Trung, tiếng Đức, tiếng Pháp, tiếng Ý, tiếng Nga, tiếng Bồ Đào Nha, tiếng Tây Ban Nha, tiếng Ả Rập, tiếng Hindi...)
- Ảnh banner quảng cáo (
banner_1.jpg~banner_5.jpg)
- Tài liệu trợ giúp bằng 10 ngôn ngữ và hơn 40 ảnh chụp màn hình
- Vì cấu trúc như vậy, chương trình bị đánh giá là một dạng phần mềm phình to (bloatware) với gánh nặng và độ phức tạp không cần thiết
Tóm tắt 18 bước để gỡ sạch Samsung Magician
- Tìm nút xóa trong ứng dụng (không tồn tại)
- Phát hiện script dọn dẹp trong app bundle
- Chạy script, phát sinh 500 lỗi và xóa thất bại
4~14. Lặp lại việc xóa thủ công ở Application Support, Preferences, Caches, LaunchAgents, LaunchDaemons, Extensions, Receipts, Folders...
- Dùng lệnh
find để xác nhận 8 tệp được SIP bảo vệ
- Tắt Mac rồi khởi động vào chế độ khôi phục, tắt SIP
- Xóa các tệp kernel extension được bảo vệ
- Khởi động lại vào chế độ khôi phục, bật lại SIP
- Tổng thể cần 18 bước và 2 lần khởi động lại vào chế độ khôi phục, cho thấy một quy trình quá mức chỉ để gỡ một tiện ích đĩa đơn giản
- Kết quả là Samsung Magician bị xem là phần mềm có cấu trúc phức tạp không cần thiết và cực kỳ khó gỡ bỏ
1 bình luận
Ý kiến trên Hacker News
Vào thập niên 90, đã từng phát triển một tiện ích đĩa tên là PartitionMagic
Đây là một trong những công cụ đầu tiên có thể điều chỉnh phân vùng một cách động
Tôi nghĩ có lẽ tên sản phẩm của Samsung cũng được lấy cảm hứng từ đây
Tôi nhớ thời mà cài đặt chỉ là
copy . to /, còn gỡ bỏ chỉ làdelete /Tôi sẽ tránh những ứng dụng như vậy và tìm phương án thay thế từ công ty thực sự hiểu Mac
Trước đây trình cài đặt Chrome từng yêu cầu quyền quản trị rồi khiến hệ thống không thể khởi động
Tiện ích hệ thống hay driver là ngoại lệ, nhưng PartitionMagic thật sự rất tuyệt
Tôi nghĩ đáng để xem xét việc văn hóa phản hồi tiêu cực trong tổ chức có dẫn đến vấn đề tích hợp công nghệ hay không
“Quy trình cài đặt 18 bước” rõ ràng là một vấn đề, và có vẻ là chuyện Samsung nên ưu tiên xử lý nội bộ
Cũng đùa thêm rằng cái tên “Magician” dường như đang ẩn dụ cho văn hóa doanh nghiệp của Samsung
Đó thực sự là một chương trình tuyệt vời
Nó ổn định đến khó tin và giúp tiết kiệm rất nhiều thời gian
Trên Mac, tôi chỉ định xóa nó thôi mà phải vào chế độ khôi phục →
csrutil disable→ khởi động lại → xóa kernel extension → vào lại chế độ khôi phục →csrutil enable→ khởi động lại lần nữa…Chỉ để xóa vài tệp rác mà phải trải qua quy trình như vậy
Đây hoàn toàn là trách nhiệm của Apple. Chính Apple đã biến ngay cả quyền root cũng không còn là quyền quản trị đầy đủ
Mua thiết bị Apple thì không sao, nhưng họ chưa bao giờ hứa hẹn một hệ thống mở
Kể cả khi một bản cập nhật làm biến mất tính năng nào đó, đó không phải là quyền mà chỉ là thứ trước đây được cho phép
Phần lớn power user vẫn để nó bật mặc định vì lý do bảo mật
Root (uid=0) không nên có thể tùy ý sửa các phần sâu trong hệ thống
Những thay đổi ở cấp kernel không nên làm được bằng quyền thông thường hằng ngày, và đó là cốt lõi của System Integrity Protection
Nếu có cách tốt hơn thì hãy đề xuất với Apple, nhưng không nên phớt lờ các lớp bảo vệ kiểu này
Trước đây tôi từng phân phối một sản phẩm cho macOS, và khi gỡ cài đặt thì phát sinh lỗi Thùng rác
Lúc đó Finder chưa có extension API, nên để thêm menu thì phải reverse engineer Finder và chèn mã vào
Kết quả là Finder cứ giữ app bundle ở trạng thái đang mở, khiến không thể xóa trước khi khởi động lại
Về sau khi Finder extension API xuất hiện thì vấn đề được giải quyết, nhưng macOS cũng có độ phức tạp nội bộ riêng
Việc macOS không có API tương ứng khi đó có lẽ lại là một quyết định thiết kế tốt
macOS thì đầy rẫy các popup xin quyền cho camera hay chạy nền,
nhưng lại không ngăn được các đối tác công nghiệp rải những tệp không thể xóa khắp hệ thống
Kết quả là người dùng kiểm soát ít hơn, còn Apple/MS/Google thì có nhiều quyền hơn
.pkgtừng có tùy chọn xóa qua dòng lệnh, nhưng giờ đã biến mấtDạo này tôi thích các công cụ gỡ bỏ mã nguồn mở như PearCleaner hơn
Có lúc còn hiện những câu chữ kỳ quặc như “Ngôn ngữ lập trình đang yêu cầu quyền truy cập”
Khoảng 10 năm trước tôi đã mua một chiếc Samsung TV giá rẻ, và nó bị độ trễ âm thanh biến thiên
Có ngày thì đồng bộ chuẩn, có ngày lại chậm đến vài trăm ms
Tôi không thể tin họ lại bán một sản phẩm như vậy, nên quyết định sẽ không bao giờ mua đồ Samsung nữa
Đọc thì buồn cười nhưng thật ra là một thực tế bi thảm
Có lẽ trong tương lai tình trạng phình to phần mềm (bloat) sẽ còn nặng hơn nữa
Tôi không hiểu vì sao các tập đoàn lớn lại ám ảnh với công nghệ web đến mức ngay cả tiện ích đĩa cũng giao cho lập trình viên web làm
Họ tuyển người dựa trên từ khóa web stack đang hot hơn là năng lực kỹ thuật thực sự
Kết quả là chỉ toàn lập trình viên React, còn những người thực sự biết làm phần mềm phù hợp với mục đích thì không có
Cá nhân tôi vẫn tránh sản phẩm Samsung, và hóa ra như vậy lại né được khá nhiều vấn đề
Tôi từng dùng máy giặt Samsung ở Hawaii, và nó có chế độ DOWNLOAD để kết nối ứng dụng
Trước khi giặt nó dành vài phút chỉ để lắc quần áo mà nhận diện, còn nước thì dùng rất ít
Rồi còn chiếc tủ lạnh Samsung tôi thấy ở cửa hàng thì tablet gắn trên cửa bị treo
Chỉ với ba trải nghiệm như vậy là tôi bỏ hẳn sản phẩm Samsung
Chỉ để hiển thị một biểu đồ tròn dung lượng đĩa mà nhét cả framework Electron vào
“RAM rẻ mà, RAM không dùng đến là lãng phí” — nghe như triết lý của lãnh đạo Samsung
Có lời khuyên cho những ai định cài Samsung Magician chỉ để cập nhật firmware
Thực ra vẫn có thể cập nhật firmware an toàn mà không cần chương trình này
Nếu biết phần mềm Hàn Quốc thì mọi chuyện này đều dễ hiểu
Chuyện nút bấm được làm bằng ảnh JPEG là điều rất thường thấy