ইতিমধ্যে সংকলিত এপিকে কীভাবে সাইন করবেন


121

আমি apktool দিয়ে একটি APK ডিকোড করেছি (মূল উত্স কোডটি নষ্ট হয়ে গেছে) তাই আমি লেআউট এক্সএমএল ফাইলগুলির সাথে কিছু সমস্যা সমাধান করতে পারি। এরপরে আমি এপটটিওলের সাহায্যে এটি পুনরায় তৈরি করেছি এবং যখন আমি আমার ডিভাইসে এটি ইনস্টল করার চেষ্টা করেছি (অ্যাডবি: অ্যাডাব্লিক অ্যাপ্লিকেশন ইনস্টল করে অ্যাপ্লিকেশন ব্যবহার করে) এটি আমাকে এই ত্রুটি দিয়েছে:

[INSTALL_PARSE_FAILED_NO_CERTIFICATES]

আসল এপিকে তবে কীস্টোরের (স্বাক্ষর আইডিইতে) স্বাক্ষরিত হয়েছিল, এটি একটি নয়, আমি কীভাবে এটিটিকে সঠিকভাবে স্বাক্ষর করতে পারি এটি Eclipse এর বাইরের মূল কীস্টোন ফাইলের সাথে !?


হ্যাঁ, শংসাপত্রগুলির পুরো বিষয়টি হ'ল লোকজনকে এটি করা থেকে বিরত করা ... আপনার কাছে যদি আসল শংসাপত্র না থাকে তবে আপনাকে পুনরায়
জন্মানো

এটি কেবলমাত্র, আমার কাছে আসল শংসাপত্র রয়েছে, তবে এপিপি ডিকোডিং / পুনঃনির্মাণ এটি সরিয়ে দিয়েছে।
স্বরোগ

উত্তর:


285

ব্যবহার করে একটি কী তৈরি করুন

keytool -genkey -v -keystore my-release-key.keystore -alias alias_name -keyalg RSA -keysize 2048 -validity 10000

তারপরে এটিপি ব্যবহার করে সাইন করুন:

jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore my-release-key.keystore my_application.apk alias_name

আরও তথ্যের জন্য এখানে দেখুন


11
এই উত্তরটি হওয়া উচিত, আসল উত্তরের তুলনায় 27 টি আপভোট, আসুন!
কাইল

1
আপনি যদি এটি করেন এবং APK ইনস্টল করার চেষ্টা করেন তবে আপনি কোনও INSTALL_FAILED_DUPLICATE_PERMISSION ত্রুটি দিয়ে শেষ করতে পারেন। এটি তখন ঘটে যখন মূল APKটি ওভাররাইট করা যায় না (উদাহরণস্বরূপ সিস্টেম বা অন্তর্নির্মিত অ্যাপ্লিকেশন)
কুইচি

@ কাউচির এডিবি শেল সন্ধ্যায় ইনস্টল করুন -আর / ডেটা
ডাঃ দেও

14
আপনি যদি কোনও কী তৈরির ঝামেলা করতে না চান তবে আপনি ডিবাগ কীটি এর সাথে ব্যবহার করতে পারেন: জারসাইনার -ভারবোস-সিগালগ SHA1withRSA -digestalg SHA1 -keystore ~ ​​/ .Android / debug.keystore app.apk androiddebugkey -storepass Android
Pellet

3
ব্যবহার jarsignerএবং এর মধ্যে পার্থক্য আছে apksigner? একটিতে স্বাক্ষর করতে হবে এবং তারপরে জিপালিগনিং এবং অন্যটি জিপলাইনিং এবং তারপরে সাইন ইন করা দরকার
মারিয়া ইনেস পার্নিসারি

72

স্বয়ংক্রিয় প্রক্রিয়া:

এই সরঞ্জামটি ব্যবহার করুন (গুগল থেকে নতুন অ্যাপসাইনার ব্যবহার করে):

https://github.com/patrickfav/uber-apk-signer

দাবি অস্বীকার: আমি বিকাশকারী :)

ম্যানুয়াল প্রক্রিয়া:

পদক্ষেপ 1: কীস্টোর উত্পন্ন করুন (শুধুমাত্র একবার)

আপনাকে একবার একটি কীস্টোর তৈরি করতে হবে এবং এটি আপনার unsignedএপিকে সাইন ইন করতে ব্যবহার করতে হবে । পাওয়া জেডিকে সরবরাহিত ব্যবহার করুনkeytool %JAVA_HOME%/bin/

keytool -genkey -v -keystore my.keystore -keyalg RSA -keysize 2048 -validity 10000 -alias app

পদক্ষেপ 2 বা 4: জিপালাইন

zipalign উদাহরণস্বরূপ পাওয়া যায় এমন অ্যান্ড্রয়েড এসডিকে সরবরাহ করা একটি সরঞ্জাম যা%ANDROID_HOME%/sdk/build-tools/24.0.2/ আপনি প্লে স্টোরটিতে অ্যাপিকে আপলোড করতে চান তবে এটি একটি বাধ্যতামূলক অপ্টিমাইজেশন পদক্ষেপ।

zipalign -p 4 my.apk my-aligned.apk

দ্রষ্টব্য:jarsigner পুরানোটি ব্যবহার করার সময় আপনাকে স্বাক্ষর করার পরে জিপলাইন করতে হবে । নতুন apksignerপদ্ধতিটি ব্যবহার করার সময় আপনি স্বাক্ষর করার আগে এটি করেন (বিভ্রান্তিকর, আমি জানি)। এপক্সাইনার ঠিকঠাক কাজ করার আগে জিপালিগান চালনা করায় কারণ এপিক্সাইনার APK এ্যালাইমেন্ট এবং সংকোচনের সংরক্ষণ করে (জার্সাইনারের বিপরীতে)।

আপনি এর সাথে প্রান্তিককরণ যাচাই করতে পারেন

zipalign -c 4 my-aligned.apk

পদক্ষেপ 3: সাইন এবং যাচাই করুন

বিল্ড-সরঞ্জামগুলি 24.0.2 এবং আরও পুরানো ব্যবহার করে Using

ব্যবহারের jarsignerযা keytool মত, JDK বন্টন দিয়ে আসে পাওয়া %JAVA_HOME%/bin/এবং এটা এত পছন্দ ব্যবহার করুন:

jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore my.keystore my-app.apk my_alias_name

এবং যাচাই করা যেতে পারে

jarsigner -verify -verbose my_application.apk

বিল্ড-সরঞ্জামগুলি 24.0.3 এবং আরও নতুন ব্যবহার করে

অ্যান্ড্রয়েড .0.০ এপিএইচ সিগনেচার স্কিম v2 উপস্থাপন করেছে, একটি নতুন অ্যাপ্লিকেশন-স্বাক্ষরকরণ প্রকল্প যা অ্যাপ্লিকেশন ফাইলগুলিতে অননুমোদিত পরিবর্তনের বিরুদ্ধে দ্রুত অ্যাপ্লিকেশন ইনস্টলের সময় এবং আরও সুরক্ষা সরবরাহ করে ( আরও তথ্যের জন্য এখানে এবং এখানে দেখুন)। অতএব, গুগল তাদের নিজস্ব apk স্বাক্ষরকারীapksigner প্রয়োগ করেছে (ডু!) স্ক্রিপ্ট ফাইলটি পাওয়া যাবে %ANDROID_HOME%/sdk/build-tools/24.0.3/(.jar /libসাবফোল্ডারে রয়েছে)। এটি ব্যবহার করুন

apksigner sign --ks my.keystore my-app.apk --ks-key-alias alias_name

এবং যাচাই করা যেতে পারে

apksigner verify my-app.apk

অফিসিয়াল ডকুমেন্টেশন এখানে পাওয়া যাবে।


6
উবার-এপিকে-স্বাক্ষরের জন্য ধন্যবাদ! দুর্দান্ত সরঞ্জাম!
ক্যান্টনি

2
বিল্ড-সরঞ্জামগুলির জন্য 24.0.3 সঠিকভাবে জিপলাইন কল করার জন্য হ'ল: জিপালাইন -p 4 মাই.এপকে মাই-অলাইনড.এপকে
কিনোর্নিরওয়ানা

আপনার বর্ণনার জন্য ধন্যবাদ! প্রথমে উবার-এপিকে-স্বাক্ষরকারী চেষ্টা করেছিলাম তবে ব্যর্থ হওয়ায় সম্ভবত আমার সিস্টেমে ওরাকলস "অফিসিয়াল" জাভা পরিবর্তে ওপেনজেডিকে ইনস্টল করেছি। সুতরাং আমি ম্যানুয়াল পদ্ধতিতে চেষ্টা করেছি এবং ব্যর্থও হয়েছি (এখনও একই ত্রুটি [INSTALL_PARSE_FAILED_NO_CERTIFICATES])। পণ্য-APK-স্বাক্ষরকারী সঙ্গে যাচাই করা হচ্ছে আমাকে কিছু আরও অন্তর্দৃষ্টি দিয়েছেন signature VERIFY FAILED[...] ERROR: JAR signer CERT.RSA: JAR signature META-INF/CERT.RSA uses digest algorithm 2.16.840.1.101.3.4.2.1 and signature algorithm 1.2.840.113549.1.1.1 which is not supported on API Levels [[15, 17]]। হ্যাঁ, অ্যান্ড্রয়েড ৪.২.২, SHA256 নেই? ধারনা?
এন্টিপ্লেক্স

@ এন্টিপ্লেক্স দয়া করে গিথুব এ বিষয়টি রিপোর্ট করুন তাই নয়
প্যাট্রিক

@ for3st আপনি কি বোঝাতে চেয়েছেন যে আমার সমস্যাগুলি apk- সাইন ইন সম্পর্কে আমার সীমিত জ্ঞানের কারণে না হয়ে কিছুটা ওবার-এপিকে-স্বাক্ষরকারীর অসামঞ্জস্যতার কারণে নয়? তবে তারপরেও ম্যানুয়াল
পথটি

14

দ্রুততম উপায় হ'ল ডিবাগ কীস্টোরের সাথে সাইন ইন করে:

jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore ~/.android/debug.keystore app.apk androiddebugkey -storepass android

বা উইন্ডোজে:

jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore %USERPROFILE%/.android/debug.keystore test.apk androiddebugkey -storepass android

6

আপনি APK এর সাইন করতে jarsigner ব্যবহার করেন। আপনাকে মূল কীস্টোর দিয়ে সাইন করতে হবে না, কেবল একটি নতুন তৈরি করুন। বিশদটি পড়ুন: http://developer.android.com/guide/publishing/app-signing.html


1
লিঙ্কটি নষ্ট হয়ে গেছে
জয়াতুবি

4

আপনারা যারা প্রতিটি প্রকল্পের জন্য সম্পাদনা করার জন্য কোনও ব্যাট ফাইল তৈরি করতে চান না, বা কীটুলগুলি এবং জার্সাইনার প্রোগ্রামগুলির সাথে যুক্ত সমস্ত কমান্ড মনে রাখতে চান না এবং কেবল একটি প্রোগ্রামে এটি সম্পন্ন করতে চান এই প্রোগ্রামটি ব্যবহার করুন:

http://lukealderton.com/projects/programs/android-apk-signer-aligner.aspx

আমি এটি তৈরি করেছি কারণ প্রতিবার সমস্ত ফাইলের অবস্থান টাইপ করার দীর্ঘ প্রক্রিয়াটিতে আমি বিরক্ত হয়েছি।

এই প্রোগ্রামটি আপনার কনফিগারেশনটি সংরক্ষণ করতে পারে তাই আপনি যখন পরের বার এটি শুরু করবেন, আপনাকে কেবল একটি জেনারেট করতে হবে এটি এটি আপনার জন্য পরিচালনা করবে। এটাই.

কোনও ইনস্টল প্রয়োজন নেই, এটি সম্পূর্ণ পোর্টেবল এবং একই ফোল্ডারের একটি সিএসভিতে এর কনফিগারেশনগুলি সংরক্ষণ করে।


4

আপডেট উত্তর

Https://shatter-box.com/ ज्ञान জ্ঞবেস/ android- apk- signing- tool- apk- signer/ দেখুন

পুরানো উত্তর

পরীক্ষা APK-স্বাক্ষরকারী আপনার অ্যাপ সাইন ইন করতে একটা চমৎকার উপায়


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