Como fazer backup dos dados de um aplicativo manualmente? -- backup camp android Relacionado O problema

how to back up an app's data manually?


3
vote

problema

português

Eu sou capaz de fazer backup dos dados do meu aplicativo do diretório abcdefghgjklmnabcdefghjklmnabcdefghijklmn0 apenas movendo-o para o cartão SD manualmente. No entanto, quando eu inverso o processo, aka cole os dados de volta para simular uma restauração, o aplicativo apenas força fecha, eu tentei com um monte de aplicativos e notei a mesma reação. Onde estou errado?

english

I am able to backup my app's data from the root/data/data/you.package.name directory by just moving it to SD card manually. however, when i reverse the process, AKA paste the data back to simulate a restore, the app just force closes, i have tried it with a bunch of apps and noticed the same reaction. Where am i wrong?

  
         
         

Lista de respostas

4
 
vote

Como não há mais feedback, resumirei os comentários para aqueles que chegam com um problema semelhante:

Firelord apontou corretamente Este provavelmente é um problema com permissões de arquivo. O armazenamento interno usa um sistema de arquivos suportando Permissões de arquivo granular 1 < / sup> - que não são suportados pelo sistema de arquivos usado em cartões SD 2 . Portanto, a cópia de todo o conteúdo em seu cartão SD perdeu essa informação e a propriedade foi perdida 3 . Então, copiando isso de volta para o seu armazenamento interno, ele ainda tem a propriedade errada, portanto, o aplicativo não pode acessá-lo corretamente. Não esperando este 4 , o aplicativo será, é claro, se comportar mal: um exceção ocorrerá sem ser manipulado, então o aplicativo falha (Force-Fechar).

Para aqueles que verificados com o comando abcdefghgjklmnmount e agora argumentar Você está errado, o cartão SD não usa gordura, mas fusível! - True é fusível, mas em Este caso, age como gordura. Qual sistema de arquivos é fusível, por favor? :) Não é um sistema de arquivos físico por conta própria, mas sim um virtual um (fusível significa sistema de arquivos no espaço do usuário , que se opõe ao" espaço do sistema "também conhecido como" kernel space "), proporcionando uma" ponte "para as interfaces reais do kernel. Há vários sistemas de arquivos usando fusível: sshfs, Davfs e outros têm implementações de fusíveis. Novamente foi firelord trazendo algum apoio para a minha reivindicação: programa SDCard O trabalho de montagem do fusível e a href = "https://android.googlesource.com/platform/docs/source.android.com/+/android-5.1.1_r36/src/devices/tech/storage" rel = "nofollow noreferrer"> config.jd é mencionado que o programa SDCard é usado por alguns dispositivos para expor armazenamento interno através do fusível.

conclusão: Você tomou uma abordagem completa errada para backup e restaurar aqui. Se você realmente quisesse lidar com isso no nível do sistema de arquivos, você deve ter usado uma ferramenta como tar (que está disponível e geralmente pré-instalado em dispositivos Android) para arquivar o conteúdo enquanto preservava as permissões (o "tarball" resultante pode ser copiado para o cartão SD, e o conteúdo ainda é extraído para sua localização original corretamente ). Otoh, como nosso backup tag-wiki vai te dizer, isso é exatamente o que adb backup ou apps como Hélio - App Sync e Backup e Backup de titânio são para.


1: em versões antigas Android Isso muitas vezes foi yaffs < / a>, em mais novo é extfs
2: geralmente gordo
3: ou melhor "redefinir" para os padrões usados ​​para conteúdo armazenado no cartão SD
4: Um usuário normal não pode fazer essas coisas, como /data/data/<package_name> não é acessível a ninguém além de seu dono e root

 

As there's no more feedback, I'll sum up from the comments for those coming up with a similar issue:

Firelord correctly pointed out this most likely is an issue with file permissions. Internal storage uses a file system supporting granular file permissions1 xe2x80x93 which are not supported by the file system used on SD cards2. So the copy of all the contents on your SD card has lost that information, and ownership got lost3. So copying this back to your internal storage, it still has the wrong ownership, so the app cannot access it properly. Not expecting this4, the app will of course misbehave: an exception will occur without being handled, so the app crashes (force-close).

For those who checked with the mount command and now argue you're wrong, SD card doesn't use FAT but FUSE! xe2x80x93 True it's FUSE, but in this case it acts like FAT. What file system is FUSE, please? :) It's not a physical file system on its own, but rather a virtual one (FUSE stands for File System in User Space, which opposes the "System Space" aka "kernel space") providing a "bridge" to the actual kernel interfaces. There're several file systems using FUSE: SSHFS, DAVFS and others have FUSE implementations. Again it was Firelord bringing up some backing to my claim: sdcard program does the job of mounting FUSE and in config.jd is mentioned that the sdcard program is used by some devices to expose internal storage through FUSE.

Conclusion: You took a complete wrong approach to backup and restore here. If you really wanted to deal with that on the file system level, you should have used a tool like tar (which is available and usually pre-installed on Android devices) to archive the contents while preserving permissions (the resulting "tarball" can then be copied to SD card, and the contents still be extracted to their original location properly). OTOH, as our backup tag-wiki will tell you, this is exactly what adb backup or apps like Helium - App Sync and Backup and Titanium Backup are for.


1: on older Android versions this often was YAFFS, on newer it's Extfs
2: usually FAT
3: or rather "reset" to the defaults used for content stored on the SD card
4: a normal user cannot do such stuff, as /data/data/<package_name> is not accessible to anyone but its owner and root

 
 

Perguntas relacionadas

43  Existe uma maneira de olhar para dentro e modificar um arquivo de backup adb?  ( Is there a way to look inside and modify an adb backup created file ) 
Eu criei um backup do meu galaxy nexus com adb backup . O arquivo resultante é chamado Backup.db e é de alguma forma criptografado. Eu queria restaurar o b...

0  Restaurar o chat e dados do Whatsapp  ( Restore whatsapp chat and data ) 
Eu recentemente brilhou meu Xperia Z2, antes de piscar, fiz um backup da memória interna do telefone, tendo uma impressão de que os dados do WhatsApp seriam a...

338  Como fazer backup totalmente dispositivos não enraizados?  ( How to fully backup non rooted devices ) 
Eu sei que estou pedindo o close-to-impossível - como um verdadeiro backup completo certamente requer permissões de raiz. Mas ainda há muitas pessoas ao redor...

1  Está backup do meu dispositivo Android para a nuvem usando o SkyDrive ou Dropbox igualmente tão eficaz quanto usar aplicativos de backup dedicados?  ( Is backing up my android device to the cloud using skydrive or dropbox equally a ) 
É igualmente eficaz para fazer backup de meus aplicativos, fotos, contatos, textos sms etc no meu smartphone Android (que não é enraizado) usando o MS SkyDriv...

31  Backup e restaurar as configurações e aplicação do Android através do ADB  ( Backup and restore android settings and application through adb ) 
Eu gostaria de perguntar se possível fazer backup e restaurar todas as configurações e aplicativos do Android através do ADB. Eu tentei: adb backup -all ...

1  Como posso fazer backup de contatos em um cartão SIM para o meu computador?  ( How can i backup contacts on a sim card to my computer ) 
Meu irmão quer que eu faça backup dos dados em seu cartão SIM. Como posso copiar isso para o meu computador sem bagunçar meus próprios contatos? ...

6  Como faço para acessar arquivos .img com yaffs2?  ( How do i access img files with yaffs2 ) 
Eu tentei montá-los no Ubuntu, sem sorte, mount não reconhece o sistema de arquivos Yaffs2. Eu tentei yaffs2utils e ./unyaffs2 mas não descompacta os ar...

0  Como posso transferir meus contatos todos os antigos HTC Wildfifre Android 2.1 para LG Optimus Vu  ( How can i transfer my all contacts from old htc wildfifre android 2 1 to lg opti ) 
Eu só quero transferir todos os contatos do antigo Wildfire HTC com o Android Versão 2.1 para o novo LG Optimus Vu com Android versão 4.0. Eu usei aplicativos...

1  Como fazer backup e restaurar a configuração da APN via adb?  ( How to backup and restore apn setting via adb ) 
Como fazer backup e restaurar a configuração da APN via ADB? Eu estou no Android 6.0 sem raiz. ...

4  Contatos de backup, fotos, aplicativos, remover a conta do Google e substituir com conta manequim  ( Backup contacts photos apps remove google account and replace with dummy acc ) 
Eu quero desvincular minha principal conta do Google do meu telefone e usar uma conta fictícia. Eu realmente não uso nenhum dos serviços do Google no meu tele...




© 2022 pergunte.org All Rights Reserved. Casa de perguntas e respostas todos os direitos reservados


Licensed under cc by-sa 3.0 with attribution required.