Como fazer o flash de um arquivo de backup. Como fazer backup do firmware usando a ferramenta SP Flash

Muitos usuários de dispositivos Android sabem que experimentos com firmware, instalação de vários complementos e correções muitas vezes levam à inoperabilidade do dispositivo, que só pode ser corrigida instalando o sistema de forma limpa, e esse processo envolve a limpeza completa da memória de todos em formação. Caso o usuário tenha cuidado de criar uma cópia de backup de dados importantes com antecedência, ou ainda melhor - um backup completo do sistema, restaurar o dispositivo para o estado "como era antes ..." levará alguns minutos.

Há muitas maneiras de fazer backup de determinadas informações do usuário ou um backup completo do sistema. Qual é a diferença entre esses conceitos, para quais dispositivos é aconselhável usar um ou outro método, será discutido abaixo.

Uma cópia de segurança das informações pessoais significa a preservação dos dados e conteúdos gerados pelo usuário durante a operação do dispositivo Android. Essas informações incluem uma lista de aplicativos instalados, fotos tiradas pela câmera do dispositivo ou recebidas de outros usuários, contatos, notas, arquivos de música e vídeo, favoritos do navegador, etc.

Um dos mais confiáveis ​​e mais importantes maneiras simples salvar dados pessoais contidos no dispositivo Android é sincronizar dados da memória do dispositivo com armazenamento em nuvem.

Backup completo do sistema

Os métodos acima e ações semelhantes permitem que você salve as informações mais valiosas. Mas quando os dispositivos piscam, não apenas os contatos, fotos etc. são frequentemente perdidos, porque as manipulações com as seções de memória do dispositivo envolvem a limpeza de absolutamente todos os dados. Para reservar a oportunidade de retornar ao estado anterior do software e dos dados, você só precisa de um backup completo do sistema, ou seja, uma cópia de todas ou algumas seções da memória do dispositivo. Em outras palavras, um clone completo ou uma conversão da parte do software é criada em arquivos especiais com a capacidade de restaurar o dispositivo a um estado anterior posteriormente. Isso exigirá certas ferramentas e conhecimentos do usuário, mas pode garantir a total segurança de absolutamente todas as informações.

Onde armazenar o backup? Quando se trata de armazenamento de longo prazo, da melhor maneira possível armazenamento em nuvem será usado. Ao salvar informações usando os métodos descritos abaixo, é aconselhável usar o cartão de memória instalado na máquina. Caso não esteja disponível, você pode salvar os arquivos de backup na memória interna do dispositivo, mas neste caso, é recomendável copiar imediatamente os arquivos de backup para um local mais confiável, como um disco de PC, imediatamente após a criação .

Método 1: Recuperação TWRP

Do ponto de vista do usuário, a maneira mais fácil de criar um backup é usar um ambiente de recuperação modificado para essa finalidade - recuperação personalizada. A mais funcional entre essas soluções é.


Método 2: Recuperação CWM + Gerenciador de ROM do aplicativo Android

Como no método anterior, ao criar um backup de firmware do Android, será usado um ambiente de recuperação modificado, apenas de outro desenvolvedor - a equipe ClockworkMod -. Em geral, o método é semelhante ao uso do TWRP e não fornece resultados menos funcionais - ou seja, arquivos de backup de firmware. Ao mesmo tempo, o CWM Recovery não possui os recursos necessários para muitos usuários gerenciarem o processo de criação de um backup, por exemplo, é impossível selecionar partições individuais para criar um backup. Mas os desenvolvedores oferecem a seus usuários um bom aplicativo Android Gerenciador de ROM, recorrendo às funções das quais, você pode começar a criar um backup diretamente do sistema operacional.


Método 3: aplicativo Android de backup de titânio

Titanium Backup é uma ferramenta de backup de sistema muito poderosa e fácil de usar. Com a ajuda da ferramenta, você pode salvar todos aplicativos instalados e seus dados, bem como informações do usuário, incluindo contatos, registros de chamadas, sms, mms, pontos acesso wi fi e outro.

As vantagens incluem a possibilidade de uma ampla gama de configurações. Por exemplo, uma seleção de aplicativos está disponível, quais e cujos dados serão salvos. Para criar um backup completo do Titanium Backup, você deve fornecer direitos de root, ou seja, para os dispositivos nos quais os direitos de superusuário não foram obtidos, o método não é aplicável.

É altamente desejável cuidar de um local confiável para salvar antecipadamente os backups criados. Memória interna smartphone não pode ser considerado como tal, é recomendável usar um disco de PC para armazenar backups, armazenamento na núvem Ou em casos extremos, o cartão microSD do dispositivo.

  1. Instale e execute o Titanium Backup.
  2. Na parte superior do programa há uma guia "Backups", vamos a isso.
  3. Após abrir a aba "Backups", você precisa chamar o menu "Ações em lote" clicando no botão com a imagem de um documento com uma marca de seleção localizada em canto superior tela do aplicativo. Ou pressione o botão de toque "Cardápio" sob a tela do dispositivo e selecione o item apropriado.
  4. A seguir, pressione o botão "COMEÇAR" localizado ao lado da opção “Faça r.k. todos os softwares do usuário e dados do sistema".Aparece uma tela com uma lista de aplicativos para backup. Como um backup completo do sistema está sendo criado, nada precisa ser alterado aqui, você precisa confirmar que está pronto para iniciar o processo clicando na marca de seleção verde localizada no canto superior direito da tela.
  5. O processo de cópia de aplicativos e dados será iniciado, acompanhado pela exibição de informações sobre o andamento atual e o nome do componente de software, que é salvo em este momento Tempo. By the way, o aplicativo pode ser minimizado e continuar usando o dispositivo em modo normal, mas, para evitar falhas, é melhor não fazer isso e esperar até que a cópia seja criada, o processo é bem rápido.
  6. No final do processo, uma guia é aberta. "Backups". Você pode notar que os ícones à direita dos nomes dos aplicativos foram alterados. Agora, esses são emoticons peculiares de cores diferentes e, sob cada nome do componente de software, há uma inscrição indicando que uma cópia de backup foi criada com a data.
  7. Os arquivos de backup são armazenados no caminho especificado nas configurações do programa.

    Para evitar a perda de informações, por exemplo, ao formatar a memória antes de instalar o software do sistema, você deve copiar a pasta de backup para pelo menos um cartão de memória. Esta ação pode ser feita com qualquer gerenciador de arquivos para Android. Uma boa solução para realizar operações com arquivos armazenados na memória de dispositivos Android é.

Além disso

Além da cópia usual da pasta de backup criada com o Titanium Backup para um local seguro, para ressegurar contra perda de dados, você pode configurar a ferramenta para que as cópias sejam criadas imediatamente no cartão MicroSD.


Método 4: SP FlashTool+MTK DroidTools

O uso de aplicativos é uma das formas mais funcionais que permite criar um backup verdadeiramente completo de todas as seções da memória de um dispositivo Android. Outra vantagem do método é a presença opcional de direitos de root no dispositivo. O método é aplicável apenas para dispositivos construídos na plataforma de hardware Mediatek, com exceção de processadores de 64 bits.

  1. Para criar uma cópia completa do firmware usando SP FlashTools e MTK DroidTools, além dos próprios aplicativos, você precisará de drivers ADB instalados, drivers para o modo de inicialização MediaTek, bem como um aplicativo (você também pode usar, mas o Notepad normal não funciona). Baixe tudo o que você precisa e descompacte os arquivos em uma pasta separada na unidade C:.
  2. Ativar o modo de dispositivo "Depuração USB" e conecte-o ao PC. Para habilitar a depuração,
    o modo é ativado primeiro "Para desenvolvedores". Para isso, seguimos o caminho "Configurações""Sobre o dispositivo"- e toque cinco vezes no item "número de compilação".

    Em seguida, no menu que se abre "Para desenvolvedores" ativar usando o interruptor ou marcar o item "Permitir depuração USB", e ao conectar o dispositivo ao PC, confirmamos a permissão para realizar operações usando o ADB.

  3. Em seguida, você precisa executar o MTK DroidTools, aguardar o dispositivo ser detectado no programa e pressionar o botão "Mapa de Blocos".
  4. As manipulações anteriores são as etapas que antecedem a criação do arquivo de dispersão. Para isso, na janela que se abre, clique no botão "Criar arquivo de dispersão".
  5. E escolha a maneira de salvar a dispersão.

  6. O próximo passo é determinar o endereço que o SP FlashTools precisará especificar ao determinar o intervalo de blocos na memória do leitor. Abra o arquivo scatter obtido na etapa anterior no programa Notepad ++ e localize a linha partition_name: CACHE: , sob a qual uma linha com o parâmetro linear_start_addr está localizada logo abaixo. O valor deste parâmetro (destacado em amarelo na captura de tela) deve ser escrito ou copiado para a área de transferência.
  7. A leitura direta dos dados da memória do dispositivo e o salvamento em um arquivo é feito através do programa SP FlashTools. Inicie o aplicativo e vá para a guia Releitura. O smartphone ou tablet deve ser desconectado do PC. Apertamos o botão Adicionar.
  8. Há apenas uma linha na janela que se abre. Clique duas vezes nele para definir o intervalo de leitura. Selecione o caminho onde o futuro arquivo de despejo de memória será salvo. É melhor deixar o nome do arquivo inalterado.
  9. Após especificar o caminho de salvamento, uma pequena janela será aberta, no campo Comprimento: que você precisa inserir o valor do parâmetro linear_start_addr obtido na etapa 5 desta instrução. Após inserir o endereço, pressione o botão "OK".

    Apertamos o botão "Ler de volta" guia de mesmo nome no SP FlashTools e conecte o dispositivo desligado (!) à porta USB.

  10. Caso o usuário tenha cuidado de instalar os drivers antecipadamente, o SP FlashTools detectará automaticamente o dispositivo e iniciará o processo de leitura, conforme evidenciado pelo preenchimento da barra azul de progresso.

    Após a conclusão do procedimento, uma janela é exibida "Releitura OK" com um círculo verde, dentro do qual há uma marca de verificação de confirmação.

  11. O resultado das etapas anteriores é o arquivo ROM_0, que é um dump completo da memória flash interna. Para possibilitar outras manipulações com esses dados, em particular, carregar o firmware no dispositivo, são necessárias várias outras operações usando o MTK DroidTools.
    Ligamos o dispositivo, inicializamos no Android, verificamos se "Depuração USB" ligado e conecte o dispositivo ao USB. Inicie o MTK DroidTools e vá para a guia raiz, backup, recuperação. Precisa de um botão aqui "Faça um backup da unidade flash ROM_", pressione-o. Abra o arquivo obtido na etapa 9 ROM_0.
  12. Imediatamente após pressionar o botão "Abrir" o processo de dividir o arquivo de despejo em imagens de partição separadas e outros dados necessários para a recuperação começará. Os dados de andamento do processo são exibidos na área de log.

    Quando o procedimento para dividir um dump em arquivos separados completo, a inscrição será exibida no campo de log "missão completada". Isso conclui o trabalho, você pode fechar a janela do aplicativo.

  13. O resultado da operação do programa é uma pasta com arquivos de imagem das seções de memória do dispositivo - esta é nossa cópia de backup do sistema.

Método 5: Backup do sistema usando ADB

Se for impossível usar outros métodos ou por outros motivos, para criar uma cópia completa das seções de memória de quase qualquer dispositivo Android, você pode usar o kit de ferramentas para desenvolvedores do SO - o componente SDK do Android– . Em geral, o ADB oferece todas as possibilidades para realizar o procedimento, você só precisa de direitos de root no dispositivo.

Deve-se notar que o método em consideração é bastante trabalhoso e também exige que o usuário tenha um nível bastante alto de conhecimento dos comandos do console ADB. Para facilitar o processo e automatizar a introdução de comandos, você pode recorrer a um maravilhoso aplicativo shell, que automatiza o processo de inserção de comandos e economiza muito tempo.

  1. Os procedimentos preparatórios são obter direitos de root no dispositivo, habilitar a depuração USB, conectar o dispositivo a porta USB, instalando drivers ADB. Em seguida, baixe, instale e execute o aplicativo ADB Run. Após a conclusão do acima, você pode prosseguir para o procedimento de criação de backups de partição.
  2. Iniciamos o ADB Run e verificamos se o dispositivo é detectado pelo sistema no modo desejado. Item 1 do menu principal - "Dispositivo conectado?", na lista suspensa executamos ações semelhantes, selecione novamente o item 1.

    Uma resposta positiva para a questão de saber se o dispositivo está conectado no modo ADB é a resposta do ADB Run aos comandos anteriores na forma de um número de série.

  3. Para outras manipulações, é necessário ter uma lista de seções de memória, bem como informações sobre quais “discos” - /dev/bloco/ partições foram montadas. Usando o ADB Run, obter essa lista é muito fácil. Vá para a seção "Memória e Partições"(item 10 no menu principal do aplicativo).
  4. No menu que se abre, selecione o item 4 - "Partições /dev/block/".
  5. Uma lista é aberta com uma lista de métodos que tentarão ler os dados necessários. Vamos tentar cada item em ordem.

    Se o método falhar, a seguinte mensagem será exibida:

    A execução terá que continuar até que a lista completa de partições e /dev/block/ apareçam:

    Os dados recebidos devem ser salvos por qualquer maneira acessível, função automática Salvar no ADB Run não é fornecido. A maneira mais conveniente de corrigir as informações exibidas é criar uma captura de tela da janela com uma lista de seções.

Depois de baixar tudo o que você precisa, você pode, por exemplo, criar uma pasta Android na raiz e expandir o conteúdo descompactado dos arquivos em pastas, ou seja, drivers para a pasta Drivers, Platform Tools para uma pasta separada, SP Ferramenta Flash em um separado, o MTK Droid Tools também está em um separado.

Em seguida, habilite o modo de desenvolvedor no seu dispositivo e ative a depuração USB. Aqueles. primeiro vá para Configurações -> Sobre o telefone (Sobre o dispositivo) e clique várias vezes (5-7) na inscrição "Número da compilação", até que apareça uma mensagem informando que o Modo de desenvolvedor está ativado. Em seguida, vá para o menu Configurações -> Para desenvolvedores e marque "Depuração via USB":

Depois disso, conectamos o dispositivo ao PC e instalamos os drivers ADB (ou seja, executando AdbDriverInstaller.exe do arquivo ou abrindo o gerenciador de dispositivos e especificando manualmente o caminho para os drivers na pasta Android ADB driver x64 para um dispositivo desconhecido). O resultado deve ficar assim (Gerenciador de dispositivos):

O dispositivo Android ADB Interface no Gerenciador de dispositivos confirma que estamos prontos para a próxima etapa.

Esperamos até que o dispositivo seja detectado nele e pressione o botão "Mapa de blocos":

Depois disso, clique no botão "Criar arquivo de dispersão" e salve o arquivo resultante (para mim foi chamado MT6582_Android_scatter.txt) em disco. Nesta fase de preparação está concluída e você pode prosseguir diretamente para a leitura dos dados.

Abra o arquivo resultante no Notepad ++ ou Word (observe que um bloco de notas normal não funcionará) e localize a linha partition_name: CACHE nele:

E lembre-se do que você escreveu na coluna linear_start_addr, em este caso este é 0x3E900000.

Desconectamos o telefone do PC e o desligamos, ou seja, segure o botão liga / desliga e selecione "Desligar" no menu, você também pode desconectar e inserir a bateria. Em seguida, execute a SP Flash Tool e vá para a guia Readback nela. Em seguida, clique no botão Adicionar. Como resultado, uma linha aparecerá na tabela:

Clicamos nele, somos solicitados a selecionar o local para salvar o arquivo ROM_0, selecione a pasta onde queremos salvá-lo e na próxima tela no campo Comprimento digite o número que lembramos anteriormente (linear_start_addr):

O resultado final deve ser algo assim:

Em seguida, conectamos o telefone desligado (!) Ao PC. Neste ponto, é aconselhável abrir o Gerenciador de Dispositivos. Até agora, não pressionamos nenhum botão na SP Flash Tool nesta tela!

No momento da conexão, um dispositivo MT65xx PreLoader desconhecido será detectado em você e o sistema operacional oferecerá a instalação de drivers para ele. A imagem abaixo mostra isso claramente. É melhor abrir o gerenciador de dispositivos imediatamente antes de conectar o telefone para “pegar” o momento em que o MT65xx PreLoader aparece. Se o dispositivo aparecer e o sistema operacional não oferecer a instalação automática dos drivers, isso deve ser feito manualmente clicando com o botão direito do mouse no dispositivo MT65xx PreLoader.

Selecionamos "Procurar drivers neste computador" e especificamos a pasta na qual o conteúdo descompactado do arquivo mtk_xp_vista_7_8_x32_x64.zip está localizado (ou seja, a essa altura você deve descompactar o arquivo em algum lugar). Depois que os drivers forem instalados com sucesso, a imagem no gerenciador de dispositivos deve mudar para isso:

Se os drivers estiverem instalados, você poderá prosseguir para a próxima etapa. Observe que quando o telefone estiver conectado, a porta VCOM USB do pré-carregador pode aparecer por apenas alguns segundos - isso é normal, nossa tarefa neste estágio é instalar os drivers do telefone para que seja identificado como a porta VCOM USB do pré-carregador e não o dispositivo desconhecido MT65xx PreLoader. Se de repente você não tiver tempo para instalar os drivers e o telefone estiver ligado, retiramos a bateria, desconectamos o telefone, inserimos a bateria, conectamos o telefone e repetimos o procedimento.

Assim que estivermos convencidos de que os drivers estão instalados, desconectamos o telefone do PC. Nós o desligamos, na SP Flash Tool aberta, pressionamos o botão Readback e conectamos o telefone desligado ao PC. Depois disso, iniciaremos o processo de leitura do firmware do telefone:

Muitos escrevem sobre as dificuldades que surgem justamente nesta etapa. Vou tentar explicar um pouco mais. Depois de pressionar o botão Readback - SP Flash Tool entra no modo de espera para conectar o telefone, ou seja, supõe-se que antes disso você conseguiu capturar o momento em que seu telefone desligado é definido como MT65xx PreLoader e instalar drivers nele para que você tenha a porta VCOM USB do Preloader nas portas COM. Se de repente, por algum motivo, a SP Flash Tool escreveu sobre um erro, ou o telefone não teve tempo para se conectar, o método a seguir pode ajudar (tudo descrito é verdade apenas se você instalou os drivers corretamente e quando conectar o telefone, get Preloader USB VCOM Port): desligue o telefone do PC, retire a bateria, pressione o botão Readback, conecte o telefone com a bateria retirada. Uma barra vermelha (Download) irá para a SP Flash Tool, durante este tempo nós inserimos rapidamente a bateria de volta, se tivermos tempo, então uma barra de Readback azul com porcentagens irá, como na imagem:

Aguardamos até que o processo seja concluído. A criação de um backup pode levar de 10 a 15 minutos. Nós apenas olhamos para o interesse em execução e não tocamos em nada 😉 Ao final do procedimento de leitura, você verá a inscrição Readback Ok:

Enquanto fazemos o Backup, é hora de explicar o que é um arquivo scatter e o que é o arquivo ROM_0, que obteremos na saída. A memória do telefone é um EMMC Flash normal, que é dividido em determinadas seções. Um arquivo scatter é um arquivo de descrição de seção (por exemplo, Scatter tem as seções PRELOADER, RECOVERY, LOGO, ANDROID, etc.). A finalidade das partições é diferente, por exemplo, na Recuperação - contém imagem de recuperação, no logotipo - o logotipo usado quando o sistema inicializa, no Android - a imagem do sistema etc. O arquivo ROM_0 que obtemos como saída é essencialmente um sólido despejo EMMC Flash em um arquivo. Mas para usar o backup de firmware recebido, por exemplo, para restaurar outro dispositivo semelhante, ainda precisaremos dividi-lo em seções. Aqui vou descrever várias maneiras de como fazê-lo. A primeira e mais comum é através do MTK Droid Tools. Digamos que já tenhamos um arquivo ROM_0 feito com a SP Flash Tool.

Ligamos a energia do dispositivo (telefone) e deixamos inicializar, após o que reiniciamos o MTK Droid Tools (o modo de depuração USB no telefone, é claro, deve estar ativado e os drivers ADB estão instalados no PC), vá para a guia root, backup, recovery e pressione o botão "Create backup from ROM_ flash drive":

Selecionamos a ROM_0 que obtivemos na etapa anterior e na janela de log vemos algo como o seguinte:

- Salve a pasta no computador: E:\Android\MtkDroidTools\backups\KINGSING_S1_141117_ForFlashtoolFromReadBack_150512-005322\
— scatter é salvo no arquivo:
E:\Work\Megaphone Login Plus\MtkDroidTools\backups\KINGSING_S1_141117_ForFlashtoolFromReadBack_150512-005322\MT6582_Android_scatter.txtCópia concluída
- preloader.bin ... copiado ... cortado OK
- MBR ...copiado
- EBR1 ...copiado
- pro_info ...copiado
- nvram.bin ...copiado
- protect_f ...copiado
- protect_s ...copiado
- seccfg ...copiado
- uboot.bin ...copiado
- boot.img ... copiado

Bem, etc Agora na pasta save, tenho este E:\Android\MtkDroidTools\backups\ temos uma pasta com backup completo do nosso firmware, dividido em seções (ou seja, cada seção em um arquivo separado):

Isso conclui o processo de criação de um backup do firmware. Se você só queria aprender como fazer backup de firmware usando a SP Flash Tool e conseguiu, não pode ler mais.

Para avançado

Mas e se o MTK Droid Tools "não vir" o telefone? Ou é impossível criar um arquivo de dispersão ou dividir o arquivo ROM_0 resultante em seções? Como obter um mapa de partição e é possível "cortar" o arquivo ROM_0 manualmente? Existe essa possibilidade. Para obter um mapa de partição no MTK 65xx, você precisa fornecer um comando no console ADB - ou seja, execute adb shell no console e digite este comando lá:

Se de repente o telefone por algum motivo não for visto através do ADB (neste caso, aconselho você a ler o manual do ADB, pode haver um problema no VEN_ID do dispositivo e você só precisa registrá-lo no %USERPROFILE%\.android\adb_usb.ini, o mesmo comando pode ser dado no próprio telefone instalando o Terminal Emulator para Android do Google Play:

Como você pode ver, o resultado é exatamente o mesmo e o linear_start_address da seção de cache pode ser obtido daqui. Sim, a propósito, em novos dispositivos, por exemplo, baseados no MTK 6752, como Beeline Pro, ZTE Q Lux, etc. O mapa de partição pode ser obtido com cat /proc/partinfo. O MTK Droid Tools não funciona com esses dispositivos.

Agora temos um método para obter o endereço inicial da partição de cache, que é necessário para obter ROM_0 usando a SP Flash Tool. Também conhecemos os endereços (deslocamentos) e os tamanhos de cada uma das partições. Aqueles. para "cortar" ROM_0 em seções - não precisamos usar o MTK Droid Tools. Isso pode ser feito "à mão" em qualquer editor Hex que suporte a função de selecionar e salvar um bloco em um arquivo (eu uso o console HIEW). Bem, como exemplo, vamos "cortar" a partição de recuperação do arquivo ROM_0 resultante.

Sabemos (de scatter ou dumchar_info) seu linear_start_addr: 0x4180000 e partition_size: 0x1000000. Abra ROM_0 em HIEW e navegue até 0x4180000. Aqueles. no console, fazemos hiew32 ROM_0, pressione F5 e dirija no endereço do início da partição - 4180000:

Como você pode ver, em 4180000 temos a assinatura ANDROID!, que nos diz que estamos no caminho certo 😉 O endereço do final da partição é calculado como linear_start_addr+partition_size-1 = 0x517FFFF no nosso caso. Pressione HIEW * (asterisco no teclado adicional) para começar a destacar o bloco (se você mover as setas para cima/baixo/direita/esquerda, vemos como o bloco começa a ser destacado) e descer até 0x517FFFF, ou fazê-lo através de F5:

E finalizamos a seleção do bloco, novamente através do “cinza” * (no teclado adicional). Depois disso, pressione F2 - Colocar bloco (salvando o bloco em um arquivo):

E temos uma partição de recuperação. Da mesma forma, você pode cortar qualquer outra partição de ROM_0. Como você entende, não precisamos da ferramenta MTK Droid.

Para simplificar o procedimento, você também pode escrever um script/programa que fará isso automaticamente para todas as seções, mas para ser sincero, não tenho tempo suficiente para isso e essa tarefa não surge com tanta frequência, então HIEW é suficiente para mim para esses propósitos.

p.s. Por enquanto é só... o post acabou sendo uma "versão de rascunho", porque foi escrito em precipitadamente, talvez mais tarde eu a complete se houver algum momento incompreensível. E claro, como sempre, ficarei feliz em ouvir seus comentários e perguntas...

p.p.s. Como eles conseguiram me corrigir um pouco, /proc/dumchar_info não contém linear_start_addr de scatter, mas physical_start_addr. Aqueles. no exemplo acima para a partição com recuperação temos:

linear_start_addr: 0x4180000
physical_start_addr: 0x2D80000
partition_size: 0x1000000

E em /proc/dumchar_info vemos exatamente o physical_start_addr na coluna StartAddr. Mas se olharmos para o tamanho da primeira seção (pré-carregador), fica claro como traduzir physical_start_addr para linear_start_addr, se adicionarmos 0x1400000 a 0x2D80000 (este é apenas o tamanho do pré-carregador), então acaba 0x4180000.

Olá Habrahabr.

informações gerais

Este guia destina-se a ajudá-lo a criar um backup completo do seu dispositivo (toda a memória com todas as partições) ou uma única partição (incluindo sdcards, etc.) diretamente no seu computador:
  • Ao nível dos Blocos de memória (utilizando o comando dd): para partições individuais ou para toda a memória (todas as partições). Cópia de segurança sempre terá o mesmo tamanho da partição salva.
  • No nível do arquivo (usando comandos tar): apenas para determinadas secções. A cópia conterá apenas os arquivos e pastas que estão no dispositivo, ocupando muito menos espaço dependendo do tamanho da partição.

Esta instrução é aplicável quando o dispositivo está ligado ou em ClockworkMod Recovery (nestes casos, o ADB funcionará, em modo de inicialização rápida esta instrução não aplicável). Salvo indicação em contrário, todos os comandos destinam-se ao uso no Windows. O mesmo vale para Linux com Unix.

Requisitos

  • enraizado dispositivo Android;
  • Busybox instalado no dispositivo;
  • Se você estiver usando Linux / OS X, você já tem ferramentas necessárias, para Windows, baixe o Cygwin e instale netcat, pv e util-linux com ele, selecionando-os durante a instalação (adicionarei por conta própria que é melhor usar o terminal do Cygwin mintty.exe do que o nativo do Windows cmd.exe, desde a velocidade de cópia, o primeiro atingiu 3-4 MB / se cmd.exe - um máximo de 400 kb / s);
  • ADB instalado;
  • Certifique-se de que adb.exe esteja em seu PATH. Veja e, ou use o Path Manager;
  • Modo de depuração USB ativado no dispositivo e os drivers apropriados instalados no Windows. Digitar "adb devices" no terminal deve mostrar seu dispositivo.

Partições no dispositivo

Agora você precisa definir as partições e blocos em seu dispositivo dos quais deseja fazer uma cópia. Você pode usar os comandos tar ou dd para copiar uma única partição, enquanto você só precisa usar dd para copiar toda a memória.

No Teclast x98 3g dois comandos são usados ​​para definir partições: cat proc/partitions e mount.

Um exemplo do que deve aparecer em resposta à sua entrada no terminal.

127|[e-mail protegido]:/# montar
montar
rootfs / rootfs ro,relatime 0 0
tmpfs /dev tmpfs rw,nosuid,relatime,mode=755 0 0
devpts /dev/pts devpts rw,relatime,mode=600 0 0
proc /proc proc rw,relatime 0 0
sysfs /sys sysfs rw,relatime 0 0
nenhum /acct cgroup rw,relatime,cpuacct 0 0
tmpfs /mnt/secure tmpfs rw,relatime,mode=700 0 0
tmpfs /mnt/asec tmpfs rw,relatime,mode=755,gid=1000 0 0
tmpfs /mnt/obb tmpfs rw,relatime,mode=755,gid=1000 0 0
nenhum /dev/cpuctl cgroup rw,relatime,cpu 0 0
[b]/dev/block/mmcblk0p9 /system ext4 ro,noatime,data=ordered 0 0
/dev/block/mmcblk0p7 /cache ext4 rw,nosuid,nodev,noatime,data=ordered 0 0
/dev/block/mmcblk0p6 /config ext4 rw,nosuid,nodev,noatime,data=ordered 0 0
/dev/block/mmcblk0p10 /data ext4 rw,nosuid,nodev,noatime,noauto_da_alloc,data=ordered 0 0
/dev/block/mmcblk0p8 /logs ext4 rw,nosuid,nodev,relatime,data=ordered 0 0
nenhum /sys/kernel/debug debugfs rw,relatime 0 0
/dev/fuse /mnt/shell/emulated fuse rw,nosuid,nodev,relatime,user_id=1023,group_id=1023,default_permissions,allow_other 0 0
nenhum /proc/sys/fs/binfmt_misc binfmt_misc rw,relatime 0 0
tmpfs /mnt/libreg tmpfs rw,noexec,noatime,size=4k,mode=700,gid=1003 0 0
/dev/block/vold/179:1 /storage/sdcard_ext fuseblk rw,relatime,user_id=0,group_id=0,allow_other,blksize=4096 0 0
[e-mail protegido]:/ # cat proc/partições
cat proc/partições
nome de #blocos maior menor

179 10 30535680 mmcblk0
179 11 229376 mmcblk0p1
179 12 32768 mmcblk0p2
179 13 32768 mmcblk0p3
179 14 131072 mmcblk0p4
179 15 131072 mmcblk0p5
179 16 131072 mmcblk0p6
179 17 786432 mmcblk0p7
179 18 262144 mmcblk0p8
179 19 1048576 mmcblk0p9
259 0 27742188 mmcblk0p10
179 30 2048 mmcblk0boot1
179 20 2048 mmcblk0boot0
179 0 30657536 mmcblk1
179 1 30657504 mmcblk1p1

Normalmente, no Android, todo o bloco contendo todas as seções está localizado em /dev/block/mmcblk0 e todas as outras seções são suas subseções. Você pode instalar o parted com suporte GPT para visualizar informações sobre todas as partições.

Toda a memória do telefone -> /dev/block/mmcblk0 (embora, em alguns telefones, isso possa ser sdcard).
Seções -> tudo depende dispositivo específico. Normalmente /dev/block/platform/dw_mmc/by-name/ lista todas as partições para este dispositivo.

Backup de toda a memória (via adb)

Conecte seu telefone com a depuração USB habilitada ao seu computador.

Relativo Teclast x98 3g e o caso em que o dispositivo não inicializa (bootloop). É muito importante que o modo de depuração USB esteja ativado antes que tudo isso aconteça. Desligue o tablet completamente, desconecte todos os cabos, dê alguns segundos para "descansar" e conecte o cabo do computador ao tablet, uma bateria branca tão grande deve aparecer, o que mostrará que o processo de carregamento está em andamento, apenas então, mesmo no estado desligado, será possível trabalhar com o dispositivo através do terminal e do adb.

Inicie o Cygwin Terminal e digite (substitua mmcblk0 se necessário):

adb forward tcp:5555 tcp:5555
shell adb
su
/system/xbin/busybox nc -l -p 5555 -e /system/xbin/busybox dd if=/dev/block/mmcblk0

Você verá um cursor piscando próxima linha deixou. No momento, a máquina está aguardando a transmissão do Bloco pela rede.

adb forward tcp:5555 tcp:5555
cd /caminho/para/armazenar/o/backup
nc 127.0.0.1 5555 | pv -i 0,5 > mmcblk0.raw

Você verá como o tamanho do arquivo começará a aumentar até que todo o bloco selecionado seja completamente copiado. Agora você tem um backup completo do dispositivo em formato bruto. Você pode ver todo o conteúdo do Bloco copiado usando gptfdisk disponível para Windows, Linux e outros sistemas operacionais (site oficial ou ). Você pode fazer o mesmo com ClockworkMod Recovery, mas primeiro você precisa montar a partição /system, já que o BusyBox incluído no ClockworkMod não possui netcat, então você precisa usar netcat da partição /system do seu dispositivo.

Com a ajuda de certas ferramentas no Linux, você pode modificar e extrair as Seções necessárias de todo o Bloco.

Você pode usar o ADB sobre WiFi da mesma forma que o WiFi ADB.

Backup de memória inteira (via WiFi)

Citação do autor: Nandroid diretamente para o computador sem sdcard.

Necessário:

  • Servidor FTP instalado em um computador ou outro dispositivo;
  • Usuário com senha;
  • Defina a porta para o servidor FTP, o padrão é 21, mas 40 é usado neste exemplo;
  • O diretório inicial do usuário com acesso de gravação.

É uma boa prática copiar myfifo para /cache em vez de /data, pois você pode substituir acidentalmente dados importantes se usar dados brutos para recuperação.

Inicie o Cygwin Terminal e digite:

shell adb
su
mkfifo /cache/myfifo
ftpput -v -u usuário -p pass -P 40 COMPUTER_IP block.raw /cache/myfifo

Abra outro Terminal Cygwin e digite:

shell adb
su
dd if=/dev/block/mmcblk0p12 of=/cache/myfifo

Algumas observações:

  • FIFOs só podem ser feitos em sistemas de arquivos nativos do Linux, o FAT não funcionará para isso;
  • O processo de leitura de uma partição de um dispositivo não a modifica de forma alguma.

Backup de memória completo (via tethering USB ou tethering Wi-Fi)

Para fazer isso, desative todos conexões de rede no computador, além disso, com o qual você realizará o processo de cópia.
Depois de conectar um computador a um dispositivo Android, você pode visualizar o IP do computador e o IP do dispositivo em "Propriedades da conexão". IP - será o IP do próprio computador, e o Gateway conterá o IP do dispositivo Android.
  • Modem Wi-Fi: Computador< - Wi-Fi --->dispositivo Android< - 3G --->Internet
  • Modem USB:
    Um computador< - USB --->dispositivo Android< - Wi-Fi --->Internet
    Computador< - USB --->dispositivo Android< - 3G --->Internet

O processo é exatamente o mesmo da transferência de dados via Wi-Fi, a única coisa é que a velocidade de transferência de dados será muito maior porque o computador e o dispositivo Android estão conectados diretamente, em vez de usar um roteador como gateway. Nesse caso, o próprio dispositivo Android será o gateway. O modem USB tem a maior alto nível transmissão de dados.

Backup de uma única partição (raw = cópia bit a bit exata de uma partição)

Tudo é semelhante ao descrito acima, apenas você precisa substituir mmcblk0 pela Seção apropriada. Você pode usar neste caso particular o software para visualizar o conteúdo da Seção copiada. Dependendo do sistema de arquivo: DiskInternals Linux Reader, plugin para Total Commander e ImDisk Virtual Disk Driver. Você também pode usar o software para recuperar dados de partições individuais, por exemplo, Recuva em conjunto com a ferramenta ou ferramentas VHD linha de comando incluídos com os próprios sistemas operacionais.

Fazendo backup de uma partição (tar = apenas arquivos e pastas são copiados)

Neste caso, é necessária uma partição já montada. (Eu descrevi como encontrar partições no Teclast x98 3g acima.)
Para ver uma lista de todas as partições montadas no Terminal Cygwin, digite:

Agora você deve saber onde e qual partição está montada, por exemplo Firmware está montado em /system que é essencialmente ROM.
Nesse caso, você terá que abrir três terminais Cygwin, devido a restrições impostas pelo próprio Android:

Abra o primeiro Terminal Cygwin e crie um FIFO em /cach por exemplo e redirecione o tar para ele:

adb forward tcp:5555 tcp:5555
shell adb
su
/system/xbin/busybox mkfifo /cache/myfifo
/system/xbin/busybox tar -cvf /cache/myfifo /system

Você precisa fazer isso porque redirecionar tar para stdout (c "-") não funciona no Android e corrompe o arquivo salvo.

Abra um segundo Terminal Cygwin:

adb forward tcp:5555 tcp:5555
shell adb
su
/system/xbin/busybox nc -l -p 5555 -e /system/xbin/busybox cat /cache/myfifo

Abra um terceiro Terminal Cygwin:

adb forward tcp:5555 tcp:5555
cd /caminho/para/armazenar/o/backup
nc 127.0.0.1 5555 | pv -i 0.5 > system.tar

Você pode visualizar o arquivo tar resultante com o Winrar, Comando total, PeaZip, etc. Observe que você não deve extrair ou editar arquivos, pois o formato tar retém informações de acesso e propriedade de cada arquivo, que desaparecem quando extraídos para partições FAT/NTFS.

Etiquetas: adicionar etiquetas

Olá Habrahabr.

informações gerais

Este guia destina-se a ajudá-lo a criar um backup completo do seu dispositivo (toda a memória com todas as partições) ou uma única partição (incluindo sdcards, etc.) diretamente no seu computador:
  • Ao nível dos Blocos de memória (utilizando o comando dd): para partições individuais ou para toda a memória (todas as partições). O backup será sempre do mesmo tamanho da partição que está sendo salva.
  • No nível do arquivo (usando o comando tar): apenas para partições individuais. A cópia conterá apenas os arquivos e pastas que estão no dispositivo, ocupando muito menos espaço dependendo do tamanho da partição.

Esta instrução é aplicável quando o dispositivo está ligado ou em ClockworkMod Recovery (nestes casos, o ADB funcionará, em modo Fastboot, esta instrução não é aplicável). Salvo indicação em contrário, todos os comandos destinam-se ao uso no Windows. O mesmo vale para Linux com Unix.

Requisitos

  • Dispositivo Android enraizado;
  • Busybox instalado no dispositivo;
  • Se você estiver usando Linux / OS X, você já tem as ferramentas necessárias, para Windows, baixe o Cygwin e instale netcat, pv e util-linux com ele, escolhendo-os durante a instalação (adicionarei que é melhor usar o terminal de Cygwin mintty.exe do que cmd.exe, que é nativo do Windows, pois a velocidade de cópia do primeiro atingiu 3-4 MB / s, enquanto o cmd.exe teve um máximo de 400 kb / s);
  • ADB instalado;
  • Certifique-se de que adb.exe esteja em seu PATH. Veja e, ou use o Path Manager;
  • Modo de depuração USB ativado no dispositivo e os drivers apropriados instalados no Windows. Digitar "adb devices" no terminal deve mostrar seu dispositivo.

Partições no dispositivo

Agora você precisa definir as partições e blocos em seu dispositivo dos quais deseja fazer uma cópia. Você pode usar os comandos tar ou dd para copiar uma única partição, enquanto você só precisa usar dd para copiar toda a memória.

No Teclast x98 3g dois comandos são usados ​​para definir partições: cat proc/partitions e mount.

Um exemplo do que deve aparecer em resposta à sua entrada no terminal.

127|[e-mail protegido]:/# montar
montar
rootfs / rootfs ro,relatime 0 0
tmpfs /dev tmpfs rw,nosuid,relatime,mode=755 0 0
devpts /dev/pts devpts rw,relatime,mode=600 0 0
proc /proc proc rw,relatime 0 0
sysfs /sys sysfs rw,relatime 0 0
nenhum /acct cgroup rw,relatime,cpuacct 0 0
tmpfs /mnt/secure tmpfs rw,relatime,mode=700 0 0
tmpfs /mnt/asec tmpfs rw,relatime,mode=755,gid=1000 0 0
tmpfs /mnt/obb tmpfs rw,relatime,mode=755,gid=1000 0 0
nenhum /dev/cpuctl cgroup rw,relatime,cpu 0 0
[b]/dev/block/mmcblk0p9 /system ext4 ro,noatime,data=ordered 0 0
/dev/block/mmcblk0p7 /cache ext4 rw,nosuid,nodev,noatime,data=ordered 0 0
/dev/block/mmcblk0p6 /config ext4 rw,nosuid,nodev,noatime,data=ordered 0 0
/dev/block/mmcblk0p10 /data ext4 rw,nosuid,nodev,noatime,noauto_da_alloc,data=ordered 0 0
/dev/block/mmcblk0p8 /logs ext4 rw,nosuid,nodev,relatime,data=ordered 0 0
nenhum /sys/kernel/debug debugfs rw,relatime 0 0
/dev/fuse /mnt/shell/emulated fuse rw,nosuid,nodev,relatime,user_id=1023,group_id=1023,default_permissions,allow_other 0 0
nenhum /proc/sys/fs/binfmt_misc binfmt_misc rw,relatime 0 0
tmpfs /mnt/libreg tmpfs rw,noexec,noatime,size=4k,mode=700,gid=1003 0 0
/dev/block/vold/179:1 /storage/sdcard_ext fuseblk rw,relatime,user_id=0,group_id=0,allow_other,blksize=4096 0 0
[e-mail protegido]:/ # cat proc/partições
cat proc/partições
nome de #blocos maior menor

179 10 30535680 mmcblk0
179 11 229376 mmcblk0p1
179 12 32768 mmcblk0p2
179 13 32768 mmcblk0p3
179 14 131072 mmcblk0p4
179 15 131072 mmcblk0p5
179 16 131072 mmcblk0p6
179 17 786432 mmcblk0p7
179 18 262144 mmcblk0p8
179 19 1048576 mmcblk0p9
259 0 27742188 mmcblk0p10
179 30 2048 mmcblk0boot1
179 20 2048 mmcblk0boot0
179 0 30657536 mmcblk1
179 1 30657504 mmcblk1p1

Normalmente, no Android, todo o bloco contendo todas as seções está localizado em /dev/block/mmcblk0 e todas as outras seções são suas subseções. Você pode instalar o parted com suporte GPT para visualizar informações sobre todas as partições.

Toda a memória do telefone -> /dev/block/mmcblk0 (embora, em alguns telefones, isso possa ser sdcard).
Partições -> tudo depende do dispositivo específico. Normalmente /dev/block/platform/dw_mmc/by-name/ lista todas as partições para este dispositivo.

Backup de toda a memória (via adb)

Conecte seu telefone com a depuração USB habilitada ao seu computador.

Relativo Teclast x98 3g e o caso em que o dispositivo não inicializa (bootloop). É muito importante que o modo de depuração USB esteja ativado antes que tudo isso aconteça. Desligue o tablet completamente, desconecte todos os cabos, dê alguns segundos para "descansar" e conecte o cabo do computador ao tablet, uma bateria branca tão grande deve aparecer, o que mostrará que o processo de carregamento está em andamento, apenas então, mesmo no estado desligado, será possível trabalhar com o dispositivo através do terminal e do adb.

Inicie o Cygwin Terminal e digite (substitua mmcblk0 se necessário):

adb forward tcp:5555 tcp:5555
shell adb
su
/system/xbin/busybox nc -l -p 5555 -e /system/xbin/busybox dd if=/dev/block/mmcblk0

Você verá um cursor piscando na próxima linha à esquerda. No momento, a máquina está aguardando a transmissão do Bloco pela rede.

adb forward tcp:5555 tcp:5555
cd /caminho/para/armazenar/o/backup
nc 127.0.0.1 5555 | pv -i 0,5 > mmcblk0.raw

Você verá como o tamanho do arquivo começará a aumentar até que todo o bloco selecionado seja completamente copiado. Agora você tem um backup completo do dispositivo em formato bruto. Você pode ver todo o conteúdo do Bloco copiado usando gptfdisk disponível para Windows, Linux e outros sistemas operacionais (site oficial ou ). Você pode fazer o mesmo com ClockworkMod Recovery, mas primeiro você precisa montar a partição /system, já que o BusyBox incluído no ClockworkMod não possui netcat, então você precisa usar netcat da partição /system do seu dispositivo.

Com a ajuda de certas ferramentas no Linux, você pode modificar e extrair as Seções necessárias de todo o Bloco.

Você pode usar o ADB sobre WiFi da mesma forma que o WiFi ADB.

Backup de memória inteira (via WiFi)

Citação do autor: Nandroid diretamente para o computador sem sdcard.

Necessário:

  • Servidor FTP instalado em um computador ou outro dispositivo;
  • Usuário com senha;
  • Defina a porta para o servidor FTP, o padrão é 21, mas 40 é usado neste exemplo;
  • O diretório inicial do usuário com acesso de gravação.

É uma boa prática copiar myfifo para /cache em vez de /data, pois você pode substituir acidentalmente dados importantes se usar dados brutos para recuperação.

Inicie o Cygwin Terminal e digite:

shell adb
su
mkfifo /cache/myfifo
ftpput -v -u usuário -p pass -P 40 COMPUTER_IP block.raw /cache/myfifo

Abra outro Terminal Cygwin e digite:

shell adb
su
dd if=/dev/block/mmcblk0p12 of=/cache/myfifo

Algumas observações:

  • FIFOs só podem ser feitos em sistemas de arquivos nativos do Linux, o FAT não funcionará para isso;
  • O processo de leitura de uma partição de um dispositivo não a modifica de forma alguma.

Backup de memória completo (via tethering USB ou tethering Wi-Fi)

Para fazer isso, você deve desabilitar todas as conexões de rede no computador, exceto aquela com a qual você realizará o processo de cópia.
Depois de conectar um computador a um dispositivo Android, você pode visualizar o IP do computador e o IP do dispositivo em "Propriedades da conexão". IP - será o IP do próprio computador, e o Gateway conterá o IP do dispositivo Android.
  • Modem Wi-Fi: Computador< - Wi-Fi --->dispositivo Android< - 3G --->Internet
  • Modem USB:
    Um computador< - USB --->dispositivo Android< - Wi-Fi --->Internet
    Computador< - USB --->dispositivo Android< - 3G --->Internet

O processo é exatamente o mesmo da transferência de dados via Wi-Fi, a única coisa é que a velocidade de transferência de dados será muito maior porque o computador e o dispositivo Android estão conectados diretamente, em vez de usar um roteador como gateway. Nesse caso, o próprio dispositivo Android será o gateway. O modem USB tem a maior taxa de transferência de dados.

Backup de uma única partição (raw = cópia bit a bit exata de uma partição)

Tudo é semelhante ao descrito acima, apenas você precisa substituir mmcblk0 pela Seção apropriada. Você pode usar neste caso particular o software para visualizar o conteúdo da Seção copiada. Dependendo do sistema de arquivos: DiskInternals Linux Reader, plugin para Total Commander e ImDisk Virtual Disk Driver. Você também pode usar o software de recuperação de partição, como o Recuva em conjunto com a ferramenta VHD, ou as ferramentas de linha de comando incluídas nos próprios sistemas operacionais.

Fazendo backup de uma partição (tar = apenas arquivos e pastas são copiados)

Neste caso, é necessária uma partição já montada. (Eu descrevi como encontrar partições no Teclast x98 3g acima.)
Para ver uma lista de todas as partições montadas no Terminal Cygwin, digite:

Agora você deve saber onde e qual partição está montada, por exemplo Firmware está montado em /system que é essencialmente ROM.
Nesse caso, você terá que abrir três terminais Cygwin, devido a restrições impostas pelo próprio Android:

Abra o primeiro Terminal Cygwin e crie um FIFO em /cach por exemplo e redirecione o tar para ele:

adb forward tcp:5555 tcp:5555
shell adb
su
/system/xbin/busybox mkfifo /cache/myfifo
/system/xbin/busybox tar -cvf /cache/myfifo /system

Você precisa fazer isso porque redirecionar tar para stdout (c "-") não funciona no Android e corrompe o arquivo salvo.

Abra um segundo Terminal Cygwin:

adb forward tcp:5555 tcp:5555
shell adb
su
/system/xbin/busybox nc -l -p 5555 -e /system/xbin/busybox cat /cache/myfifo

Abra um terceiro Terminal Cygwin:

adb forward tcp:5555 tcp:5555
cd /caminho/para/armazenar/o/backup
nc 127.0.0.1 5555 | pv -i 0.5 > system.tar

Você pode visualizar o arquivo tar resultante com Winrar, Total Commander, PeaZip, etc. Observe que você não deve extrair ou editar arquivos, pois o formato tar retém informações de acesso e propriedade de cada arquivo, que desaparecem quando extraídos para partições FAT/NTFS.

Tag:

  • Android
  • backup nandroid
  • Salvando dados
  • Tradução
Adicionar etiquetas