रिकवरी से एन्क्रिप्शन को हटाना


10

मैं अपने G900T (klte) पर रात में 12 बार CyanogenMod चला रहा हूं। डिफ़ॉल्ट एन्क्रिप्शन पासवर्ड को छोड़कर सब कुछ बहुत अच्छा काम करता है, जो मेरे फोन को बूट लूप का कारण बनता है।

मैंने डेटा स्वरूपित किया है और फ़ैक्टरी रीसेट किए हैं, लेकिन /dataअभी भी एन्क्रिप्ट किया गया है और जैसा दिखता है /dev/dm-0

क्या कोई कमांड है जो मैं एन्क्रिप्शन को हटाने के लिए कर सकता हूं? मुझे डेटा की परवाह नहीं है, मैं चाहता हूं कि यह सब चले। मैं बस होने के लिए वापस पाने के लिए /dataऔर आंतरिक भंडारण डिस्क में प्लेनटेक्स्ट में संग्रहीत किया जा रहा है CyanogenMod में बूट करने में सक्षम होना चाहता हूँ ।

मैं adb shellइन विभाजनों पर एन्क्रिप्शन को हटाने के लिए कैसे उपयोग कर सकता हूं ?


आप किस रिकवरी में फ्लैश हुए?
जॉर्डन 19

1
टीम विन रिकवरी प्रोजेक्ट (TWRP)
Naftuli Kay

मैंने यहाँ पढ़ा है कि आप एक नई रोम फ्लैश करके एन्क्रिप्शन से छुटकारा पा सकते हैं, यह सुनिश्चित नहीं है कि आपके मामले में काम करता है लेकिन यह एक कोशिश के लायक है।
जॉर्डन 19

काम नहीं किया। मैं मैन्युअल रूप dd if=/dev/zeroसे डेटा विभाजन का प्रयास कर रहा हूं ।
नातुलि काय

जवाबों:


12

मेरे लिए जवाब में कई चीजें शामिल थीं, लेकिन मुझे लगता है कि वास्तव में एक कुंजी है।

"रिकवरी" कमांड का उपयोग करें, भाई

यह recoveryउपयोगकर्ता डेटा को पोंछने और एन्क्रिप्शन को अक्षम करने के लिए CyanogenMod / AOSP के प्रोग्राम का उपयोग करता है । ( स्टैक ओवरफ्लो पर इस उत्तर में पाया गया ) अपने रिकवरी में बूट करें, और फिर अपने कंप्यूटर से चलाएं

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विभाजन को इंगित करता है । यह सुनिश्चित करने के लिए कि आप सही चीज़ मिटा रहे हैं, उस विभाजन के आकार की जाँच करें। मेरे पास 16GB फोन है और userdata10.4GB है, बाकी के लिए समर्पित है system, लेकिन आपका फोन अलग होगा।

  4. ext4उपयोग के रूप में उस विभाजन को सुधारें make_ext4fs $PATH_TO_YOUR_USERDATA

    त्रुटियां हो सकती हैं, लेकिन आमतौर पर वे आंतरिक "एसडीकार्ड" को खोजने में सक्षम नहीं होने से संबंधित हैं, यह ठीक है।

इस सब के बाद, फिर से रिबूट करें और फिर सुरक्षित होने के लिए एक फैक्ट्री रीसेट चलाएं।

यह काम क्यों करता है?

बस एक कारखाना रीसेट करने से लग रहा था कि मेरे लिए कुछ नहीं करना है, फोन अभी भी वहाँ एक LUKS विभाजन को देखेगा। मुझे लगता है कि ऐसा इसलिए है क्योंकि LUKS हेडर अभी भी डिस्क स्तर पर मौजूद था और ext4 विभाजन इसके ऊपर सिर्फ ओवरलैड था। किसी कारण से, Android ने एक ext4 विभाजन पर LUKS विभाजन का पता लगाया और इसे माउंट करने के प्रयास (और सफल) हुए।

यहाँ से कहाँ जाएं

(यदि आप जानते हैं कि आप क्या कर रहे हैं, तो आप systemअपनी ROM को खरोंचने से भी मिटा सकते हैं और स्थापित कर सकते हैं। फिर, मैं इस पोस्ट में निहित जानकारी के साथ आपके द्वारा किए जाने वाले किसी भी काम की जिम्मेदारी नहीं लेता। )

मेरे लिए klteG900T (सैमसंग गैलेक्सी S5 टी-मोबाइल) पर काम किया। आपकी माइलेज भिन्न हो सकती है।


इस तरह का काम किया (dd / make_ext4fs विकल्प)। - जब मैंने रिबूट किया, तब भी इसने TWRP रिकवरी में पासवर्ड मांगा, और उन्नत प्रारूप विकल्प काम नहीं किए - लेकिन जब मैंने एक नियमित डेटा विभाजन प्रारूप किया, तो यह काम किया। - मैं पासवर्ड के लिए किसी भी संकेत के बिना वसूली में रिबूट करने में सक्षम था। :-)
ब्रेनस्ल्गस Jul३

1
नफ़तुली, आप एक जीवन रक्षक हैं! मुझे डेड बूट लूप में मेरा S6 एज (SM-G925F) मिल गया है, क्योंकि यह कस्टम रिकवरी (TWRP) की वजह से शायद एन्क्रिप्ट करने में सक्षम नहीं था, मुझे लगता है कि एन्क्रिप्शन स्टॉक रिकवरी के माध्यम से किया जाता है। यह कह रहा था "एन्क्रिप्शन समाप्त नहीं हुआ था। फ़ैक्टरी रीसेट और रिबूट"। मैंने स्टॉक रिकवरी को फ्लैश करने की भी कोशिश की, यह बूट नहीं हुआ (शायद गलत है लेकिन मेरे डिवाइस के लिए लेबल किया गया है)। संपूर्ण स्टॉक रोम या तो अच्छा नहीं था (उचित को खोजने में सक्षम नहीं था, जो मुझे मिला वह ओडिन द्वारा अस्वीकार कर दिया गया था)। अंत में मैंने आपके द्वारा कहे गए हर ddकाम को अंजाम दिया और आखिरकार चाल चली। आपका बहुत बहुत धन्यवाद!
मिक्साज़

recoveryआदेश मेरे लिए काम करने के लिए नहीं मालूम था। मैं से यह कहा जाता है ADB Shellमें TWRPवसूली। मेरा मुख्य मुद्दा यह है कि USB डिबगिंग सक्षम नहीं है और /systemदूषित है इसलिए मैं बूट नहीं कर सकता और इसे सक्षम कर सकता हूं। इसके अलावा, डिस्क एन्क्रिप्शन चालू है और मुझे fastboot flash system system.zipसही प्रदर्शन करने से रोकता है।
आनन ५58१

1
आपने मेरा दिन बचाया, या मेरी रात बेहतर रही। तीन घंटों के बाद मेरे Huawei P8 लाइट पर वंशावली 14.1 स्थापित करने की कोशिश कर रहा है और हमेशा एन्क्रिप्शन असफल संदेश प्राप्त 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कहते हैं: `` `फाइलसिस्टम का आकार उपलब्ध उपयोग%% / देव / ब्लॉक / 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 क्या यह सही है?
लार्स

9

मेरे Moto G 3rd Gen (osprey) पर, न तो रिकवरी को कॉल किया गया और न ही LUKS हेडर (विभाजन के आरंभ और अंत में) को पोंछते हुए काम किया - मुझे अभी भी Cyanogen Mod bootup के दौरान एन्क्रिप्शन पासवर्ड दर्ज करने की आवश्यकता थी, फिर "एन्क्रिप्शन त्रुटि" संदेश के साथ अटक गया था ।

मैंने आखिर में पाया कि मेरे TWRP 3.0.1 रिकवरी में "वाइप" सेक्शन में "फॉर्मेट डेटा" विकल्प है। यह एक पूर्ण फ़ैक्टरी रीसेट करता है जो एन्क्रिप्शन को भी अक्षम करता है।

एक जादू की तरह काम किया। यदि आपके पास एक सभ्य TWRP संस्करण तक पहुंच है (आसानी से Flashify के साथ जैसे फ्लैश किया गया), तो पहले यह प्रयास करें।


1
धन्यवाद। जब कोई सरल काम करेगा तो जटिल समाधान के लिए क्यों जाएं?
पीटर गॉर्डन

उस विकल्प के साथ मेरी एकमात्र समस्या यह थी कि पाठ का तात्पर्य है कि यह आपके एसडी कार्ड को भी मिटा देगा। यदि आपके कार्ड को प्राप्त करना आसान है, तो यह एक समस्या नहीं है। : - |
zaTricky

1
@pgmann: TWRP में बहुत समय पहले 'प्रारूप डेटा' विकल्प दिखाई नहीं दिया था, इसीलिए। यह सुनिश्चित करने के लिए कि 2014 में वे जवाब नहीं दिए गए थे। ddलिपियों में एन्क्रिप्शन की सफाई करते समय भी, दृष्टिकोण उपयोगी है, क्योंकि TWRP कमांड में 'फॉर्मेट डेटा' विकल्प उपलब्ध नहीं है, जबकि मौजूदा कमांड एन्क्रिप्शन को मिटा नहीं सकते हैं। आशा है कि वे भविष्य में इस तरह के आदेश को
जोड़ेंगे

5

बशर्ते कि आप TWRP या समान का उपयोग कर रहे हैं।

  • TWRP को रिबूट करें (पासवर्ड दर्ज करें), और Dataबाहरी SDया विभाजन के लिए बैकअप बनाएंOTG Drive
  • TWRP को रीबूट करें (पासवर्ड रद्द करें), और डेटा विभाजन को प्रारूपित करें f2fs
  • नव निर्मित Dataविभाजन के लिए चरण एक में किए गए बैकअप को पुनर्स्थापित करें
  • रिबूट प्रणाली
  • अपने सभी डेटा सहेजे गए, और हटाए गए एन्क्रिप्शन के साथ Android का आनंद लें

4

मैन्युअल रूप से Naftuli Tzvi Kay द्वारा प्रदान किए गए 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 हैडर फाइल सिस्टम के अंत में है।
नफ़ुली के सिप

1
या तुमने कोशिश की? क्योंकि यह सिर्फ मेरे Nexus 9 में काम करता था
माजल

1
यकीन नहीं होता कि किसी ने इस उत्तर को अस्वीकार कर दिया, यह काम करता है, और एन्क्रिप्शन से छुटकारा पाने का सबसे सरल तरीका है
ArtDeineka

1
यह वही है जो मैंने करना समाप्त कर दिया - और यह काम किया। :)
zaTricky

1
मुझे भी। एक जादू की तरह काम किया।
लाइनस क्लेन

1

मेरे वोट यहां @Naftuli Kay, और अन्य उपयोगी उत्तर पर जाते हैं, लेकिन मेरे पास कुछ जानकारी है जिसे मैं साझा करना चाहता हूं। यह एक टिप्पणी के लिए बहुत लंबा है, इसे एक उत्तर दें।

TWRP के कुछ संस्करण के बाद से, वाइप स्क्रीन पर 'प्रारूप डेटा' आइटम है। यह न केवल पोंछे / डेटा विभाजन करता है, बल्कि एन्क्रिप्टेड एफएस मामले को भी संभालता है। मेरे मामले में, सैमसंग J500H पर TWRP 3.0.2 एन्क्रिप्शन को मिटा देता है, और यह एकमात्र तरीका था, फ़ैक्टरी रीसेट काम नहीं करता है। CMR (जो कि J500H के लिए मेरे CM 12.1 रोम के साथ बनाया जा रहा है) या तो एन्क्रिप्शन को स्पष्ट नहीं कर सकता है।

--set_encrypted_filesystem=off TWRP और CMR में भी काम नहीं किया।

OpenRecoveryScript के माध्यम से डेटा को पोंछना https://twrp.me/faq/openrecoveryscript.html भी काम नहीं करता है

एंड्रॉइड 3.0 ने / sdcard को / data / मीडिया को मैप करना शुरू कर दिया, इसलिए उन्हें / data / मीडिया को नहीं, बल्कि rework / data wipe करना पड़ा और 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सक्षम के साथ संकलित किया गया है, तो यह फ़ैक्टरी रीसेट पर 'डेटा स्वरूपित' करेगा , क्रिप्टो हेडर को साफ़ करने और डेटा विभाजन को प्रारूपित करेगा, अन्यथा यह नियमित रूप से पोंछे w / o स्वरूपण का उपयोग करेगा।

मैं 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.

तो इसे मैन्युअल रूप से करने के लिए (अदब के साथ):

  1. रूट एक्सेस के साथ एक संकेत मिलता है, जैसे
    $ adb shell
    > su
    
  2. निम्नलिखित पाठ को फ़ाइल में डालें / कैश / रिकवरी / कमांड, या तो इको या 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 = दोनों के माध्यम से / कैश / रिकवरी / कमांड या कमांड लाइन, लेकिन जैसे ही डेटा विभाजन तक पहुंच का अनुरोध किया जाता है (द्वारा) --wipe-data) TWRP पासवर्ड के लिए संकेत देता है। तो यह नवीनतम TWRP में काम नहीं करता है। इसके बजाय 'फ़ॉर्मेट डेटा' काम करता है, अन्य पोस्ट देखें
मिक्साज़

0

सबसे अच्छा काम करने का तरीका TWRP में बूट करना है और इनबिल्ट टर्मिनल को ext2 के रूप में प्रारूपित करने के लिए उपयोग करना है (coz जो कि टर्मिनल से सीधे समर्थित एकमात्र चीज है), और माउंट के नीचे "रिपेयर फाइलसिस्टम" विकल्प का उपयोग करके पार्टीशन को ext4 में बदल दें।

Ext2 के रूप में प्रारूपित करने के लिए:

mkfs.ext2 /dev/block/mmcbl0p23 (/ Dev / block / platform / * / by-name /dadd के आस-पास देख कर अपने userdata विभाजन के मूल्य के साथ बदलें)

फाइल सिस्टम को ext4 के रूप में बदलें:

वाइप -> उन्नत वाइप -> "डेटा" का चयन करें -> फाइलसिस्टम की मरम्मत या बदलें -> फाइल सिस्टम को बदलें -> EXT4

अब, आपके पास एन्क्रिप्शन हटा दिया जाना चाहिए, और TWRP से विभाजन / डेटा विभाजन को सक्षम करने में सक्षम होना चाहिए। उम्मीद है की यह मदद करेगा :)

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.