Removendo a criptografia da recuperação

10

Estou executando o CyanogenMod 12 todas as noites no meu G900T (klte). Tudo funciona muito bem, exceto a senha de criptografia padrão, que faz com que meu telefone seja inicializado.

Formatei dados e redefinii as /dataconfigurações de fábrica, mas ainda é criptografado e aparece como /dev/dm-0.

Existe um comando que eu possa fazer para remover a criptografia? Não me importo com os dados, quero que tudo acabe. Eu só quero voltar a ter /datae o armazenamento interno sendo armazenado em texto sem formatação no disco para poder inicializar no CyanogenMod.

Como posso usar adb shellpara remover a criptografia nessas partições?

Naftuli Kay
fonte
Qual recuperação você piscou?
perfil completo de Jordy
11
Projeto de recuperação de vitórias em equipe (TWRP)
Naftuli Kay
Eu li aqui que você pode se livrar da criptografia exibindo uma nova ROM, sem saber se isso funciona no seu caso, mas vale a pena tentar.
perfil completo de Jordy
Não funcionou. Estou tentando manualmente dd if=/dev/zeroe, em seguida, formate a partição de dados.
Naftuli Kay

Respostas:

12

A resposta para mim envolveu várias coisas, mas acho que uma é realmente a chave.

Use o comando "recovery", mano

Isso usa o programa do CyanogenMod / AOSP recoverypara limpar os dados do usuário e desativar a criptografia. (encontrado nesta resposta no Stack Overflow ) Inicialize na sua recuperação e, a partir do seu computador, execute

adb shell recovery --wipe_data --set_filesystem_encryption=off

Seu telefone será reiniciado no sistema e esperamos que as coisas funcionem conforme o planejado.

Se você precisar executá-lo a partir do telefone (por exemplo: você não possui um computador por perto adb):

recovery --wipe_data --set_filesystem_encryption=off

Ele deve limpar, desativar a criptografia e reiniciar o sistema.

Se todo o resto falhar

Não use esse método, a menos que o acima não funcione ou se aplique ao seu cenário.

Destruir o cabeçalho LUKS para criptografia do sistema de arquivos

  1. Você precisa de uma recuperação que permita a queda para um shell root, assim, o TWRP funciona no meu caso.
  2. Localize a userdatapartição olhando em volta /dev/block/platform/*/by-name/userdata.
  3. Escreva uma tonelada de zeros no início dessa partição para limpar o cabeçalho LUKS:

    dd if=/dev/zero of=$PATH_TO_YOUR_USERDATA bs=4096 count=512
    

    Não reivindico responsabilidade pelo que você faz com este comando. Se você estragar tudo, pode bloquear o telefone substituindo o gerenciador de inicialização ou outras partições críticas. Certifique-se de que $PATH_TO_YOUR_USERDATAaponta para a userdatapartição real . Verifique o tamanho dessa partição para ter certeza de que está limpando a coisa certa. Eu tenho um telefone de 16 GB e userdata10,4 GB, sendo o restante dedicado system, mas o telefone será diferente.

  4. Reformate essa partição como ext4usando make_ext4fs $PATH_TO_YOUR_USERDATA.

    Pode haver erros, mas geralmente eles se relacionam com a impossibilidade de encontrar o "sdcard" interno, tudo bem.

Depois de tudo isso, reinicie a recuperação novamente e execute uma redefinição de fábrica para garantir a segurança.

Por que isso funciona?

Simplesmente fazer uma redefinição de fábrica parecia não fazer nada por mim, o telefone ainda veria uma partição LUKS lá. Suponho que isso ocorra porque o cabeçalho LUKS ainda existia no nível do disco e a partição ext4 foi sobreposta. Por alguma razão, o Android priorizou a detecção de uma partição LUKS em uma ext4 e tenta (e consegue) montá-la.

Para onde ir daqui

(Se você sabe o que está fazendo, também pode limpar systeme instalar sua ROM do zero. Novamente, não me responsabilizo por nada que você faça com as informações contidas nesta publicação. )

Trabalhou para mim em um klteG900T (Samsung Galaxy S5 T-Mobile). Sua milhagem pode variar.

Naftuli Kay
fonte
Esse tipo de trabalho (a opção dd / make_ext4fs). - Quando eu reiniciei, ele ainda pedia uma senha na recuperação do TWRP, e as opções avançadas de formato não funcionavam - mas quando eu fazia um formato regular de partição de dados, ele funcionava. - Consegui reiniciar a recuperação sem solicitar senhas. :-)
BrainSlugs83
11
Naftuli, você é um salva-vidas! Eu tenho minha borda S6 (SM-G925F) no loop de inicialização morta, como não foi possível criptografar provavelmente por causa da recuperação personalizada (TWRP), acho que a criptografia é feita através da recuperação de estoque. Ele dizia "a criptografia não foi concluída. Redefinição e reinicialização de fábrica". Eu até tentei recuperar a recuperação de estoque, ela não inicializou (provavelmente uma errada, mas rotulada para o meu dispositivo). O estoque inteiro também não era bom (não foi possível encontrar um adequado, aquele que encontrei foi rejeitado por odin). Finalmente eu fiz tudo o que você disse aqui, e o ddcomando finalmente fez o truque. Muito obrigado!
Mixaz 11/11
O recoverycomando não parecia funcionar para mim. Chamei-o de ADB Shellem TWRPrecuperação. Meu problema principal é que a depuração USB não está ativada e /systemestá corrompida, portanto não consigo inicializá-la. Além disso, a criptografia de disco está ativada e parece me impedir de executar fastboot flash system system.zipcorretamente.
anon58192932
11
Você salvou meu dia, ou melhor, minha noite. Depois de três horas tentando instalar o lineageOS 14.1 no meu Huawei P8 Lite e recebendo sempre a mensagem de criptografia sem êxito, com o ddcomando no final, eu poderia concluir a operação. Obrigado!
Matteo De Felice
ls -l /dev/block/platform/soc.0/7824900.sdhci/by-name/userdatadiz: lrwxrwxrwx 1 root root 21 Sep 16 06:04 /dev/block/platform/soc.0/7824900.sdhci/by-name/userdata -> /dev/block/mmcblk0p26 df -h /dev/block/mmcblk0p26diz: `` Tamanho do sistema de arquivos usado disponível disponível% montado em / dev / block / mmcblk0p26 10,5G 27,2M 10,5G 0% / data `` `` então eu fiz: dd if=/dev/zero of=/dev/block/platform/soc.0/7824900.sdhci/by-name/userdata bs=4096 count=512 está certo?
LarS
8

No meu Moto G de terceira geração (osprey), nem chamar a recuperação nem limpar o cabeçalho LUKS (no início e no final da partição) funcionou - eu ainda precisava digitar a senha de criptografia durante a inicialização do Cyanogen Mod e fiquei presa com a mensagem "erro de criptografia" .

Finalmente, descobri que minha recuperação do TWRP 3.0.1 tem uma opção "Formatar dados" na seção "Limpar". Isso faz uma redefinição de fábrica completa que também desativa a criptografia.

Funcionou como um encanto. Se você tiver acesso a uma versão decente do TWRP (facilmente piscou, por exemplo, com o Flashify), tente primeiro.

Unispezi
fonte
11
Obrigado. Por que optar por uma solução complicada quando uma simples funcionará?
Peter Gordon
Meu único problema com essa opção é que o texto indica que ele também limpará seu cartão SD. Se é fácil acessar seu cartão, isso não é um problema. : - |
precisa saber é o seguinte
11
@pgmann: a opção 'formatar dados' apareceu há pouco tempo no TWRP, é por isso. Com certeza não estava lá em 2014 quando essas respostas foram fornecidas. Além disso, a ddabordagem é útil ao limpar a criptografia em scripts, pois a opção 'formatar dados' não está disponível nos comandos TWRP, enquanto os comandos existentes não podem limpar a criptografia. Espero que eles adicionar tal comando no futuro ...
Mixaz
5

Desde que você esteja usando TWRP ou similar.

  • reinicie no TWRP (digite a senha) e faça um backup da Datapartição para externo SDouOTG Drive
  • reinicie no TWRP (cancelar senha) e formate a partição de dados para f2fs
  • restaurar backup feito na etapa um para a Datapartição recém-criada
  • reiniciar sistema
  • desfrute do Android com todos os seus dados salvos e criptografia removida
ArtDeineka
fonte
4

A solução de limpar manualmente o cabeçalho LUKS fornecido por Naftuli Tzvi Kay funciona bem, exceto por uma coisa. Eu não sei como isso depende, mas, na minha experiência, o Android mantém o cabeçalho LUKS no final da partição. E se esse for o caso do seu dispositivo, execute

dd if=/dev/zero of=$PATH_TO_YOUR_USERDATA bs=4096 count=512

falhará ao remover o cabeçalho (rodapé?) porque limpa apenas o início da partição. Pode-se, claro, limpar a partição inteira, mas isso levaria tempo desnecessariamente. Assim...

Para limpar o final da partição (de qualquer tamanho), depois de executar o comando acima, execute este comando também:

dd bs=512 if=/dev/zero of=$PATH_TO_YOUR_USERDATA count=22048 seek=$((`blockdev --getsz $PATH_TO_YOUR_USERDATA` - 22048))
lockheed
fonte
limpar apenas o cabeçalho funcionou bem para mim (pode ser porque a criptografia não foi concluída - não tenho certeza). Mas votando sua resposta por causa de seu baixo karma))
Mixaz 11/11/16
4

Você está usando recuperação personalizada?

Se sim, faça isso após a inicialização em uma recuperação personalizada ( TWRP no meu caso):

  1. No início da recuperação, NÃO descriptografe o dispositivo . Basta tocar em Cancelar quando solicitado a senha ou padrão.

  2. Limpe a partição de dados. (No TWRP após deslizar para modificar o sistema: Limpe> Avançado> Verificar: Dados)

Obviamente, isso limpará tudo na userdatapartição. Toda a partição de dados será reformatada, incluindo as chaves de criptografia .

Majal
fonte
11
Limpar a partição de dados simplesmente remove o cabeçalho do sistema de arquivos no início da partição. Não funciona porque em muitas versões do Android, o cabeçalho LUKS / dm-crypt está no final do sistema de arquivos.
Naftuli Kay 5/09
11
Tentaste? Porque ele apenas funcionou no meu Nexus 9.
Majal
11
Não sei por que alguém downvoted esta resposta, isso funciona, e é a maneira mais simples de se livrar de criptografia
ArtDeineka
11
Foi isso que acabei fazendo - e funcionou. :)
zaTricky
11
O mesmo aqui. Funcionou como um encanto.
Linus Kleen
1

Meus votos vão para @Naftuli Kay e outras respostas úteis aqui, mas tenho algumas informações que gostaria de compartilhar. É muito longo para um comentário, que seja uma resposta então.

Desde algumas versões do TWRP, há o item 'formatar dados' na tela Limpar. Ele não apenas limpa / partição de dados, mas também lida com o problema do FS criptografado. No meu caso, o TWRP 3.0.2 no Samsung J500H limpa a criptografia e foi a única maneira de a redefinição de fábrica não funcionar. O CMR (aquele que está sendo construído ao longo do meu CM 12.1 rom para J500H) também não pode limpar a criptografia.

--set_encrypted_filesystem=off também não funcionou no TWRP e CMR.

limpar dados via OpenRecoveryScript https://twrp.me/faq/openrecoveryscript.html também não funciona

O Android 3.0 começou a mapear / sdcard para / data / media, então eles tiveram que retrabalhar / limpar os dados para not / data / media e, rm -rfem vez disso , são executados. Veja https://twrp.me/faq/datamedia.html para mais detalhes.

Ao executar 'formatar dados', você pode ver no log de recuperação (/ cache / recover / log ou / cache / recovery / last_log) as seguintes informações:

I:Successfully wiped crypto footer.

antes de formatar / dados com make_ext4fs. O código TWRP possui várias verificações para descobrir onde está o cabeçalho LUKS e, no meu caso, ele foi encontrado no rodapé.

Eu olhei para a fonte TWRP e não encontrei uma maneira de 'formatar dados' na linha de comando (eu preciso limpar o armazenamento criptografado de um aplicativo na ROM personalizada), portanto, essa opção está presente apenas na interface do usuário. Com a única exceção - se TWRP é compilado com TW_OEM_BUILDPermitiu então vontade 'formatar dados' em reposição de fábrica, limpando cabeçalho de criptografia e de formatação partição de dados, caso contrário, seria o uso regular limpe w / o formatação.

Vou tentar ddcom zeros, na verdade o TWRP faz o mesmo para limpar a criptografia, apenas sabe onde procurar exatamente o cabeçalho))

Mixaz
fonte
0

Expandindo a resposta de Naftuli Tzvi Kay acima ...

bem, essa resposta me levou ao lugar certo, mas meu telefone (CM11 / i9300) não tinha um recoverycomando e o wipecomando não tinha uma opção para desativar a criptografia. Então eu fiz isso manualmente, olhando os comentários no código-fonte do recoverycomando (arquivo vinculado a partir da resposta vinculada na pergunta acima):

* The recovery tool communicates with the main system through /cache files.
* /cache/recovery/command - INPUT - command line for tool, one arg per line
* /cache/recovery/log - OUTPUT - combined log file from recovery run(s)
* /cache/recovery/intent - OUTPUT - intent that was passed in
*
* The arguments which may be supplied in the recovery.command file:
* --send_intent=anystring - write the text out to recovery.intent
* --update_package=path - verify install an OTA package file
* --wipe_data - erase user data (and cache), then reboot
* --wipe_cache - wipe cache (but not user data), then reboot
* --set_encrypted_filesystem=on|off - enables / diasables encrypted fs
*
* After completing, we remove /cache/recovery/command and reboot.

Então, faça isso manualmente (com adb):

  1. receba uma solicitação com acesso root, por exemplo
    $ adb shell
    > su
    
  2. coloque o seguinte texto no arquivo / cache / recovery / command, com echo ou vi:

    --wipe_data
    --set_encrypted_filesystem=off
    

    por exemplo, com echo -e "--wipe_data\n--set_encrypted_filesystem=off" > /cache/recovery/command

  3. reinicie no CWM ou recuperação semelhante

Você deve ver uma barra de progresso agradável e isso deve ser feito :)

allicoder
fonte
O comando de recuperação está disponível no meu TWRP (3.1.1), aceita --wipe-data e --set_encrypted_filesystem = off via / cache / recovery / command ou linha de comando, mas assim que o acesso à partição de dados é solicitado (por --wipe-data) TWRP solicita senha. Portanto, ele não funciona no TWRP mais recente. 'Formatar dados' funciona, em vez disso, ver outros posts
Mixaz 6/17
0

O melhor método de trabalho é inicializar no TWRP e usar o terminal embutido para formatá-lo como ext2 (porque essa é a única coisa suportada diretamente pelo terminal) e alterar a partição para ext4 usando a opção "Reparar sistema de arquivos" em Montagem

Para formatar como ext2:

mkfs.ext2 /dev/block/mmcbl0p23 (Substitua o valor da sua partição de dados do usuário procurando em / dev / block / platform / * / by-name / userdata)

Altere o sistema de arquivos como ext4:

Limpe -> Limpe avançado -> selecione "Dados" -> Reparar ou alterar sistema de arquivos -> Alterar sistema de arquivos -> EXT4

Agora, você deve ter a criptografia removida e poder montar a partição / dados do TWRP. Espero que isto ajude :)

Snazzy Sanoj
fonte