Menghapus enkripsi dari pemulihan

10

Saya menjalankan CyanogenMod 12 setiap malam di G900T (klte) saya. Semuanya berfungsi dengan baik kecuali untuk kata sandi enkripsi default, yang menyebabkan ponsel saya untuk boot loop.

Saya telah memformat data dan melakukan reset pabrik, tetapi /datamasih dienkripsi dan muncul sebagai /dev/dm-0.

Apakah ada perintah yang bisa saya lakukan untuk menghapus enkripsi? Saya tidak peduli dengan data, saya ingin semuanya hilang. Saya hanya ingin kembali untuk memiliki /datadan penyimpanan internal yang disimpan dalam plaintext pada disk untuk dapat boot ke CyanogenMod.

Bagaimana saya bisa menggunakan adb shelluntuk menghapus enkripsi pada partisi ini?

Naftuli Kay
sumber
Pemulihan mana yang Anda flash?
Jordy19
1
Team Win Recovery Project (TWRP)
Naftuli Kay
Saya membaca di sini bahwa Anda dapat menghilangkan enkripsi dengan menginstal ROM baru, tidak yakin apakah itu berfungsi dalam kasus Anda tetapi patut dicoba.
Jordy19
Tidak bekerja Saya mencoba untuk secara manual dd if=/dev/zerodan kemudian memformat partisi data.
Naftuli Kay

Jawaban:

12

Jawaban untuk saya melibatkan sejumlah hal, tetapi saya pikir satu adalah kunci.

Gunakan Perintah "pemulihan", bro

Ini menggunakan program CyanogenMod / AOSP recoveryuntuk menghapus data pengguna dan menonaktifkan enkripsi. (ditemukan dalam jawaban ini di Stack Overflow ) Boot ke pemulihan Anda, dan kemudian dari komputer Anda berjalan

adb shell recovery --wipe_data --set_filesystem_encryption=off

Ponsel Anda akan reboot ke sistem dan semoga semuanya berjalan sesuai rencana.

Jika Anda perlu menjalankannya dari telepon itu sendiri (yaitu: Anda tidak memiliki komputer terdekat adb):

recovery --wipe_data --set_filesystem_encryption=off

Seharusnya menghapus, menonaktifkan enkripsi, dan reboot sistem.

If All Else Fails

Jangan gunakan metode ini kecuali cara di atas tidak berfungsi atau berlaku untuk skenario Anda.

Hancurkan Header LUKS untuk Enkripsi Filesystem

  1. Anda memerlukan pemulihan yang memungkinkan Anda untuk rootberalih ke shell , jadi TWRP berfungsi dalam kasus saya.
  2. Temukan userdatapartisi dengan melihat sekeliling /dev/block/platform/*/by-name/userdata.
  3. Tulis satu ton nol ke awal partisi itu untuk menghapus header LUKS:

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

    Saya tidak bertanggung jawab atas apa yang Anda lakukan dengan perintah ini. Jika Anda mengacaukannya, Anda dapat merusak ponsel Anda dengan menimpa bootloader Anda atau partisi penting lainnya. Pastikan itu $PATH_TO_YOUR_USERDATAmenunjuk ke userdatapartisi nyata . Periksa ukuran partisi itu untuk memastikan Anda menghapus hal yang benar. Saya memiliki telepon 16GB dan userdata10,4GB, dengan sisanya didedikasikan system, tetapi telepon Anda akan berbeda.

  4. Format ulang partisi itu dengan ext4menggunakan make_ext4fs $PATH_TO_YOUR_USERDATA.

    Mungkin ada kesalahan, tetapi biasanya mereka berhubungan dengan tidak dapat menemukan "sdcard," internal ini tidak apa-apa.

Setelah semua ini, reboot pemulihan lagi dan kemudian jalankan reset pabrik hanya untuk aman.

Mengapa ini bekerja?

Cukup melakukan reset pabrik sepertinya tidak melakukan apa-apa untuk saya, ponsel masih akan melihat partisi LUKS di sana. Saya berasumsi bahwa ini adalah karena header LUKS masih ada di tingkat disk dan partisi ext4 hanya overlay di atasnya. Untuk beberapa alasan, Android memprioritaskan deteksi partisi LUKS di atas partisi ext4 dan mencoba (dan berhasil) memasang itu.

Ke mana Pergi dari Sini

(Jika Anda tahu apa yang Anda lakukan, Anda mungkin juga ingin menghapus systemdan menginstal ROM Anda dari awal. Sekali lagi, saya tidak bertanggung jawab atas apa pun yang Anda lakukan dengan informasi yang terkandung dalam posting ini. )

Bekerja untuk saya di klteG900T (Samsung Galaxy S5 T-Mobile). Jarak tempuh Anda mungkin beragam.

Naftuli Kay
sumber
Semacam itu berhasil (opsi dd / make_ext4fs). - Ketika saya reboot, masih meminta kata sandi dalam pemulihan TWRP, dan opsi format lanjutan tidak berfungsi - tetapi ketika saya melakukan format partisi data biasa, itu berhasil. - Saya dapat memulai kembali ke pemulihan tanpa meminta kata sandi. :-)
BrainSlugs83
1
Naftuli, kau adalah penyelamat! S6 edge (SM-G925F) saya ada di loop boot mati, karena tidak dapat mengenkripsi mungkin karena pemulihan kustom (TWRP), saya pikir enkripsi dibuat melalui pemulihan stok. Itu selalu mengatakan "enkripsi belum selesai. Reset pabrik dan reboot". Saya bahkan mencoba untuk mem-flash pemulihan stok, itu tidak bisa boot (mungkin salah tapi berlabel untuk perangkat saya). Seluruh stok rom juga tidak baik (tidak dapat menemukan yang tepat, yang saya temukan ditolak oleh odin). Akhirnya saya melakukan semua yang Anda katakan di sini, dan ddperintah akhirnya berhasil. Terima kasih banyak!
Mixaz
The recoveryperintah tampaknya tidak bekerja untuk saya. Aku menelepon dari ADB Shelldalam TWRPpemulihan. Masalah utama saya adalah bahwa debugging USB tidak diaktifkan dan /systemrusak sehingga saya tidak bisa boot dan mengaktifkannya. Enkripsi disk juga aktif dan sepertinya membuat saya tidak bekerja fastboot flash system system.zipdengan benar.
anon58192932
1
Anda menyelamatkan hari saya, atau lebih baik malam saya. Setelah tiga jam mencoba untuk menginstal lineageOS 14.1 pada Huawei P8 Lite saya dan selalu mendapatkan pesan enkripsi yang tidak berhasil, dengan ddperintah pada akhirnya saya dapat menyimpulkan operasi. Terima kasih!
Matteo De Felice
ls -l /dev/block/platform/soc.0/7824900.sdhci/by-name/userdatamengatakan: 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/mmcblk0p26mengatakan: `` `Ukuran Sistem File yang Digunakan Gunakan% Dipasang di / dev / block / mmcblk0p26 10.5G 27.2M 10.5G 0% / data`` `` jadi saya sudah: dd if=/dev/zero of=/dev/block/platform/soc.0/7824900.sdhci/by-name/userdata bs=4096 count=512 Apakah itu benar?
LarS
8

Pada Moto G 3rd Gen (osprey) saya, tidak memanggil pemulihan atau menghapus header LUKS (pada awal dan akhir partisi) bekerja - saya masih perlu memasukkan kata sandi enkripsi selama boot Cyanogen Mod, kemudian terjebak dengan pesan "kesalahan enkripsi" .

Saya akhirnya menemukan bahwa pemulihan TWRP 3.0.1 saya memiliki opsi "Format Data" di bagian "Wipe". Ini melakukan reset pabrik lengkap yang juga menonaktifkan enkripsi.

Bekerja seperti pesona. Jika Anda memiliki akses ke versi TWRP yang layak (mudah di-flash misalnya dengan Flashify), coba ini dulu.

Unispezi
sumber
1
Terima kasih. Mengapa mencari solusi yang rumit ketika yang sederhana akan berhasil?
Peter Gordon
Satu-satunya masalah saya dengan opsi itu adalah teks yang menyiratkan itu juga akan menghapus kartu SD Anda. Jika kartu Anda mudah diakses, maka itu tidak terlalu menjadi masalah. : - |
zaTricky
1
@pgmann: opsi 'format data' muncul belum lama ini di TWRP, itu sebabnya. Yang pasti itu tidak ada pada tahun 2014 ketika balasan tersebut diberikan. Juga, ddpendekatan ini berguna ketika membersihkan enkripsi dalam skrip, karena opsi 'format data' tidak tersedia dalam perintah TWRP, sementara perintah yang ada tidak dapat menghapus enkripsi. Semoga mereka menambahkan perintah seperti itu di masa depan ...
Mixaz
5

Asalkan Anda menggunakan TWRP atau serupa.

  • reboot ke TWRP (masukkan kata sandi), dan buat cadangan Datapartisi ke eksternal SDatauOTG Drive
  • reboot ke TWRP (batalkan kata sandi), dan format partisi Data menjadi f2fs
  • pulihkan cadangan yang dibuat pada langkah pertama ke Datapartisi yang baru dibuat
  • sistem reboot
  • nikmati Android dengan semua data Anda disimpan, dan enkripsi dihapus
ArtDeineka
sumber
4

Solusi untuk secara manual menghapus header LUKS yang disediakan oleh Naftuli Tzvi Kay berfungsi dengan baik, kecuali untuk satu hal. Saya tidak tahu bagaimana ini tergantung, tetapi dalam pengalaman saya, Android membuat header LUKS di akhir partisi. Dan jika itu yang terjadi dengan perangkat Anda, maka jalankan

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

akan gagal menghapus header (footer?) karena hanya menghapus awal partisi. Seseorang tentu saja dapat menghapus seluruh partisi, tetapi itu akan memakan waktu lama yang tidak perlu. Begitu...

Untuk menghapus bagian akhir partisi (dengan ukuran berapa pun), setelah menjalankan perintah di atas, jalankan perintah ini juga:

dd bs=512 if=/dev/zero of=$PATH_TO_YOUR_USERDATA count=22048 seek=$((`blockdev --getsz $PATH_TO_YOUR_USERDATA` - 22048))
Lockheed
sumber
menghapus hanya header bekerja OK untuk saya (mungkin karena enkripsi belum selesai - tidak yakin). Tetapi membatalkan jawaban Anda karena karma rendah Anda))
Mixaz
4

Apakah Anda menggunakan pemulihan khusus?

Jika ya, lakukan ini setelah boot ke pemulihan khusus ( TWRP dalam kasus saya):

  1. Saat pemulihan dimulai, JANGAN dekripsi perangkat . Cukup ketuk Batalkan ketika ditanya kata sandi atau pola.

  2. Bersihkan partisi data. (Pada TWRP setelah menggesek untuk memodifikasi sistem: Hapus> Lanjutan> Periksa: Data)

Ini tentu saja akan menghapus semua yang ada di userdatapartisi. Seluruh partisi data akan diformat ulang termasuk kunci enkripsi .

Majal
sumber
1
Menghapus partisi data hanya menghapus header sistem file di awal partisi. Ini tidak berfungsi karena pada banyak versi Android, header LUKS / dm-crypt ada di akhir filesystem.
Naftuli Kay
1
Sudahkah Anda mencobanya? Karena itu hanya bekerja di Nexus 9.
Majal
1
tidak yakin mengapa seseorang menurunkan jawaban ini, ini berfungsi, dan merupakan cara paling sederhana untuk menyingkirkan enkripsi
ArtDeineka
1
Inilah yang akhirnya saya lakukan - dan itu berhasil. :)
zaTricky
1
Sama disini. Bekerja seperti pesona.
Linus Kleen
1

Suara saya masuk ke @Naftuli Kay, dan jawaban bermanfaat lainnya di sini, tapi saya punya beberapa info yang ingin saya bagikan. Itu terlalu panjang untuk dikomentari, biarkan itu menjadi jawaban.

Karena beberapa versi TWRP, ada item 'format data' di layar Wipe. Itu tidak hanya menghapus / partisi data, tetapi juga menangani masalah FS terenkripsi. Dalam kasus saya, TWRP 3.0.2 pada Samsung J500H menghapus enkripsi, dan itu satu-satunya cara, reset pabrik tidak berfungsi. CMR (yang sedang dibangun di sepanjang CM 12.1 rom saya untuk J500H) juga tidak dapat menghapus enkripsi.

--set_encrypted_filesystem=off juga tidak berfungsi di TWRP dan CMR.

menghapus data melalui OpenRecoveryScript https://twrp.me/faq/openrecoveryscript.html juga tidak berfungsi

Android 3.0 mulai memetakan / sdcard ke / data / media, sehingga mereka harus mengerjakan ulang / menghapus data untuk tidak / data / media, dan rm -rfdilakukan sebagai gantinya. Lihat https://twrp.me/faq/datamedia.html untuk lebih jelasnya.

Ketika Anda melakukan 'memformat data' Anda mungkin melihat di log pemulihan (/ cache / recover / log atau / cache / recovery / last_log) info berikut:

I:Successfully wiped crypto footer.

sebelum format / data dengan make_ext4fs . Kode TWRP memiliki jumlah pemeriksaan untuk menemukan di mana header LUKS berada, dan dalam kasus saya ditemukan di footer.

Saya melihat sumber TWRP dan saya belum menemukan cara untuk 'memformat data' dari baris perintah (saya perlu menghapus penyimpanan terenkripsi dari aplikasi di custom rom), jadi opsi ini hanya ada di UI. Dengan satu-satunya pengecualian - jika TWRP dikompilasi dengan TW_OEM_BUILDdiaktifkan maka akan 'memformat data' pada reset pabrik, menghapus header crypto dan memformat partisi data, jika tidak maka akan menggunakan penghapusan w / o format biasa.

Saya akan mencoba dddengan nol, sebenarnya TWRP melakukan hal yang sama untuk menghapus enkripsi, hanya tahu di mana harus mencari header secara tepat))

Mixaz
sumber
0

Memperluas jawaban Naftuli Tzvi Kay di atas ...

baik, jawaban itu membuat saya ke tempat yang tepat, tetapi telepon saya (CM11 / i9300) tidak memiliki recoveryperintah, dan wipeperintah itu tidak memiliki opsi untuk menonaktifkan enkripsi. Jadi saya melakukannya secara manual dari melihat komentar dalam kode sumber untuk recoveryperintah (file ditautkan dari jawaban yang ditautkan dalam pertanyaan di atas):

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

Jadi untuk melakukannya secara manual (dengan adb):

  1. bangun prompt dengan akses root, mis
    $ adb shell
    > su
    
  2. masukkan teks berikut ke dalam file / cache / recovery / command, baik dengan echo atau vi:

    --wipe_data
    --set_encrypted_filesystem=off
    

    misalnya dengan echo -e "--wipe_data\n--set_encrypted_filesystem=off" > /cache/recovery/command

  3. reboot ke CWM atau pemulihan serupa

Anda akan melihat bilah kemajuan yang bagus dan harus dilakukan :)

allicoder
sumber
perintah pemulihan tersedia di TWRP saya (3.1.1), ia menerima --wipe-data dan --set_encrypted_filesystem = mati melalui / cache / recovery / command atau command line, tetapi segera setelah akses ke partisi data diminta (oleh --wipe-data) TWRP meminta kata sandi. Jadi tidak berfungsi di TWRP terbaru. Sebagai gantinya, 'Format data' berfungsi, lihat entri lain
Mixaz
0

Metode kerja terbaik adalah mem-boot ke TWRP dan menggunakan terminal inbuilt untuk memformatnya sebagai ext2 (karena hanya itu yang didukung langsung dari terminal), dan ubah partisi menjadi ext4 menggunakan Opsi "Perbaiki Filesystem" di bawah Mount

Untuk memformat sebagai ext2:

mkfs.ext2 /dev/block/mmcbl0p23 (Pengganti dengan nilai partisi data pengguna Anda dengan melihat-lihat di / dev / block / platform / * / dengan-nama / userdata)

Ubah filesystem sebagai ext4:

Wipe -> Wipe Lanjutan -> Pilih "Data" -> Perbaikan atau Ubah Sistem File -> Ubah Sistem File -> EXT4

Sekarang, Anda harus menghapus enkripsi, dan dapat me-mount / partisi data dari TWRP. Semoga ini membantu :)

Snazzy Sanoj
sumber