استخراج فایلهای APK از برنامههای Androidی نصب شده شما
اطلاعیه حقوقی و ایمنی: این مقاله فقط برای اهداف آموزشی است. استخراج یک APK از یک دستگاه برای پشتیبان گیری شخصی از برنامه های کاربردی قبلاً به طور قانونی روی دستگاهی که مالک آن هستید نصب کرده اید در نظر گرفته شده است. XAPK به APK میزبانی، توزیع، پیوند به برنامههای دارای حق نسخهبرداری، پولی یا دزدی را تسهیل نمیکند یا دسترسی به آنها را تسهیل نمیکند. توزیع مجدد APKهای استخراج شده از برنامه های پولی یا دارای حق نسخه برداری مجاز نیست. برای شرایط کامل به سلب مسئولیت ما مراجعه کنید.
شما یک برنامه شگفتانگیز در گوشی خود دارید که ساعتها صرف راهاندازی آن کردهاید، اما متوجه شدید که از فروشگاه Play حذف شده است. یا شاید در حال تغییر به یک دستگاه جدید هستید و می خواهید یک کپی آفلاین از ابزارهای مورد علاقه خود را برای هر موردی داشته باشید. استخراج فایل های APK از برنامه های نصب شده فعلی شما راه حل است.
در زیر میخواهیم یک APK بدون روت را از گوشی خود بیرون بیاوریم، جایی که برای پشتیبانگیری مفید است، و نحوه بررسی فایل استخراجشده پس از آن با ابزارهای تحلیل آنلاین.
خوراکی های کلیدی
- تقریباً میتوانید فایل APK هر برنامه را مستقیماً از حافظه داخلی دستگاه خود استخراج کنید.
- برنامه های مدرن اغلب از APK ها را تقسیم کنید استفاده می کنند که به استخراج کننده تخصصی نیاز دارند.
- دسترسی روت (Superuser) به طور کلی مورد نیاز نیست برای پشتیبان گیری از برنامه های کاربردی استاندارد است.
- پس از استخراج، می توانید فایل را به کارت SD، رایانه شخصی یا فضای ذخیره سازی ابری منتقل کنید.
چرا APK ها را استخراج کنیم؟
قبل از اینکه به «چگونه» بروید، در اینجا دلیلی برای حفظ یک کتابخانه پشتیبان APK وجود دارد:
- حفظ برنامه های متوقف شده: اگر برنامهنویسی برنامه خود را از فروشگاه حذف کند، همچنان نسخه قابل نصب خود را خواهید داشت.
- پشتیبانی سخت افزاری قدیمی: نسخههایی را نگه دارید که روی رایانه لوحی قدیمیتر شما کار میکنند، زمانی که برنامه رسمی بهروزرسانی میشود تا به نسخههای جدیدتر Android نیاز داشته باشد.
- بازگشت نسخه: اگر یک بهروزرسانی باگهایی را ایجاد کرد، میتوانید نسخه پشتیبان استخراجشده خود را مجدداً نصب کنید و دوباره وارد کار شوید.
- اشتراک گذاری برنامه: یک نسخه برنامه خاص را از طریق بلوتوث یا کابل بدون استفاده از داده تلفن همراه برای دوست خود ارسال کنید.
روش 1: استفاده از برنامه استخراج APK (بدون ریشه)
ساده ترین راه استفاده از ابزار اختصاصی است. ده ها برنامه «APK Extractor» در فروشگاه Play موجود است. این ابزارها با یافتن مسیر نصب برنامه در /data/app/ (که قابل خواندن است اما معمولاً پنهان است) و کپی کردن base.apk در پوشه دانلود عمومی شما کار می کنند.
مراحل:
- یک APK Extractor معتبر نصب کنید.
- برنامه را باز کنید و در صورت درخواست "مجوزهای ذخیره سازی" را اعطا کنید.
- در لیست همه برنامه های نصب شده حرکت کنید.
- روی برنامه ای که می خواهید ذخیره کنید ضربه بزنید.
- این ابزار فوراً APK را در حافظه داخلی شما کپی می کند.
مدیریت فایل های APK تقسیم شده
اگر یک برنامه پیچیده مانند Facebook یا WhatsApp را استخراج کنید، ممکن است به جای یک فایل، چندین فایل .apk پیدا کنید. اینها APK ها را تقسیم کنید هستند. برای استفاده از آنها، به ابزار ادغام APKS/APKM ما نیاز دارید تا آنها را در یک فایل واحد ترکیب کند.
روش 2: استخراج دستی از طریق ADB (پیشرفته)
اگر نمیخواهید برنامههای اضافی روی گوشی خود نصب کنید، میتوانید از رایانه شخصی با پل اشکال زدایی Android (ADB) استفاده کنید:
- گوشی خود را از طریق USB به رایانه شخصی خود متصل کنید و USB Debugging را فعال کنید.
- یک ترمینال باز کنید و تایپ کنید: adb shell pm path com.example.app
- این مسیر را نشان خواهد داد. مثال: package:/data/app/com.example.app/base.apk
- نوع: adb pull /data/app/com.example.app/base.apk ./backup.apk
- فایل اکنون در رایانه شما است!
آنچه در واقع هنگام استخراج به دست می آورید
یک برنامه Android "نصب شده" دیگر به عنوان یک APK منفرد در دستگاه ذخیره نمی شود، به خصوص اگر از Play Store به عنوان یک بسته برنامه Android آمده باشد. وقتی استخراج می کنید، ممکن است یک یا چند فایل دریافت کنید، و دانستن تفاوت به شما کمک می کند تصمیم بگیرید چه چیزی را نگه دارید:
- یک APK پایه تک. برنامههای قدیمی یا کوچکتر که بهعنوان یک APK ساده در Play آپلود شدهاند، همچنان بهصورت یک فایل نصب میشوند. استخراج یک .apk را برمیگرداند که مستقل است.
- برنامههای پایه APK + چندین تقسیم پیکربندی. منتشر شده بهعنوان AAB بهعنوان چندین APK در کنار یکدیگر نصب میشوند: یک base.apk به علاوه split_config.<abi>.apk (کد اصلی برای CPU شما)، split_config.<density>.apk (منابع برای صفحهنمایش شما) و split_config.<language>.apk (رشتههایی برای منطقه شما). استخراج همه آنها را برمی گرداند. برای نصب مجدد همان برنامه در یک دستگاه، به همه آنها نیاز دارید.
- داده های بسته دارایی، گاهی اوقات. بازیهای مدرن با استفاده از Play Asset Delivery داراییهای گیمپلی بزرگ را در حافظه پنهان برنامه-خصوصی خارج از خود APK ذخیره میکنند. اینها معمولاً با یک استخراج کننده معمولی قابل صادرات نیستند. بستههای دارایی طوری طراحی شدهاند که در اولین راهاندازی دوباره واکشی شوند.
اگر هدف شما یک نسخه پشتیبان قابل حمل است که روی دستگاه دیگری نصب میشود، معمولاً میخواهید (الف) یک "APK جهانی" ادغام شده با ادغام APKS به APK ما تولید شود، یا (ب) همه تقسیمبندیها با هم آرشیو شوند تا یک نصبکننده APK تقسیمشده مانند SAI بتواند آنها را به عنوان یک واحد بازیابی کند.
استخراج چگونه کار می کند (بدون ریشه، پشت صحنه)
اکثر برنامههای « استخراجکننده APK» در واقع نیازی به روت ندارند زیرا Android فایلهای بسته نصبشده را از طریق یک مسیر خواندن در سطح سیستم نمایش میدهد. جریان استاندارد این است:
- برنامه استخراج کننده PackageManager.getPackageInfo(package, ...) را برای دریافت لیست برنامه های نصب شده فراخوانی می کند.
- برای برنامه انتخابی، ApplicationInfo.sourceDir (مسیر APK پایه، معمولا /data/app/<package>-<hash>/base.apk) و splitSourceDirs (مسیرهای هر پیکربندی تقسیم میشود) را میخواند.
- استخراجکننده نصبشده توسط کاربر نمیتواند مستقیماً این مسیرها را بخواند، اما مکانیسم FileProvider در Android به اجزای سیستم اجازه میدهد تا به URIهای خاص دسترسی خواندن موقت بدهند. سیستم عامل انجام می دهد به هر برنامهای اجازه میدهد فایلهای APK خود و فایلهای APK دیگر برنامهها را توسط URI باز کند. این عمدی است، زیرا مسیر نصب همیشه برای کارهایی مانند حذف نصب و بهروزرسانی قابل خواندن در جهان بود.
- استخراجکننده بایتها را در یک پوشه کاربر قابل نوشتن (بارگیریها، یک پوشه کش درون برنامه یا حافظه خارجی) کپی میکند و آنها را به عنوان فایلی برای اشتراکگذاری یا نصب ارائه میکند.
روشهای فقط ریشه (su; cp /data/app/..). API را دور زده و مسیرهای خام را مستقیماً میخوانند. آنها سریعتر نیستند و برای برنامه های غیر سیستمی ضروری نیستند.
استخراج از طریق ADB (توصیه شده برای پشتیبان گیری)
تمیزترین گردش کار غیربرنامه ای ADB است که اکثر توسعه دهندگان قبلاً آن را تنظیم کرده اند. دو دستور کل کار را انجام می دهند:
# 1. Find the on-device path(s) for the package
adb shell pm path com.example.app
# Output (single APK):
# package:/data/app/~~hash==/com.example.app-1/base.apk
#
# Output (split APKs):
# package:/data/app/~~hash==/com.example.app-1/base.apk
# package:/data/app/~~hash==/com.example.app-1/split_config.arm64_v8a.apk
# package:/data/app/~~hash==/com.example.app-1/split_config.xxhdpi.apk
# package:/data/app/~~hash==/com.example.app-1/split_config.en.apk
# 2. Pull each path
adb pull /data/app/~~hash==/com.example.app-1/base.apk ./
برای برنامههای Split-APK، adb pull را برای هر مسیر تکرار کنید. برای دریافت یک فایل قابل نصب، همه آنها را در ادغام APKS به APK ما رها کنید.
آنچه را نمی توان استخراج کرد
Extraction فایل های نصب برنامه را برمی گرداند. نه را برمی گرداند:
- داده های برنامه: تنظیمات برگزیده، پایگاه داده، ذخیره فایل ها. آنهایی که تحت /data/data/<package>/ زندگی می کنند و از استخراج غیر ریشه ای توسط جعبه ایمنی کاربر محافظت می شوند.
- بستههای دارایی تحویل دارایی را پخش کنید: در اولین اجرای بارگیری شده، به صورت خصوصی ذخیره می شود و در صورت عدم وجود، انتظار می رود دوباره واکشی شود.
- پیشرفت ذخیره شده در فضای ابری: اگر برنامه از بازیهای Google Play، Firebase یا موارد مشابه استفاده میکند، بخش ذخیرهشده در فضای ابری روی سرورهای ناشر است، نه اصلاً در دستگاه شما.
بنابراین استخراج برای موارد استفاده «میخواهم یک نسخه از نصبکننده را نگه دارم» خوب است، اما جایگزینی برای پشتیبانگیری مناسب تمام دستگاه (که نیاز به ابزارهای روت یا فروشنده دارد) نیست.
APK های استخراج شده خود را تجزیه و تحلیل کنید
هنگامی که از برنامه های خود نسخه پشتیبان تهیه کردید، از مجموعه آنلاین ما برای بررسی فراداده ها، نمادها و مجوزهای آنها استفاده کنید.
تجزیه و تحلیل APK را شروع کنیدسوالات متداول (سؤالات متداول)
آیا استخراج یک برنامه شامل اطلاعات ورود به سیستم من می شود؟
خیر. Extraction فقط کد برنامه و منابع را کپی میکند. به دلایل امنیتی شامل اطلاعات حساب شخصی، گذرواژه یا تنظیمات شما نمی شود.
آیا می توانم برنامه های سیستمی مانند YouTube را استخراج کنم؟
بله با این حال، برخی از برنامه های سیستم ممکن است وابستگی عمیقی به نسخه های سیستم عامل خاص داشته باشند و ممکن است به درستی روی دستگاه های دیگر نصب نشوند.
فایل های APK استخراج شده کجا می روند؟
اکثر برنامه های استخراج فایل ها را در پوشه ای به نام APK های استخراج شده یا دانلود کنید در حافظه داخلی گوشی شما ذخیره می کنند.
پشتیبان گیری از برنامه های نصب شده بدون از دست دادن تنظیمات Split
ساخت مخزن برنامه محلی خود مطمئن ترین راه برای از دست دادن دسترسی به ابزارهایی است که دوست دارید. یک برنامه مناسب برای ضربه زدن و ترمینال ADB هر دو شما را به آنجا میرسانند، و در هر صورت استخراج فایل های APK یک راه امن و عملی برای مدیریت دستگاه Android شما است. پس از پشتیبانگیری از کتابخانه خود، یک لحظه به امضاها را تایید کنید از آن نسخههای پشتیبان اختصاص دهید تا بدانید که در طول زمان دستکاری نمیشوند.