ॲप apk कसे संपादित करावे. अँड्रॉइड सिस्टीम ऍप्लिकेशन्स (एपीके) संपादित करण्याच्या मूलभूत गोष्टी

चेरचर 08.07.2019
बातम्या

या लेखातून तुम्ही अँड्रॉइड ॲप्लिकेशनमध्ये काय समाविष्ट आहे, एपीके फाइल कशी उघडायची आणि कोणत्या प्रोग्रामसह हे शिकाल.

एपीके फाइल म्हणजे काय?

APK हे संग्रहित एक्झिक्युटेबल ऍप्लिकेशन फायलींसाठी वापरल्या जाणाऱ्या Android ऑपरेटिंग सिस्टमचे स्वरूप आहे आणि फाइलचे नाव काहीही असू शकते, परंतु विस्तार फक्त this.apk सारखा दिसला पाहिजे. इतर ऑपरेटिंग सिस्टीममधील APK ॲनालॉग्स Windows मध्ये .msi, Symbian मध्ये .sis, .rpm किंवा Linux मध्ये .deb आहेत.

आत काय आहे ते पाहूया
खरं तर, .apk हे झिप आर्काइव्ह आहे, त्यामुळे तुम्ही कोणतेही फाइल मॅनेजर किंवा आर्काइव्हर वापरून अंतर्गत डिव्हाइस पाहू शकता, उदाहरणार्थ WinRAR किंवा X-plore मोबाइल ॲप्लिकेशन.





हे लक्षात ठेवण्यासारखे आहे की आपल्याला केवळ अंतर्गत संसाधनांमध्ये दृश्यमान प्रवेश मिळतो, संपादन क्षमता अत्यंत मर्यादित आहेत;
चला रचना पाहू
.apk च्या आत आम्हाला अनेक फाइल्स आणि फोल्डर्स दिसतात, ते कशासाठी आहेत ते शोधूया:
  • AndroidManifest.xml हा अनुप्रयोगाचा एक प्रकारचा “पासपोर्ट” आहे ज्यातून तुम्ही सर्व मुख्य मुद्दे, आवश्यकता, आवृत्ती, परवानग्या इत्यादी शोधू शकता.
  • META-INF या फाईलमध्ये मेटाडेटा आहे, म्हणजे, डेटाबद्दलचा डेटा, चेकसम, डेटाचे मार्ग, मार्ग आणि संसाधनांचे चेकसम, प्रमाणपत्रे. तुम्ही ही फाईल कोणत्याही मजकूर संपादकासह उघडू शकता, परंतु Notepad++ वापरण्याची शिफारस केली जाते.
  • res फोल्डरमध्ये सर्व प्रोग्राम संसाधने, ग्राफिक, जसे की चिन्ह, चित्रे, मजकूर आणि ग्राफिकल इंटरफेस घटक असतात. तुम्ही फोल्डरमध्ये सहज प्रवेश देखील करू शकता.
  • classes.dex हा अनुप्रयोगाचा थेट प्रोग्राम कोड आहे, जो Dalvik VM व्हर्च्युअल मशीनद्वारे कार्यान्वित केला जातो; संसाधने.आरएससी - संकलित XML फाइल, या फाइलमध्ये प्रोग्राममध्ये समाविष्ट असलेल्या सर्व संसाधनांचा डेटा आहे.
  • lib - नेटिव्ह लायब्ररी असलेले फोल्डर, ज्यातील संसाधने केवळ विशेष प्रोग्राम वापरतानाच ऍक्सेस करता येतात. APK मध्ये com, org, udk सारख्या फाइल्स आणि फोल्डर्स देखील असू शकतात, परंतु नेहमी नाही.

आता अंतर्गत रचना अधिक तपशीलाने पाहू या; यासाठी आपल्याला जावा आणि एपीके फाइलची आवश्यकता आहे. .apk डिस्सेम्बल करण्याचे मुख्य साधन Apktool आहे, परंतु हा प्रोग्राम केवळ ओळीतून कार्य करतो, जो फारसा सोयीस्कर नाही. जलद आणि अधिक सोयीस्कर पार्सिंगसाठी, तुम्ही APKing वापरू शकता, हे अजूनही समान Apktool आहे, परंतु संदर्भ मेनूमधून कार्य करण्याच्या क्षमतेसह.
आणि म्हणून आम्ही Windows साठी कोणत्याही ऍप्लिकेशनप्रमाणे एपीके स्थापित करतो आणि .apk निवडल्यानंतर, उजव्या माऊस बटणाने त्यावर क्लिक करा आणि त्याच वेळी Shift करा, त्यानंतर आम्हाला पुढील गोष्टी दिसतील:


आणि आवश्यक क्रिया निवडा, उदाहरणार्थ, पूर्णपणे डीकंपाइल करा, नंतर प्रोग्राम ऑपरेशन पूर्ण करेल आणि त्याच नावाचे फोल्डर तयार करेल.


फोल्डर उघडून आम्हाला एपीके फाइलच्या सर्व संसाधनांमध्ये प्रवेश मिळेल.


आता सर्व मजकूर फायली संपादित केल्या जाऊ शकतात, मूलभूत नियमांचे निरीक्षण करताना, आपण लोकप्रिय Notepad++ प्रोग्राम वापरू शकता, उदाहरणार्थ, AndroidManifest.xml विचारात घ्या

जेव्हा या ऑपरेटिंग सिस्टमद्वारे नियंत्रित स्मार्टफोन, टॅबलेट किंवा अन्य डिव्हाइसचा वापरकर्ता निर्माता किंवा विक्रेत्याद्वारे डिव्हाइसवर स्थापित केलेल्या प्रोग्रामच्या सध्याच्या स्वरूपावर समाधानी नसतो तेव्हा Android सिस्टम ऍप्लिकेशन्स संपादित करणे बहुतेकदा केले जाते. दुसरे कारण म्हणजे केवळ Android ॲप्लिकेशन्सच्या ग्राफिक डिझाइनमध्ये बदल करण्याची गरज नाही तर विविध घटकांच्या स्थानावर आणि मूलभूत कार्यांच्या कार्यप्रदर्शनावर देखील परिणाम होऊ शकतो.

कोडमध्ये बदल करण्यासाठी, जवळजवळ कोणत्याही भाषेत (शक्यतो Java आणि C++) मूलभूत प्रोग्रामिंग कौशल्ये आवश्यक आहेत. ग्राफिक्स बदलण्यासाठी, सरळ हात आणि ग्राफिक्स एडिटरमध्ये काम करण्याची क्षमता हे करेल.

सर्वप्रथम, तुम्हाला हे ठरवावे लागेल की तुम्हाला फक्त Android ॲप्लिकेशन्समधील ग्राफिक्स बदलण्याची गरज आहे की तुम्हाला सिस्टममधील घटकांची व्यवस्था बदलण्याची आणि कोडमध्ये सखोल बदल करण्याची आवश्यकता आहे का. पुढील पायऱ्या यावर अवलंबून असतात, ज्यामध्ये एकतर अनुप्रयोगासह संग्रहण म्हणून कार्य करणे किंवा ते पूर्णपणे वेगळे करणे आणि संपादित करणे समाविष्ट आहे.

Android सिस्टम ऍप्लिकेशन्समध्ये ग्राफिक्स बदलणे

मूळ ग्राफिक्स बदलण्यासाठी किंवा सुधारित करण्यासाठी (बटणांचे रंग बदला, चित्रे पुन्हा काढा इ.), तुमच्या संगणकावर एक मानक WinRAR आर्काइव्हर असणे पुरेसे आहे. डिव्हाइसवर, वापरकर्त्याकडे "रूट" अधिकार असणे आवश्यक आहे (विंडोजवरील प्रशासक खात्याशी साधर्म्य असलेले), आणि पर्यायी पुनर्प्राप्ती (CWM) आणि रूट एक्सप्लोरर (डिव्हाइसमध्ये थेट Android फाइल सिस्टममध्ये प्रवेश करण्यासाठी) असणे देखील उचित आहे. स्वतः).

सर्व प्रथम, आपल्याला डिव्हाइसमध्ये "USB डीबगिंग" सक्षम करणे आवश्यक आहे, नंतर USB केबल वापरून संगणकाशी कनेक्ट करा आणि आवश्यक ड्रायव्हर्स स्थापित करा. ते सहसा व्हर्च्युअल डिस्कवर स्थित असतात जे आपण आपल्या संगणकाशी कनेक्ट करता तेव्हा दिसून येते.

त्यानंतर तुम्हाला इंटरनेटवरून फाइल व्यवस्थापकासाठी ADB प्लगइन डाउनलोड करणे देखील आवश्यक आहे. हे प्लगइन तुम्हाला संपूर्ण Android सिस्टम फोल्डर्ससह कनेक्ट केलेली डिस्क म्हणून पाहण्याची परवानगी देते. सर्व सिस्टम ऍप्लिकेशन्स /system/app, तसेच /system/framework वर स्थित आहेत. आपल्याला आवश्यक असलेला अनुप्रयोग सापडल्यानंतर, तो फक्त आपल्या संगणकावर कॉपी करा. प्लगइन इन्स्टॉल केलेले नसल्यास, तुम्ही काढता येण्याजोग्या SD कार्डवर apk एक्स्टेंशनसह ॲप्लिकेशन कॉपी करण्यासाठी रूट एक्सप्लोरर वापरू शकता आणि त्यानंतर ते संगणकावर करू शकता.

इच्छित अनुप्रयोग कॉपी केल्यानंतर, आपण ग्राफिक्स संपादित करणे सुरू करू शकता. तसे, Android ऍप्लिकेशन्समधील सर्व चित्रे png स्वरूपात सेव्ह केली जातात, जी कोणत्याही ग्राफिक्स एडिटरसह सहजपणे उघडता येतात. जेव्हा तुम्ही WinRAR वापरून ॲप्लिकेशन फाइल उघडता, तेव्हा तुम्ही फोल्डर्सची मालिका पाहू शकता. आम्हाला फक्त res फोल्डरमध्ये स्वारस्य असेल, ज्यामध्ये आम्हाला बरेच भिन्न फोल्डर्स सापडतील. यापैकी, ज्यांच्या नावात "ड्रॉएबल" हा शब्द आहे अशांचीच गरज आहे.

आता आमचे डिव्हाइस प्रकार आणि त्याचे स्क्रीन रिझोल्यूशन लक्षात ठेवा. जर हा स्मार्टफोन असेल आणि रिझोल्यूशन 240x320 असेल, तर आम्हाला प्रामुख्याने ड्रॉ करण्यायोग्य आणि ड्रॉ करण्यायोग्य-एलडीपीआय फोल्डर्समध्ये रस असेल. जर रिझोल्यूशन 320x480 असेल - ड्रॉ करण्यायोग्य आणि काढता येण्याजोगे-mdpi फोल्डर्स, आणि 480x800 रिझोल्यूशनसाठी - काढता येण्याजोगे आणि काढता येण्यायोग्य-hdpi फोल्डर. त्यांच्या व्यतिरिक्त, सहसा असे फोल्डर देखील असतात ज्यांच्या नावांमध्ये "जमीन" हा शब्द असतो - हे पोर्ट्रेट मोडसाठी ग्राफिक्स आहेत, म्हणजे. जेव्हा उपकरण झुकलेले असते.

तुमच्या हातात टॅब्लेट असल्यास, आम्हाला कोणत्याही स्क्रीन रिझोल्यूशनवर काढता येण्याजोग्या आणि काढता येण्याजोग्या-mdpi फोल्डर्समध्येच रस असेल.

निवडलेल्या फोल्डरची तुमच्या संगणकावर कॉपी करून, तुम्ही मूळ प्रतिमा बदलू शकता किंवा तुम्हाला आवश्यक असलेल्या आणि डोळ्यांना आनंद देणाऱ्या प्रतिमा पुन्हा रंगवू शकता. तुम्ही 9.png रिझोल्यूशन असलेल्या चित्रांवर विशेष लक्ष द्यावे. वस्तुस्थिती अशी आहे की अशा प्रतिमेच्या परिमितीसह एक विशेष फ्रेम आहे ज्यामध्ये एक पिक्सेल रुंद विशेष चिन्हे आहेत, ज्याच्या अखंडतेचे उल्लंघन केल्याने अनुप्रयोगामध्ये बिघाड होईल. म्हणून, अशा फाइल्स संपादित करताना अत्यंत सावधगिरी बाळगणे आवश्यक आहे.

फोल्डर संपादित केल्यानंतर, तुम्हाला ते पुन्हा आर्काइव्हमध्ये अपलोड करणे आवश्यक आहे, जो apk विस्तारासह अनुप्रयोग आहे. या प्रकरणात, WinRAR मध्ये "नो कम्प्रेशन" पर्याय निवडणे आवश्यक आहे.

दुरुस्त केलेला ऍप्लिकेशन रूट एक्सप्लोरर वापरून डिव्हाइसवर परत डाउनलोड केला जातो (प्रथम फाइल SD कार्डवर कॉपी केली जाते, आणि त्यातून डिव्हाइसवर), किंवा पुनर्प्राप्तीमध्ये बाहेर पडल्यानंतर - थेट संगणकावरून /system/app किंवा / वर सिस्टम/फ्रेमवर्क फोल्डर. पुढे, तुम्हाला रूट एक्सप्लोरर किंवा ADB प्लगइनमधील योग्य पर्याय वापरून फाइल परवानग्या सेट कराव्या लागतील. ते 644 स्वरूपात असणे आवश्यक आहे डिव्हाइस रीबूट केल्यानंतर, आपण अद्यतनित अनुप्रयोगाचा परिणाम पाहू शकता.

सिस्टम ऍप्लिकेशन्सचा स्त्रोत कोड संपादित करणे

सिस्टम ऍप्लिकेशन्सचा सोर्स कोड संपादित करण्यासाठी थोडे अधिक प्रयत्न करावे लागतील. ऍप्लिकेशनमध्ये बदल केल्यानंतर ते वेगळे करण्यासाठी आणि पुन्हा एकत्र करण्यासाठी, तुम्हाला खालील काही पायऱ्या पूर्ण कराव्या लागतील.

1) तुमच्या संगणकावर आवश्यक सॉफ्टवेअर पॅकेज त्यांच्या नवीनतम आवृत्त्यांमध्ये स्थापित करा: Java SE रनटाइम एन्व्हायर्नमेंट आणि Android SDK Windows (अनुप्रयोग आणि त्यांच्या घटकांसह कार्य करण्यासाठी प्रोग्राम), APKtool किंवा APKManager किंवा Firmware_tool (सिस्टम ऍप्लिकेशन्स डिससेम्बलिंग आणि डिकंपाइल करण्यासाठी तीन प्रोग्राम्सपैकी एक. ), NotePad++ संपादक (Android सिस्टम ऍप्लिकेशन्सच्या सोर्स कोडमध्ये बदल करण्यासाठी).

2) डिव्हाइसमध्ये "USB डीबगिंग" सक्षम करा, USB केबल वापरून संगणकाशी कनेक्ट करा, डिव्हाइससह कार्य करण्यासाठी आवश्यक ड्राइव्हर्स स्थापित करा.

3) अनुप्रयोग कोडसह कार्य करण्यासाठी वरील-उल्लेखित प्रोग्रामपैकी एक वापरून, तुम्हाला /system/framework फोल्डर (संपूर्णपणे) आणि सिस्टम ॲप्लिकेशन्स फोनवरून /system/app फोल्डरमधून योग्य प्रोग्राम फोल्डरमध्ये काढावे लागतील. उदाहरणार्थ, फर्मवेअर_टूल प्रोग्रामसाठी, फोनमधील फायली योग्य सबफोल्डरमधील C: Firmwaretoolfw_project1_source2_system.img_unpacked फोल्डरमध्ये कॉपी केल्या पाहिजेत (अनुप्रयोग - ॲप फोल्डरमध्ये, फ्रेमवर्कमधील फाइल्स - फ्रेमवर्क फोल्डरमध्ये). हे आणि इतर प्रोग्राम दोन्ही वापरताना, त्यांच्यासाठी सूचना वाचा याची खात्री करा.

4) “सपोर्ट फ्रेमवर्क” स्थापित करा, म्हणजे नियमांचा एक संच ज्याच्या अनुषंगाने अर्जांचे विघटन (म्हणजे डिससेम्बलिंग कोड) आणि संकलन (म्हणजे कोड असेंबलिंग) केले जाईल.

हे सिस्टम ऍप्लिकेशन्ससह काम करण्याची तयारी पूर्ण करते.

डिव्हाइसवरून अनुप्रयोग अनलोड करणे आणि त्यांना परत लोड करणे "Android सिस्टम अनुप्रयोगांमध्ये ग्राफिक्स बदलणे" या विभागात वर्णन केलेल्या प्रक्रियेप्रमाणेच केले जाते.

Android ऍप्लिकेशन्सचा कोड संपादित करणे सहसा NotePad++ संपादक वापरून केले जाते - सर्वात सोयीस्कर मजकूर संपादकांपैकी एक ज्यामध्ये निवडलेल्या प्रोग्रामिंग भाषेचे वाक्यरचना हायलाइट करण्याचा पर्याय आहे. नियमानुसार, संपादन करताना, आपण निवडलेल्या ग्राफिक्स संपादकाचा वापर करून ग्राफिक्स देखील बदलू शकता.

संपादन पूर्ण झाल्यावर, सुधारित अनुप्रयोग पुन्हा डिव्हाइसवर डाउनलोड केला जातो आणि डिव्हाइस स्वतः रीबूट करणे आवश्यक आहे. अधिक प्रगत संपादक विविध अनुकरणकर्ते वापरतात, उदाहरणार्थ, Google वरून Eclipse, अनुप्रयोगांना डिव्हाइसवर डाउनलोड करण्यापूर्वी डीबग करण्यासाठी.

अँड्रॉइड प्लॅटफॉर्मसाठी प्रोग्राम्स ही एपीके विस्तारासह एकल फाइल आहे, जी अतिशय सोयीस्कर आहे. खरं तर, स्मार्टफोन किंवा टॅब्लेटवर कोणताही प्रोग्राम स्थापित करणे हे फक्त आपल्या गॅझेटवर कॉपी करण्यासाठी खाली येते. apk फाइल म्हणजे काय आणि आत काय आहे ते तुम्ही कसे पाहू शकता?

एपीके फाइल म्हणजे काय?

संक्षेप APK म्हणजे Android पॅकेज किट - Android ऍप्लिकेशन्ससाठी फाइल्सचे एक एक्झिक्यूटेबल पॅकेज. हे संकलित केलेले आणि रन-टू-रन कोड आणि इतर संसाधने असलेले संग्रहण आहे. apk फाइल्स Google Play सारख्या इंटरनेट साइटवर संग्रहित केल्या जातात, तेथून त्या तुमच्या गॅझेटमध्ये डाउनलोड आणि स्थापित केल्या जाऊ शकतात. ते एनक्रिप्ट केलेले नाहीत.

त्याची रचना डेव्हलपरने Dalvik किंवा ART आभासी मशीन वातावरणात चालवण्यासाठी तयार केली आहे. ही मशीन्स Android OS मध्ये तयार केलेली आहेत आणि ते तुमच्या डिव्हाइसवर असलेले सर्व ॲप्लिकेशन चालवतात.

apk फाइल स्वतःच एक नियमित संग्रहण आहे जी तुम्ही Windows मधील कोणत्याही आर्काइव्हरसह उघडू शकता. उदाहरणार्थ, WinRAR, किंवा फाईल व्यवस्थापक जो ZIP संग्रहण उघडतो. आत काय आहे ते पाहूया.

  • डेक्स विस्तारासह एक एक्झिक्यूटेबल फाइल (नाव कोणतेही असू शकते), जे प्रोग्राम कोड तंतोतंत आहे.
  • त्याच्या पुढे संसाधने.आरएससी आहे, ही संसाधनांची नोंदणी आहे जी प्रोग्रामने वापरली पाहिजे. ही XML स्वरूपातील रचना आहे.
  • AndroidManifest.xml ही कोणत्याही प्रोग्रामसाठी अनिवार्य फाइल आहे, एक मॅनिफेस्ट ज्यामध्ये त्याबद्दल मूलभूत माहिती आहे. येथे, उदाहरणार्थ, प्रोग्राम आवृत्ती, आवश्यक Android आवृत्ती, विकसकाबद्दल माहिती, आवश्यक स्क्रीन रिझोल्यूशन इत्यादी रेकॉर्ड केले जाऊ शकतात.
  • res निर्देशिकेत अंतर्गत संसाधने आहेत जी प्रोग्रामला कार्य करण्यासाठी आवश्यक आहेत. सर्व चित्रे, चिन्हे, चिन्हे, नकाशे इत्यादी येथे असू शकतात.
  • lib डिरेक्टरी – प्रोग्राम चालवण्यासाठी नेटिव्ह लायब्ररी, उदाहरणार्थ, C++ कोड. लायब्ररी वापरल्या गेल्या नसतील तर ही डिरेक्टरी कदाचित उपस्थित नसेल.
  • मालमत्ता निर्देशिका – अनुप्रयोगासाठी अतिरिक्त संसाधने, कधीकधी गहाळ देखील असू शकतात. संसाधने कोणती वापरावीत याचे वर्णन संसाधन.आरएससी फाइलमध्ये केले आहे.
  • META-INF निर्देशिका – प्रोग्राम मेटाडेटा. उदाहरणार्थ, MANIFEST.MF फाइल, ज्यामध्ये डेटाचे मार्ग आणि त्यांचे चेकसम असू शकतात. RSA प्रमाणपत्र फायली, मॅनिफेस्ट-आवृत्ती माहिती आणि तत्सम सेवा माहिती येथे संग्रहित केली जाऊ शकते.

लोकप्रिय ARK फाइल संपादकांचे पुनरावलोकन

आधीच नमूद केल्याप्रमाणे, तुम्ही कोणत्याही ZIP archiver वापरून apk फाइल अनपॅक करू शकता. यानंतर, आपण तेथे संग्रहित संसाधने पाहण्यास सक्षम असाल.

प्रतिमांमध्ये कोणतीही अडचण येणार नाही; त्या कोणत्याही योग्य प्रोग्राममध्ये उघडल्या जाऊ शकतात. XML स्वरूप कोणत्याही मजकूर संपादकासह उघडले जाऊ शकते, उदाहरणार्थ Notepad++. हे स्वरूप कसे कार्य करते हे तुम्हाला माहिती असल्यास, तुम्ही ते आधीच संपादित करू शकता. परंतु संकलित एक्झिक्युटेबल फाइल्ससाठी तुम्हाला विशेष साधने वापरावी लागतील.

ग्रहण संपादक. हे प्रोग्रामरसाठी संपूर्ण क्रॉस-प्लॅटफॉर्म वातावरण आहे. तुम्ही कोणत्याही आधुनिक भाषांमध्ये विकसित करू शकता आणि Android साठी एक्झिक्युटेबल फाइल्स तयार करू शकता. असंख्य प्लगइन्स वापरून वातावरण लवचिकपणे सानुकूलित केले जाऊ शकते.

Android SDK. नावाप्रमाणेच, हे विशेषतः Android साठी मोबाइल प्रोग्राम विकसित करण्यासाठी एक विशेष साधन आहे. त्याच्या मदतीने, तुम्ही दुसऱ्याच्या ऍप्लिकेशनच्या एक्झिक्यूटेबल फाइल्स सहजपणे डिकंपाइल करू शकता किंवा सुरवातीपासून स्वतःचे लिहू शकता. हे वेगळे आहे की ते आपल्या कोडचे डीबगिंग आणि चाचणी करण्यासाठी, विविध गॅझेटसह सुसंगततेसाठी चाचणी प्रोग्राम इत्यादीसाठी वैकल्पिकरित्या विविध मॉड्यूल कनेक्ट करते.

APK डाउनलोडर. हे Chrome ब्राउझरसाठी प्लगइन आहे जे कोणत्याही साइटवरून apk प्रोग्राम डाउनलोड करणे आणि त्यांची रचना पाहणे खूप सोपे करते. हे करण्यासाठी, तुम्हाला Google Play वर नोंदणी करणे देखील आवश्यक नाही.

APK संपादक. एक संपादक जो तुम्हाला apk पॅकेजमधील संसाधनांसह कार्य करण्यास अनुमती देतो. Eclipse सारखे शक्तिशाली नाही, परंतु ते बर्याच साध्या समस्यांचे निराकरण करते. उदाहरणार्थ, तुम्ही प्रोग्राममधून जाहिरात ब्लॉक्स काढू शकता, इंटरफेस रस्सीफाय करू शकता, आयकॉन्स किंवा टेक्सचर तुमच्या स्वतःच्या वापरून बदलू शकता आणि बरेच काही.

एपीके एडिटर प्रो, जे तुम्ही आमच्या वेबसाइटवर Android साठी डाउनलोड करू शकता, तुम्हाला मोबाइल डिव्हाइससाठी कोणत्याही ॲप्लिकेशनच्या फाइल्सची सामग्री हॅक/बदलण्याची आणि तुमच्या विवेकबुद्धीनुसार सानुकूलित करण्याची अनुमती देईल.

वैशिष्ठ्य

प्रोग्राम ही एक व्यावसायिक उपयुक्तता आहे जी, प्रगत वापरकर्त्यांच्या हातात, Android साठी अनुप्रयोग संपादित करण्यासाठी एक शक्तिशाली साधन बनू शकते. कार्यक्षमता वैयक्तिक संगणकांसाठी समान सॉफ्टवेअरपेक्षा व्यावहारिकदृष्ट्या भिन्न नाही.

ही उपयुक्तता काय करू शकते?

  1. इतर अनुप्रयोगांची नावे बदला (अनुवाद करा).
  2. आर्किटेक्चर लेआउट, रंग, ग्राफिक सेटिंग्ज टेम्पलेट बदला (उदाहरणार्थ, चिन्ह आकार).
  3. ध्वनी डिझाइन, मीडिया फाइल्स बदला.
  4. जाहिराती काढून टाका.
  5. सशुल्क सामग्री अवरोधित करणे बायपास करा.
  6. डिव्हाइसच्या अंतर्गत मेमरीमधून SD कार्डवर अनुप्रयोग हस्तांतरित करा.
  7. रिझोल्यूशन बदला आणि बरेच काही.

युटिलिटी कशी वापरायची हे समजून घेण्यासाठी, तुम्हाला apk editor pro डाउनलोड करणे आणि मेनूवर जाणे आवश्यक आहे. नंतर Android वर आधीपासून स्थापित केलेला अनुप्रयोग किंवा त्याची apk फाइल निवडा. यानंतर, डीफॉल्ट डेटा उघडेल, जो वापरकर्ता बदलू शकतो:

  • संसाधने संपादित करणे;
  • फाइल्स बदलणे;
  • सामान्य संपादन;
  • डेटा संपादन.

प्रोग्राम सुधारित आवृत्ती स्थापित करण्याची ऑफर देईल. हे सर्व प्रकरणांमध्ये कार्य करत नाही, म्हणून जुनी आवृत्ती व्यक्तिचलितपणे विस्थापित करणे आणि नवीन स्थापित करणे आवश्यक आहे. हटवल्यानंतर, तुम्ही Android वरील प्रोग्राम्समधून apk संपादक फोल्डर (सोयीसाठी, तुम्ही ES Explorer वापरू शकता) निवडा आणि सुधारित ॲप्लिकेशन फाइल शोधा आणि ती डिव्हाइसवर स्थापित करा.

प्रोग्राममध्ये वापरकर्ता-अनुकूल इंटरफेस आहे. नेव्हिगेशन अगदी सोपे आहे, परंतु वापरकर्त्यास ते समजण्यासाठी इंग्रजीचे मूलभूत ज्ञान असणे आवश्यक आहे.

फायदे आणि तोटे

  1. प्रोग्राम वापरकर्त्यासाठी अनुप्रयोग सानुकूलित करण्यासाठी विस्तृत पर्याय उघडतो.
  2. मेनूमध्ये एक मदत विभाग आहे, जो संपादक प्रोग्रामच्या मोठ्या संख्येने क्षमतांचे सहजपणे आणि तपशीलवार वर्णन करतो. म्हणून, प्रोग्रामिंगपासून दूर असलेल्या वापरकर्त्यांना तृतीय-पक्ष संसाधनांवर उदाहरणे आणि संपादन सूचना शोधण्याची गरज नाही.
  3. आपण आमच्या वेबसाइटवर प्रोग्राम विनामूल्य डाउनलोड करू शकता.

ही उपयुक्तता वापरण्यासाठी काही कौशल्ये आणि ज्ञान आवश्यक आहे. अननुभवी वापरकर्त्याच्या हातात, संपादनामुळे फाइल सिस्टमच्या अखंडतेचे उल्लंघन होऊ शकते, ज्यामुळे शेवटी अनुप्रयोग अयशस्वी होईल. मदत आयटममधील मेनूमध्ये चित्रांसह रूपांतरण उदाहरणे आणि Android वर apk editor pro योग्यरित्या कसे वापरावे यावरील टिपा आहेत. म्हणून, जर तुम्हाला हा प्रोग्राम समजून घ्यायचा असेल, तर फक्त सूचनांचे अनुसरण करा.

ज्यांना गैरसोयीचे ऍप्लिकेशन इंटरफेस (रशियन भाषेचा अभाव, सतत जाहिराती, बॅनर इ.) चा सामना करावा लागतो त्यांच्यासाठी संपादक हे एक उपयुक्त साधन आहे. तुम्ही हा प्रोग्राम आधीच वापरला असल्यास, खाली टिप्पण्यांमध्ये तुमचे इंप्रेशन शेअर करा.

काही वेळा अँड्रॉइडवरील काही ॲप्लिकेशन्स काही प्रकारे वापरकर्त्याला शोभत नाहीत. एक उदाहरण म्हणजे अनाहूत जाहिरात. आणि असेही घडते की प्रोग्राम प्रत्येकासाठी चांगला आहे, परंतु त्यातील भाषांतर एकतर कुटिल किंवा पूर्णपणे अनुपस्थित आहे. किंवा, उदाहरणार्थ, प्रोग्राम एक चाचणी आहे, परंतु पूर्ण आवृत्ती मिळविण्याचा कोणताही मार्ग नाही. परिस्थिती कशी बदलावी?

परिचय

या लेखात, आम्ही ॲप्लिकेशनसह एपीके पॅकेज कसे वेगळे करायचे याबद्दल बोलू, त्याची अंतर्गत रचना पाहू, बायकोड डिससेम्बल आणि डिकंपाइल कसे करावे आणि ॲप्लिकेशन्समध्ये अनेक बदल करण्याचा प्रयत्न करू जे आम्हाला एक किंवा दुसरा फायदा मिळवून देऊ शकतात.

हे सर्व स्वतः करण्यासाठी, तुम्हाला जावा भाषेचे किमान मूलभूत ज्ञान आवश्यक आहे, ज्यामध्ये Android अनुप्रयोग लिहिलेले आहेत आणि XML भाषा, जी Android मध्ये सर्वत्र वापरली जाते - ऍप्लिकेशनचे स्वतःचे वर्णन करण्यापासून आणि स्ट्रिंग संचयित करण्यापर्यंतच्या त्याच्या प्रवेश अधिकारांपर्यंत. स्क्रीनवर प्रदर्शित होईल. तुम्हाला विशेष कन्सोल सॉफ्टवेअर वापरण्याची क्षमता देखील आवश्यक असेल.

तर, एपीके पॅकेज काय आहे ज्यामध्ये सर्व Android सॉफ्टवेअर वितरित केले जातात?

अनुप्रयोग decompilation

या लेखात, आम्ही फक्त डिस्सेम्बल केलेल्या ऍप्लिकेशन कोडवर काम केले आहे, परंतु मोठ्या ऍप्लिकेशन्समध्ये अधिक गंभीर बदल केल्यास, स्माली कोड समजणे अधिक कठीण होईल. सुदैवाने, आम्ही डेक्स कोड जावा कोडमध्ये डिकम्पाइल करू शकतो, जो मूळ नसला तरी आणि परत संकलित केलेला नसला तरी अनुप्रयोगाचे तर्क वाचणे आणि समजणे खूप सोपे आहे. हे करण्यासाठी, आम्हाला दोन साधनांची आवश्यकता असेल:

  • dex2jar हा Dalvik bytecode चा JVM bytecode मध्ये अनुवादक आहे, ज्याच्या आधारे आपण Java भाषेतील कोड मिळवू शकतो;
  • jd-gui हे स्वतःच एक डीकंपाइलर आहे जे तुम्हाला JVM bytecode वरून वाचनीय Java कोड मिळवू देते. एक पर्याय म्हणून, तुम्ही Jad (www.varaneckas.com/jad) वापरू शकता; जरी ते बरेच जुने असले तरी काही प्रकरणांमध्ये ते Jd-gui पेक्षा अधिक वाचनीय कोड व्युत्पन्न करते.

अशा प्रकारे त्यांचा वापर केला पाहिजे. प्रथम, आर्ग्युमेंट म्हणून apk पॅकेजचा मार्ग निर्दिष्ट करून, आम्ही dex2jar लाँच करतो:

% dex2jar.sh mail.apk

परिणामी, Java पॅकेज mail.jar वर्तमान निर्देशिकेत दिसेल, जे Java कोड पाहण्यासाठी jd-gui मध्ये आधीच उघडले जाऊ शकते.

APK पॅकेजेसची व्यवस्था आणि ते प्राप्त करणे

अँड्रॉइड ॲप पॅकेज मूलत: एक नियमित ZIP फाईल असते ज्याची सामग्री पाहण्यासाठी किंवा ती काढण्यासाठी कोणत्याही विशेष साधनांची आवश्यकता नसते. विंडोजसाठी आर्किव्हर - 7zip किंवा लिनक्सवर कन्सोल अनझिप असणे पुरेसे आहे. पण ते रॅपरबद्दल आहे. आत काय आहे? सर्वसाधारणपणे, आमच्या आत खालील रचना आहे:

  • META-INF/- अनुप्रयोगाचे डिजिटल प्रमाणपत्र, त्याच्या निर्मात्याची ओळख आणि पॅकेज फायलींचे चेकसम समाविष्ट आहे;
  • res/ - विविध संसाधने जी अनुप्रयोग त्याच्या कामात वापरतात, जसे की प्रतिमा, इंटरफेसचे घोषणात्मक वर्णन, तसेच इतर डेटा;
  • AndroidManifest.xml- अर्जाचे वर्णन. यामध्ये, उदाहरणार्थ, आवश्यक परवानग्यांची सूची, आवश्यक Android आवृत्ती आणि आवश्यक स्क्रीन रिझोल्यूशन समाविष्ट आहे;
  • classes.dex- Dalvik वर्च्युअल मशीनसाठी संकलित ऍप्लिकेशन बायकोड;
  • संसाधने.आरएससी- संसाधने देखील, परंतु वेगळ्या प्रकारची - विशेषतः, स्ट्रिंग्स (होय, ही फाइल Russification साठी वापरली जाऊ शकते!).

सूचीबद्ध फायली आणि निर्देशिका, सर्वच नसल्यास, कदाचित, बहुसंख्य APK मध्ये आहेत. तथापि, उल्लेख करण्यासारख्या काही अधिक सामान्य फायली/निर्देशिका आहेत:

  • मालमत्ता- संसाधनांचे ॲनालॉग. मुख्य फरक असा आहे की संसाधनात प्रवेश करण्यासाठी तुम्हाला त्याचा अभिज्ञापक माहित असणे आवश्यक आहे, परंतु ऍप्लिकेशन कोडमधील AssetManager.list() पद्धतीचा वापर करून मालमत्तांची सूची गतिशीलपणे मिळवता येते;
  • lib- NDK (नेटिव्ह डेव्हलपमेंट किट) वापरून लिहीलेली मूळ लिनक्स लायब्ररी.

ही निर्देशिका गेम उत्पादकांद्वारे वापरली जाते जे तेथे C/C++ मध्ये लिहिलेले गेम इंजिन ठेवतात, तसेच उच्च-कार्यक्षमता ऍप्लिकेशन्सच्या निर्मात्यांद्वारे (उदाहरणार्थ, Google Chrome). आम्ही डिव्हाइस शोधून काढले. पण तुम्हाला स्वारस्य असलेल्या अर्जाची पॅकेज फाइल कशी मिळेल? रूटशिवाय डिव्हाइसवरून एपीके फाइल्स उचलणे शक्य नसल्यामुळे (त्या /डेटा/ॲप निर्देशिकेत असतात) आणि रूट करणे नेहमीच उचित नसते, तुमच्या संगणकावर ॲप्लिकेशन फाइल मिळवण्याचे किमान तीन मार्ग आहेत:

  • Chrome साठी APK डाउनलोडर विस्तार;
  • वास्तविक एपीके लीचर ॲप;
  • विविध फाइल होस्टिंग आणि Varezniks.

कोणता वापरायचा हा चवीचा विषय आहे; आम्ही स्वतंत्र ऍप्लिकेशन्स वापरण्यास प्राधान्य देतो, म्हणून आम्ही रिअल एपीके लीचरच्या वापराचे वर्णन करू, विशेषत: ते जावामध्ये लिहिलेले आहे आणि त्यानुसार, विंडोज किंवा निक्समध्ये कार्य करेल.

प्रोग्राम सुरू केल्यानंतर, तुम्हाला तीन फील्ड भरणे आवश्यक आहे: ईमेल, पासवर्ड आणि डिव्हाइस आयडी - आणि एक भाषा निवडा. पहिले दोन तुमच्या Google खात्याचे ई-मेल आणि पासवर्ड आहेत जे तुम्ही डिव्हाइसवर वापरता. तिसरा डिव्हाइस आयडेंटिफायर आहे आणि डायलरवर कोड टाइप करून मिळवता येतो # #8255## आणि नंतर डिव्हाइस आयडी लाइन शोधणे. भरताना, तुम्हाला फक्त android- उपसर्ग न करता ID प्रविष्ट करणे आवश्यक आहे.

भरल्यानंतर आणि सेव्ह केल्यानंतर, "सर्व्हरशी कनेक्ट करताना त्रुटी" हा संदेश अनेकदा पॉप अप होतो. याचा Google Play शी काहीही संबंध नाही, त्यामुळे मोकळ्या मनाने त्याकडे दुर्लक्ष करा आणि तुम्हाला स्वारस्य असलेले पॅकेज शोधा.

पहा आणि सुधारित करा

समजा तुम्हाला आवडणारे पॅकेज सापडले, ते डाउनलोड केले, अनपॅक केले... आणि जेव्हा तुम्ही काही XML फाइल पाहण्याचा प्रयत्न केला, तेव्हा फाइल मजकूर नव्हती हे पाहून तुम्हाला आश्चर्य वाटले. ते विघटित कसे करावे आणि सर्वसाधारणपणे पॅकेजेससह कसे कार्य करावे? SDK स्थापित करणे खरोखर आवश्यक आहे का? नाही, SDK अजिबात स्थापित करणे आवश्यक नाही. खरं तर, एपीके पॅकेजेस काढण्यासाठी, सुधारित करण्यासाठी आणि पॅकेज करण्यासाठी सर्व चरणांसाठी खालील साधनांची आवश्यकता आहे:

  • झिप आर्किव्हरअनपॅकिंग आणि पॅकिंगसाठी;
  • smali- Dalvik व्हर्च्युअल मशीन bytecode assembler/disassembler (code.google.com/p/smali);
  • aapt- पॅकेजिंग संसाधनांसाठी एक साधन (डिफॉल्टनुसार, अनुप्रयोग कार्यप्रदर्शन ऑप्टिमाइझ करण्यासाठी संसाधने बायनरी स्वरूपात संग्रहित केली जातात). Android SDK मध्ये समाविष्ट आहे, परंतु स्वतंत्रपणे मिळू शकते;
  • स्वाक्षरी करणारा- सुधारित पॅकेजवर (bit.ly/Rmrv4M) डिजिटल स्वाक्षरी करण्याचे साधन.

आपण ही सर्व साधने स्वतंत्रपणे वापरू शकता, परंतु हे गैरसोयीचे आहे, म्हणून त्यांच्या आधारावर तयार केलेले उच्च-स्तरीय सॉफ्टवेअर वापरणे चांगले आहे. जर तुम्ही Linux किंवा Mac OS X वर काम करत असाल तर apktool नावाचे एक साधन आहे. हे तुम्हाला संसाधने त्यांच्या मूळ स्वरूपात (बायनरी XML आणि arsc फाइल्ससह) अनपॅक करण्यास, बदललेल्या संसाधनांसह पॅकेज पुन्हा तयार करण्यास अनुमती देते, परंतु पॅकेजेसवर स्वाक्षरी कशी करायची हे माहित नाही, म्हणून तुम्हाला स्वाक्षरी युटिलिटी स्वतः चालवावी लागेल. युटिलिटी जावामध्ये लिहिलेली असूनही, त्याची स्थापना अगदी अ-मानक आहे. प्रथम तुम्हाला जार फाईल स्वतः मिळणे आवश्यक आहे:

$ cd /tmp $ wget http://bit.ly/WC3OCz $ tar -xjf apktool1.5.1.tar.bz2

$ wget http://bit.ly/WRjEc7 $ tar -xjf apktool-install-linux-r05-ibot.tar.bz2

$mv apktool.jar ~/bin $ mv apktool-install-linux-r05-ibot/* ~/bin $export PATH=~/bin:$PATH

जर तुम्ही विंडोजवर काम करत असाल, तर त्यासाठी व्हर्च्युअस टेन स्टुडिओ नावाचे एक उत्कृष्ट साधन आहे, जे ही सर्व साधने देखील जमा करते (त्यात apktool देखील समाविष्ट आहे), परंतु CLI इंटरफेस ऐवजी ते वापरकर्त्याला अंतर्ज्ञानी ग्राफिकल इंटरफेस प्रदान करते ज्याद्वारे तुम्ही करू शकता. काही क्लिक्समध्ये अनपॅकिंग, डिससेम्बलिंग आणि डीकंपाइलिंगसाठी ऑपरेशन्स करा. हे साधन डोनेशन-वेअर आहे, म्हणजे, काहीवेळा विंडो आपल्याला परवाना मिळविण्यासाठी विचारताना दिसतात, परंतु शेवटी हे सहन केले जाऊ शकते. त्याचे वर्णन करण्यात काही अर्थ नाही, कारण आपण काही मिनिटांत इंटरफेस समजू शकता. परंतु apktool, त्याच्या कन्सोल स्वरूपामुळे, अधिक तपशीलवार चर्चा केली पाहिजे.


apktool पर्याय पाहू. थोडक्यात, तीन मूलभूत आज्ञा आहेत: d (डीकोड), b (बिल्ड) आणि जर (फ्रेमवर्क स्थापित करा). जर पहिल्या दोन आज्ञांसह सर्वकाही स्पष्ट असेल, तर तिसरे, सशर्त विधान काय करते? हे निर्दिष्ट UI फ्रेमवर्क अनपॅक करते, जे तुम्ही कोणत्याही सिस्टम पॅकेजचे विच्छेदन करता तेव्हा आवश्यक असते.

पहिल्या कमांडचे सर्वात मनोरंजक पर्याय पाहू या:

  • -एस- dex फाइल्स वेगळे करू नका;
  • -आर- संसाधने अनपॅक करू नका;
  • -ब- dex फाइल वेगळे करण्याच्या परिणामांमध्ये डीबगिंग माहिती समाविष्ट करू नका;
  • --फ्रेम-पथ- apktool मध्ये तयार केलेल्या ऐवजी निर्दिष्ट UI फ्रेमवर्क वापरा. आता b कमांडसाठी दोन पर्याय पाहू:
  • -f- बदल न तपासता सक्तीने असेंब्ली;
  • -अ- काही कारणास्तव तुम्हाला दुसऱ्या स्त्रोताकडून वापरायचे असल्यास aapt (एपीके संग्रहण तयार करण्याचे साधन) मार्ग सूचित करा.

हे करण्यासाठी apktool वापरणे खूप सोपे आहे, फक्त एक कमांड आणि एपीकेचा मार्ग निर्दिष्ट करा, उदाहरणार्थ:

$ apktool d mail.apk

यानंतर, पॅकेजच्या सर्व काढलेल्या आणि डिससेम्बल केलेल्या फायली मेल निर्देशिकेत दिसतील.

तयारी. जाहिरात अक्षम करणे

सिद्धांत अर्थातच चांगला आहे, परंतु अनपॅक केलेल्या पॅकेजचे काय करावे हे आम्हाला माहित नसल्यास त्याची आवश्यकता का आहे? चला आपल्या फायद्यासाठी सिद्धांत लागू करण्याचा प्रयत्न करूया, म्हणजे, काही सॉफ्टवेअर सुधारित करू जेणेकरुन ते आम्हाला जाहिराती दाखवू नये. उदाहरणार्थ, व्हर्च्युअल टॉर्च असू द्या - एक आभासी मशाल. हे सॉफ्टवेअर आमच्यासाठी आदर्श आहे, कारण ते त्रासदायक जाहिरातींनी भरलेले आहे आणि शिवाय, कोडच्या जंगलात हरवू नये इतके सोपे आहे.


म्हणून, वरीलपैकी एक पद्धत वापरून, अनुप्रयोग बाजारातून डाउनलोड करा. जर तुम्ही वर्च्युअस टेन स्टुडिओ वापरायचे ठरवले, तर ॲप्लिकेशनमधील एपीके फाइल उघडा आणि ती अनपॅक करा, एक प्रोजेक्ट तयार करा (फाइल -> नवीन प्रोजेक्ट), नंतर प्रोजेक्ट कॉन्टेक्स्ट मेनूमध्ये फाईल आयात करा निवडा. तुमची निवड apktool वर पडल्यास, फक्त एक कमांड चालवा:

$ apktool d com.kauf.particle.virtualtorch.apk

यानंतर, मागील विभागात वर्णन केल्याप्रमाणे फाइल ट्री com.kauf.particle.virtualtorch डिरेक्टरीमध्ये दिसेल, परंतु dex फाइल्स आणि apktool.yml फाइल ऐवजी अतिरिक्त smali डिरेक्टरीसह. पहिल्यामध्ये ऍप्लिकेशनच्या एक्झिक्युटेबल डेक्स फाइलचा डिससेम्बल केलेला कोड असतो, दुसऱ्यामध्ये apktool ला पॅकेज परत एकत्र करण्यासाठी आवश्यक सेवा माहिती असते.

आपण पहिले स्थान पाहिले पाहिजे, अर्थातच, AndroidManifest.xml. आणि येथे आपल्याला ताबडतोब खालील ओळ आढळते:

अनुप्रयोगास इंटरनेट कनेक्शन वापरण्यासाठी परवानग्या देण्यास ते जबाबदार आहे याचा अंदाज लावणे कठीण नाही. खरं तर, आम्हाला फक्त जाहिरातीपासून मुक्त करायचे असल्यास, आम्हाला बहुधा इंटरनेटवरून अनुप्रयोग अवरोधित करणे आवश्यक आहे. हे करण्याचा प्रयत्न करूया. आम्ही निर्दिष्ट ओळ हटवतो आणि apktool वापरून सॉफ्टवेअर तयार करण्याचा प्रयत्न करतो:

$ apktool b com.kauf.particle.virtualtorch

परिणामी APK फाइल com.kauf.particle.virtualtorch/build/ निर्देशिकेत दिसून येईल. तथापि, ते स्थापित करणे शक्य होणार नाही, कारण त्यात डिजिटल स्वाक्षरी आणि फाइल चेकसम नाहीत (त्यात फक्त META-INF/ निर्देशिका नाही). आम्ही apk-signer युटिलिटी वापरून पॅकेजवर स्वाक्षरी केली पाहिजे. लाँच केले. इंटरफेसमध्ये दोन टॅब असतात - पहिल्या (की जनरेटरवर) आम्ही की तयार करतो, दुसऱ्यावर (एपीके साइनर) आम्ही स्वाक्षरी करतो. आमची खाजगी की तयार करण्यासाठी, खालील फील्ड भरा:

  • लक्ष्य फाइल- कीस्टोअर आउटपुट फाइल; ते सहसा एक जोडी की साठवते;
  • पासवर्डआणि पुष्टी करा- स्टोरेजसाठी पासवर्ड;
  • उपनाव- स्टोरेजमधील कीचे नाव;
  • उर्फ पासवर्डआणि पुष्टी करा- गुप्त की पासवर्ड;
  • वैधता- वैधता कालावधी (वर्षांमध्ये). डीफॉल्ट मूल्य इष्टतम आहे.

उर्वरित फील्ड, सर्वसाधारणपणे, पर्यायी आहेत - परंतु किमान एक भरणे आवश्यक आहे.


चेतावणी

apk-signer वापरून अनुप्रयोगावर स्वाक्षरी करण्यासाठी, आपण Android SDK स्थापित करणे आवश्यक आहे आणि अनुप्रयोग सेटिंग्जमध्ये त्याचा संपूर्ण मार्ग निर्दिष्ट करणे आवश्यक आहे.

सर्व माहिती केवळ माहितीच्या उद्देशाने प्रदान केली आहे. या लेखाच्या सामग्रीमुळे होणाऱ्या संभाव्य हानीसाठी संपादक किंवा लेखक दोघेही जबाबदार नाहीत.

आता तुम्ही या की सह APK वर स्वाक्षरी करू शकता. APK Signer टॅबवर, नवीन जनरेट केलेली फाइल निवडा, पासवर्ड, की उपनाव आणि पासवर्ड एंटर करा, नंतर APK फाइल शोधा आणि "साइन" बटणावर धैर्याने क्लिक करा. सर्व काही ठीक असल्यास, पॅकेजवर स्वाक्षरी केली जाईल.

माहिती

आम्ही आमच्या स्वतःच्या कीसह पॅकेजवर स्वाक्षरी केल्यामुळे, ते मूळ अनुप्रयोगाशी विरोधाभास करेल, याचा अर्थ जेव्हा आम्ही मार्केटद्वारे सॉफ्टवेअर अद्यतनित करण्याचा प्रयत्न करतो तेव्हा आम्हाला एक त्रुटी प्राप्त होईल.

डिजिटल स्वाक्षरी फक्त तृतीय-पक्षाच्या सॉफ्टवेअरसाठी आवश्यक आहे, म्हणून जर तुम्ही सिस्टम ऍप्लिकेशन्समध्ये बदल करत असाल जे /system/app/ निर्देशिकेत कॉपी करून स्थापित केले असतील, तर तुम्हाला त्यांच्यावर स्वाक्षरी करण्याची आवश्यकता नाही.

त्यानंतर, आपल्या स्मार्टफोनवर पॅकेज डाउनलोड करा, ते स्थापित करा आणि लॉन्च करा. व्होइला, जाहिरात निघून गेली! तथापि, त्याऐवजी, आमच्याकडे इंटरनेट नाही किंवा योग्य परवानग्या नाहीत असा संदेश दिसला. सिद्धांततः, हे पुरेसे असू शकते, परंतु संदेश त्रासदायक दिसत आहे, आणि, प्रामाणिकपणे, आम्ही नुकतेच एका मूर्ख अनुप्रयोगासह भाग्यवान आहोत. सामान्यतः लिखित सॉफ्टवेअर बहुधा त्याची क्रेडेन्शियल्स स्पष्ट करेल किंवा इंटरनेट कनेक्शन तपासेल आणि अन्यथा लॉन्च करण्यास नकार देईल. या प्रकरणात काय करावे? अर्थात, कोड संपादित करा.

सामान्यतः, ॲप्लिकेशन लेखक या वर्गांच्या जाहिराती आणि कॉल पद्धती प्रदर्शित करण्यासाठी विशेष वर्ग तयार करतात जेव्हा ॲप्लिकेशन किंवा त्याच्या "ॲक्टिव्हिटी" (सोप्या भाषेत, ॲप्लिकेशन स्क्रीन) लॉन्च केले जातात. चला हे वर्ग शोधण्याचा प्रयत्न करूया. आम्ही smali डिरेक्टरी वर जातो, नंतर com (org मध्ये फक्त ओपन ग्राफिक लायब्ररी cocos2d असते), नंतर kauf (हे तिथे आहे, कारण हे विकसकाचे नाव आहे आणि त्याचा सर्व कोड तेथे आहे) - आणि ते येथे आहे, विपणन निर्देशिका. आत आम्हाला स्माली एक्स्टेंशनसह फाइल्सचा एक समूह सापडतो. हे वर्ग आहेत, आणि त्यापैकी सर्वात लक्षणीय म्हणजे Ad.smali वर्ग, ज्याच्या नावावरून असा अंदाज लावणे सोपे आहे की तोच जाहिरात दाखवतो.

आम्ही त्याच्या ऑपरेशनचे तर्क बदलू शकतो, परंतु अनुप्रयोगातूनच त्याच्या कोणत्याही पद्धतींवर कॉल काढणे खूप सोपे होईल. म्हणून, आम्ही मार्केटिंग डिरेक्टरी सोडतो आणि शेजारच्या कण निर्देशिकेवर जातो आणि नंतर व्हर्च्युअल टॉर्चवर जातो. MainActivity.smali फाइल येथे विशेष लक्ष देण्यास पात्र आहे. हा एक मानक Android वर्ग आहे जो Android SDK द्वारे तयार केला जातो आणि ऍप्लिकेशनमध्ये एंट्री पॉइंट म्हणून स्थापित केला जातो (C मधील मुख्य कार्याप्रमाणे). संपादनासाठी फाइल उघडा.

आत स्माली कोड (स्थानिक असेंबलर) आहे. हे खूपच गोंधळात टाकणारे आणि त्याच्या निम्न-स्तरीय स्वरूपामुळे वाचणे कठीण आहे, म्हणून आम्ही त्याचा अभ्यास करणार नाही, परंतु कोडमधील जाहिरात वर्गाचे सर्व संदर्भ शोधू आणि त्यावर टिप्पणी करू. आम्ही शोधात "जाहिरात" ओळ प्रविष्ट करतो आणि 25 व्या ओळीवर पोहोचतो:

फील्ड खाजगी जाहिरात:Lcom/kauf/marketing/Ad;

येथे जाहिरात वर्ग ऑब्जेक्ट संग्रहित करण्यासाठी जाहिरात फील्ड तयार केले आहे. आम्ही ओळीच्या समोर ### चिन्ह ठेवून टिप्पणी करतो. आम्ही शोध सुरू ठेवतो. ओळ ४२३:

नवीन-इंस्टन्स v3, Lcom/kauf/marketing/Ad;

इथेच वस्तूची निर्मिती होते. चला टिप्पणी करूया. आम्ही शोध सुरू ठेवतो आणि जाहिरात वर्गाच्या पद्धतींसाठी 433, 435, 466, 468, 738, 740, 800 आणि 802 कॉलमध्ये शोधतो. चला टिप्पणी करूया. असे दिसते. जतन करा. आता पॅकेज पुन्हा एकत्र ठेवणे आणि कार्यक्षमता आणि जाहिरातींची उपस्थिती तपासणे आवश्यक आहे. प्रयोगाच्या शुद्धतेसाठी, आम्ही AndroidManifest.xml वरून काढलेली ओळ परत करतो, पॅकेज एकत्र करतो, त्यावर स्वाक्षरी करतो आणि स्थापित करतो.

आमचे गिनी डुक्कर. जाहिरात दृश्यमान

अरेरे! ॲप्लिकेशन चालू असतानाच जाहिरात गायब झाली, परंतु मुख्य मेनूमध्ये राहिली, जी आम्ही सॉफ्टवेअर लॉन्च केल्यावर पाहतो. तर, थांबा, पण एंट्री पॉइंट हा MainActivity क्लास आहे, आणि ॲप्लिकेशन चालू असताना जाहिरात गायब झाली, पण मुख्य मेन्यूमध्ये राहिली, त्यामुळे एंट्री पॉइंट वेगळा आहे का? खरा एंट्री पॉइंट ओळखण्यासाठी, AndroidManifest.xml फाइल पुन्हा उघडा. आणि हो, त्यात खालील ओळी आहेत:

ते आम्हाला (आणि महत्त्वाचे म्हणजे, android) सांगतात की android.intent.category.LAUNCHER श्रेणीतून android.intent.action.MAIN इंटेंट (इव्हेंट) तयार करण्याच्या प्रतिसादात स्टार्ट नावाचा क्रियाकलाप सुरू केला जावा. जेव्हा तुम्ही लाँचरमधील ॲप्लिकेशन आयकॉनवर टॅप करता तेव्हा हा इव्हेंट जनरेट होतो, त्यामुळे तो एंट्री पॉइंट, म्हणजे स्टार्ट क्लास ठरवतो. बहुधा, प्रोग्रामरने प्रथम मुख्य मेनूशिवाय अनुप्रयोग लिहिला, ज्याचा प्रवेश बिंदू मानक मेनॲक्टिव्हिटी वर्ग होता, आणि नंतर मेनू असलेली एक नवीन विंडो (क्रियाकलाप) जोडली आणि स्टार्ट क्लासमध्ये वर्णन केले आणि मॅन्युअली एंट्री केली. बिंदू

Start.smali फाईल उघडा आणि पुन्हा “Ad” ही ओळ पहा, आम्हाला 153 आणि 155 ओळींमध्ये FirstAd वर्गाचा उल्लेख आढळतो. हे स्त्रोत कोडमध्ये देखील आहे आणि, नावानुसार, ते मुख्य स्क्रीनवर जाहिराती प्रदर्शित करण्यासाठी जबाबदार आहे. चला पुढे बघूया, फर्स्टॲड क्लासचे एक उदाहरण तयार केले आहे आणि एक हेतू आहे जो संदर्भानुसार, या उदाहरणाशी संबंधित आहे, आणि नंतर cond_10 लेबल, एक उदाहरण तयार करण्यापूर्वी अगदी सशर्त संक्रमण केले जाते. वर्गाचा:

If-ne p1, v0, :cond_10 .line 74 new-instance v0, Landroid/content/Intent; ... :cond_10

बहुधा, कार्यक्रम मुख्य स्क्रीनवर जाहिरात दाखवली जावी की नाही हे यादृच्छिकपणे गणना करतो आणि, नसल्यास, थेट cond_10 वर उडी मारतो. ठीक आहे, तिचे कार्य सोपे करूया आणि सशर्त संक्रमण बिनशर्त बदलूया:

#if-ne p1, v0, :cond_10 वर जा:cond_10

कोडमध्ये फर्स्टॲडचा अधिक उल्लेख नाही, म्हणून आम्ही फाईल बंद करतो आणि apktool वापरून आमचा व्हर्च्युअल टॉर्च पुन्हा एकत्र करतो. ते तुमच्या स्मार्टफोनवर कॉपी करा, इंस्टॉल करा, लॉन्च करा. व्होइला, सर्व जाहिराती गायब झाल्या आहेत, ज्यासाठी आम्ही आपल्या सर्वांचे अभिनंदन करतो.

परिणाम

हा लेख Android अनुप्रयोग हॅकिंग आणि सुधारित करण्याच्या पद्धतींचा फक्त एक संक्षिप्त परिचय आहे. संरक्षण काढून टाकणे, अस्पष्ट कोड पार्स करणे, अनुप्रयोग संसाधने भाषांतरित करणे आणि पुनर्स्थित करणे, तसेच Android NDK वापरून लिहिलेले अनुप्रयोग सुधारणे यासारख्या अनेक समस्या पडद्यामागे राहिल्या. तथापि, मूलभूत ज्ञान असणे, हे सर्व शोधणे केवळ वेळेची बाब आहे.



आम्ही वाचण्याची शिफारस करतो

वर