Xóa mã hóa khỏi recovery


10

Tôi đang chạy CyanogenMod 12 hàng đêm trên G900T (klte) của tôi. Mọi thứ hoạt động tuyệt vời ngoại trừ mật khẩu mã hóa mặc định, khiến điện thoại của tôi khởi động vòng lặp.

Tôi đã định dạng dữ liệu và thực hiện đặt lại nhà máy, nhưng /datavẫn được mã hóa và hiển thị dưới dạng /dev/dm-0.

Có một lệnh mà tôi có thể làm để loại bỏ mã hóa? Tôi không quan tâm đến dữ liệu, tôi muốn tất cả biến mất. Tôi chỉ muốn quay lại để có /datavà bộ nhớ trong được lưu trữ trong bản rõ trên đĩa để có thể khởi động vào CyanogenMod.

Làm thế nào tôi có thể sử dụng adb shellđể loại bỏ mã hóa trên các phân vùng này?


Phục hồi nào bạn đã flash?
Jordy19

1
Dự án phục hồi đội chiến thắng (TWRP)
Naftuli Kay

Tôi đã đọc ở đây rằng bạn có thể thoát khỏi mã hóa bằng cách flash ROM mới, không chắc nó có hoạt động trong trường hợp của bạn không nhưng nó đáng để thử.
Jordy19

Không hoạt động. Tôi đang cố gắng thủ công dd if=/dev/zerovà sau đó định dạng phân vùng dữ liệu.
Naftuli Kay

Câu trả lời:


12

Câu trả lời cho tôi liên quan đến một số điều, nhưng tôi nghĩ rằng một trong những thực sự là chìa khóa.

Sử dụng lệnh "recovery", người anh em

Điều này sử dụng recoverychương trình / AOSP của CyanogenMod để xóa dữ liệu người dùng và vô hiệu hóa mã hóa. (tìm thấy trong câu trả lời này trên Stack Overflow ) Khởi động vào recovery của bạn và sau đó từ máy tính của bạn chạy

adb shell recovery --wipe_data --set_filesystem_encryption=off

Điện thoại của bạn sẽ khởi động lại vào hệ thống và hy vọng mọi thứ sẽ hoạt động theo kế hoạch.

Nếu bạn cần chạy nó từ chính điện thoại (ví dụ: bạn không có máy tính adbbên cạnh):

recovery --wipe_data --set_filesystem_encryption=off

Nó sẽ xóa, vô hiệu hóa mã hóa và khởi động lại hệ thống.

Nếu tất cả đều thất bại

Không sử dụng phương pháp này trừ khi những điều trên không hoạt động hoặc áp dụng cho kịch bản của bạn.

Phá hủy tiêu đề LUKS để mã hóa hệ thống tập tin

  1. Bạn cần một phục hồi sẽ cho phép bạn thả vào một vỏ như rootvậy, vì vậy TWRP hoạt động trong trường hợp của tôi.
  2. Xác định vị trí userdataphân vùng bằng cách nhìn xung quanh trong /dev/block/platform/*/by-name/userdata.
  3. Viết ra một tấn số 0 vào đầu phân vùng đó để xóa tiêu đề LUKS:

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

    Tôi khẳng định không chịu trách nhiệm cho những gì bạn làm với lệnh này. Nếu bạn vặn cái này lên, bạn có thể gạch điện thoại của mình bằng cách ghi đè bộ tải khởi động hoặc các phân vùng quan trọng khác. Hãy chắc chắn rằng $PATH_TO_YOUR_USERDATAđiểm đến userdataphân vùng thực . Kiểm tra kích thước của phân vùng đó để đảm bảo bạn đang xóa đúng thứ. Tôi có điện thoại 16 GB và userdata10,4 GB, phần còn lại được dành riêng system, nhưng điện thoại của bạn sẽ khác.

  4. Định dạng lại phân vùng đó ext4bằng cách sử dụng make_ext4fs $PATH_TO_YOUR_USERDATA.

    Có thể có lỗi, nhưng thông thường chúng liên quan đến việc không thể tìm thấy "sdcard" nội bộ, điều này không sao cả.

Sau khi tất cả điều này, khởi động lại phục hồi một lần nữa và sau đó chạy khôi phục cài đặt gốc để an toàn.

Tại sao điều này làm việc?

Đơn giản chỉ cần thực hiện khôi phục cài đặt gốc dường như không làm gì cho tôi, điện thoại vẫn sẽ thấy phân vùng LUKS ở đó. Tôi giả định rằng điều này là do tiêu đề LUKS vẫn tồn tại ở cấp độ đĩa và phân vùng ext4 chỉ được phủ lên trên nó. Vì một số lý do, Android ưu tiên phát hiện phân vùng LUKS trên phân vùng ext4 và cố gắng (và thành công) để gắn kết đó.

Đi đâu từ đây

(Nếu bạn biết bạn đang làm gì, bạn cũng có thể muốn xóa systemvà cài đặt ROM của mình từ đầu. Một lần nữa, tôi không chịu trách nhiệm cho bất kỳ điều gì bạn làm với thông tin có trong bài đăng này. )

Làm việc cho tôi trên klteG900T (Samsung Galaxy S5 T-Mobile). Số dặm của bạn có thể thay đổi.


Đó là loại công việc (tùy chọn dd / make_ext4fs). - Khi tôi khởi động lại, nó vẫn yêu cầu mật khẩu trong phục hồi TWRP và các tùy chọn định dạng nâng cao không hoạt động - nhưng khi tôi thực hiện định dạng phân vùng dữ liệu thông thường, nó đã hoạt động. - Tôi đã có thể khởi động lại vào recovery mà không cần bất kỳ lời nhắc nào về mật khẩu. :-)
BrainSlugs83

1
Naftuli, bạn là một phao cứu sinh! Tôi đã có S6 edge (SM-G925F) trong vòng lặp khởi động chết, vì nó không thể mã hóa có thể do phục hồi tùy chỉnh (TWRP), tôi nghĩ rằng mã hóa được thực hiện thông qua phục hồi kho. Nó cứ nói "mã hóa chưa kết thúc. Khôi phục cài đặt gốc và khởi động lại". Tôi thậm chí đã cố gắng flash recovery recovery, nó không khởi động được (có thể sai một cái nhưng được dán nhãn cho thiết bị của tôi). Toàn bộ rom stock cũng không tốt (không thể tìm đúng, cái mà tôi tìm thấy đã bị odin từ chối). Cuối cùng tôi đã làm mọi thứ bạn nói ở đây, và ddlệnh cuối cùng đã thực hiện được mánh khóe. Cảm ơn rất nhiều!
Mixaz

Các recoverylệnh dường như không làm việc cho tôi. Tôi gọi nó từ ADB Shelltrong TWRPphục hồi. Vấn đề chính của tôi là gỡ lỗi USB không được bật và /systembị hỏng nên tôi không thể khởi động và kích hoạt nó. Ngoài ra, mã hóa đĩa được bật và dường như ngăn tôi thực hiện fastboot flash system system.zipchính xác.
anon58192932

1
Bạn đã cứu ngày của tôi, hoặc tốt hơn đêm của tôi. Sau ba giờ cố gắng cài đặt lineageOS 14.1 trên Huawei P8 Lite của tôi và nhận được thông báo mã hóa không thành công, với ddlệnh cuối cùng tôi có thể kết thúc thao tác. Cảm ơn bạn!
Matteo De Felice

ls -l /dev/block/platform/soc.0/7824900.sdhci/by-name/userdatanói: 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/mmcblk0p26nói: `` `Kích thước hệ thống tập tin được sử dụng Có sẵn% Được gắn trên / dev / block / mmcblk0p26 10.5G 27.2M 10.5G 0% / data`` `vì vậy tôi đã làm: dd if=/dev/zero of=/dev/block/platform/soc.0/7824900.sdhci/by-name/userdata bs=4096 count=512 Có đúng không?
LarS

8

Trên Moto G thế hệ thứ 3 (osprey) của tôi, không gọi phục hồi cũng không xóa tiêu đề LUKS (ở đầu và cuối phân vùng) - tôi vẫn cần nhập mật khẩu mã hóa trong quá trình khởi động Cyanogen Mod, sau đó bị kẹt với thông báo "lỗi mã hóa" .

Cuối cùng tôi đã thấy rằng phục hồi TWRP 3.0.1 của tôi có tùy chọn "Định dạng dữ liệu" trong phần "Xóa". Điều này thực hiện khôi phục cài đặt gốc hoàn chỉnh cũng vô hiệu hóa mã hóa.

Làm việc như người ở. Nếu bạn có quyền truy cập vào một phiên bản TWRP phong nha (dễ dàng flash, ví dụ như với Flashify), hãy thử điều này trước.


1
Cảm ơn bạn. Tại sao đi đến một giải pháp phức tạp khi một giải pháp đơn giản sẽ làm việc?
Peter Gordon

Vấn đề duy nhất của tôi với tùy chọn đó là văn bản ngụ ý nó cũng sẽ xóa sạch thẻ SD của bạn. Nếu thẻ của bạn dễ dàng truy cập, thì đó không phải là vấn đề. : - |
zaTricky

1
@pgmann: tùy chọn 'dữ liệu định dạng' xuất hiện cách đây không lâu trong TWRP, đó là lý do tại sao. Chắc chắn nó không có ở đó vào năm 2014 khi những câu trả lời đó được cung cấp. Ngoài ra, ddcách tiếp cận này rất hữu ích khi làm sạch mã hóa trong các tập lệnh, vì tùy chọn 'định dạng dữ liệu' không có sẵn trong các lệnh TWRP, trong khi các lệnh hiện có không thể xóa mã hóa. Hy vọng họ sẽ thêm lệnh như vậy trong tương lai ...
Mixaz

5

Với điều kiện bạn đang sử dụng TWRP hoặc tương tự.

  • khởi động lại TWRP (nhập mật khẩu) và tạo bản sao lưu Dataphân vùng ra bên ngoài SDhoặcOTG Drive
  • khởi động lại TWRP (hủy mật khẩu) và định dạng phân vùng dữ liệu thành f2fs
  • khôi phục sao lưu được thực hiện ở bước một đến Dataphân vùng mới được tạo
  • hệ thống khởi động lại
  • tận hưởng Android với tất cả dữ liệu của bạn được lưu và loại bỏ mã hóa

4

Giải pháp xóa thủ công LUKS do Naftuli Tzvi Kay cung cấp hoạt động tốt, ngoại trừ một điều. Tôi không biết nó phụ thuộc vào cái gì, nhưng theo kinh nghiệm của tôi, Android giữ tiêu đề LUKS ở END của phân vùng. Và nếu đó là trường hợp với thiết bị của bạn, thì hãy chạy

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

sẽ không xóa tiêu đề (chân trang?) vì nó chỉ xóa phần đầu của phân vùng. Tất nhiên người ta có thể xóa toàn bộ phân vùng, nhưng sẽ mất nhiều thời gian không cần thiết. Vì thế...

Để xóa phần cuối của phân vùng (có kích thước bất kỳ), sau khi chạy lệnh trên, cũng chạy lệnh này:

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

Xóa tiêu đề chỉ hoạt động tốt với tôi (có thể là do mã hóa chưa kết thúc - không chắc chắn). Nhưng nâng cao câu trả lời của bạn vì nghiệp lực thấp của bạn))
Mixaz

4

Bạn đang sử dụng phục hồi tùy chỉnh?

Nếu có, thì hãy làm điều này sau khi khởi động để phục hồi tùy chỉnh ( TWRP trong trường hợp của tôi):

  1. Khi bắt đầu khôi phục, KHÔNG giải mã thiết bị . Chỉ cần nhấn Hủy khi được hỏi về mật khẩu hoặc mẫu.

  2. Xóa phân vùng dữ liệu. (Trên TWRP sau khi vuốt để sửa đổi hệ thống: Xóa> Nâng cao> Kiểm tra: Dữ liệu)

Điều này tất nhiên sẽ xóa sạch mọi thứ trong userdataphân vùng. Toàn bộ phân vùng dữ liệu sẽ được định dạng lại bao gồm các khóa mã hóa .


1
Xóa phân vùng dữ liệu chỉ cần loại bỏ tiêu đề hệ thống tập tin ở đầu phân vùng. Nó không hoạt động vì trên nhiều phiên bản Android, tiêu đề LUKS / dm-crypt nằm ở cuối hệ thống tệp.
Naftuli Kay

1
Bạn đã thử chưa? Bởi vì nó chỉ hoạt động trong Nexus 9.
Majal

1
không chắc chắn tại sao ai đó đánh giá thấp câu trả lời này, nó hoạt động và là cách đơn giản nhất để thoát khỏi mã hóa
ArtDeineka

1
Đây là những gì tôi đã làm - và nó đã làm việc. :)
zaTricky

1
Tương tự ở đây. Làm việc như người ở.
Linus Kleen

1

Phiếu bầu của tôi thuộc về @Naftuli Kay và câu trả lời hữu ích khác ở đây, nhưng tôi có một số thông tin tôi muốn chia sẻ. Quá dài cho một nhận xét, hãy để nó là một câu trả lời.

Vì một số phiên bản TWRP, có mục 'dữ liệu định dạng' trên màn hình Xóa. Nó không chỉ xóa / phân vùng dữ liệu, mà còn xử lý vấn đề FS được mã hóa. Trong trường hợp của tôi, TWRP 3.0.2 trên Samsung J500H xóa sạch mã hóa và đó là cách duy nhất, khôi phục cài đặt gốc không hoạt động. CMR (cái được tạo cùng với rom CM 12.1 của tôi cho J500H) cũng không thể xóa mã hóa.

--set_encrypted_filesystem=off cũng không hoạt động trong TWRP và CMR.

xóa dữ liệu qua OpenRecoveryScript https://twrp.me/faq/openrecoveryscript.html cũng không hoạt động

Android 3.0 bắt đầu ánh xạ / sdcard tới / data / media, do đó họ phải làm lại / xóa dữ liệu để không / data / media và rm -rfđược thực hiện thay thế. Xem https://twrp.me/faq/datamedia.html để biết thêm chi tiết.

Khi bạn thực hiện 'định dạng dữ liệu', bạn có thể thấy trong nhật ký khôi phục (/ cache / recovery / log hoặc / cache / recovery / last_log) thông tin sau:

I:Successfully wiped crypto footer.

trước khi nó định dạng / dữ liệu với make_ext4fs. Mã TWRP có số lượng kiểm tra để tìm vị trí của tiêu đề LUKS và trong trường hợp của tôi, nó đã tìm thấy nó ở chân trang.

Tôi đã xem nguồn TWRP và tôi chưa tìm được cách 'định dạng dữ liệu' từ dòng lệnh (tôi cần xóa bộ nhớ được mã hóa khỏi một ứng dụng trong rom tùy chỉnh), vì vậy tùy chọn này chỉ có trong UI. Với ngoại lệ duy nhất - nếu TWRP được biên dịch với TW_OEM_BUILDkích hoạt thì nó sẽ 'định dạng dữ liệu' khi khôi phục cài đặt gốc, xóa tiêu đề mật mã và định dạng phân vùng dữ liệu, nếu không, nó sẽ sử dụng định dạng xóa thông thường.

Tôi sẽ cố gắng ddvới số không, thực ra TWRP cũng làm như vậy để xóa mã hóa, chỉ cần nó biết chính xác nơi để tìm tiêu đề))


0

Mở rộng câu trả lời của Naftuli Tzvi Kay ở trên ...

tốt, câu trả lời đó đã đưa tôi đến đúng nơi, nhưng điện thoại của tôi (CM11 / i9300) không có recoverylệnh và wipelệnh không có tùy chọn để vô hiệu hóa mã hóa. Vì vậy, tôi đã làm nó bằng tay từ việc xem các bình luận trong mã nguồn cho recoverylệnh (tệp được liên kết từ câu trả lời được liên kết trong câu hỏi trên):

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

Vì vậy, để làm điều đó bằng tay (với adb):

  1. nhận được một dấu nhắc với quyền truy cập root, ví dụ
    $ adb shell
    > su
    
  2. đặt văn bản sau vào lệnh / cache / recovery / lệnh, bằng echo hoặc vi:

    --wipe_data
    --set_encrypted_filesystem=off
    

    ví dụ với echo -e "--wipe_data\n--set_encrypted_filesystem=off" > /cache/recovery/command

  3. khởi động lại vào CWM hoặc phục hồi tương tự

Bạn sẽ thấy một thanh tiến trình tốt đẹp và nó sẽ được thực hiện :)


lệnh recovery có sẵn trong TWRP của tôi (3.1.1), nó chấp nhận --wipe-data và --set_encrypted_filesystem = tắt cả via / cache / recovery / lệnh hoặc dòng lệnh, nhưng ngay khi yêu cầu truy cập vào phân vùng dữ liệu (bởi --wipe-data) TWRP nhắc nhập mật khẩu. Vì vậy, nó không hoạt động trong TWRP mới nhất. 'Định dạng dữ liệu' hoạt động thay thế, xem các bài đăng khác
Mixaz

0

Phương pháp hoạt động tốt nhất là khởi động vào TWRP và sử dụng thiết bị đầu cuối sẵn có để định dạng nó là ext2 (vì đó là điều duy nhất được hỗ trợ trực tiếp từ thiết bị đầu cuối) và thay đổi phân vùng thành ext4 bằng cách sử dụng tùy chọn "Repair Filesystem" trong Mount

Để định dạng như ext2:

mkfs.ext2 /dev/block/mmcbl0p23 (Thay thế bằng giá trị của phân vùng userdata của bạn bằng cách tìm xung quanh trong / dev / block / platform / * / by-name / userdata)

Thay đổi hệ thống tập tin dưới dạng ext4:

Xóa -> Xóa nâng cao -> Chọn "Dữ liệu" -> Sửa chữa hoặc thay đổi hệ thống tệp -> Thay đổi hệ thống tệp -> EXT4

Bây giờ, bạn nên xóa mã hóa và có thể gắn kết / phân vùng dữ liệu từ TWRP. Hi vọng điêu nay co ich :)

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.