Estou desenvolvendo um aplicativo e sei que meu banco de dados *.db
aparecerá emdata/data/com.****.***
Eu posso acessar esse arquivo do AVD no Eclipse com a ajuda do sqlite manager
Mas não consigo acessar esse arquivo no meu telefone Android.
Eu o pesquiso no Google e diz que preciso fazer root no meu telefone para fazer isso, mas não quero fazer isso. (Novo telefone, problemas de garantia e problemas de segurança)
Então, aqui está a minha pergunta: como posso acessar meu data/data/.....
diretório no meu telefone Android " sem fazer root "?
Posso alterar as permissões de usuário para o diretório data/data.....
sem fazer o root?
android
android-emulator
android-sqlite
adb
Naveen Prince P
fonte
fonte
Respostas:
É difícil acessar os arquivos diretamente no telefone, mas você pode copiá-los para o seu computador, onde pode fazer o que quiser com ele. Sem fazer o root, você tem 2 opções:
Se o aplicativo for depurável, você pode usar o
run-as
comando no shell adbComo alternativa, você pode usar a função de backup do Android.
Você será solicitado a 'desbloquear o dispositivo e confirmar a operação de backup'. É melhor NÃO fornecer uma senha, caso contrário, fica mais difícil ler os dados. Basta clicar em 'fazer backup dos meus dados'. O arquivo 'backup.ab' resultante no seu computador contém todos os dados do aplicativo no formato de backup do Android. Basicamente, é um arquivo tar compactado. Esta página explica como você pode usar o comando zlib do OpenSSL para descompactá-lo. Você pode usar o
adb restore backup.db
comando para restaurar o backup.fonte
adb backup -f \location\on\local\drive -noapk app.package.name
trabalhou para mim sem raizdd if=backup.ab bs=24 skip=1|openssl zlib -d > backup.tar
adb backup -noapk com.your.packagename
vai salvar o arquivo ab no diretório atual , por isso certifique-se de ter navegado no diretório correto (excd Desktop..
)android:allowBackup="false"
no manifesto.Se você estiver usando o Android Studio 3.0 ou versão posterior, siga estas etapas.
Você só pode expandir pacotes que são executados no modo de depuração no dispositivo não-rooteado.
fonte
3.0.1
, ela mudou?Você também pode tentar buscar o banco de dados usando o aplicativo root explorer. E se isso não funcionar, você pode tentar o seguinte:
adb shell
'su
chmod 777 /data /data/data /data/data/com.application.package /data/data/com.application.package/*
Depois disso, você poderá procurar os arquivos no dispositivo raiz.
fonte
Para executar qualquer uma das opções acima (por exemplo, acessar pastas protegidas no próprio telefone), você ainda precisa de raiz. (Isso inclui alterar as permissões de montagem na pasta / data e acessá-la)
Sem raiz, não é possível acessar o
/data
diretamente para ler, exceto de dentro do seu aplicativo via código. Portanto, você pode tentar copiar esse arquivo para sdcard ou em algum lugar acessível e, em seguida, conseguir acessá-lo normalmente.O enraizamento não anulará sua garantia se você tiver um dispositivo de desenvolvedor. Sinto muito, não há outra maneira AFAIK.
fonte
adb pull
mencionada na resposta abaixo.A maneira mais fácil (apenas uma etapa simples) de extrair um arquivo da pasta do aplicativo depurável (digamos
/data/data/package.name/databases/file
) em um dispositivo Android 5.0+ não raiz, é usando este comando:fonte
adb -d shell
run-as com.your.packagename cat databases/database.db > /sdcard/database.db
cd /sdcard
certificar-database.db
se de que existe.adb pull /sdcard/database.db
ou simplesmente você pode copiar database.db do dispositivo.fonte
Use o File Explorer no eclipse. Selecione Windows => Mostrar Visualização => Outro ... => Explorador de Arquivos.
Uma outra maneira é puxar o arquivo via adb:
fonte
Eu também tive o mesmo problema uma vez. Não há como acessar diretamente o arquivo nos dispositivos Android, exceto no shell adb ou no dispositivo de root.
Ao lado, aqui estão 02 alternativas:
1)
2) Tente o seguinte: https://github.com/sanathp/DatabaseManager_For_Android
fonte
Para fazer backup do Android para o Desktop
Abra o cmd da linha de comando e execute: adb backup -f C: \ Intel \ xxx.ab -noapk your.app.package . Não digite a senha e clique em Fazer backup dos meus dados. Certifique-se de não salvar na raiz da unidade C. Você pode ser negado. É por isso que salvei em C: \ Intel.
Para extrair o arquivo * .ab
fonte
Em um dispositivo raiz , a solução correta é esta:
A solução original funcionou, mas o chmod retornaria um diretório desconhecido. Alterar o comando chmod para / data / data / * deu acesso a todas as subpastas no diretório de dados a partir do DDMS no Intellij. Presumo que a mesma solução seja verdadeira para o Eclipse DDMS.
ATUALIZAÇÃO Então, o que eu achei é estranho. Estou executando um Nexus 6 usando DDMS no IntelliJ (Android Device Monitor). Eu criei um pequeno aplicativo inicial. Esse aplicativo salva os dados em um arquivo .csv em data / data / com.example.myapp / files
Quando comecei a tentar acessar esse arquivo no meu Nexus 6, descobri que era necessário fazer root no dispositivo. Pude ver a pasta de dados, mas tentar abri-la não funcionaria. Como mencionado on-line em outros lugares, o expand + desapareceria e reapareceria logo em seguida (observe que existem soluções na Web que alegam permitir o acesso a essas pastas sem fazer o root, não as encontrei até muito tarde e estou não tenho certeza se prefiro não fazer root de qualquer maneira ((prefiro fazê-lo manualmente do que confiar em um aplicativo ou prompt de comando para me fornecer minhas soluções))). Enraizei meus 6 e tentei DDMS novamente.
Nesse momento, ele me mostrava a pasta de dados e eu podia expandir a pasta e ver a com. diretórios, mas não consegui abrir nenhum deles. Foi quando eu descobri a solução acima. As instruções iniciais não funcionariam nesta parte:
Foi quando tentei a solução que publiquei:
Essa solução parecia funcionar, mas apenas em determinadas pastas. Agora eu podia expandir minha pasta myapp, mas não conseguia expandir o diretório de arquivos nela.
Nesse ponto, eu brinquei por um tempo e então imaginei por que não apenas tentar no diretório que eu precisava, em vez de tentar essas entradas curinga.
Seguido por:
Esses comandos me permitiram expandir e exibir os arquivos no diretório do meu aplicativo para confirmar que o arquivo .csv estava sendo salvo corretamente.
Espero que isso ajude alguém. Eu lutei com isso por horas!
(para compor isso um pouco mais, por incrível que pareça, as permissões não foram passadas para o arquivo .csv que passou para o diretório de arquivos. minhas permissões de diretório de arquivos leem drwxrwxrwx e minhas permissões de arquivo log.csv leem -rw-rw --- - .. apenas fyi)
fonte
Você pode baixar um arquivo sigle assim:
adb exec-out run-as debuggable.app.package.name cat files/file.mp4 > file.mp4
Antes de fazer o download, você pode não querer dar uma olhada na estrutura do arquivo no seu App-Directory. Para isso, execute as seguintes etapas
THelper
observadas acima:O Android-Studio forma
Shahidul
mencionado ( https://stackoverflow.com/a/44089388/1256697 trabalho) também. Para quem não vê aDeviceFile Explorer
opção no menu: Certifique-se de abrir o diretório / android no Android Studio. Por exemplo, usuários nativos do react têm isso dentro da pasta do projeto, exatamente no mesmo nível do diretório / ios.fonte
Uma maneira simples é criar seu banco de dados no cartão SD. Porque você não pode acessar a pasta de dados do telefone na memória interna, a menos que faça root no telefone. Então, por que não simplesmente criar seu banco de dados no cartão SD?
Além disso, se desejar, você pode escrever um código de cópia de arquivo para copiar o arquivo de banco de dados existente (da memória interna) para a memória externa sem exigir raiz.
fonte
File
apontando para SD-Card e você é bom para irPara acessar esta pasta, você precisa de direitos administrativos.
então você tem duas opções: -
ps: se você estiver usando alguma das duas opções acima, poderá acessar esta pasta seguindo estas etapas
e a partir daí você pode abrir seu arquivo
fonte
adb backup
não funcionou para mim, então aqui está o que eu fiz (Xiaomi Redmi Note 4X, Android 6.0):1. Vá para Configurações> Configurações adicionais> Backup e redefinição> Backups locais .
2. Toque em 'Backup' na parte inferior da tela.
3. Desmarque as marcas de seleção 'Sistema' e 'Aplicativos'.
4. Toque no botão de divulgação detalhada à direita da célula 'Aplicativos' para navegar para a tela de seleção de aplicativos.
5. Selecione o aplicativo desejado e toque em OK.
6. Após a conclusão do backup, o arquivo real precisa ser localizado de alguma forma. O meu pode ser encontrado em / MIUI / backup / AllBackup / _FOLDER_NAMED_AFTER_BACKUP_CREATION_DATE_ .
7. Segui os passos desta resposta de RonTLVpara converter o arquivo de backup (.bak no meu caso) para tar (duplicando da resposta original):
"
a) Acesse aqui e faça o download: https://sourceforge.net/projects/adbextractor/
b) Extraia o arquivo baixado e navegue até a pasta onde você extraiu
c) execute isso com seus próprios nomes de arquivo: java -jar abe.jar descompacte c: \ Intel \ xxx.ab c: \ Intel \ xxx.tar
"
fonte
você pode copiar esse arquivo db para algum lugar no eclipse explorer (por exemplo: sdcard ou PC) e pode usar o sqlite para acessar e atualizar esse arquivo db.
fonte
A questão é: como acessar a pasta de dados de dados no dispositivo Android?
Se o dispositivo Android é Bluestacks *, o Root Browser APK mostra dados / dados / ..
Tente baixar o Root Browser em https://apkpure.com/root-browser/com.jrummy.root.browserfree
Se o arquivo for um arquivo de texto, você precisará clicar em "Abrir como", "Arquivo de texto", "Abrir como", "Editor de texto RB"
fonte
Você também pode tentar copiar o arquivo para a pasta SD Card, que é uma pasta pública, e copiar o arquivo para o seu PC, onde poderá usar o sqlite para acessá-lo.
Aqui está um código que você pode usar para copiar o arquivo de dados / dados para uma pasta de armazenamento público:
Manifesto:
fonte
O banco de dados SQLlite é armazenado no telefone do usuário e está oculto no caminho:
você tem 2 opções aqui:
fonte