Bỏ qua chuyển đến nội dung
Thông báoChào mừng bạn đến với Osteup! Nơi chia sẻ các công cụ và thủ thuật tối ưu hoá.
Osteup LogoOsteup

Cách Sửa Lỗi java.lang.SecurityException: grantRuntimePermission Trên Android

oosteup
Đăng:Cập nhật: 21/10/2026
4 phút đọc
1 lượt xem
Android

Lỗi java.lang.SecurityException: grantRuntimePermission (hoặc thông báo Neither user 2000 nor current process has android.permission.GRANT_RUNTIME_PERMISSIONS) là sự cố phổ biến khi người dùng Android chạy lệnh ADB để cấp quyền hệ thống cho các công cụ như SetEdit, Brevent, Shizuku, LADB hay MacroDroid. Lỗi này xuất phát từ cơ chế bảo vệ quyền riêng tư tăng cường trên các giao diện tùy biến (ColorOS, Realme UI, MIUI, HyperOS, OriginOS) chặn tiến trình shell (UID 2000) tự động thay đổi thiết lập bảo mật.

Tóm tắt lỗi: Khi bạn gõ lệnh adb shell pm grant <package> android.permission.WRITE_SECURE_SETTINGS mà điện thoại từ chối cấp quyền, hệ thống Android sẽ quăng ngoại lệ SecurityException. Bạn không cần root máy để xử lý lỗi này, chỉ cần điều chỉnh đúng cài đặt nhà phát triển trên điện thoại.

Nguyên nhân gây lỗi SecurityException theo từng dòng máy

Mỗi nhà sản xuất Android áp dụng một lớp bảo vệ bổ sung trên cổng ADB shell. Bảng dưới đây tóm tắt nguyên nhân và phương án xử lý nhanh nhất cho từng thương hiệu:

Dòng máy / Giao diện Nguyên nhân kích hoạt lỗi Thiết lập cần thay đổi
Oppo, Realme, OnePlus (ColorOS / Realme UI / OxygenOS) Tính năng "Giám sát quyền" (Permission Monitoring) đang kích hoạt chặn lệnh shell cấp quyền. Tắt mục Giám sát quyền (hoặc bật Tắt giám sát quyền) trong Developer Options.
Xiaomi, Redmi, POCO (MIUI / HyperOS) Chưa kích hoạt quyền bảo mật cấp cao cho cổng gỡ lỗi USB. Bật Gỡ lỗi USB (Cài đặt bảo mật) (yêu cầu lắp SIM và đăng nhập Mi Account).
Vivo, iQOO (Funtouch OS / OriginOS) Chặn quyền ghi cài đặt hệ thống qua cổng ADB từ xa. Bật Gỡ lỗi USB và xác nhận Cho phép mô phỏng đầu vào & cài đặt bảo mật.
Samsung & Android Thuần (One UI, Pixel, Motorola) Mất ủy quyền RSA trên máy tính hoặc kết nối Gỡ lỗi không dây (Wireless Debugging) bị ngắt. Thu hồi ủy quyền gỡ lỗi USB, cắm lại cáp và chọn "Luôn cho phép từ máy tính này".

Cách 1: Tắt Giám Sát Quyền (Oppo, Realme, OnePlus)

Đối với các thiết bị chạy ColorOS, Realme UI hoặc OxygenOS, đây là nguyên nhân chiếm hơn 90% các trường hợp dính lỗi grantRuntimePermission.

  1. Vào Cài đặt (Settings) trên điện thoại.
  2. Chọn Cài đặt bổ sung (Additional settings) hoặc Cài đặt hệ thống.
  3. Nhấn vào Tùy chọn nhà phát triển (Developer options). (Nếu chưa bật, vào Thông tin thiết bị > Nhấn liên tục 7 lần vào Số bản dựng / Build number).
  4. Cuộn xuống danh sách, tìm mục Giám sát quyền (Permission monitoring).
  5. Chuyển trạng thái sang TẮT. Trên một số phiên bản giao diện mới, tùy chọn này có tên là Tắt giám sát quyền (Disable permission monitoring) — lúc này bạn hãy gạt sang BẬT.
Tắt chức năng giám sát quyền trong Tùy chọn nhà phát triển trên điện thoại Android
Vị trí tùy chọn Giám sát quyền trong mục Tùy chọn nhà phát triển trên máy Android

Sau khi tắt tùy chọn này, bạn ngắt kết nối cáp USB rồi cắm lại vào máy tính (hoặc khởi chạy lại kết nối ADB) và thực hiện lại lệnh cấp quyền.

Cách 2: Bật Gỡ Lỗi USB Bảo Mật (Xiaomi, Redmi, POCO)

Trên các thiết bị Xiaomi chạy MIUI hoặc HyperOS, tính năng bảo vệ của hãng mặc định ngăn cản ADB shell thay đổi quyền runtime trừ khi người dùng cấp quyền bảo mật bổ sung bằng tài khoản Xiaomi:

  1. Đảm bảo điện thoại đã lắp SIM có kết nối mạng dữ liệu di động (yêu cầu bắt buộc của Xiaomi để xác thực tài khoản).
  2. Vào Cài đặt > Cài đặt bổ sung > Tùy chọn cho nhà phát triển.
  3. Bật Gỡ lỗi USB (USB debugging).
  4. Cuộn xuống dưới, bật tiếp mục Gỡ lỗi USB (Cài đặt bảo mật) — USB debugging (Security settings).
  5. Màn hình sẽ hiển thị 3 hộp thoại cảnh báo nguy cơ bảo mật, mỗi hộp thoại đếm ngược 5 giây. Bạn đợi hết thời gian rồi nhấn Tiếp theo và Đồng ý.
Lưu ý cho Xiaomi: Nếu máy báo lỗi "Thiết bị tạm thời bị hạn chế" khi bật Gỡ lỗi USB bảo mật, hãy tắt Wi-Fi, bật 4G/5G trên SIM đăng ký tài khoản Mi, sau đó bật lại tùy chọn này.

Cách 3: Xử Lý Khi Dùng LADB Hoặc Gỡ Lỗi Không Dây (Wireless Debugging)

Nếu bạn thực hiện cấp quyền trực tiếp trên điện thoại bằng các ứng dụng như LADB, Brevent hoặc Shizuku qua tính năng Gỡ lỗi không dây (Android 11 trở lên), lỗi SecurityException có thể do phiên kết nối bị hết hạn:

  • Bật cả hai tùy chọn: Trong Tùy chọn nhà phát triển, bạn phải bật đồng thời cả Gỡ lỗi USB lẫn Gỡ lỗi qua Wi-Fi / Gỡ lỗi không dây.
  • Tránh đổi cổng port ngẫu nhiên: Mỗi lần tắt/bật lại Wi-Fi hoặc mở lại cài đặt, Android sẽ cấp một cổng kết nối ngẫu nhiên mới. Hãy dùng chế độ chia đôi màn hình (Split screen) khi ghép nối LADB để số cổng và mã PIN không bị thay đổi.
  • Xóa danh sách thiết bị đã ghép nối: Nếu ứng dụng liên tục báo lỗi, vào mục Gỡ lỗi không dây > Xóa toàn bộ các thiết bị ghép nối cũ, sau đó thực hiện ghép nối lại từ đầu.

Kiểm Tra Lại Bằng Các Lệnh ADB Cấp Quyền Phổ Biến

Sau khi hoàn tất việc chỉnh sửa thiết lập bảo mật theo hướng dẫn phía trên, mở Terminal / Command Prompt trên máy tính hoặc cửa sổ lệnh trong LADB để kiểm tra lại:

1. Cấp quyền chỉnh sửa cài đặt bảo mật cho ứng dụng SetEdit:

bash
adb shell pm grant by4a.setedit22 android.permission.WRITE_SECURE_SETTINGS

2. Cấp quyền quản lý pin và quy trình chạy nền cho Brevent:

bash
adb shell pm grant me.piebridge.brevent android.permission.DUMP

3. Cấp quyền ghi cài đặt hệ thống nâng cao cho System UI Tuner:

bash
adb shell pm grant com.zacharee1.systemuituner android.permission.WRITE_SECURE_SETTINGSadb shell pm grant com.zacharee1.systemuituner android.permission.DUMP
Mẹo nhận biết thành công: Khi lệnh chạy thành công, cửa sổ lệnh ADB sẽ không trả về bất kỳ dòng chữ nào và tự động xuống dòng mới. Nếu vẫn hiện SecurityException, hãy rút cáp USB, khởi động lại điện thoại rồi thử lại một lần nữa.

Câu Hỏi Thường Gặp (FAQ)

Tắt tính năng "Giám sát quyền" trên Android có gây nguy hiểm cho máy không?

Không. Tính năng này chỉ kiểm soát các lệnh được đưa vào qua cổng kết nối ADB shell. Việc tắt tính năng này giúp các công cụ tùy biến hệ thống hợp lệ hoạt động bình thường. Sau khi cấp quyền xong cho ứng dụng mong muốn, bạn hoàn toàn có thể bật lại tính năng giám sát nếu muốn tăng cường an ninh.

Tại sao sau khi khởi động lại máy, lệnh ADB lại báo lỗi trở lại?

Một số dòng máy Realme và Oppo có cơ chế tự động bật lại tính năng "Giám sát quyền" sau khi reboot máy để bảo vệ người dùng phổ thông. Tuy nhiên, các quyền đã được cấp thành công trước đó (như WRITE_SECURE_SETTINGS) vẫn được giữ nguyên và không bị mất sau khi khởi động lại.

Máy đã Root có bao giờ gặp lỗi SecurityException này không?

Trên máy đã root với Magisk hoặc KernelSU, các ứng dụng có thể xin quyền Superuser (su) trực tiếp mà không cần chạy lệnh qua ADB shell, do đó sẽ hoàn toàn không gặp phải lỗi phân quyền của UID 2000 này.

Bài viết có hữu ích?

Bài viết liên quan

Bình luận(2)

Ngu Quang
Ngu Quang9/3/2026

ngon

Ngu Quang
Ngu Quang9/3/2026

rất ngon