Saya sedang mengembangkan aplikasi dan saya tahu basis data saya *.db
akan munculdata/data/com.****.***
Saya dapat mengakses file ini dari AVD di Eclipse dengan bantuan manajer sqlite
Tetapi saya tidak dapat mengakses file ini di ponsel Android saya.
Saya google dan mengatakan saya perlu me-root ponsel saya untuk melakukannya, tetapi saya tidak ingin melakukannya. (Telepon baru, masalah garansi, dan masalah keamanan)
Jadi, inilah pertanyaan saya: Bagaimana saya bisa mengakses data/data/.....
direktori saya di ponsel Android saya " tanpa rooting "?
Bisakah saya mengubah izin pengguna untuk direktori data/data.....
tanpa rooting?
android
android-emulator
android-sqlite
adb
Naveen Prince P
sumber
sumber
Jawaban:
Mengakses file secara langsung di ponsel Anda sulit, tetapi Anda mungkin dapat menyalinnya ke komputer di mana Anda dapat melakukan apa pun yang Anda inginkan dengannya. Tanpa rooting, Anda memiliki 2 opsi:
Jika aplikasi ini debuggable Anda dapat menggunakan
run-as
perintah di adb shellAtau Anda dapat menggunakan fungsi cadangan Android.
Anda sekarang akan diminta untuk 'membuka kunci perangkat Anda dan mengkonfirmasi operasi pencadangan'. Sebaiknya TIDAK memberikan kata sandi, jika tidak maka akan semakin sulit untuk membaca data. Cukup klik 'backup data saya'. File 'backup.ab' yang dihasilkan di komputer Anda berisi semua data aplikasi dalam format cadangan android. Pada dasarnya ini adalah file tar terkompresi. Halaman ini menjelaskan bagaimana Anda dapat menggunakan perintah zlib OpenSSL untuk mengompresnya. Anda dapat menggunakan
adb restore backup.db
perintah untuk memulihkan cadangan.sumber
adb backup -f \location\on\local\drive -noapk app.package.name
bekerja untuk saya tanpa rootdd if=backup.ab bs=24 skip=1|openssl zlib -d > backup.tar
adb backup -noapk com.your.packagename
akan menyimpan file ab pada direktori saat ini , jadi pastikan Anda telah menavigasi di direktori yang benar (mis.cd Desktop..
)android:allowBackup="false"
dalam manifes.Jika Anda menggunakan Android Studio 3.0 atau versi yang lebih baru maka ikuti langkah-langkah ini.
Anda hanya dapat memperluas paket yang berjalan dalam mode debug pada perangkat yang tidak di-rooting.
sumber
3.0.1
, sudahkah pindah?Anda juga dapat mencoba mengambil db menggunakan aplikasi root explorer. Dan jika itu tidak berhasil maka Anda dapat mencoba ini:
adb shell
'su
chmod 777 /data /data/data /data/data/com.application.package /data/data/com.application.package/*
Setelah ini, Anda harus dapat menelusuri file pada perangkat yang di-rooting.
sumber
Untuk melakukan hal-hal di atas (mis. Mengakses folder yang dilindungi dari dalam ponsel Anda sendiri), Anda masih perlu root. (Itu termasuk mengubah izin pemasangan pada folder / data dan mengaksesnya)
Tanpa root, mengakses
/data
langsung untuk membaca kecuali dari dalam aplikasi Anda melalui kode tidak mungkin. Jadi Anda dapat mencoba menyalin file itu ke sdcard atau tempat yang dapat diakses, dan kemudian, Anda harus dapat mengaksesnya secara normal.Rooting tidak akan membatalkan garansi Anda jika Anda memiliki perangkat pengembang. Maaf, tidak ada cara lain AFAIK.
sumber
adb pull
seperti yang disebutkan dalam jawaban di bawah ini.Cara termudah (hanya satu langkah sederhana) untuk menarik file dari folder aplikasi debuggable Anda (katakanlah
/data/data/package.name/databases/file
) pada perangkat Android 5.0+ yang tidak dicabut adalah dengan menggunakan perintah ini:sumber
adb -d shell
run-as com.your.packagename cat databases/database.db > /sdcard/database.db
cd /sdcard
memastikandatabase.db
ada.adb pull /sdcard/database.db
atau cukup Anda dapat menyalin database.db dari perangkat.sumber
Gunakan File Explorer di gerhana. Pilih Windows => Tampilkan Lihat => Lainnya ... => File Explorer.
Cara lain adalah menarik file melalui adb:
sumber
Saya juga pernah mengalami masalah yang sama. Tidak ada cara untuk mengakses langsung file di dalam perangkat android kecuali adb shell atau rooting device.
Di samping ini ada 02 alternatif:
1)
2) Coba ini: https://github.com/sanathp/DatabaseManager_For_Android
sumber
Untuk membuat cadangan dari Android ke Desktop
Buka cmd baris perintah dan jalankan ini: adb backup -f C: \ Intel \ xxx.ab -noapk your.app.package . Jangan masukkan kata sandi dan klik Cadangkan data saya. Pastikan untuk tidak menyimpan pada drive C root. Anda mungkin ditolak. Inilah mengapa saya menyimpan di C: \ Intel.
Untuk mengekstrak file * .ab
sumber
Pada perangkat yang di- rooting , solusi yang benar adalah ini:
Solusi asli berhasil, tetapi chmod akan mengembalikan direktori yang tidak dikenal. Mengubah perintah chmod ke / data / data / * memberi akses ke semua subfolder di direktori data dari DDMS di Intellij. Saya menganggap solusi yang sama berlaku untuk Eclipse DDMS.
MEMPERBARUI Jadi, apa yang saya temukan aneh. Saya menjalankan Nexus 6 menggunakan DDMS di IntelliJ (Monitor Perangkat Android). Saya telah membangun aplikasi pemula kecil. Aplikasi tersebut menyimpan data ke file .csv dalam data / data / com.example.myapp / file
Ketika saya pertama kali mulai mencoba mengakses file ini pada Nexus 6 saya, saya menemukan bahwa saya harus melakukan root pada perangkat .. Saya dapat melihat folder data, tetapi mencoba membukanya tidak akan berhasil. Seperti disebutkan secara online di tempat lain, perluasan + akan hilang kemudian muncul kembali tidak lama kemudian (perhatikan, ada solusi di web yang mengklaim untuk mengizinkan akses ke folder ini tanpa rooting, saya tidak menemukannya sampai terlambat, dan saya tidak yakin apakah saya lebih memilih untuk tidak me-root ((Saya lebih suka bisa melakukannya secara manual daripada mengandalkan aplikasi atau command prompt untuk memberi saya solusi saya)))). Saya melakukan root 6 dan mencoba DDMS lagi.
Pada titik ini, itu menunjukkan kepada saya folder data dan saya dapat memperluas folder dan melihat com. direktori, tetapi saya tidak bisa membuka salah satunya. Saat itulah saya menemukan solusi di atas. Instruksi awal tidak akan berfungsi pada bagian ini:
Saat itulah saya mencoba solusi yang saya posting:
Solusi itu tampaknya berhasil, tetapi hanya pada folder tertentu. Saya sekarang dapat memperluas folder myapp saya, tetapi tidak dapat memperluas direktori file di dalamnya.
Pada titik ini, saya bermain-main sebentar kemudian menemukan mengapa tidak mencobanya di direktori yang saya butuhkan daripada mencoba entri wildcard ini.
Diikuti oleh:
Perintah ini memungkinkan saya untuk memperluas dan melihat file di direktori aplikasi saya untuk mengonfirmasi bahwa .csv disimpan dengan benar.
Semoga ini bisa membantu seseorang. Saya berjuang dengan ini selama berjam-jam!
(untuk menambahkan sedikit lebih jauh, anehnya, izin tidak lolos ke file .csv yang diteruskan ke direktori file. Izin direktori file saya membaca drwxrwxrwx dan izin file log.csv saya baca -rw-rw --- - .. hanya fyi)
sumber
Anda dapat mengunduh file sigle seperti itu:
adb exec-out run-as debuggable.app.package.name cat files/file.mp4 > file.mp4
Sebelum mengunduh, Anda mungkin tidak perlu melihat struktur file di Direktori Aplikasi Anda. Untuk ini lakukan langkah-langkah berikut yang
THelper
diperhatikan di atas:The Android-Studio cara
Shahidul
yang disebutkan ( https://stackoverflow.com/a/44089388/1256697 ) juga bekerja. Bagi mereka yang tidak melihatDeviceFile Explorer
Opsi di Menu: Pastikan, untuk membuka direktori / android-di Android Studio. Misalnya bereaksi-pribumi pengguna memiliki ini dalam mereka Proyek-Folder kanan pada Tingkat yang sama seperti / ios-direktori.sumber
Salah satu cara sederhana adalah membuat database Anda di SD-Card. Karena Anda tidak bisa mendapatkan akses ke folder data ponsel Anda di memori internal, kecuali Anda melakukan root pada ponsel Anda. Jadi mengapa tidak membuat database Anda di SD-Card.
Selain itu, jika Anda mau, Anda dapat menulis beberapa kode penyalinan file untuk menyalin file basis data yang ada (dari memori internal) ke memori eksternal tanpa memerlukan root apa pun.
sumber
File
menunjuk ke SD-Card dan Anda baik untuk pergimungkin untuk mengakses folder ini Anda memerlukan hak administratif.
jadi Anda memiliki dua opsi: -
ps: jika Anda menggunakan salah satu dari dua opsi di atas, Anda dapat mengakses folder ini dengan mengikuti langkah-langkah ini
dan dari sana Anda dapat menarik file Anda
sumber
adb backup
tidak bekerja untuk saya, jadi inilah yang saya lakukan (Xiaomi Redmi Note 4X, Android 6.0):1. Buka Pengaturan> Pengaturan Tambahan> Pencadangan & reset> Pencadangan lokal .
2. Ketuk 'Cadangkan' di bagian bawah layar.
3. Hapus centang pada tanda centang 'Sistem' dan 'Aplikasi'.
4. Ketuk tombol pengungkapan detail di sebelah kanan sel 'Aplikasi' untuk menavigasi ke layar pemilihan aplikasi.
5. Pilih aplikasi yang diinginkan dan ketuk OK.
6. Setelah cadangan selesai, file yang sebenarnya harus ditemukan. Milik saya dapat ditemukan di / MIUI / backup / AllBackup / _FOLDER_NAMED_AFTER_BACKUP_CREATION_DATE_ .
7. Kemudian saya mengikuti langkah-langkah dari jawaban ini dengan RonTLVuntuk benar-benar mengonversi file cadangan (.bak dalam kasus saya) menjadi tar (duplikasi dari jawaban asli):
"
a) Buka di sini dan unduh: https://sourceforge.net/projects/adbextractor/
b) Ekstrak file yang diunduh dan arahkan ke folder tempat Anda mengekstraksi.
c) jalankan ini dengan nama file Anda sendiri: java -jar abe.jar buka kemasan c: \ Intel \ xxx.ab c: \ Intel \ xxx.tar
"
sumber
Anda dapat menyalin file db ini ke suatu tempat di eclipse explorer (mis: sdcard atau PC), dan Anda dapat menggunakan sqlite untuk mengakses dan memperbarui file db ini.
sumber
Pertanyaannya adalah: bagaimana cara mengakses data-data-folder-di-android-perangkat?
Jika perangkat android adalah Bluestacks * Root Browser APK menunjukkan data / data / ..
Cobalah mengunduh Root Browser dari https://apkpure.com/root-browser/com.jrummy.root.browserfree
Jika file tersebut adalah file teks, Anda harus mengklik "Open as", "Text file", "Open as", "RB Text Editor"
sumber
Anda juga dapat mencoba menyalin file ke folder SD Card, yang merupakan folder publik, kemudian Anda dapat menyalin file ke PC Anda di mana Anda dapat menggunakan sqlite untuk mengaksesnya.
Berikut ini beberapa kode yang dapat Anda gunakan untuk menyalin file dari data / data ke folder penyimpanan publik:
Nyata:
sumber
Database SQLlite disimpan di Ponsel pengguna dan tersembunyi di bawah jalur:
Anda memiliki 2 opsi di sini:
sumber