
آموزش گام به گام دیکامپایل APK برای دسترسی به سورس اندروید در این مقاله از اندروید ریور منتشر شده است. با استفاده از این آموزش اپلیکیشن های اندروید APK را به سورس اندروید تبدیل می کنید.
نحوه دیکامپایل APK به سورس اندروید
منظور از دیکامپایل کردن یک فایل apk به سورس اندروید چیست ؟
در کل اگر یک توضیح خلاصه برای شروع داشته باشم باید به این صورت بگویم که دیکد یک برنامه به این معنا هست که وقتی یک APK را باز میکنیم می تواینم به منابع آن مانند تصاویر و دیتا بیس و فایل ها و لایه های طراحی و کدهای XML ب کار رفته در کد و نیز کد های اصلی جاوا یا کاتلین آن دسترسی پیدا کنیم .
خب چه موقع دیکامپایل لازم است ؟ گاهی اوقات شما در سطح مطلوبی از دانش برنامه نویسی نیستید ولی دوست دارید که سورس اپلیکیشینی که مد نظر دارید را داشته باشید که بتوانید تغییرات لازم را روی آن اعمال کنید و به توسعه آن بپردازید یا اینکه برنامه نویس هستید و می خواهید با مطالعه آن سورس دانش خود را بالاتر ببرید . که برای مطالعه ی بیشتر پیشنهاد من پروژه های اوپن سورس موجود در سایت گیت هاب و گیت لب است . ولی خب دیکامپایل نیز لذت خاص خود را دارد 😀 و دوست داریم این تجربه این لذت را با شما تقسیم کنیم
در این مقاله با ۴ گام شما به سورس یک اپلیکیشن دسترسی خواهید داشت . اگر قهوه خود را آماده کردید و محکم روی صندلی خود نشستید شروع کنیم :
در کل اگر قرار هست یک سورس اندروید را تقسیم بندی کنیم شامل دو بخش هست که در بالا توضیح دادم یعنی بخش اول که شامل منابع (Resources) هست و بخش دوم سورس اصلی برنامه هست که یا به زبان جاوا است یا کاتلین . برای بخش اول از ابزار apktool و برای بخش دوم از dex2jar استفاده خواهیم کرد.
برای شروع نیاز به دانلود یکسری ابزار ها دارید پس به لینک های موجود در زیر مراجعه کنید و ابزار های لازم را دریافت کنید :
نکته : قبل از شروع حتما JDK را روی سیستم خود نصب کنید.
گام اول : شما نیاز دارید تا برنامه های مورد نیاز زیر را که همراه با لینک مستقیم در این مقاله قرارداده شدند را دریافت کنید:
بعد از اینکه تمامی فایل های پیش نیاز را دانلود و در سیستم خود اکسترکت کردید , مرحله ی بعدی شما از گام اول که دانلود فایل apk شما و کپی کردن آن در فولدری مشخص از سیستم شما هست شروع خواهد شد.
بعد از اینکه apk خود را گرفتید , تنها با تغییر .apk به .zip فرمت فایل را تغییر دهید. به طور مثال اگر androidRiver.apk را دارید تنها .apk را پاک کنید و .zip را جایگزین کنید یعنی باید فایلی به این صورت داشته باشید : androidRiver.zip
در مرحله ی سوم از گام اول شما فایلی با فرمت زیپ دارید که میتوایند با ابزاری مانند RAR آن را اکسترکت کنید.
نکته : تمامی ابزار ها و اپ خود را در یک فولدر اکسترکت کنید.
گام دوم :
حال به اپلیکیشنی که اکسترکت کردید برگردید , شما باید فایلی به نام classes.dex
را داشته باشید .
این فایل را کپی کرده و در فولدر dex2jar پیست کنید .
حال CMD را باز کنید .و به لوکیشن dex2jar خود بروید . به طور مثال : (cd C:\Users\AndroidRiver\Desktop\dex2jar-0.0.9.15)
بعد از اینکه به لوکیشن فولدر دسترسی پیدا کردید , این کامند را تایپ کنید :
dex2jar classes.dex
و بعد Enter رو بزنید.
در همان موقع به صورت خودکار فایلی با این عنوان classes_dex2jar.jar
در فولدر شما ساخته خواهد شد.
در مرحله بعدی , سراغ فایلی به اسم jd-gui.exe خواهیم رفت (یکی از ابزار هایی که دانلود کردید بعد از اکسترکت این خواهد بود).
با دابل کلیک روی این فایل .exe پنجره ایی باز خواهد شد . این مسیر را دنبال کنید : File -> Open File
بعد در دایرکتوری سیستم خود classes_dex2jar.jar
که در فولدرDex2jar هست را انتخاب کنید .
بعد باز با مراجعه به File -> Save all sources تمامی سورس ها در دایرکتوری دلخواه خود روی سیستم ذخیره کنید. با مراجعه به مسیری که در آن فایل ها را ذخیره کردید تمامی فایل های جاوا را خواهید دید ولی خبری از فایل های xml نیست . پس ادامه دهیم .
گام سوم :
در این گام قرار هست که منابع و فایل های .xml را بدست آوریم :
فولدری جدا بسازید (مثلا XML) . و یک نسخه از همان فایل APK را در آن قرار دهید .سپس سراغ ابزارهایی که در گام اول دانلود کردید بروید و apktool.jar را کپی کرده و در فولدری که ساختید قرار دهید.
بعد از آن باز به ابزار هایی که دانلود و اکسترکت کردید رفته و در فولدری به نام
را باز کنید و دو فایل aapt.exe و apktoll.bat را کپی کنید و در فولدر XML خود در کنار سایر فایل ها جایگذاری کنید.apktool-install-windows
...
پس با این تفاصیل شما یک فولدر به نام XML دارید و در آن چهار فایل دارید که یکی از آنها اپ شما با فرمت .apk است . بعدی aapt.ext , apktool.exe و نیز apktool.jar را خواهید داشت.
سپس CMD را باز کنید.
به فولدر XML خود دسترسی پیدا کنید به طور مثال (cd C:\Users\androidRiver\Desktop\XML )
.سپس کامند زیر را تایپ کنید:
apktool if framework-res.apk
و سپس
apktool d yourAppName.apk
نکته : به جای yourAppName.apk نام اپلیکیشن خود با فرمت apk را بنویسید.
بعد از این مرحله (صبر کنید که پروسه کامل شود) شما فولدری حاوی تمامی فایل های xml و منابع را خواهید داشت.
گام چهارم و آخر:
در این مرحله شما به صورت جداگانه سورس جاوا و xml را خواهید داشت . آنها را در یک فولدر ریخته و سپس شما سورسی کامل خواهید داشت .
لازم است بگوییم معمولا برنامه نویسان از این روش برای دستیابی به بخشی از سورس و یا همچنین یادگیری متد ها و روش های جدید استفاده میکنند . همانطور که میدانیم قطعا شما نمی توانید 100% پروژه را به سورس کد تبدیل کنید اما تا میزان قابل توجهی این امکان وجود دارد.
شما می توانید سورس اندروید خود را در اندروید استودیو باز کنید.
از سورس خود و ادیت آن لذت ببرید .
سنا عبادی CO-Founder نویسنده مقاله
توسعه دهنده موبایل به ویژه سیستم عامل اندروید ، هم بنیانگذار اندروید ریور و در تلاش برای تحقق یک رویا..
دیدگاه
نگارش کد بلند یا نگارش بخش عمده یک سورس کد :