2011-09-13 50 views
55

Dù tôi gõ sau khi "adb shell" nó không thành công với Permission denied:Android: adb: Quyền bị từ chối

D:\android-sdk-windows\platform-tools>adb shell find /data -name *.db 
find: permission denied 

D:\android-sdk-windows\platform-tools>adb shell test 
test: permission denied 

D:\android-sdk-windows\platform-tools>adb remount 
remount failed: No such file or directory 

Bất kỳ ý tưởng?

+0

Bạn đang cố gắng chạy vỏ adb, trong trình mô phỏng hoặc thiết bị đích; nếu trên thiết bị đích bạn không thể truy cập vào thư mục/data cho đến khi bạn không có quyền root. – Vamsi

+12

sau 'adb root' >>' adbd không thể chạy dưới dạng root trong bản dựng sản phẩm ' phải làm gì? –

+1

Tôi đoán bạn cần một điện thoại bắt nguồn từ để có thể chạy được – Caner

Trả lời

78

Theo adb help:

adb root      - restarts the adbd daemon with root permissions 

nào thực sự giải quyết vấn đề đối với tôi.

+1

Bạn cũng sẽ cần bật quyền truy cập root cho adb nếu bạn chưa làm như vậy - xem câu trả lời của @ Macarse. –

+0

Trên thực tế, vấn đề trước mắt là android vẫn không (hai năm sau khi viết của bạn) tàu với lệnh 'find'. Điều đó nói rằng, không có adb chạy như root nó là sự thật bạn sẽ không thể đi xuống phân vùng/dữ liệu với bất kỳ lệnh nào khác, hoặc (mặc dù bạn vẫn có thể truy cập các vị trí rõ ràng bên trong nó). –

+1

Điều này không đúng. Bạn chỉ cần chuyển sang đúng người dùng. Xem câu trả lời của tôi dưới đây: http://stackoverflow.com/a/38292436/342947 –

-3

Làm adb remount. Và sau đó thử adb shell

+3

'adb remount' cho:' remount không thành công: Không có tệp hoặc thư mục nào như vậy ' – Caner

+1

Không. Điều này không liên quan gì đến vấn đề này. –

14

Lý do "quyền bị từ chối" là do máy Android của bạn chưa được root chính xác. Bạn có thấy $ sau khi bạn bắt đầu adb shell không? Nếu bạn đã root chính xác máy của mình, bạn sẽ thấy #.

Nếu bạn thấy $, hãy thử nhập chế độ Người dùng cấp cao bằng cách nhập su. Nếu Root được bật, bạn sẽ thấy # - mà không yêu cầu mật khẩu.

+2

Khi bạn đã root chính xác máy của mình, bạn sẽ cần phải bật quyền truy cập root adb và đang chạy adb ở chế độ gốc trước khi bước 'su' của bạn có thể làm việc - xem câu trả lời của @ Macarse và @ Roman. –

+1

No. Lý do cho "quyền bị từ chối" là không có lệnh 'find'. –

+0

@ChrisStratton Bạn đã cứu mạng tôi, tôi cũng đang viết lệnh shell từ bên trong vỏ adb đã –

4

Bạn có thể cần kích hoạt root adb từ trình đơn cài đặt của nhà phát triển. Nếu bạn chạy adb root từ dòng cmd bạn có thể nhận được:

root access is disabled by system setting - enable in settings -> development options 

Khi bạn kích hoạt tùy chọn root (ADB chỉ hoặc Apps và ADB) adb sẽ khởi động lại và bạn sẽ có thể sử dụng gốc từ dòng cmd.

+3

Nếu bạn không thể thấy mục 'Tùy chọn nhà phát triển' trong menu Cài đặt, hãy xem [câu trả lời này] (http: // stackoverflow. com/a/16866430/647939) để biết chi tiết về cách hiển thị. (Nói ngắn gọn: Cài đặt> Giới thiệu về điện thoại> Số bản dựng> Nhấn 7 lần (!).) –

+0

Nhưng một lần vào, tôi không thấy gì ở đây! Nó nên nói gì? – JohnyTex

+25

** Tùy chọn này không tồn tại trong kho Android được xây dựng ** - nếu nó tồn tại chút nào, nó sẽ bị giới hạn trong ROM hậu mãi của ai đó. –

-1

Giải pháp đối với tôi là (thx để David Ljung Madison post)

  1. gốc điện thoại & hãy chắc chắn nó được bắt nguồn từ
  2. ADB máy chủ (adbd) đã không được chạy với quyền root để downloaded & installed the adbd insecure app
  3. Restart adb adb kill-server
  4. Chạy nó & hoạt động như một bông hoa!
10

Nếu không có rễ: Nếu bạn không thể nhổ tận gốc điện thoại của bạn, sử dụng lệnh run-as <package> để có thể truy cập dữ liệu của ứng dụng của bạn.

Ví dụ:

$ adb exec-out run-as com.yourcompany.app ls -R /data/data/com.yourcompany.app/

exec-out thực hiện lệnh mà không bắt đầu một vỏ và mangling đầu ra.

+1

Tính năng này chỉ hoạt động đối với các ứng dụng được xây dựng để có thể gỡ lỗi - tức là bạn có thể sử dụng ứng dụng cho các ứng dụng bạn đang phát triển nhưng nó không hoạt động đối với bản phát hành sản phẩm ứng dụng của bạn hoặc ứng dụng của bất kỳ ai khác. –

-3

Chạy số cmd làm quản trị viên của bạn để giải quyết vấn đề của tôi. Cảm ơn.

+0

Không. Câu hỏi liên quan đến việc từ chối từ Android chứ không phải từ Windows. –

0

Hãy cẩn thận với dấu gạch chéo, thay đổi "\" cho "/", như sau: adb.exe push SuperSU-v2.79-20161205182033.apk/storage

Các vấn đề liên quan