Я занимаюсь разработкой приложения и знаю, что моя база данных *.db
появится вdata/data/com.****.***
Я могу получить доступ к этому файлу из AVD в Eclipse с помощью диспетчера sqlite
Но я не могу получить доступ к этому файлу на своем телефоне Android.
Я гуглю его, и он говорит, что мне нужно рутировать мой телефон, чтобы сделать это, но я не хочу это делать. (Новый телефон, проблемы с гарантией и проблемы с безопасностью)
Итак, вот мой вопрос: как я могу получить доступ к своему data/data/.....
каталогу в моем телефоне Android " без рутирования "?
Могу ли я изменить пользовательские разрешения для каталога data/data.....
без рута?
android
android-emulator
android-sqlite
adb
Навин Принц П
источник
источник
Ответы:
Доступ к файлам непосредственно на вашем телефоне затруднен, но вы можете скопировать их на свой компьютер, где вы сможете делать с ним все, что захотите. Без рута у вас есть 2 варианта:
Если приложение отлаживаемо, вы можете использовать
run-as
команду в оболочке adbВ качестве альтернативы вы можете использовать функцию резервного копирования Android.
Теперь вам будет предложено «разблокировать устройство и подтвердить операцию резервного копирования». Лучше НЕ предоставлять пароль, иначе становится сложнее читать данные. Просто нажмите «Резервное копирование моих данных». В результате файл «backup.ab» на вашем компьютере содержит все данные приложения в формате резервной копии Android. По сути это сжатый tar-файл. На этой странице объясняется, как вы можете использовать команду OpenSSL zlib для ее распаковки. Вы можете использовать
adb restore backup.db
команду для восстановления резервной копии.источник
adb backup -f \location\on\local\drive -noapk app.package.name
у меня работал без рутаdd if=backup.ab bs=24 skip=1|openssl zlib -d > backup.tar
adb backup -noapk com.your.packagename
сохранит файл ab в текущем каталоге , поэтому убедитесь, что вы перешли в нужный каталог (напримерcd Desktop..
)android:allowBackup="false"
манифест.Если вы используете Android Studio 3.0 или более позднюю версию, выполните следующие действия.
Вы можете разворачивать пакеты, которые работают в режиме отладки, только на некорневом устройстве.
источник
3.0.1
, он переместился?Вы также можете попробовать получить базу данных с помощью приложения root explorer. И если это не работает, то вы можете попробовать это:
adb shell
'su
chmod 777 /data /data/data /data/data/com.application.package /data/data/com.application.package/*
После этого вы сможете просматривать файлы на рутированном устройстве.
источник
Чтобы сделать что-либо из вышеперечисленного (например, получить доступ к защищенным папкам из самого телефона), вам все еще нужен root. (Это включает изменение разрешений на монтирование для папки / data и доступ к ней)
Без root невозможно получить
/data
прямой доступ для чтения, кроме как из вашего приложения через код. Таким образом, вы можете попробовать скопировать этот файл на SDCard или куда-нибудь доступный, и тогда вы сможете получить к нему обычный доступ.Rooting не аннулирует вашу гарантию, если у вас есть устройство разработчика. Извините, по-другому, AFAIK, нет.
источник
adb pull
как указано в ответе ниже.Самый простой способ (всего один простой шаг) извлечь файл из папки отлаживаемого приложения (скажем
/data/data/package.name/databases/file
) на некорневом устройстве Android 5.0+ с помощью этой команды:источник
adb -d shell
run-as com.your.packagename cat databases/database.db > /sdcard/database.db
cd /sdcard
убедиться, чтоdatabase.db
он есть.adb pull /sdcard/database.db
или просто вы можете скопировать database.db с устройства.источник
Используйте Проводник в затмении. Выберите Windows => Показать представление => Прочее ... => Проводник.
Другой способ - извлечь файл через adb:
источник
У меня тоже была одна и та же проблема. Невозможно получить прямой доступ к файлу на устройствах Android, кроме оболочки adb или рутирующего устройства.
Кроме того, здесь есть 2 варианта:
1)
2) Попробуйте это: https://github.com/sanathp/DatabaseManager_For_Android
источник
Для резервного копирования с Android на рабочий стол
Откройте командную строку cmd и запустите: adb backup -f C: \ Intel \ xxx.ab -noapk your.app.package . Не вводите пароль и нажмите Резервное копирование моих данных. Убедитесь, что вы не сохранили на диске C root. Вам может быть отказано. Вот почему я сохранил на C: \ Intel.
Чтобы извлечь файл * .ab
источник
На рутованном устройстве правильное решение таково:
Исходное решение работало, но chmod возвращал неизвестный каталог. Изменение команды chmod на / data / data / * дало доступ ко всем подпапкам в каталоге данных из DDMS в Intellij. Я предполагаю, что то же решение верно для Eclipse DDMS.
ОБНОВЛЕНИЕ Итак, то, что я нашел, странно. Я использую Nexus 6, используя DDMS в IntelliJ (Android Device Monitor). Я построил небольшое приложение для начинающих. Указанное приложение сохраняет данные в файл .csv в data / data / com.example.myapp / files
Когда я впервые начал пытаться получить доступ к этому файлу на своем Nexus 6, я обнаружил, что должен рутировать устройство. Я мог видеть папку данных, но попытка открыть ее не сработала. Как упоминалось в Интернете в других местах, расширение + исчезнет, а затем вскоре появится снова (обратите внимание, что в Интернете есть решения, которые утверждают, что разрешают доступ к этим папкам без рутирования, я не нашел их слишком поздно, и я не уверен, предпочитаю ли я в любом случае не получать root-права ((я бы предпочел сделать это вручную, чем полагаться на приложение или командную строку, чтобы дать мне свои решения))). Я рутировал свои 6 и снова попробовал DDMS.
В этот момент он показал мне папку с данными, и я смог развернуть папку и увидеть ком. каталоги, но я не мог открыть ни один из них. Именно тогда я обнаружил вышеуказанное решение. Начальные инструкции не будут работать на этой части:
Именно тогда я попробовал решение, которое я отправил:
Это решение, похоже, работает, но только для определенных папок. Теперь я могу развернуть папку myapp, но не могу развернуть каталог файлов в ней.
В этот момент я немного поигрался, а потом подумал, почему бы просто не попробовать его в нужном мне каталоге, а не попробовать эти подстановочные знаки.
С последующим:
Эти команды позволили мне развернуть и просмотреть файлы в каталоге моего приложения, чтобы убедиться, что файл .csv был сохранен правильно.
Надеюсь, это кому-нибудь поможет. Я боролся с этим часами!
(немного сложнее, как ни странно, разрешения не передавались в файл .csv, который передавался в каталог files. Мои права доступа к каталогу файлов для чтения drwxrwxrwx и мои права доступа для файла log.csv для чтения -rw-rw --- - .. просто к вашему сведению)
источник
Вы можете скачать файл Sigle следующим образом:
adb exec-out run-as debuggable.app.package.name cat files/file.mp4 > file.mp4
Перед загрузкой вы, возможно, не захотите взглянуть на файловую структуру в вашем App-Directory. Для этого выполните следующие шаги,
THelper
указанные выше:Упомянутый способ Android-Studio
Shahidul
( https://stackoverflow.com/a/44089388/1256697 ) также работает. Для тех, кто не видитDeviceFile Explorer
опцию в меню: обязательно откройте / android-Directory в Android Studio. Например, пользователи-реагирующие имеют это внутри своей папки проекта прямо на том же уровне, что и / ios-Directory.источник
Одним из простых способов является создание базы данных на SD-карте. Потому что вы не можете получить доступ к папке данных вашего телефона во внутренней памяти, если вы не рутируете свой телефон. Так почему бы просто не создать свою базу данных на SD-карте.
Более того, если вы хотите, вы можете написать некоторый код для копирования файлов, чтобы скопировать существующий файл базы данных (из внутренней памяти) во внешнюю память, не требуя какого-либо рута.
источник
File
Возможно, для доступа к этой папке вам необходимы права администратора.
так что у вас есть два варианта: -
PS: если вы используете любой из двух вышеуказанных вариантов, вы можете получить доступ к этой папке, выполнив следующие действия
и оттуда вы можете поднять свой файл
источник
adb backup
у меня не получилось, поэтому вот что я сделал (Xiaomi Redmi Note 4X, Android 6.0):1. Перейдите в раздел «Настройки»> «Дополнительные настройки»> «Резервное копирование и сброс»> «Локальные резервные копии» .
2. Нажмите «Резервное копирование» в нижней части экрана.
3. Снимите флажки «Система» и «Приложения».
4. Нажмите кнопку подробного раскрытия в правой части ячейки «Приложения», чтобы перейти к экрану выбора приложения.
5. Выберите нужное приложение и коснитесь OK.
6. После того, как резервное копирование было завершено, нужно как-то найти фактический файл. Мою можно найти в / MIUI / backup / AllBackup / _FOLDER_NAMED_AFTER_BACKUP_CREATION_DATE_ .
7. Затем я последовал за шагами от этого ответа на RonTLVчтобы на самом деле преобразовать файл резервной копии (в моем случае .bak) в tar (дублируя исходный ответ):
«
а) Перейдите сюда и загрузите: https://sourceforge.net/projects/adbextractor/
b) Извлеките загруженный файл и перейдите в папку, в которую вы распаковали.
c) запустите ее с собственными именами файлов: java -jar abe.jar распакуйте c: \ Intel \ xxx.ab c: \ Intel \ xxx.tar
"
источник
Вы можете скопировать этот файл базы данных куда-нибудь в обозревателе eclipse (например, SDCard или ПК), и вы можете использовать sqlite для доступа и обновления этого файла базы данных.
источник
Вопрос: как получить доступ к данным-данным-папке-в-андроид-устройстве?
Если android-устройство Bluestacks * Root Browser APK показывает данные / данные / ..
Попробуйте загрузить Root Browser с https://apkpure.com/root-browser/com.jrummy.root.browserfree
Если файл представляет собой текстовый файл, вам нужно нажать «Открыть как», «Текстовый файл», «Открыть как», «Текстовый редактор РБ».
источник
Вы также можете попробовать скопировать файл в папку SD Card, которая является общей папкой, затем вы можете скопировать файл на свой компьютер, где вы можете использовать sqlite для доступа к нему.
Вот некоторый код, который вы можете использовать для копирования файла из данных / данных в папку общего хранилища
Manifest:
источник
База данных SQLlite хранится на телефоне пользователя и скрывается по пути:
у вас есть 2 варианта здесь:
источник