Видалення шифрування з відновлення


10

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

Я відформатував дані та зробив скидання заводських налаштувань, але /dataвсе ще зашифрований і відображається як /dev/dm-0.

Чи є команда, яку я можу зробити, щоб видалити шифрування? Мені байдуже дані, я хочу, щоб це все пройшло. Я просто хочу повернутися до наявності /dataта внутрішньої пам’яті, що зберігається в простому тексті на диску, щоб мати можливість завантажуватися в CyanogenMod.

Як я можу adb shellвидалити шифрування цих розділів?


Яке відновлення спалахнуло?
Jordy19

1
Проект відновлення виграшів команди (TWRP)
Нафтулі Кей,

Я прочитав тут, що ви можете позбутися від шифрування, прошивши новий ПЗУ, не впевнений, що це працює у вашому випадку, але варто спробувати.
Jordy19

Не працювало. Я намагаюся вручну, dd if=/dev/zeroа потім відформатувати розділ даних.
Naftuli Kay

Відповіді:


12

Відповідь для мене стосувалася низки речей, але я думаю, що одна справді є ключовою.

Скористайтесь командою "recovery", брато

Для цього використовується програма 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і встановити свій ROM з нуля. Знову ж, я не несу відповідальності за все, що ви робите з інформацією, що міститься в цій публікації. )

Працював для мене на klteG900T (Samsung Galaxy S5 T-Mobile). Ваш пробіг може відрізнятися.


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

1
Нафтулі, ти рятівник! У мене є край S6 (SM-G925F) у мертвій циклі завантаження, оскільки він не зміг зашифрувати, ймовірно, через користувальницьке відновлення (TWRP), я думаю, що шифрування здійснюється за допомогою відновлення запасів. Постійно говорили, що "шифрування не закінчено. Скидання заводських налаштувань та перезавантаження". Я навіть намагався спалах відновлення запасів, він не завантажувався (напевно, неправильний, але мічений для мого пристрою). Ром із цілою акцією теж не був хорошим (не зміг знайти належного, той, кого я знайшов, був відхилений Одіном). Нарешті я зробив усе, що ви сказали тут, і ddкоманда нарешті зробила трюк. Дуже дякую!
Міксаз

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

9

У моєму Moto G 3rd Gen (osprey) не працювало ні відновлення викликів, ні витирання заголовка LUKS (на початку та в кінці розділу) - мені все одно потрібно було ввести пароль шифрування під час завантаження Cyanogen Mod, після чого було застряг повідомлення "помилка шифрування". .

Нарешті я виявив, що в моєму відновлення TWRP 3.0.1 є розділ "Формат даних" у розділі "Стерти". Це робить повне скидання заводу, яке також вимикає шифрування.

Працював як шарм. Якщо у вас є доступ до гідної версії TWRP (легко прошивається, наприклад, за допомогою Flashify), спробуйте це спочатку.


1
Дякую. Навіщо йти на складне рішення, коли спрацює просте?
Пітер Гордон

Моя єдина проблема з цим варіантом полягала в тому, що текст передбачає, що він також витирає вашу SD-карту. Якщо до вашої картки легко дістатися, то це не велика проблема. : - |
zaTricky

1
@pgmann: Параметр "формат даних" з'явився не так давно в TWRP, ось чому. Напевно, цього не було в 2014 році, коли відповіді були надані. Також ddпідхід корисний при очищенні шифрування в скриптах, оскільки опція "форматування даних" недоступна для команд TWRP, тоді як існуючі команди не можуть стерти шифрування. Сподіваюся, вони додадуть таку команду в майбутньому ...
Міксаз

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))

витирання лише заголовка працювало нормально для мене (можливо, тому що шифрування не було закінчено - не впевнений). Але відповідаючи на відповідь через низьку карму))
Міксаз

4

Використовуєте користувальницьке відновлення?

Якщо так, то зробіть це після завантаження до спеціального відновлення ( TWRP в моєму випадку):

  1. Після запуску відновлення НЕ розшифровуйте пристрій . Просто натисніть Скасувати, коли запитаєте пароль або шаблон.

  2. Протріть розділ даних. (Після TWRP після переходу, щоб змінити систему: Протріть> Додатково> Перевірити: Дані)

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


1
Витираючи розділ даних, просто видаляється заголовок файлової системи на початку розділу. Це не працює, оскільки для багатьох версій Android заголовок LUKS / dm-crypt знаходиться в кінці файлової системи.
Naftuli Kay

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 rom для 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 для отримання більш детальної інформації.

Виконуючи "дані формату", ви можете побачити в журналі відновлення (/ кеш / відновлення / журнал або / кеш / відновлення / останній_лог) таку інформацію:

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. вставити підказку з кореневим доступом, наприклад
    $ adb shell
    > su
    
  2. помістіть наступний текст у файл / кеш / відновлення / команду, або з 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-дані та --set_encrypted_filesystem = вимкнено як через / кеш / відновлення / командний чи командний рядок, але як тільки запит на доступ до розділу даних (за допомогою --wipe-data) TWRP запитує пароль. Отже, це не працює в останній TWRP. "Формат даних" працює замість цього, дивіться інші публікації
Mixaz

0

Найкращий спосіб роботи - це завантажитися в TWRP і використовувати вбудований термінал, щоб відформатувати його як ext2 (адже це єдине, що безпосередньо підтримується з терміналу), і змінити розділ на ext4 за допомогою опції "Ремонт файлової системи" під Монтажем

Щоб форматувати як ext2:

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

Зміна файлової системи як ext4:

Протріть -> Розширене очищення -> Виберіть "Дані" -> Відновити або змінити Файлову систему -> Змінити файлову систему -> EXT4

Тепер вам слід видалити шифрування та мати змогу монтувати / розділ даних з TWRP. Сподіваюся, це допомагає :)

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.