การลบการเข้ารหัสจากการกู้คืน


10

ฉันใช้งาน CyanogenMod 12 ทุกคืนใน G900T (klte) ทุกอย่างใช้งานได้ดียกเว้นรหัสผ่านการเข้ารหัสเริ่มต้นซึ่งทำให้โทรศัพท์ของฉันบูตวนซ้ำ

ผมได้จัดรูปแบบข้อมูลและการตั้งค่าจากโรงงานทำ แต่ยังคงมีการเข้ารหัสและการแสดงขึ้นเป็น/data/dev/dm-0

มีคำสั่งที่ฉันสามารถทำได้เพื่อลบการเข้ารหัสหรือไม่? ฉันไม่สนใจข้อมูลฉันต้องการให้มันหายไปทั้งหมด ฉันแค่ต้องการกลับไปมี/dataและที่เก็บข้อมูลภายในถูกเก็บไว้ในแผ่นดิสก์เพื่อให้สามารถบูตเข้าสู่ CyanogenMod ได้

ฉันadb shellจะใช้เพื่อลบการเข้ารหัสบนพาร์ติชันเหล่านี้ได้อย่างไร


คุณกู้แฟลชตัวไหนมา
Jordy19

1
Team Win Recovery Project (TWRP)
Naftuli Kay

ฉันได้อ่านที่นี่ว่าคุณสามารถกำจัดการเข้ารหัสโดยการกระพริบ ROM ใหม่ไม่แน่ใจว่ามันทำงานในกรณีของคุณ แต่มันคุ้มค่าที่จะลอง
Jordy19

ใช้งานไม่ได้ ฉันพยายามด้วยตนเองdd if=/dev/zeroแล้วฟอร์แมตพาร์ติชันข้อมูล
Naftuli Kay

คำตอบ:


12

คำตอบสำหรับฉันเกี่ยวข้องกับหลายสิ่งหลายอย่าง แต่ฉันคิดว่าเป็นกุญแจสำคัญจริงๆ

ใช้คำสั่ง "กู้คืน" ครับ

สิ่งนี้ใช้recoveryโปรแกรม/ AOSP ของ CyanogenMod เพื่อล้างข้อมูลผู้ใช้และปิดใช้งานการเข้ารหัส (พบในคำตอบนี้ใน Stack Overflow ) บูตเข้าสู่การกู้คืนของคุณแล้วเรียกใช้จากคอมพิวเตอร์ของคุณ

adb shell recovery --wipe_data --set_filesystem_encryption=off

โทรศัพท์ของคุณจะรีบูตเข้าสู่ระบบและหวังว่าทุกอย่างจะทำงานได้ตามแผนที่วางไว้

หากคุณต้องการเรียกใช้จากโทรศัพท์เอง (เช่น: คุณไม่มีคอมพิวเตอร์อยู่ใกล้ ๆadbด้วย):

recovery --wipe_data --set_filesystem_encryption=off

ควรลบปิดใช้งานการเข้ารหัสและรีบูตระบบ

หากทุกอย่างล้มเหลว

อย่าใช้วิธีนี้ยกเว้นในกรณีข้างต้นใช้ไม่ได้หรือใช้กับสถานการณ์ของคุณ

ทำลาย LUKS Header สำหรับการเข้ารหัสระบบไฟล์

  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
    

    ฉันอ้างว่าไม่รับผิดชอบสิ่งที่คุณทำกับคำสั่งนี้ หากคุณทำสิ่งนี้ผิดพลาดคุณสามารถสร้างโทรศัพท์ของคุณโดยเขียนทับ bootloader หรือพาร์ติชั่นที่สำคัญอื่น ๆ ตรวจสอบให้แน่ใจว่า$PATH_TO_YOUR_USERDATAชี้ไปที่userdataพาร์ติชันจริง ตรวจสอบขนาดของพาร์ติชันนั้นเพื่อให้แน่ใจว่าคุณกำลังเช็ดสิ่งที่ถูกต้อง ฉันมีโทรศัพท์ 16GB และuserdataเป็น 10.4GB ส่วนที่เหลือจะทุ่มเทให้systemแต่โทรศัพท์ของคุณจะแตกต่างกัน

  4. ฟอร์แมตพาร์ติชันที่เป็นใช้ext4make_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
Naftuli คุณเป็นผู้ช่วยชีวิต! ฉันมี 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คำสั่งในท้ายที่สุดฉันสามารถสรุปการดำเนินการได้ ขอบคุณ!
Matteo De Felice

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% / ข้อมูล `` `` ดังนั้นฉันก็ทำ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 หลังจากรูดเพื่อแก้ไขระบบ: เช็ด> ขั้นสูง> ตรวจสอบ: ข้อมูล)

แน่นอนว่านี่จะล้างข้อมูลทุกอย่างในuserdataพาร์ติชัน พาร์ทิชันข้อมูลทั้งหมดจะได้รับการจัดรูปแบบใหม่รวมถึงคีย์การเข้ารหัสลับ


1
การลบพาร์ติชันข้อมูลจะลบส่วนหัวของระบบไฟล์ที่จุดเริ่มต้นของพาร์ติชัน มันไม่ทำงานเพราะใน Android หลายรุ่นส่วนหัว LUKS / dm-crypt อยู่ท้ายระบบไฟล์
Naftuli Kay

1
คุณเคยลองไหม เพราะมันใช้งานได้เฉพาะใน Nexus 9 ของฉัน
Majal

1
ไม่แน่ใจว่าทำไมใครบางคน downvoted คำตอบนี้งานนี้และเป็นวิธีที่ง่ายที่สุดในการกำจัดของการเข้ารหัส
ArtDeineka

1
นี่คือสิ่งที่ฉันทำลงไป - และมันก็ใช้ได้ :)
zaTricky

1
กันที่นี่ ทำงานเหมือนจับใจ
Linus Kleen

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 / สื่อดังนั้นพวกเขาจึงต้องทำการ rework / data เพื่อเช็ดไม่ให้ / data / media และrm -rfดำเนินการแทน ดูhttps://twrp.me/faq/datamedia.htmlสำหรับรายละเอียดเพิ่มเติม

เมื่อคุณทำการ 'จัดรูปแบบข้อมูล' คุณอาจเห็นในบันทึกการกู้คืน (/ แคช / กู้คืน / บันทึกหรือ / แคช / กู้คืน / last_log) ข้อมูลต่อไปนี้:

I:Successfully wiped crypto footer.

ก่อนที่มันจะรูปแบบข้อมูล / make_ext4fsกับ รหัส TWRP มีจำนวนการตรวจสอบเพื่อค้นหาว่าส่วนหัว LUKS อยู่ที่ไหนและในกรณีของฉันมันพบในส่วนท้าย

ฉันดูที่แหล่ง TWRP และฉันไม่พบวิธี 'จัดรูปแบบข้อมูล' จากบรรทัดคำสั่ง (ฉันต้องล้างที่เก็บข้อมูลที่เข้ารหัสจากแอปพลิเคชันในรอมที่กำหนดเอง) ดังนั้นตัวเลือกนี้มีอยู่ใน UI เท่านั้น ด้วยข้อยกเว้นเดียว - หาก TWRP ถูกคอมไพล์ด้วยการTW_OEM_BUILDเปิดใช้งานมันจะ 'จัดรูปแบบข้อมูล' ในการรีเซ็ตเป็นค่าเริ่มต้นจากโรงงานการล้างส่วนหัว crypto และการจัดรูปแบบพาร์ติชันข้อมูลมิฉะนั้นจะใช้การจัดรูปแบบปกติ

ฉันจะลองddเลขศูนย์จริง ๆ แล้ว TWRP ทำเช่นเดียวกันเพื่อล้างการเข้ารหัสเพียงแค่รู้ว่าจะค้นหาส่วนหัวได้อย่างไร))


0

ขยายคำตอบของ Naftuli Tzvi Kay ด้านบน ...

คำตอบนั้นทำให้ฉันถูกที่แล้ว แต่โทรศัพท์ของฉัน (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-data และ --set_encrypted_filesystem = off ทั้งสองผ่าน / แคช / การกู้คืน / คำสั่งหรือบรรทัดคำสั่ง แต่ทันทีที่มีการร้องขอการเข้าถึงพาร์ติชันข้อมูล (โดย --wipe-data) TWRP ถามรหัสผ่าน ดังนั้นจึงไม่สามารถใช้งาน TWRP ล่าสุดได้ 'จัดรูปแบบข้อมูล' ทำงานแทนดูโพสต์อื่น ๆ
Mixaz

0

วิธีการทำงานที่ดีที่สุดคือการบูตเข้าสู่ TWRP และใช้เทอร์มินัล inbuilt เพื่อจัดรูปแบบเป็น ext2 (เพราะเป็นสิ่งเดียวที่ได้รับการสนับสนุนจากเทอร์มินัลโดยตรง) และเปลี่ยนพาร์ติชันเป็น ext4 โดยใช้ตัวเลือก

ในการจัดรูปแบบเป็น ext2:

mkfs.ext2 /dev/block/mmcbl0p23 (ทดแทนด้วยค่าของพาร์ติชัน userdata ของคุณโดยดูใน / dev / block / platform / * / by-name / userdata)

เปลี่ยนระบบไฟล์เป็น ext4:

Wipe -> Wipe ขั้นสูง -> เลือก "Data" -> ซ่อมแซมหรือเปลี่ยน FileSystem -> เปลี่ยนระบบไฟล์ -> EXT4

ตอนนี้คุณควรลบการเข้ารหัสและสามารถเมานต์ / พาร์ติชันข้อมูลจาก TWRP หวังว่าจะช่วย :)

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.