एक .apk फ़ाइल होने से, क्या मुझे कोई स्रोत कोड मिल सकता है?
एक .apk फ़ाइल होने से, क्या मुझे कोई स्रोत कोड मिल सकता है?
जवाबों:
यहां तक कि अगर ProGuard का उपयोग किया गया था, तब भी आप कुछ दिलचस्प अंतर्दृष्टि प्राप्त कर सकते हैं। यहां एक विस्तृत विवरण के साथ एक StackOverflow प्रश्न है: Android: एपीके फ़ाइल से स्रोत कोड प्राप्त करना । एक विस्तृत गाइड के साथ YouTube वीडियो । और उसके बारे में एक ब्लॉग प्रविष्टि: एंड्रॉइड एपीके फ़ाइल से स्रोत कोड कैसे पुनर्प्राप्त करें ।
एसओ में परकुल गर्ग द्वारा कॉम्युनिटी विकी से एक :
डिकोडिंग .apk फ़ाइलों के लिए प्रक्रिया, चरण-दर-चरण विधि:
एक नया फ़ोल्डर बनाएं और उस .apk फ़ाइल को कॉपी करें जिसे आप डीकोड करना चाहते हैं।
अब इस .apk फ़ाइल के एक्सटेंशन का नाम बदलकर .zip (जैसे filename.apk से filename.zip) का नाम बदलें और इसे सहेजें। अब आप classes.dex फ़ाइलों आदि का उपयोग कर सकते हैं। इस स्तर पर आप ड्रॉबल देख सकते हैं, लेकिन xml और java फाइलें नहीं, इसलिए जारी रखें।
अब इसी .zip फाइल को उसी फोल्डर (या न्यू फोल्डर) में निकाले।
Dex2jar डाउनलोड करें और इसे उसी फ़ोल्डर (या न्यू फोल्डर) में निकालें।
Classes.dex फ़ाइल को dex2jar फ़ोल्डर में ले जाएं।
अब कमांड प्रॉम्प्ट खोलें और डायरेक्टरी को उस फोल्डर (या न्यू फोल्डर) में बदलें। फिर लिखें d2j-dex2jar classes.dex
और एंटर दबाएं। अब आपके पास एक ही फ़ोल्डर में classes.dex.dex2jar फ़ाइल है।
Java decompiler डाउनलोड करें, jd-gui पर डबल क्लिक करें, खुली फ़ाइल पर क्लिक करें, और उस फ़ोल्डर से classes.dex.dex2jar फ़ाइल खोलें: अब आपको क्लास फाइलें मिलती हैं।
इन सभी वर्ग फ़ाइलों को सहेजें (jd-gui में, src नाम से फ़ाइल -> सभी स्रोतों को सहेजें) पर क्लिक करें। इस स्तर पर आपको जावा स्रोत मिलता है लेकिन .xml फ़ाइलें अभी भी अपठनीय हैं, इसलिए जारी रखें।
अब एक और नया फ़ोल्डर खोलें
.Apk फ़ाइल में रखें जिसे आप डीकोड करना चाहते हैं
Apktool और apktool इंस्टॉल विंडो का नवीनतम संस्करण डाउनलोड करें (दोनों एक ही लिंक से डाउनलोड किए जा सकते हैं) और उन्हें एक ही फ़ोल्डर में रखें
फ्रेमवर्क- res.apk डाउनलोड करें और इसे एक ही फ़ोल्डर में रखें (सभी एपीके फ़ाइल को इस फ़ाइल की आवश्यकता नहीं है, लेकिन यह चोट नहीं पहुंचाती है)
एक कमांड विंडो खोलें
एपीके की मूल निर्देशिका पर नेविगेट करें और निम्न कमांड टाइप करें:
apktool if framework-res.apk
apktool d myApp.apk
(जहाँ myApp.apk उस फ़ाइलनाम को दर्शाता है जिसे आप डिकोड करना चाहते हैं)
अब आपको उस फोल्डर में एक फाइल फोल्डर मिलता है और आप एपीके की xml फाइल्स को आसानी से पढ़ सकते हैं।
यह केवल एक के लिए दोनों फ़ोल्डर (इस मामले में दोनों नए फ़ोल्डर) की सामग्री की नकल करने के लिए कोई कदम नहीं है
और स्रोत कोड का आनंद लें ...