برسی signature اپلیکیشن‌های اندروید

استاندارد

همونطور که میدونید در انتهای کار توسعه اپلیکیشن‌های اندرویدی ، توسعه دهندگان اپلیکیشن‌ خروجی اپلیکیشن‌ (Apk) خودشون رو بصورت sign شده منتشر میکنند تا مدریت اپدیت‌ها و انشار اپدیت برای اپلیکیشنشون رو فقط و فقط خودشون بتونند انجام بدهند .

ولی خب این sign کردن باعث نمیشه دیگران نتونند کدی که توسعه دهنده اپلیکیشن‌ زده رو تغیر بدند، اما (یه امای بزرگ) واسه خروجی گرفتن از تغییرات انجام شده نیاز هست که دوباره اپلیکیشن sign بشه و با توجه به اینکه keystore که برای sign کردن توسط توسعه دهنده استفاده شده رو اصولا فقط خودش در اختیار داره و کسایی که این تغییرات رو اعمال کردند باید با یه keystore جدید sign کردن رو انجام بدند .

پس حالا نگرانی که پیش میاد چیه ؟ اینکه از کجا میتونیم بفهمیم اپلیکیشنی که دانلود کردیم اپلیکیشن‌ رسمی هست یا نه (توسط توسعه دهنده اصلی sign شده یا نه ) !

کاری که میتونیم بکنیم اینکه با keytool که ابزار جاوا برای مدیریت certificateها و keyها هست اطلاعات مربوط به certificate هر کدوم از apk ها بگیریم و برسی کنیم .

اینجا من apk اپلیکیشن تلگرام رو که از بازار گرفتم رو قراره با apk موجود تو گوگل پلی مقایسه کنم .

مرحله اول

دو تا apkای که قرار هست برسی کنیم رو توی یه فولدر میریزیم .

مرحله دوم

دستور زیر رو توی terminal اجرا کنید . این دستور اطلاعات مربوط به certificate هر apk ای که توی فولدرمون هست رو به ما نشون میده .

مرحله اخر

حالا تنها کاری که میمونه مقایسه اطلاعات بدست اومده با هم هست که باید یکی باشن .

چیزی که این مقایسه به ما نشون میده این هست که هر دوی این نسخه‌ها توسط توسعه دهنده اصلی sign شده و از این بابت مشکلی ندارن .

پینوشت : اگه پسورد فایل keyStore اپلیکیشنتون رو فراموش کردین ، حتما این پست رو بخونید ، شاید بتونه تو پیدا کردنش کمکتون کنه.

16 دیدگاه در “برسی signature اپلیکیشن‌های اندروید

  1. محمد

    سلام . من با یکی از برنامه های اپلیکیشن ساز یک اپلیکیشن ساختم اما امضای تولید شده debug هستش که این امضا برای اپلیکیشن هایی که توی بازار و گوگل پلی قرار میگیرن غیرفعال هستش.
    درنتیحه من نیاز دارم امضا رو تغییر بدم . لازم به ذکره اون برنامه ای که من اپ خودم رو باهاش ساختم گزینه ای برای تنظیم امضا قبل از تولید اپ نداره .
    آیا راهی هست بصورت دستی بعد از تولید apk اون امضا رو تغییر بدم تا بتونم به بازار واردش کنم؟
    ممنون میشم اگر جوابتون رو برام ایمیل کنید

    • soroushjavdan

      سناریو ای رو که گفتین کامل متوجه نشدم ، ولی بعد از این که شما از اپلیکیشنتون خروجی گرفتین (apk) دیگه به هیچ وجه امکان تغیر دادن امضایش رو ندارید .

  2. ر.م

    سلام
    من یکی دو تا برنامه رو با یه کی استور منتشر کردم
    حالا کل اطلاعات سیستمم رو ازد ست دادم و فایل کی استور هم حذف شد
    حالا برای اپدیت برنامه ها مشکل خوردم
    ایا راهی هست بشه اطلاعات کی استور رو از فایل نصبی apk استخراج کرد؟

  3. ابوالفضل

    سلام
    بعضی از نرم افزار ها هستن که اپلیکیشن ها رو دیکامپایل میکنن و بعد از انجام تغییرات مد نظر اون و به نرم افزار میدیم و ریکامپایل و بعد هم ساین میکنه…
    این ساین کردن نرم افزار به منزله ی ساخت یه امضا و کلید جدید برای اپلیکیشن هست؟

    در ضمن امکانش هست در مورد این پستتون بیشتر توضیح بدید؟

    • soroushjavdan

      سلام ، دقیقا به نکته درستی اشاره کردی . کاری که اینجور اپلیکیشن‌ها انجام میدن همینه و یک امضا و کلید جدید برای اپلیکیشن میسازند .
      قطعا ، اگه بهم بگی کجاس نیاز به توضیح بیشتر داره یا نامفهمومه سعی میکنم توضیحات تکمیلی بدم 🙂

  4. ابوالفضل

    خیلی ممنون من از این نوشتتون جوابم و گرفتم
    فقط میخاستم بدونم که بدون استفاده از اندروید استدیو و اکلیپس راه دیگه ای هم برای ما میمونه که یک ساین و کلید ثابت برای خودمون رو اپلیکیشنی که ترجمه کردیم داشته باشیم؟

  5. علی تقوی

    یک راه هست که با فایل apk میتونی امضای دیباگ رو برداری و امضای خودت رو انجام بدی من همین کارو کردم و برنامه ام رو تو بازار آپلود کردم. برو تو سایت monitoringsoftware.ir راهش مطمعن و بی دردسره. موفق باشین.

    • soroushjavdan

      بله این کار عملی هست . ولی باید به خاطر داشته باشید که شما فقط میتونید sign قدیمی برنامه رو حذف کنید و بجاش یک sign جدید قرار بدین که با این کار امکان اپدیت شدن apk با sign قدیمی به apk با sign جدید رو نخواهید داشت .
      همینطور توی لینک توضیحی مبنی بر چگونگی انجام این کار ذکر نشده بود . که توی این لینک میتونید نحوه انجام این کار رو ببینید . شاید در آینده پستی درباره چگونگی انجام این کار نوشتم .

  6. farzadd

    سلام
    من با کتاب ساز اندروید کتاب خودم رو میسازم ک بعد از ساخت کتاب ، امضای کتاب من ، امضای سازندهﻯ کتاب ساز هست.
    اگه راهی هستش ک بتونم اون امضاش رو به امضای خودم تغییر بدم ، ممنون میشم ک بگید

    • soroushjavdan

      سلام ، من راجع‌به برنامه‌ای که گفتید اطلاعاتی ندارم . بله راهی هست برای تغییر امضای فایل apk تون که اینجا راجع‌به اون توضیح داده شده . اگر هم کمی صبر کنید احتمالا منم درباره نحوه انجام این کار یک پست مینویسم 🙂 .

  7. عطا نصیری

    سلام اقا سروش به کمک فوری نیاز دارم برنامم رو در مایکت قرار دادم قبول کرد
    با کلون و ای پی کی ادیتور درستش کردم ،،…
    حالا تو بازار میگه بسته نباید با مضای دیباگ باشد و اینجور چیزا .،،
    باید چیکار کنم
    من تازه کارم اما چیزه زیادی از اینا سرم میشه
    اگه ممکنه مرامت برام رایگان بزار .. لطفا ..

    • soroushjavdan

      سلام ، من ابزاری که استفاده کردین رو نمیشناسم ولی برای ساخت امضای ریلیز برای apk میتونید از دستورات زیر استفاده کنید .
      keytool -genkey -v -keystore my-release-key.keystore -alias alias_name -keyalg RSA -keysize 2048 -validity 10000
      alias_name رو یک اسم دلخواه بذارید . دستور بالا my-release-key.keystore که همون فایل keystore تون هست رو میسازه ( واسه این مرحله میتونید از android studio هم استفاده کنید )
      در مرحله اخر jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore my-release-key.keystore my_application.apk alias_name این دستور کار sign کردن رو براتون انجام میده .
      my_application.apk فایل apk شماست و my-release-key.keystore فایل keystore هست که تو مرحله قبل ساختیم .
      پینوشت اگه از windows استفاده میکنید ، واسه استفاده از دستورات بالا به دایرکتوری که keytool توی اون هست‌ ( معمولا C:\Program Files\Java\jre7\bin اینجاست ) برید و اونجا کامنت پرام رو باز کنید و دستورات بالا رو اجرا کنید .

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *