আমি কীভাবে যাচাই করব যে একটি Android অ্যাপকে একটি প্রকাশের শংসাপত্রের সাথে স্বাক্ষর করা হয়েছে?


222

আমি কীভাবে চেক করতে পারি যে একটি Android এপিপি একটি মুক্তির সাথে স্বাক্ষরিত হয়েছে এবং ডিবাগ সার্ট নয়?


6
আমি একটি স্ক্রিপ্ট লিখেছি যা কোনও কীস্টোরের বিপরীতে একটি এপিকে যাচাই করবে।
জনিলম্বদা

আপনি যদি আপনার উত্তর পেয়ে থাকেন তবে উত্তরটি গ্রহণ করুন।
রিঙ্কল ভান্ডেরি

@ জোহনিলাম্বাডা আমি কীভাবে আপনার স্ক্রিপ্ট ম্যাকটিতে চালাতে পারি?
হারুন আজহারি

1
@ জোহনিলাম্বদা কীভাবে আমি আপনার স্ক্রিপ্টটি চালাতে পারি?
সুনীল

@ সুনিল এটি বাশ স্ক্রিপ্ট যা একটি নতুন ব্যাশ ফাংশন তৈরি করে। লিঙ্কটি অনুসরণ করুন এবং এটি একটি ফাইলে পেস্ট করুন source thatfile। স্ক্রিপ্টের মন্তব্যগুলি কীভাবে এটি চালানো যায় তা ব্যাখ্যা করে।
জনিলম্বদা

উত্তর:


372

এই কমান্ডটি ব্যবহার করুন, (জাভা <জেডি কে <সেমিডি প্রম্পটে বিন পাথ)

$ jarsigner -verify -verbose -certs my_application.apk

আপনি যদি "সিএন = অ্যান্ড্রয়েড ডিবাগ" দেখতে পান তবে এর অর্থ হ'ল .apk অ্যান্ড্রয়েড এসডিকে উত্পন্ন ডিবাগ কী দিয়ে স্বাক্ষরিত হয়েছিল (যার অর্থ এটি স্বাক্ষরযুক্ত নয়), অন্যথায় আপনি সিএন এর জন্য কিছু খুঁজে পাবেন। আরও তথ্যের জন্য দেখুন: http://developer.android.com/guide/publishing/app-signing.html


1
2 টি আলাদা এপিপি ফাইলের কমান্ড কার্যকর করার শেষে জারটি যাচাই করা হিসাবে আমি বার্তাটি পেয়েছি so সুতরাং বিভ্রান্ত হয়ে পড়ে। তবে এটি সিএন = "অ্যান্ড্রয়েড ডিবাগ" কে 1 এপিপি এবং অন্য এপিপির জন্য পৃথক দেয় which কোনটি স্বাক্ষরিত তা জানার জন্য ধন্যবাদ han ধন্যবাদ।
আইআরুনার

3
এটি কীভাবে স্বাক্ষরটি যাচাই করে? এটি কি সিস্টেমের বিশ্বস্ত সিএ ব্যবহার করবে? বা জার ফাইলগুলির অখণ্ডতা পরীক্ষা করার জন্য এটি কেবল একটি সরঞ্জাম? আপনাকে ধন্যবাদ
মোস্তফা শাহভের্দি

2
this means the .apk was signed with the debug key generated by the Android SDK (means it is unsigned)- এর অর্থ এটি স্বাক্ষরবিহীন নয়। এর অর্থ আপনি সবে যা লিখেছেন - এটি ডিবাগ কী দিয়ে স্বাক্ষরিত।
দিমিত্রি জায়েতসেভ

3
আমরা কীভাবে এটি পরীক্ষা করতে পারি যে এটি ঠিক একই শংসাপত্রের ফাইলের সাথে স্বাক্ষরিত হয়েছিল, এবং সংস্থার, অবস্থান ইত্যাদির জন্য একই মানগুলির মধ্যে ঘটে এমন একটি নয় ..
অলিভিএমএম

1
ধন্যবাদ। সুতরাং jarsigner -verify -verbose -certs myapp.apk | grep CN= | lessএবং আমাদের "সিএন = অ্যান্ড্রয়েড ডিবাগ" দেখতে পাওয়া উচিত নয়।
আরপট্টবী

70

কনসোল কমান্ডটি ব্যবহার করুন:

apksigner verify --print-certs application-development-release.apk

আপনি এপসগাইনারটি খুঁজে পেতে পারেন ../sdk/build-tools/24.0.3/apksigner.bat এ। কেবল বিল্ড সরঞ্জামগুলির জন্য বনাম 24.0.3 এবং উচ্চতর।

গুগল ডক্সও পড়ুন: https://developer.android.com/studio/command-line/apksigner.html


আমি apksigner`% LOCALAPPDATA% \ Android \ sdk \ build-tools \ 25.0.3` (এবং আমি ইনস্টল করেছিলাম এমন অন্যান্য বিল্ড সরঞ্জাম সংস্করণে) খুঁজে পেয়েছি
জন

2
নোট যে বিল্ড-সরঞ্জামগুলির apksignerসংস্করণে অনুপস্থিত 26.0.0। এটি ইস্যুজেট্রেকের.কম . / issues/62696222 এ ট্র্যাক করা হয়েছে এবং পরবর্তী সংস্করণে এটি ঠিক করা হবে বলে মনে করা হচ্ছে। ততক্ষণ পর্যন্ত কার্যবিধিটি ব্যবহার apksignerকরা উচিত 25.0.3
ফ্রাইডারব্লিউমলে

2
আপডেট: apksignerসংস্করণে অন্তর্ভুক্ত রয়েছে26.0.1
forresthopkinsa

আপডেট: APKSigner ২ 26.০.২, ২ 26.০.৩, ২.0.০.০, ২.0.০.১, ২.0.০.২ এও রয়েছে বলে আমি বিশ্বাস করি ভবিষ্যতের সমস্ত প্রকাশনাতে আপনি এটি খুঁজে পাবেন :)
কিরিল ভাসিলো

2
ভার্বোজ আউটপুট ব্যবহারের জন্য -v:./apksigner verify --print-certs -v ~/Downloads/MyAppHere.apk
টিলো

59

এই কমান্ডটি ব্যবহার করুন: (জার্সাইনারটি আপনার জাভা বিন ফোল্ডারে গেটো জাভা-> জেডি কে-> বিন সিএমডি প্রম্পটে রয়েছে)

$ jarsigner -verify my_signed.apk

.Apk সঠিকভাবে স্বাক্ষরিত হলে, জার্সাইনার "জার যাচাই করা" মুদ্রণ করে


13
এটি যথেষ্ট ভাল নয় যেহেতু উভয় ডিবাগ এবং রিলিজ অ্যাপস স্বাক্ষরিত হওয়ায় "জার যাচাই করা" দেবে। @ আনাসের উত্তরের বিশদটি পরীক্ষা করে দেখুন।
আরপট্টবী

আমি ঠিক এই আদেশটি চেষ্টা করেছি এবং এটি যাচাই করেছে। তারপরে একটি পরীক্ষা হিসাবে আমি APK এ গিয়ে সিগ ফাইল এবং ম্যানিফেস্ট ব্যতীত প্রতিটি ফাইলকে আক্ষরিক অর্থে মুছে ফেলেছিলাম এবং এটি এখনও যাচাই করা হয়েছে। সুতরাং এখানে কিছু খুব ভুল। তবে আমি এখনও @ আনাস এর উত্তর চেষ্টা করতে পারেন।
প্রদক্ষিণ

39

সবার মধ্যে সহজ:

keytool -list -printcert -jarfile file.apk

এটি জাভা অন্তর্নির্মিত কীটোল অ্যাপ্লিকেশন ব্যবহার করে এবং নিষ্কাশন বা কোনও বিল্ড-সরঞ্জাম ইনস্টলেশন প্রয়োজন হয় না।


যে কেউ keytoolতত্ক্ষণাত্ দৌড়াতে পারে না তার জন্য এটি পরীক্ষা করে দেখুন এবং সম্ভবত এই%JAVA_HOME%\bin
পথটিতে

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.