Tại sao tôi không thể sử dụng su để chạy dưới sự cho phép của ứng dụng khác?


7

Điều nổi tiếng là mọi ứng dụng Android đều là người dùng của riêng họ. Tôi đã cài đặt Trình mô phỏng thiết bị đầu cuối Android với tư cách là người dùng u0_a5 .

u0_a5 @ android: / $ whoami
u0_a5
u0_a5 @ android: / $ nhóm
u0_a5 sdcard_rw sdcard_r inet all_a5

Theo adb, mọi nỗ lực sử dụng lệnh su để đăng nhập như Trình mô phỏng thiết bị đầu cuối Android chỉ thành công một phần. Như phiên adb sau đây cho thấy, các nhóm quyền mà Trình mô phỏng đầu cuối Android thuộc về không được kế thừa, ngoại trừ nhóm u0_a5 người dùng mặc định .

root @ android: / # su - u0_a5
Id không xác định: u0_a5
1 | root @ android: / # su - 10005
app_5 @ android: / $ whoami
u0_a5
app_5 @ android: / $ nhóm
u0_a5

Là người dùng 10005, tôi có thể xóa các tệp do người dùng u0_a5 sở hữu . Nhưng tôi không thể thực thi các lệnh yêu cầu quyền đặc biệt của Android, chẳng hạn như "giao thức busybox wget: //some.uri", yêu cầu một ứng dụng thuộc nhóm inet .

Vậy có cách nào để mạo danh và chạy một ứng dụng trong môi trường quyền cụ thể của nó không? Hoặc là chạy với quyền đầy đủ quyền lựa chọn duy nhất (không) của tôi?

Câu trả lời:


2

Yup sử dụng root là cách duy nhất để đi.

Tất cả các nhóm hoặc tên người dùng khác bị khóa trong vùng người dùng của Android bằng một kỹ thuật được gọi là hộp cát . Đây là tính năng bảo mật được triển khai ở cốt lõi, do đó bạn sẽ cần phải làm lại Android nếu bạn vẫn muốn thành công.


2
"Sandboxing" đó ngăn không cho một ứng dụng truy cập dữ liệu ứng dụng khác, v.v. Nhưng một khi đã trở thành root, điều này không còn quan trọng nữa (root có thể nhập bất kỳ hộp cát nào). Vì vậy, câu hỏi thực sự thú vị là: tại sao không thể root vào hộp cát và sau đó "từ bỏ" tất cả các quyền bổ sung nhưng những quyền thuộc về hộp cát này? Đây sẽ là những gì OP nhắm đến.
Izzy
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.