SD Maid 2/SE
Tiếng Việt

Bản dịch này có thể đã lỗi thời. Đọc phiên bản tiếng Anh

Thiết lập SD Maid SE

Thông tin về các bước thiết lập khác nhau của SD Maid SE.

SD Maid thích ứng với những quyền truy cập hiện có. Mặc dù mọi quyền đều là tùy chọn, nhưng nếu bạn không cấp quyền nào, hầu hết các tính năng sẽ không hoạt động. SD Maid sẽ hoạt động tốt nhất khi tất cả các mục thiết lập đều được hoàn tất.

SD Maid sẽ tự động cố gắng hoàn tất một số bước thiết lập nếu có sẵn root hoặc quyền truy cập ADB.

Một số quyền chồng chéo nhau hoặc là tập bao của nhau, ví dụ bạn có thể cấp cho SD Maid cả quyền root lẫn quyền truy cập ADB. SD Maid sẽ luôn cố gắng dùng phương thức truy cập tốt nhất có thể cho mọi thao tác, và nếu thất bại, sẽ thử lại với phương thức tốt thứ hai, rồi thứ ba, v.v. Cấp cho SD Maid các quyền chồng chéo nhau sẽ cải thiện độ tin cậy.

Mẹo: Một số bước thiết lập bên dưới cần chạy lệnh ADB. Nếu bạn chưa thiết lập ADB trên máy tính, bạn có thể dùng Web ADB Helper để chạy chúng trực tiếp từ trình duyệt.

Quản lý bộ nhớ

Quyền “Quản lý bộ nhớ” là một quyền truy cập bộ nhớ có phạm vi rộng.

Thống kê sử dụng

Quyền thống kê sử dụng cho phép SD Maid truy cập dung lượng dữ liệu và bộ nhớ đệm, và biết một ứng dụng có đang chạy hay không hoặc được dùng lần cuối khi nào.

Storage Access Framework

SD Maid dùng Storage Access Framework (SAF) của Android để có quyền truy cập vào các vùng bộ nhớ bổ sung. SD Maid sẽ yêu cầu bạn cấp quyền truy cập vào những đường dẫn cụ thể mà chỉ có quyền “Quản lý bộ nhớ” thì không truy cập được (Just Android Things™️).

Lặp lại quá trình này cho đến khi tất cả các đường dẫn đều có màu xanh lá.

SAF: Khắc phục sự cố

Dành cho khi mọi thứ không diễn ra như dự kiến.

SAF: Truy cập Android/data|obb

Không thể cấp quyền truy cập Android/data|obb với các phiên bản mới hơn của ứng dụng Files (Tệp) của hệ thống (com.google.android.documentsui) trên Android 11 và Android 12. Nếu ứng dụng Files đã cài đặt nhắm đến Android 14 (API level 34) trở lên, SD Maid sẽ ẩn yêu cầu truy cập SAF cho các đường dẫn này (giống như trên Android 13+).

Google Play cập nhật ứng dụng Files thông qua dịch vụ Google Play system update (Bản cập nhật hệ thống của Google Play). Ứng dụng “Files” gốc (bản dựng cho API level 31, ví dụ aml_doc_310851020 (310851020)) đi kèm hệ điều hành Android 12 cho phép SD Maid mở cửa sổ chọn đường dẫn SAF tại Android/Data, trong khi ứng dụng “Files” mới nhất (bản dựng cho API level 34 trở lên, ví dụ 14-10492947 (340916000)) ngăn chặn điều này.

Cách khắc phục tạm thời:

Bạn có thể gỡ cài đặt bản cập nhật của Files rồi thiết lập SD Maid. Cập nhật lại ứng dụng Files sau đó sẽ không làm mất các quyền đã cấp.

hoặc

Bạn cũng có thể chạy lệnh này bằng Web ADB Helper.

adb uninstall com.google.android.documentsui

SAF: OPEN_DOCUMENT_TREE ActivityNotFoundException

Việc cấp quyền truy cập đường dẫn qua Storage Access Framework cần một ứng dụng cho phép người dùng xác nhận những đường dẫn sẽ được cấp quyền truy cập. Ứng dụng này là ứng dụng “Documents” (Tài liệu). Đây là một ứng dụng hệ thống được tích hợp sẵn trên mọi thiết bị Android kể từ Android 5.0 (com.android.documentsui hoặc com.google.android.documentsui). Nếu bạn gặp lỗi này, thì có ai đó đã xóa hoặc vô hiệu hóa ứng dụng này. Trong hầu hết các trường hợp, ai đó đã chạy một công cụ “gỡ bloatware” quá tay và vô hiệu hóa nó. Bạn có thể bật lại nó qua ADB:

Bạn cũng có thể chạy các lệnh này bằng Web ADB Helper.

adb shell pm enable com.android.documentsui
or
adb shell pm enable com.google.android.documentsui

SAF: Cửa sổ trống

Nếu cửa sổ dùng để cấp quyền truy cập đường dẫn bị trống, có thể gói trình cung cấp bộ nhớ ngoài (com.android.externalstorage) của bạn đã bị vô hiệu hóa (nhiều khả năng do một “công cụ gỡ bloatware” quá tay). Bạn có thể bật lại nó qua ADB:

Bạn cũng có thể chạy lệnh này bằng Web ADB Helper.

adb shell pm enable com.android.externalstorage

Chạy lại Google Play system update sẽ khôi phục bản cập nhật. Bạn cũng có thể tự tải xuống một phiên bản đã cập nhật từ APKMirror.com.

Thông báo

Không có quyền này, SD Maid sẽ không thể đăng thông báo. Trên một số ROM, điều này có thể ảnh hưởng xấu đến độ tin cậy khi chạy trong nền.

Khoảng không quảng cáo ứng dụng (App inventory)

SD Maid cần quyền QUERY_ALL_PACKAGES để kiểm tra những ứng dụng nào được cài đặt trên thiết bị của bạn (tức là “khả năng xem danh mục các ứng dụng đã cài đặt”). Xem thêm “Quyền thống kê sử dụng”

Quyền QUERY_ALL_PACKAGES là bắt buộc đối với:

Quyền này tồn tại từ Android 11 và thường được cấp sẵn theo mặc định. Kể từ Android 14, có một số thiết bị (ví dụ #1015, #1354) mà quyền này không được cấp sẵn theo mặc định hoặc có thể bị thu hồi.

Danh sách ứng dụng không hợp lệ

Trên một số thiết bị, quyền “App list” (“Danh sách ứng dụng”, QUERY_ALL_PACKAGES / GET_INSTALLED_APPS) đã được cấp, nhưng hệ thống vẫn trả về một danh sách ứng dụng đã cài đặt không đầy đủ, ví dụ một danh sách thiếu các gói hệ thống cốt lõi như android. Khi SD Maid phát hiện điều này, nó sẽ hiển thị cảnh báo “Invalid app list” (Danh sách ứng dụng không hợp lệ) và ghi chú “Có thể là giới hạn của thiết bị” trên thẻ thiết lập thay vì tiếp tục.

SD Maid cố ý dừng lại ở đây: nếu không thấy được danh sách đầy đủ các ứng dụng đã cài đặt, nó không thể xác định một cách đáng tin cậy những tệp nào thuộc về một ứng dụng vẫn còn được cài đặt. Nếu vẫn tiếp tục, có thể sẽ xóa dữ liệu thuộc về một ứng dụng mà SD Maid đơn giản là không nhìn thấy, vì vậy các tính năng liên quan đến ứng dụng vẫn bị tắt cho đến khi có được danh sách đầy đủ.

Những gì bạn có thể thử:

Nếu quyền “App list” (“Danh sách ứng dụng”) đã được cho phép mà danh sách vẫn bị báo là không hợp lệ, thì đây thường là một giới hạn của thiết bị chứ không phải điều bạn có thể khắc phục: một số hệ thống (ví dụ HarmonyOS, hoặc các bản Android bị sửa đổi nhiều) không bao giờ cung cấp danh sách ứng dụng đầy đủ cho các ứng dụng bên thứ ba. Xem #2441 để biết một ví dụ.

Trong trường hợp đó, các công cụ liên quan đến ứng dụng (Tìm kiếm tàn dư, Dọn dẹp ứng dụng, Kiểm soát ứng dụng) vẫn bị tắt để bảo vệ dữ liệu của bạn, nhưng Phân tích bộ nhớ vẫn hoạt động: nó cho thấy bộ nhớ của bạn đang dùng bao nhiêu dung lượng, chỉ là với ít chi tiết hơn: dung lượng thư mục được hiển thị ở chế độ chỉ đọc và không thể gán cho từng ứng dụng riêng lẻ.

Dịch vụ trợ năng

Dịch vụ trợ năng cho phép SD Maid tương tác với thiết bị của bạn như con người, tức là xem màn hình và nhấn nút. SD Maid có thể dùng nó để tự động hóa những thao tác tẻ nhạt như nhấn “Clear cache” (“Xóa bộ nhớ đệm”) trên hàng trăm ứng dụng. Dịch vụ trợ năng là một dịch vụ mà chính ứng dụng không thể tự khởi chạy, nó phải được hệ thống khởi chạy, vì loại dịch vụ này cấp cho ứng dụng thêm quyền truy cập vào thiết bị của bạn.

ACS: Khắc phục sự cố

Dịch vụ có thể ngừng chạy và yêu cầu bạn bật lại trong nhiều trường hợp:

ACS: Dịch vụ bị vô hiệu hóa

Một số ROM (ví dụ MIUI) nổi tiếng với việc dừng mạnh tay mọi thứ không nằm trong danh sách trắng của nhà sản xuất thiết bị. Nếu bạn liên tục bị yêu cầu bật lại dịch vụ trợ năng, có thể hệ thống đang vô hiệu hóa nó mỗi khi SD Maid không được sử dụng.

Hãy thử tắt tối ưu hóa pin, và trên các ROM MIUI có thêm một cài đặt tên là “Autostart” (Tự khởi động), hãy bật nó cho SD Maid. Với các thiết bị Xiaomi/POCO/Redmi:

Bạn cũng có thể cân nhắc cấp thêm quyền cho phép SD Maid tự động khởi động lại dịch vụ.

ACS: Bị Phone Manager chặn (OnePlus, OPPO, Realme)

Trên OxygenOS và ColorOS, ứng dụng “Phone Manager” (Trình quản lý điện thoại) được cài sẵn có thể tự tắt dịch vụ trợ năng, thường là trong vòng một giây sau khi quá trình dọn dẹp kết thúc. Sau đó, công tắc trợ năng của Android thực sự bị tắt, nên trông như thể SD Maid ngừng hoạt động giữa chừng.

Tắt tính năng này trong Phone Manager>Utilities>Block suspicious app activities (Trình quản lý điện thoại > Tiện ích > Chặn hoạt động đáng ngờ của ứng dụng).

Chính màn hình đó lưu một danh sách những gì nó đã chặn. Các mục có nhãn “Abnormal device control” (Điều khiển thiết bị bất thường) với dấu thời gian trùng với các lần dọn dẹp bạn đã chạy xác nhận đây là nguyên nhân. Công tắc “Blocking alerts” (Cảnh báo chặn) bên cạnh chỉ kiểm soát việc bạn có được thông báo hay không, nên khi tắt cảnh báo, việc này diễn ra một cách âm thầm.

ACS: Bật qua ADB

Nếu thiết bị của bạn không có cách bật dịch vụ trợ năng qua màn hình (ví dụ thiết bị TV), có thể bật dịch vụ bằng ADB bằng cách chạy:

Bạn cũng có thể chạy lệnh này bằng Web ADB Helper.

adb shell settings put secure enabled_accessibility_services eu.darken.sdmse/.automation.core.AutomationService

ACS: Tự động khởi động lại dịch vụ

Lưu ý: Đây là một kỹ thuật nâng cao, dành cho người dùng chuyên sâu.

Bạn có thể cấp thêm một quyền cho phép SD Maid tự khởi động lại dịch vụ. Quyền này có tên là WRITE_SECURE_SETTINGS và chỉ có thể được cấp qua ADB. Nếu bạn đã thiết lập ADB, hãy chạy lệnh này để cấp quyền:

Bạn cũng có thể chạy lệnh này bằng Web ADB Helper.

adb shell pm grant eu.darken.sdmse android.permission.WRITE_SECURE_SETTINGS

Khi đã được cấp quyền này, SD Maid có thể dùng lệnh được mô tả ở đây để bật dịch vụ khi cần thiết. SD Maid chỉ dùng cách này nếu bạn đã bật dịch vụ trợ năng thủ công ít nhất một lần. Nếu bạn vào lại phần thiết lập và yêu cầu SD Maid không dùng dịch vụ trợ năng, kỹ thuật tự động khởi động lại này sẽ không được dùng cho đến khi bạn bật lại dịch vụ trợ năng thủ công.

Để thu hồi quyền này khỏi SD Maid, hãy dùng lệnh sau:

Bạn cũng có thể chạy lệnh này bằng Web ADB Helper.

adb shell pm revoke eu.darken.sdmse android.permission.WRITE_SECURE_SETTINGS

Nếu bạn gặp lỗi Operation not allowed: java.lang.SecurityException, xem tại đây. Một số thiết bị hạn chế quyền ADB. Hãy xem có cài đặt bổ sung nào (ví dụ Disable Permission Monitoring) trong phần tùy chọn nhà phát triển cần được bật/tắt hay không; sau khi chạy lệnh, bạn có thể tắt lại nó.

ACS: Advanced Protection

Trên Android 17 trở lên, chế độ Advanced Protection (Bảo vệ nâng cao) của Google chặn các ứng dụng không phải là công cụ trợ năng chuyên dụng (trình đọc màn hình, tiếp cận bằng công tắc, v.v.) sử dụng dịch vụ trợ năng. SD Maid là một công cụ bảo trì/dọn dẹp, nên khi Advanced Protection đang bật, dịch vụ trợ năng của nó không thể được bật: Android từ chối dịch vụ ở cấp hệ thống, ngay cả khi bạn cố cấp nó qua root hoặc quyền truy cập ADB.

SD Maid không thể tự miễn trừ khỏi việc này: Chỉ những ứng dụng được Google phân loại là công cụ trợ năng mới đủ điều kiện, và các ứng dụng dọn dẹp bị loại trừ một cách rõ ràng.

Bạn có hai lựa chọn:

ACS: Hạn chế AppOps

Android 13+ có thể áp dụng thêm các hạn chế đối với những ứng dụng được cài đặt thủ công (sideload). Vì vậy, nếu SD Maid không được cài từ một nguồn đã biết (đối với Google) như Google Play hoặc các cửa hàng ứng dụng khác, bạn có thể không cấp trực tiếp được một số quyền cho SD Maid, ví dụ khởi động dịch vụ trợ năng.

OxygenOS 15 - OnePlus

OnePlus đã quên (hoặc đơn giản là không) đưa thao tác Allow restricted settings (Cho phép cài đặt bị hạn chế) vào phần cài đặt ứng dụng trong OxygenOS 15. Nếu bạn không cài đặt qua Google Play, trình cài đặt cần đặt cờ INSTALL_ALL_WHITELIST_RESTRICTED_PERMISSIONS. Nếu bạn đã thiết lập Shizuku, bạn có thể dùng ứng dụng “Install with Options”.

Các ROM khác

Để gỡ bỏ các hạn chế này, hãy mở màn hình cài đặt ứng dụng của SD Maid trong hệ thống. Mở menu ở góc trên bên phải và chọn Allow restricted settings (Cho phép cài đặt bị hạn chế), sau đó bạn có thể quay lại danh sách dịch vụ trợ năng và bật dịch vụ của SD Maid.

Lưu ý: Để cải thiện trải nghiệm sử dụng (đây là mỉa mai đấy), Google đã quyết định rằng cài đặt này chỉ hiển thị nếu:

😮‍💨

Một số thông tin nền bổ sung có thể xem tại đây.

Truy cập root

Với quyền root, SD Maid có toàn quyền truy cập vào thiết bị của bạn và có thể thực hiện lần quét kỹ lưỡng nhất có thể. Thường thì điều này có nghĩa là bạn đã mở khóa bootloader và cài đặt Magisk.

Nếu SD Maid cho rằng thiết bị của bạn có thể đã được root, SD Maid sẽ yêu cầu quyền root trước tiên. Nếu quyền root được cấp, SD Maid sẽ dùng quyền root để tự cấp càng nhiều quyền khác càng tốt. Quyền root là mức truy cập cao nhất mà bạn có thể cấp cho một ứng dụng; khi đó các quyền khác chỉ cần thiết để thuận tiện sử dụng và cải thiện hiệu năng, đó là lý do chúng không cần thêm sự đồng ý trong quá trình thiết lập nếu SD Maid đã có root.

Truy cập ADB

Quyền truy cập ADB cho phép SD Maid dùng giao diện gỡ lỗi của Android (ADB) cho các thao tác cần quyền nâng cao. Nó cần một ứng dụng riêng chạy dịch vụ ADB trên thiết bị của bạn và cấp cho các ứng dụng khác quyền truy cập vào dịch vụ đó: Porter hoặc Shizuku. Đó là một sự sửa đổi bạn có thể thực hiện trên điện thoại mà các ứng dụng khác có thể tận dụng.

Nó tương tự root, nhưng không giống hệt. Các quyền có phần kém mạnh hơn một chút, nhưng sự sửa đổi này không vĩnh viễn và không yêu cầu bạn mở khóa bootloader.

Porter

Porter là bản fork của Shizuku do tôi duy trì, có hỗ trợ root tùy chọn. Trang web của nó giải thích cách cài đặt và khởi động. Trên Android 11 trở lên, gỡ lỗi không dây cho phép bạn khởi động nó mà không cần máy tính.

Nếu bạn thiết lập quyền truy cập ADB lần đầu tiên, hãy dùng Porter. Các bản dựng SD Maid từ GitHub và F-Droid sẽ hướng bạn đến Porter khi chưa có ứng dụng truy cập ADB nào được cài đặt. Bản dựng Google Play hướng bạn đến Shizuku trên Google Play, nhưng vẫn hoạt động với Porter theo cách tương tự.

Nếu cả Porter và Shizuku đều được cài đặt, SD Maid sẽ dùng Porter. Khi đó thẻ thiết lập sẽ hiển thị Porter được cài đặt, vì vậy SD Maid chờ Porter thay vì Shizuku. Hãy khởi động Porter để tiếp tục, hoặc gỡ cài đặt nó nếu bạn muốn SD Maid dùng Shizuku.

Sử dụng Shizuku

Có hai bản dựng của Shizuku:

Không thể cài đặt cả hai cùng lúc. Nếu bản gốc đã hoạt động tốt với bạn, không cần chuyển đổi.

Cấp quyền truy cập

Sau khi bạn đã thiết lập Porter hoặc Shizuku:

Thiết lập quyền truy cập ADB khi bạn đã cấp quyền root cho SD Maid sẽ không mở thêm tính năng nào, nhưng cải thiện độ tin cậy. Nếu các thao tác thất bại với quyền root, SD Maid sẽ thử lại với quyền truy cập ADB.

Truy cập ADB: Khắc phục sự cố

Bạn có thể kiểm tra trạng thái truy cập ADB của SD Maid bằng cách vào Cài đặt > Thiết lập và xem thẻ thiết lập Truy cập ADB. Thẻ sẽ hiển thị SD Maid bây giờ có thể sử dụng quyền truy cập ADB qua Porter (hoặc qua Shizuku).

Shizuku không bao giờ kết nối được

Thẻ hiển thị Truy cập ADB thất bại và Shizuku đang chạy, nhưng nó chưa bao giờ kết nối SD Maid với dịch vụ trợ giúp của nó. Các phiên bản cũ hơn hiển thị Waiting for link with Shizuku (Đang chờ liên kết với Shizuku) hoặc Shizuku link failed (Liên kết Shizuku thất bại).

Mở ứng dụng Shizuku. Nếu nó cho biết đang chạy và SD Maid nằm trong danh sách được ủy quyền, thì Shizuku đã được thiết lập đúng và việc thiết lập lại sẽ không giúp ích gì. Thứ đang thất bại là dịch vụ trợ giúp của Shizuku: nó chết ngay khi khởi động trước khi kịp phản hồi, và SD Maid bỏ cuộc sau khoảng 15 giây. Thử lại chạy lại cùng một bước kiểm tra và thất bại theo cùng một cách.

Đây là lỗi của Shizuku (RikkaApps/Shizuku#1198), không phải của SD Maid, và nó làm hỏng mọi ứng dụng sử dụng dịch vụ trợ giúp của Shizuku. Lỗi này ảnh hưởng đến các thiết bị MediaTek, và các thiết bị chạy HyperOS hoặc MIUI.

Bản fork của thedjchi được báo cáo là đã sửa lỗi này. Để chuyển đổi: