2012-07-11 32 views
11

Tôi đang cố cấp quyền truy cập vào tệp mà tôi đã viết trong một ứng dụng cho một ứng dụng khác. chgrp không có sẵn trong vỏ adb (command 'chgrp' not found) Tôi đã cài đặt BusyBox nhưng để truy cập vào chgrp. Ví dụ: Tôi sử dụng lệnh chown app_79 file.txt và nó hoạt động. Nhưng khi tôi cố gắng chgrp app_79 file.txt nó luôn luôn trả về một cái gì đó giống như chgrp: unknown group app_79Làm thế nào để thay đổi id nhóm của một tập tin trên thiết bị Android bắt nguồn từ?

Tôi đã google một bó và thấy rằng hầu hết các hệ thống Linux có một tập tin /etc/group mà các cửa hàng thông tin nhóm cho hệ thống đó, nhưng nó không có mặt trong Android.

Trả lời

21

Sử dụng các công cụ dựng sẵn, chứ không phải là busybox, nó sẽ là

chown uid.gid filename 

Có lẽ với những id của việc phải là số như Matt đã chỉ ra.

+0

Các id KHÔNG phải là số cho tôi. 'root.root' và' root.system' làm việc ví dụ trên thiết bị của tôi. – BuvinJ

+0

Lưu ý rằng trong chủ sở hữu chown của Linux: filepath nhóm thường hoạt động so với cú pháp kỳ này. – BuvinJ

3

Tìm thấy một số thông tin here về cách một số id nhóm được mã hóa cứng. Tôi cũng đã có kiến ​​thức trước đây rằng /data/system/packages.list/data/system/packages.xml chứa UID của ứng dụng, tất cả đều giống như 10000 + x. Điều tôi biết bây giờ là x là số xuất hiện sau "app_" khi bạn l-l.

Vì vậy, điều kỳ lạ là bạn có thể chgrp 10079 file.txt nhưng bạn không thể chgrp app_79 file.txt.

Hy vọng điều này sẽ giúp ai đó.

6

Sử dụng busybox chown uid.gid file.txt và chỉ định UID và GID làm số thay vì tên. app_79 khả năng corresponds ID 10.079 (để chắc chắn bạn có thể kiểm tra lại nó với busybox ls -l -n /data/data):

busybox chown 10079.10079 file.txt 
Các vấn đề liên quan