Caner
Caner

Reputation: 59288

Android: adb: Permission Denied

Whatever I type after adb shell it fails with Permission denied:

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

Any ideas?

Upvotes: 134

Views: 473563

Answers (10)

Golil
Golil

Reputation: 467

The data partition is not accessible for non-root users, if you want to access it you must root your phone.

ADB root does not work for all product and depend on phone build type.

in the new version of android studio, you can explore /data/data path for debuggable apps.

update 2022

Android Studio new versions have some tools like Device Explorer and App Inspection to access application data. (app must be debuggable).

Upvotes: 5

Henrique Vasconcellos
Henrique Vasconcellos

Reputation: 1183

if you are looking to get /data/anr/ as I was, you can use an easy approach

adb bugreport

source: this answer

Upvotes: 1

Darien Alvarez
Darien Alvarez

Reputation: 173

None of the previous solutions worked for me but I was able to make it work using this command

adb shell "run-as com.yourcompany.app cat /data/data/com.yourcompany.app/shared_prefs/SHARED_PREF_PROTECTED.xml" > SHARED_PREF_PROTECTED.xml

Upvotes: 7

Kishan Oza
Kishan Oza

Reputation: 1735

Run your cmd as administrator this will solve my issues. Thanks.

Upvotes: -9

Fabian Zeindl
Fabian Zeindl

Reputation: 5988

Without rooting: If you can't root your phone, use the run-as <package> command to be able to access data of your application.

Example:

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

exec-out executes the command without starting a shell and mangling the output.

Upvotes: 67

Roman
Roman

Reputation: 2035

According to adb help:

adb root                     - restarts the adbd daemon with root permissions

Which indeed resolved the issue for me.

Upvotes: 186

Pipo
Pipo

Reputation: 5093

Solution for me was (thx to David Ljung Madison post)

  1. Root the phone & be sure it is rooted
  2. Adb server (adbd) was not run as root so downloaded & installed the adbd insecure app
  3. Restart adb adb kill-server
  4. Run it & worked like a flower!

Upvotes: -5

Macarse
Macarse

Reputation: 93173

You might need to activate adb root from the developer settings menu. If you run adb root from the cmd line you can get:

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

Once you activate the root option (ADB only or Apps and ADB) adb will restart and you will be able to use root from the cmd line.

Upvotes: 6

wind
wind

Reputation: 295

The reason for "permission denied" is because your Android machine has not been correctly rooted. Did you see $ after you started adb shell? If you correctly rooted your machine, you would have seen # instead.

If you see the $, try entering Super User mode by typing su. If Root is enabled, you will see the # - without asking for password.

Upvotes: 27

Pavankumar Vijapur
Pavankumar Vijapur

Reputation: 1206

Do adb remount. And then try adb shell

Upvotes: -4

Related Questions