Удаление шифрования из восстановления


10

Я запускаю CyanogenMod 12 по ночам на моем G900T (klte). Все отлично работает, за исключением пароля шифрования по умолчанию, который заставляет мой телефон зацикливаться.

Я отформатировал данные и произвел сброс настроек, но /dataвсе еще зашифрован и отображается как /dev/dm-0.

Есть ли команда, которую я могу сделать, чтобы удалить шифрование? Меня не волнуют данные, я хочу, чтобы все прошло. Я просто хочу вернуться к тому, /dataчто внутреннее хранилище хранится в незашифрованном виде на диске, чтобы иметь возможность загружаться в CyanogenMod.

Как я могу использовать, adb shellчтобы удалить шифрование на этих разделах?


Какое рекавери прошил?
Jordy19

1
Проект восстановления команды Win (TWRP)
Нафтули Кей

Я читал здесь, что вы можете избавиться от шифрования путем перепрошивки нового ПЗУ, не уверен, что это работает в вашем случае, но это стоит попробовать.
Jordy19

Не сработало Я пытаюсь вручную, dd if=/dev/zeroа затем отформатировать раздел данных.
Нафтули Кей

Ответы:


12

Ответ для меня заключался в нескольких вещах, но я думаю, что один действительно является ключевым.

Используйте команду «восстановление», братан

При этом используется программа CyanogenMod / AOSP recoveryдля очистки пользовательских данных и отключения шифрования. (найдено в этом ответе по переполнению стека ) Загрузитесь с вашего восстановления, а затем с вашего компьютера запустите

adb shell recovery --wipe_data --set_filesystem_encryption=off

Ваш телефон перезагрузится в систему, и, надеюсь, все будет работать как запланировано.

Если вам нужно запустить его с самого телефона (то есть: у вас нет компьютера поблизости adbс):

recovery --wipe_data --set_filesystem_encryption=off

Следует стереть, отключить шифрование и перезагрузить систему.

Если все остальное не удается

Не используйте этот метод, если вышеперечисленное не работает или не применимо к вашему сценарию.

Уничтожить заголовок LUKS для шифрования файловой системы

  1. Вам нужно rootрекавери, которое позволит вам закинуть как на оболочку , так что TWRP работает в моем случае.
  2. Найдите userdataраздел, осмотревшись /dev/block/platform/*/by-name/userdata.
  3. Запишите тонну нулей в начало этого раздела, чтобы стереть заголовок LUKS:

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

    Я не несу ответственности за то, что вы делаете с этой командой. Если вы все испортили, вы можете заблокировать свой телефон, перезаписав загрузчик или другие важные разделы. Убедитесь, что это $PATH_TO_YOUR_USERDATAуказывает на реальный userdataраздел. Проверьте размер этого раздела, чтобы убедиться, что вы правильно стираете. У меня есть телефон на 16 ГБ и userdata10,4 ГБ, остальные выделены system, но ваш телефон будет другим.

  4. Переформатируйте этот раздел как ext4использующийmake_ext4fs $PATH_TO_YOUR_USERDATA .

    Могут быть ошибки, но обычно они связаны с невозможностью найти внутреннюю «SDCard», это нормально.

После всего этого, перезагрузите восстановление снова и затем выполните сброс к заводским настройкам, чтобы быть в безопасности.

Почему это работает?

Казалось, что простое восстановление заводских настроек для меня ничего не значит, телефон по-прежнему видит раздел LUKS. Я предполагаю, что это потому, что заголовок LUKS все еще существовал на уровне диска, а раздел ext4 был просто наложен поверх него. По какой-то причине Android отдает приоритет обнаружению раздела LUKS над разделом ext4 и пытается (и успешно) монтирует его.

Куда пойти отсюда

(Если вы знаете, что делаете, вы также можете стереть systemи установить ПЗУ с нуля. Опять же, я не несу никакой ответственности за то, что вы делаете с информацией, содержащейся в этом посте. )

У меня работал на klteG900T (Samsung Galaxy S5 T-Mobile). Ваш пробег может варьироваться.


Это сработало (опция dd / make_ext4fs). - Когда я перезагружался, он все еще запрашивал пароль при восстановлении TWRP, и расширенные опции формата не работали, но когда я делал обычный формат раздела данных, он работал. - Я смог перезагрузиться в рекавери без каких-либо запросов на пароли. :-)
BrainSlugs83

1
Нафтули, ты спасатель! У меня S6 Edge (SM-G925F) в мертвом цикле загрузки, так как он не смог зашифровать, вероятно, из-за пользовательского восстановления (TWRP), я думаю, что шифрование производится через штатное восстановление. Постоянно говорилось: «Шифрование не было завершено. Сброс настроек и перезагрузка». Я даже пытался прошить стоковое рекавери, он не загружался (возможно, не тот, но помеченный для моего устройства). Весь склад был не очень хорош (не смог найти правильного, тот, который я нашел, был отвергнут одним). Наконец я сделал все, что вы сказали здесь, и ddкоманда наконец сделала свое дело. Большое спасибо!
Mixaz

Команда recovery, похоже, не работает для меня. Я вызвал это из ADB Shellв TWRPрекавери. Моя главная проблема в том, что отладка по USB не включена и /systemповреждена, поэтому я не могу загрузиться и включить ее. Кроме того, шифрование диска включено и, кажется, мешает мне работать fastboot flash system system.zipправильно.
anon58192932

1
Вы спасли мой день или лучше мою ночь. После трех часов попыток установить lineageOS 14.1 на моем Huawei P8 Lite и всегда получать сообщение о неудачном шифровании, с помощью ddкоманды в конце я мог завершить операцию. Спасибо!
Маттео де Феличе

ls -l /dev/block/platform/soc.0/7824900.sdhci/by-name/userdataговорит: 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/mmcblk0p26говорит: `` `Размер файловой системы Используется Доступно Использовать% Установлено в / dev / block / mmcblk0p26 10.5G 27.2M 10.5G 0% / data`` `` так я и сделал: dd if=/dev/zero of=/dev/block/platform/soc.0/7824900.sdhci/by-name/userdata bs=4096 count=512 это правильно?
LarS

8

На моем Moto G 3rd Gen (osprey) не работали ни восстановление, ни очистка заголовка LUKS (в начале и конце раздела) - мне все еще нужно было вводить пароль шифрования во время загрузки Cyanogen Mod, затем застрял с сообщением «ошибка шифрования» ,

Наконец-то я обнаружил, что в моем восстановлении TWRP 3.0.1 есть опция «Форматировать данные» в разделе «Очистка». Это делает полный сброс настроек, который также отключает шифрование.

Работал как шарм. Если у вас есть доступ к приличной версии TWRP (легко прошивается, например, с помощью Flashify), попробуйте сначала.


1
Спасибо. Зачем искать сложное решение, когда простое будет работать?
Питер Гордон

Моя единственная проблема с этим вариантом состояла в том, что текст подразумевает, что он также сотрет вашу SD-карту. Если к вашей карте легко добраться, то это не большая проблема. : - |
zaTricky

1
@pgmann: опция «форматировать данные» появилась не так давно в TWRP, поэтому. Наверняка этого не было в 2014 году, когда были предоставлены эти ответы. Кроме того, этот ddподход полезен при очистке шифрования в сценариях, поскольку опция «форматировать данные» недоступна в командах TWRP, в то время как существующие команды не могут уничтожить шифрование. Надеюсь, они добавят такую ​​команду в будущем ...
Mixaz

5

При условии, что вы используете TWRP или аналогичный.

  • перезагрузитесь в TWRP (введите пароль) и сделайте резервную копию Dataраздела на внешний SDилиOTG Drive
  • перезагрузитесь в TWRP (отменить пароль) и отформатируйте раздел данных в f2fs
  • восстановить резервную копию, созданную на первом этапе, во вновь созданную Data раздел
  • перезагрузить систему
  • наслаждайтесь Android со всеми сохраненными данными и удаленным шифрованием

4

Решение ручной очистки заголовка LUKS от Naftuli Tzvi Kay работает отлично, за исключением одной вещи. Я не знаю, от чего это зависит, но по моему опыту, Android держит заголовок LUKS в КОНЦЕ раздела. И если это так с вашим устройством, то работает

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

не удалит заголовок (нижний колонтитул?), потому что он стирает только начало раздела. Можно, конечно, стереть весь раздел, но это займет слишком много времени. Так...

Чтобы стереть конец раздела (любого размера), после выполнения вышеупомянутой команды выполните эту команду также:

dd bs=512 if=/dev/zero of=$PATH_TO_YOUR_USERDATA count=22048 seek=$((`blockdev --getsz $PATH_TO_YOUR_USERDATA` - 22048))

очистка только заголовка работала нормально для меня (может быть, потому что шифрование не было закончено - не уверен). Но вы голосуете за ваш ответ из-за вашей низкой кармы))
Mixaz

4

Вы используете кастомное рекавери?

Если да, то сделайте это после загрузки в кастомное рекавери ( в моем случае TWRP ):

  1. При запуске восстановления НЕ расшифровывать устройство . Просто нажмите Отмена, когда будет запрошен пароль или шаблон.

  2. Протрите раздел данных. (На TWRP после перелистывания для изменения системы: Wipe> Advanced> Check: Data)

Это, конечно, сотрет все в userdataразделе. Весь раздел данных будет переформатирован, включая ключи шифрования .


1
Очистка раздела данных просто удаляет заголовок файловой системы в начале раздела. Это не работает, потому что во многих версиях Android заголовок LUKS / dm-crypt находится в конце файловой системы.
Нафтули Кей

1
Ты пробовал это? Потому что это просто сработало в моем Nexus 9.
Majal

1
не знаю, почему кто-то отклонил этот ответ, это работает, и это самый простой способ избавиться от шифрования
ArtDeineka

1
Это то, что я в итоге сделал - и это сработало. :)
zaTricky

1
Тоже самое. Работал как шарм.
Линус Клин

1

Мои голоса принадлежат @Naftuli Kay и другим полезным ответам здесь, но у меня есть некоторая информация, которой я хотел бы поделиться. Это слишком долго для комментария, пусть это будет ответом.

Начиная с некоторой версии TWRP, на экране Wipe есть пункт «форматировать данные». Он не только стирает / разделяет данные, но и обрабатывает зашифрованные файлы FS. В моем случае TWRP 3.0.2 на Samsung J500H стирает шифрование, и это был единственный способ, сброс к заводским настройкам не работает. CMR (тот, который построен на моем CM 12.1 для J500H) также не может очистить шифрование.

--set_encrypted_filesystem=off также не работал в TWRP и CMR.

очистка данных с помощью OpenRecoveryScript https://twrp.me/faq/openrecoveryscript.html также не работает

Android 3.0 начал сопоставлять / SDCard с / data / media, поэтому им пришлось переделывать / стирание данных, чтобы не / data / media, и rm -rfвыполняется вместо этого. См. Https://twrp.me/faq/datamedia.html. для получения более подробной информации.

Когда вы выполняете «форматирование данных», вы можете увидеть в журнале восстановления (/ cache / recovery / log или / cache / recovery / last_log) следующую информацию:

I:Successfully wiped crypto footer.

прежде чем он форматирует / данные с make_ext4fs . Код TWRP имеет ряд проверок, чтобы найти, где находится заголовок LUKS, и в моем случае он нашел его в нижнем колонтитуле.

Я посмотрел на источник TWRP и не нашел способа «форматировать данные» из командной строки (мне нужно стереть зашифрованное хранилище из приложения в пользовательском rom), поэтому эта опция присутствует только в пользовательском интерфейсе. За единственным исключением - если TWRP скомпилирован с TW_OEM_BUILDвключенным, то он будет «форматировать данные» при сбросе к заводским настройкам, очищая криптографический заголовок и форматируя раздел данных, в противном случае он будет использовать обычное стирание без форматирования.

Я собираюсь попробовать ddс нулями, на самом деле TWRP делает то же самое, чтобы очистить шифрование, просто он точно знает, где искать заголовок))


0

Расширяя ответ Нафтули Цви Кея выше ...

Хорошо, этот ответ привел меня в нужное место, но у моего телефона (CM11 / i9300) не было recoveryкоманды, и у этой wipeкоманды не было возможности отключить шифрование. Поэтому я сделал это вручную, посмотрев комментарии в исходном коде recoveryкоманды (файл, связанный с ответом, приведенным в предыдущем вопросе):

* 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.

Итак, чтобы сделать это вручную (с помощью ADB):

  1. получить приглашение с правами root, например
    $ adb shell
    > su
    
  2. поместите следующий текст в команду file / cache / recovery / с помощью echo или vi:

    --wipe_data
    --set_encrypted_filesystem=off
    

    например, с echo -e "--wipe_data\n--set_encrypted_filesystem=off" > /cache/recovery/command

  3. перезагрузка в CWM или аналогичное рекавери

Вы должны увидеть хороший индикатор, и это должно быть сделано :)


Команда восстановления доступна в моем TWRP (3.1.1), она принимает --wipe-data и --set_encrypted_filesystem = off как через / cache / recovery / команду, так и из командной строки, но как только запрашивается доступ к разделу данных ( --wipe-data) TWRP запрашивает пароль. Так что это не работает в последней версии TWRP. Вместо этого работает «Форматирование данных», смотрите другие посты
Mixaz

0

Лучший способ работы - загрузиться в TWRP и использовать встроенный терминал, чтобы отформатировать его как ext2 (потому что это единственное, что поддерживается терминалом напрямую), и изменить раздел на ext4 с помощью параметра «Восстановить файловую систему» ​​в разделе «Монтирование».

Чтобы отформатировать как ext2:

mkfs.ext2 /dev/block/mmcbl0p23 (Замените на значение вашего раздела пользовательских данных, просматривая в / dev / block / platform / * / by-name / userdata)

Измените файловую систему как ext4:

Wipe -> Advanced Wipe -> Выберите «Data» -> Repair или Change FileSystem -> Change File System -> EXT4

Теперь вы должны удалить шифрование и иметь возможность монтировать раздел данных из TWRP. Надеюсь это поможет :)

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.