Android: adb: Izin Ditolak

91

Apa pun yang saya ketik setelah adb shellgagal dengan 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

Ada ide?

Caner
sumber
Di mana Anda mencoba menjalankan adb shell, di emulator atau perangkat target; jika pada perangkat target Anda tidak dapat mengakses folder / data sampai Anda tidak memiliki izin root.
Vamsi
20
setelah adb root>> adbd cannot run as root in production buildsapa yang harus dilakukan?
d. Popov
3
Saya kira Anda membutuhkan ponsel yang di-rooting untuk dapat menjalankannya
Caner
ya saya tahu. Tapi, seperti yang Anda lihat saat ini saya tidak memiliki reputasi untuk mengomentari posting Penulis, tetapi saya mengalami masalah ini, jadi satu-satunya cara adalah menambahkan posting baru, atau membuka utas duplikat, jadi saya memutuskan untuk menambahkan posting.
d.popov
1
ponsel telah di-root, tetapi ada yang salah dengan OS. Itu membeku setelah memuat layar beranda saat reboot. Ngomong-ngomong - nandroid mem-flash telepon dengan ROM stok menyelesaikan masalah.
d.popov

Jawaban:

129

Menurut adb help:

adb root                     - restarts the adbd daemon with root permissions

Yang memang menyelesaikan masalah bagi saya.

Roma
sumber
2
Anda juga harus mengaktifkan akses root untuk adb jika Anda belum melakukannya - lihat jawaban @ Macarse.
Paul Whittaker
Sebenarnya, masalah langsung adalah bahwa android masih belum (dua tahun setelah tulisan Anda) dikirimkan dengan sebuah findperintah. Meskipun demikian, tanpa adb yang berjalan sebagai root memang benar Anda tidak akan dapat menurunkan partisi / data dengan perintah lain (meskipun Anda mungkin masih dapat mengakses lokasi eksplisit di dalamnya).
Chris Stratton
1
Ini tidak benar. Anda hanya perlu beralih ke pengguna yang benar. Lihat jawaban saya di bawah ini: stackoverflow.com/a/38292436/342947
Fabian Zeindl
2
Jawaban Anda tidak jelas. Apakah komentar ini harus dijalankan di perangkat atau di komputer?
Sauron
20
adbd cannot run as root in production buildsadalah apa yang Anda dapatkan saat berlari adb root. Ini ada pada penginstalan MacOS baru-baru ini dengan SDK Android terbaru. Saya kira jawaban ini sama sekali tidak benar, dan saya telah melihat orang lain menyebutkan masalah ini. Mengapa begitu banyak suara positif?
Andrew Koster
39

Tanpa rooting : Jika Anda tidak dapat melakukan root pada ponsel Anda, gunakan run-as <package>perintah untuk dapat mengakses data aplikasi Anda.

Contoh:

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

exec-out menjalankan perintah tanpa memulai shell dan mengacaukan hasilnya.

Fabian Zeindl
sumber
9
Ini hanya berfungsi untuk aplikasi yang dibuat agar dapat di-debug - yaitu, Anda dapat menggunakannya untuk aplikasi yang sedang Anda kembangkan, tetapi seharusnya tidak berfungsi untuk rilis produksi aplikasi Anda, atau aplikasi orang lain.
Chris Stratton
2
Ini kembali run-as: Could not set capabilities: Operation not permitteduntuk saya
Tom M
Ini berfungsi untuk emulator API 29, dan jangan lupa untuk meletakkan .debugawalan di akhir paket aplikasi untuk aplikasi debug:
ultraon
19

Alasan "izin ditolak" adalah karena mesin Android Anda belum di-root dengan benar. Apakah Anda melihat $setelah Anda mulai adb shell? Jika Anda me-rooting mesin Anda dengan benar, Anda akan melihatnya #.

Jika Anda melihat $, coba masuk ke mode Pengguna Super dengan mengetik su. Jika Root diaktifkan, Anda akan melihat #- tanpa meminta kata sandi.

angin
sumber
2
Setelah Anda melakukan root pada mesin Anda dengan benar, Anda harus mengaktifkan akses root adb dan menjalankan adb dalam mode root sebelum sulangkah Anda dapat bekerja - lihat jawaban @ Macarse dan @ Roman.
Paul Whittaker
1
Tidak. Alasan "izin ditolak" adalah karena tidak ada findperintah.
Chris Stratton
@ChrisStratton Anda menyelamatkan hidup saya, saya juga menulis perintah shell dari dalam shell adb
Divyanshu Kushwaha
1
Saya mencoba melihat file di simulator Android. Saya mengetik 'su' setelah '$' dan dikatakan: su: tidak ditemukan
Pete Alvin
5

Anda mungkin perlu mengaktifkan adb root dari menu pengaturan pengembang. Jika Anda menjalankan adb rootdari garis cmd Anda bisa mendapatkan:

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

Setelah Anda mengaktifkan opsi root (hanya ADB atau Apps dan ADB), adb akan dimulai ulang dan Anda akan dapat menggunakan root dari baris cmd.

Macarse
sumber
3
Jika Anda tidak dapat melihat item 'Opsi pengembang' di menu Pengaturan Anda, lihat jawaban ini untuk detail tentang bagaimana membuatnya terlihat. (Singkatnya: Pengaturan> Tentang ponsel> Nomor pembuatan> Ketuk 7 kali (!).)
Paul Whittaker
1
Tapi begitu masuk, saya tidak melihat apa-apa di sini! Apa yang harus dikatakan?
JohnyTex
35
Opsi ini tidak ada dalam stok build Android - jika ada, opsi ini akan terbatas pada ROM aftermarket seseorang.
Chris Stratton
Apakah ada cara untuk melakukan ini tanpa GUI? Saya kira ada opsi untuk itu /system/build.prop, tetapi saya tidak dapat menemukannya.
Jeroen
Di mana saya dapat menemukan menu untuk mencari pengaturan?
martinkunev
0

Hati-hati dengan garis miring, ubah "\" untuk "/", seperti ini: adb.exe push SuperSU-v2.79-20161205182033.apk / storage

jmojico.dll
sumber
0

data partisi tidak dapat diakses untuk pengguna non root, jika Anda ingin mengaksesnya Anda harus melakukan root pada ponsel Anda.

adb root tidak berfungsi untuk semua produk dan bergantung pada tipe rakitan ponsel.

dalam versi baru di studio android Anda dapat menjelajahi /data/datajalur untuk aplikasi yang dapat di-debug.

Golil
sumber
-4

Lakukan adb remount. Dan kemudian coba adb shell

Pavankumar Vijapur
sumber
3
adb remountmemberikan:remount failed: No such file or directory
Caner
2
Tidak. Ini tidak ada hubungannya dengan masalah.
Chris Stratton
-4

Jalankan Anda cmdsebagai administrator ini akan menyelesaikan masalah saya. Terima kasih.

Kishan Oza
sumber
Tidak. Pertanyaannya menyangkut penolakan dari Android, bukan dari Windows.
Chris Stratton