कुछ android
एप्लिकेशन इंस्टॉल होने के बाद , मैंने पाया कि यह स्मार्टफोन में odex
फ़ाइल (नहीं apk
) में बदल जाएगा । कैसे होता है? मुझे कौन सिखा सकता है, मुझे इसके बारे में बहुत दिलचस्पी है।
कुछ android
एप्लिकेशन इंस्टॉल होने के बाद , मैंने पाया कि यह स्मार्टफोन में odex
फ़ाइल (नहीं apk
) में बदल जाएगा । कैसे होता है? मुझे कौन सिखा सकता है, मुझे इसके बारे में बहुत दिलचस्पी है।
जवाबों:
ब्लॉग लेख ज्यादातर सही है, लेकिन पूरा नहीं है। एक ओडेक्स फ़ाइल क्या करती है, इसकी पूरी समझ रखने के लिए, आपको थोड़ा समझना होगा कि एप्लिकेशन फाइलें (एपीके) कैसे काम करती हैं।
आवेदन मूल रूप से जिप अभिलेखागार का महिमामंडन करते हैं। जावा कोड को classes.dex नामक फ़ाइल में संग्रहीत किया जाता है और इस फ़ाइल को Dalvik JVM द्वारा पार्स किया जाता है और संसाधित classes.dex फ़ाइल का कैश फोन की Dalvik कैश में संग्रहीत किया जाता है।
एक ओडेक्स मूल रूप से एक एप्लिकेशन के classes.dex का एक पूर्व-संसाधित संस्करण है जो Dalvik के लिए निष्पादन-तैयार है। जब किसी एप्लिकेशन को odexed किया जाता है, तो classes.dex को एपीके आर्काइव से हटा दिया जाता है और यह Dalvik कैश को कुछ भी नहीं लिखता है। एक अनुप्रयोग जो odexed नहीं है, वह classes.dex फ़ाइल की 2 प्रतियों के साथ समाप्त होता है - एपीके में पैक किया हुआ, और Dalvik कैश में संसाधित एक। पहली बार लॉन्च होने में भी थोड़ा समय लगता है क्योंकि Dalvik को classes.dex फाइल को निकालना और प्रोसेस करना है।
यदि आप एक कस्टम रॉम का निर्माण कर रहे हैं, तो उपयोगकर्ता-स्थापित ऐप्स के लिए आंतरिक संग्रहण स्थान को अधिकतम करने के लिए आपकी फ्रेमवर्क JAR फ़ाइलों और स्टॉक ऐप्स दोनों को odex करना एक अच्छा विचार है। यदि आप थीम करना चाहते हैं, तो बस deodex -> अपनी थीम लागू करें -> reodex -> रिलीज़।
वास्तव में डीकोड करने के लिए, छोटी और बक्समाली का उपयोग करें:
यह ब्लॉग लेख ODEX फ़ाइलों के आंतरिक विवरण की व्याख्या करता है:
एक ODEX फ़ाइल क्या है?
Android फ़ाइल सिस्टम में, अनुप्रयोग .apk एक्सटेंशन के साथ संकुल में आते हैं। ये एप्लिकेशन पैकेज, या एपीके में कुछ .odex फाइलें होती हैं, जिनका माना जाता है कि अंतरिक्ष को बचाना है। ये 'ओडेक्स' फाइलें वास्तव में एक एप्लिकेशन के कुछ हिस्सों का संग्रह हैं जिन्हें बूट करने से पहले अनुकूलित किया जाता है। ऐसा करने से बूट प्रक्रिया में तेजी आती है, क्योंकि यह एक एप्लिकेशन का हिस्सा प्रीलोड करता है। दूसरी ओर, यह उन एप्लिकेशन को हैक करना भी मुश्किल बनाता है क्योंकि कोडिंग का एक हिस्सा निष्पादन से पहले ही किसी अन्य स्थान पर हटा दिया गया है।
APKs contain certain .odex files
?!
कला
डॉक्स के अनुसार: http://web.archive.org/web/20170909233829/https://source.android.com/devices/tech/dalvik/configure एक .odex
फाइल:
एपीके में विधियों के लिए एओटी संकलित कोड है।
इसके अलावा, वे नियमित रूप से साझा किए गए पुस्तकालय प्रतीत होते हैं, क्योंकि अगर आपको कोई ऐप मिलता है, और जाँच करें:
file /data/app/com.android.appname-*/oat/arm64/base.odex
इसे कहते हैं:
base.odex: ELF shared object, 64-bit LSB arm64, stripped
और aarch64-linux-gnu-objdump -d base.odex
काम करने के लिए लगता है और कुछ सार्थक disassembly (लेकिन यह भी कुछ बकवास वर्गों) दे।