.apk ფაილზე ხელმოწერა jarsigner უტილიტის გამოყენებით. როგორ მოვაწეროთ ხელი APK თამაშს ან აპლიკაციას Android-ზე სწორად როგორ შევცვალოთ ანდროიდის აპლიკაციის ხელმოწერა

მას შემდეგ, რაც მე თვითონ დავგუგლე კითხვა როგორ მოვაწეროთ ხელი apk ფაილს?", ვიცი, რომ არც ისე ადვილია ყველაფერში მართლაც მოქმედი და გასაგები ინსტრუქციის პოვნა. ამიტომ გადავწყვიტე თავად დავწერო მასალა, თუ როგორ სწორად მოვაწერო ხელი თქვენს პროგრამას ან თამაშს Android-ზე.

როგორც ახლა ცნობილია ციფრული ხელმოწერა, თქვენი ქმნილება არ განთავსდება მარკეტზე და ეს უკვე სერიოზულია. მე შევამჩნიე ბევრი ახალგაზრდა ანდროიდის დეველოპერი, ასე ვთქვათ, დამწყებთათვის სრულიად ავიწყდებათ ხელი მოაწერონ აპლიკაციას და ცდილობენ რაღაცის გაკეთებას მოგვიანებით და ყველას აინტერესებს რატომ აკეთებენ არ არის შესაძლებელი ამა თუ იმ მოქმედების შესრულება მათი APK ფაილით.

მაშ ასე, ნუ გავაჭიანურებთ და დაუყოვნებლივ დავიწყოთ იმით, თუ როგორ შეგიძლიათ ხელი მოაწეროთ თქვენს apk ფაილს და როგორ გამოიყენოთ იგი რეალურად სასურველი შედეგის მისაღწევად.

ეს მეთოდი ყველა ჩამოთვლილიდან ყველაზე სწორია, ამიტომ მას ამ მასალაში აღვწერთ. ჩვენ გავაკეთებთ ჩვენს გასაღებებს ჩვენი მონაცემებით და სერთიფიკატებით და გამოვიყენებთ თქვენს მიერ შექმნილ აპლიკაციაზე ხელმოწერისთვის.

სამუშაოსთვის გვჭირდება: OpenSSL და SignApk.

პირველი, მოდით გავაკეთოთ სერთიფიკატი და ხელმოწერის გასაღები. დააინსტალირე OpenSSL. ინსტალაციის დროს, ინსტალერი მოგთხოვთ დააკოპიროთ კომპონენტები Windows საქაღალდეში, აირჩიეთ Bin საქაღალდე, რომელიც იქნება ადგილი, სადაც თქვენ დააინსტალირებთ მთელ OpenSSL-ს.

ახლა გახსენით სისტემის ადმინისტრატორის სახელით (ეს ძალიან მნიშვნელოვანია!) ბრძანების ხაზი. შემდეგ, ბრძანების ხაზზე, გადადით bin საქაღალდეში, რომელიც მდებარეობს საქაღალდეში, სადაც დააინსტალირეთ OpenSSL (მაგალითად, C:\OpenSSL\bin\ან C:\Program Files\OpenSSL\bin\). თუ არ იცით, სხვა საქაღალდეში გადატანა ხდება ბრძანებით cd. ანუ სასურველ საქაღალდეში გადასასვლელად უნდა აწარმოოთ შემდეგი ბრძანება:

cd C:\OpenSSL\bin\

როგორც კი Bin საქაღალდეში მოხვდებით, შეგიძლიათ პირდაპირ გააგრძელოთ სერთიფიკატის და გასაღების შექმნა.

Ნაბიჯი 1(ჩვენ ვასრულებთ გასაღების გენერირებას 1024 ბიტიანი სიგრძით)

გაუშვით ბრძანება:

openssl genrsa -out key.pem 1024

ნაბიჯი 2(გასაღების საფუძველზე, ჩვენ ვქმნით სერთიფიკატის მოთხოვნას)

გაუშვით ბრძანება:

openssl req -new -key key.pem -out request.pem

ამ ეტაპზე მოგიწევთ თქვენი მონაცემების შეყვანა, რაც დაგიდასტურებთ სერთიფიკატში.

ნაბიჯი 3 (შექმენით პირადი გასაღები სერტიფიკატიდან)

გაუშვით ბრძანება:

openssl x509 -req -days 9999 -in request.pem -signkey key.pem -out certificate.pem

ნაბიჯი 4(შეასრულეთ საჯარო გასაღების გენერაცია)

გაუშვით ბრძანება:

openssl pkcs8 -topk8 -outform DER -in key.pem -inform PEM -out key.pk8 -nocrypt

ამ ეტაპზე დასრულებულია ფაილების შექმნა, რომლებიც გვჭირდება თქვენი თამაშებისა და აპლიკაციების ხელმოწერისთვის. გენერირებული გასაღებისა და სერთიფიკატის გამოყენებით, შეგიძლიათ ხელი მოაწეროთ იმდენ თამაშსა და აპლიკაციას Android-ზე, რამდენიც გსურთ.

ახლა კი რეალურად, დავიწყოთ განაცხადზე ხელმოწერა. გახსენით არქივი SingApk-დან, გადმოწერილი ზემოთ მოცემული ბმულიდან. გადადით Bin საქაღალდიდან, სადაც შევქმენით სერთიფიკატი და გასაღები 2 ფაილი: მოწმობა.პემდა გასაღები.pk8საქაღალდეში, სადაც ამოშალეთ SingApk. Windows-მა უნდა აჩვენოს ფაილის ჩანაცვლების დიალოგი - ჩანაცვლება.

ახლა, იმისათვის, რომ ხელი მოაწეროთ apk ფაილს უნიკალური ციფრული ხელმოწერით, რომელიც თქვენ თვითონ შექმენით, უბრალოდ გადაიტანეთ თქვენი apk ფაილი sign_APK.bat. იმისათვის, რომ არ გადაიტანოთ ფაილი ერთი ფანჯრიდან მეორეში (ეს არ არის მოსახერხებელი), გადაიტანეთ თქვენი apk ფაილი საქაღალდეში SingApk-ით. შესრულების შემდეგ, ფაილი გამოჩნდება საქაღალდეში SingApk-ით apk_signed.apk, რომელიც იქნება თქვენი ხელმოწერილი აპლიკაცია ან თამაში.

აპში შესვლის ფუნქციით Google Play Google-ს შეუძლია მართოს თქვენი აპის ხელმოწერის გასაღები და დაიცვას ეს გასაღები და გამოიყენოს იგი თქვენი APK-ების გასავრცელებლად ხელმოწერისთვის. შენახვის ეს მეთოდი დაგიცავთ გასაღების დაკარგვის ან გაფუჭების შემთხვევაში.

Მნიშვნელოვანი! Android App Bundles-ის გამოსაყენებლად (რეკომენდებული ფორმატი აპების გამოქვეყნებისთვის), თქვენ უნდა დარეგისტრირდეთ Google Play App Signing პროგრამაში, სანამ ატვირთავთ App Bundle-ს Play Console-ში.

ანგარიშის მფლობელებს და მომხმარებლებს, რომლებსაც აქვთ გლობალური წარმოების მართვის ნებართვები, რომლებმაც მიიღეს გამოყენების პირობები, შეუძლიათ რეგისტრაცია. Google Play აპის ხელმოწერის პროგრამაში ერთდროულად მხოლოდ ერთი აპლიკაციის რეგისტრაცია შეგიძლიათ.

მუშაობის პრინციპები

როდესაც იყენებთ აპის ხელმოწერის ფუნქციას Google Play-ზე, თქვენი გასაღებები ინახება იმავე ინფრასტრუქტურაში, როგორც Google keys და დაცულია გასაღების მართვის სპეციალური სერვისით. Google-ის ტექნიკური ინფრასტრუქტურის შესახებ დეტალური ინფორმაცია შეგიძლიათ იხილოთ Google Cloud უსაფრთხოების დოკუმენტაციაში.

Android აპები ხელმოწერილია პირადი გასაღებით. თითოეულ ასეთ გასაღებთან ასოცირდება საჯარო სერტიფიკატი, რომელიც მოწყობილობებსა და სერვისებს შეუძლიათ გამოიყენონ აპლიკაციების უსაფრთხოებისა და მათი განახლებების შესამოწმებლად. მხოლოდ ის განახლებებია დაინსტალირებული მოწყობილობებზე, რომელთა ხელმოწერა ემთხვევა ხელმოწერას დაინსტალირებული აპლიკაცია. თუ Google-ს აძლევთ უფლებას მართოს თქვენი აპის ხელმოწერის გასაღები, პროცესი უფრო უსაფრთხო იქნება.

Შენიშვნა.არასავალდებულოა Google Play-ში აპის ხელმოწერის ფუნქციის გამოყენება. შეგიძლიათ ატვირთოთ APK და მართოთ საკუთარი გასაღებები App Bundles-ის გამოყენების გარეშე. თუმცა, თუ გასაღების მაღაზიაზე წვდომას დაკარგავთ ან ის გატეხილია, თქვენ ვერ შეძლებთ თქვენი აპის განახლებას და მოგიწევთ მისი ხელახლა გამოქვეყნება პაკეტის სხვა სახელით.

გასაღებების, ობიექტების და ხელსაწყოების აღწერა
Ვადები აღწერა
განაცხადის ხელმოწერის გასაღები

გასაღები, რომელსაც Google Play იყენებს მომხმარებლის მოწყობილობაზე მიწოდებული APK ფაილების ხელმოწერისთვის. როდესაც დარეგისტრირდებით აპის ხელმოწერის პროგრამაში Google Play-ზე, შეგიძლიათ ატვირთოთ ხელმოწერის არსებული გასაღები ან მისცეთ Google-ს ახლის გენერირება.

ჩამოტვირთვის გასაღები

ატვირთვის გასაღების გენერირების ორი გზა არსებობს:

  • გამოიყენეთ განაცხადის ხელმოწერის გასაღები.თუ პროგრამაში დარეგისტრირებისას Google-ს ნება დართეთ აპლიკაციის ხელმოწერის გასაღების გენერირება, ატვირთვის გასაღები იქნება ის გასაღები, რომელიც გამოიყენეთ აპის პირველ გამოშვებაზე ხელმოწერისთვის.
  • გამოიყენეთ ცალკე ატვირთვის გასაღები.თუ პროგრამაში დარეგისტრირებისას თქვენი საკუთარი აპლიკაციის ხელმოწერის გასაღები წარადგინეთ, უსაფრთხოებისთვის შეგიძლიათ შექმნათ ახალი ატვირთვის გასაღები. თუ არ გსურთ ამის გაკეთება, გამოიყენეთ აპის ხელმოწერის გასაღები, როგორც ჩამოტვირთვის გასაღები, რათა მოაწეროთ ხელი ახალ გამოშვებებს.
სერთიფიკატი (.der ან .pem)

სერტიფიკატი, რომელიც შეიცავს საჯარო გასაღებს და დამატებით ინფორმაციას მისი მფლობელის შესახებ. საჯარო გასაღების სერტიფიკატი ნებისმიერს აცნობებს, ვინ მოაწერა ხელი App Bundle-ს ან APK ფაილს. ამ სერტიფიკატის გაზიარება შესაძლებელია, რადგან ის არ შეიცავს პირად გასაღებს.

გასაღებების API პროვაიდერებთან დასარეგისტრირებლად, შეგიძლიათ ჩამოტვირთოთ საჯარო სერტიფიკატი განაცხადის ხელმოწერის გასაღებისთვის გვერდზე განაცხადის ხელმოწერა Play Console-ში. საჯარო გასაღების სერტიფიკატის გაზიარება შესაძლებელია ყველასთან, რადგან ის არ შეიცავს პირად გასაღებს.

თითის ანაბეჭდის სერტიფიკატი

სერთიფიკატის მოკლე და უნიკალური იდენტიფიკატორი. თითის ანაბეჭდს, პაკეტის სახელთან ერთად, ხშირად ითხოვენ API პროვაიდერები თავიანთ სერვისებზე წვდომის უზრუნველსაყოფად.

აპლიკაციის ატვირთვისა და ხელმოწერის სერთიფიკატების MD5, SHA-1 და SHA-256 თითის ანაბეჭდები შეგიძლიათ იხილოთ აქ: განაცხადის ხელმოწერა Play Console-ში. თქვენ ასევე შეგიძლიათ მიიღოთ სხვადასხვა ტიპის ციფრული თითის ანაბეჭდი. ამისათვის გადმოწერეთ ორიგინალი სერტიფიკატი DER ფორმატში იმავე გვერდზე.

Java keystore (.jks ან .keystore) უსაფრთხოების სერთიფიკატების და პირადი გასაღებების შენახვა.
PEPK ინსტრუმენტი

ინსტრუმენტი Java საცავიდან პირადი გასაღებების ექსპორტისთვის და მათი დაშიფვრის მიზნით Google Play-ში გაგზავნისთვის.

მას შემდეგ რაც Google-ს მიაწოდეთ თქვენი აპის ხელმოწერის გასაღები, აირჩიეთ თქვენი გასაღების ექსპორტი და ატვირთვა (და საჭიროების შემთხვევაში მისი საჯარო სერტიფიკატი), შემდეგ მიჰყევით ინსტრუქციებს ხელსაწყოს ჩამოსატვირთად და გამოსაყენებლად. თქვენ ასევე შეგიძლიათ ჩამოტვირთოთ, ნახოთ და გამოიყენოთ ღია კოდის PEPK ინსტრუმენტი.

განაცხადის ხელმოწერის პროცესი

შეგიძლიათ ატვირთოთ APK ფაილები, რომლებიც ხელმოწერილია ორიგინალური აპის ხელმოწერის გასაღებით Google Play-ზე აპის ხელმოწერამდე ან მის შემდეგ.

თუ განაახლებთ Android App Bundles-ზე, შეგიძლიათ შეამოწმოთ ისინი სატესტო ვერსიებში და გამოიყენოთ არსებული APK-ები საწარმოო ვერსიებში. აი, როგორ მუშაობს:

  1. თქვენ ხელს აწერთ App Bundle-ს ან APK-ს და ატვირთავთ მას Play Console-ში.
  2. აპლიკაციის ხელმოწერის პროცესი დამოკიდებულია იმაზე, თუ რას ჩამოტვირთავთ.
    • აპლიკაციის ნაკრები. Google ოპტიმიზებს APK-ებს App Bundle-ში და შემდეგ ხელს აწერს მათ App Signing Key-ით.
    • APK ფაილი ხელმოწერილია ატვირთვის გასაღებით. Google ამოწმებს თქვენს ხელმოწერას, შლის მას და ხელახლა მოაწერს ხელს APK-ებს აპის ხელმოწერის გასაღებით.
    • APK ფაილი ხელმოწერილი აპლიკაციის ხელმოწერის გასაღებით. Google ამოწმებს ხელმოწერას.
  3. Google მომხმარებლებს აწვდის ხელმოწერილ APK ფაილებს.

როგორ დარეგისტრირდეთ Google Play აპის ხელმოწერის პროგრამაში

ახალი აპლიკაციები

ნაბიჯი 1: შექმენით ატვირთვის გასაღები

  1. შექმენით ატვირთვის გასაღები ინსტრუქციის მიხედვით.
  2. მოაწერეთ ახალი APK ფაილი ატვირთვის გასაღებით.

ნაბიჯი 2: მოამზადეთ გამოშვება

  1. მითითებების შემდეგ.
  2. როგორც კი ვერსიის ტიპს აირჩევთ, დააკონფიგურირეთ თქვენი აპის ხელმოწერის პარამეტრები სექციაში „მიეცეს Google-ს უზრუნველყოს და მართოს თქვენი აპის ხელმოწერის გასაღები“.
  3. თუ დააკლიკეთ გაგრძელება, გენერირებული გასაღები გახდება ატვირთვის გასაღები, რომელიც გამოყენებული იქნება მომავალი გამოშვებების ხელმოწერისთვის. თქვენ ასევე შეგიძლიათ აირჩიოთ შემდეგი გაფართოებული პარამეტრები:
    • გამოიყენეთ ერთი გასაღები სხვადასხვა აპლიკაციისთვის დეველოპერის ანგარიშში (ვარიანტი 2).
    • ატვირთეთ არსებული აპლიკაციის ხელმოწერის გასაღები (ვარიანტი 2, 3 და 4) ექსპორტისა და ატვირთვის მეთოდის არჩევით, რომელიც საუკეთესოდ შეესაბამება თქვენ. განაცხადის ხელმოწერის გასაღებისა და მისი საჯარო სერტიფიკატის ატვირთვის შემდეგ, შეგიძლიათ გამოიყენოთ განაცხადის ხელმოწერის გასაღები, როგორც განაცხადის ხელმოწერის გასაღები.

Შენიშვნა.გასაგრძელებლად, თქვენ უნდა დაეთანხმოთ გამოყენების პირობებს და დარეგისტრირდეთ აპის ხელმოწერის პროგრამაში.

ნაბიჯი 3: დაარეგისტრირეთ თქვენი აპლიკაციის ხელმოწერის გასაღები API პროვაიდერებთან

თუ თქვენი აპლიკაცია იყენებს API-ს, მაშინ ავთენტიფიკაციისთვის, სავარაუდოდ, დაგჭირდებათ ძირითადი სერტიფიკატის რეგისტრაცია, რომლითაც Google ხელს აწერს თქვენს აპლიკაციას. სერთიფიკატის საპოვნელად:

  1. შედით Play Console-ში.
  2. აირჩიეთ აპლიკაცია.
  3. მენიუდან მარცხნივ აირჩიეთ გამოშვების მენეჯმენტი > განაცხადის ხელმოწერები.
    • თუ API პროვაიდერს სხვა ტიპის თითის ანაბეჭდი სჭირდება, შეგიძლიათ ჩამოტვირთოთ ორიგინალური სერტიფიკატი DER ფორმატში და საჭიროებისამებრ დააკონვერტიროთ შესაბამისი ხელსაწყოების გამოყენებით.
გამოქვეყნებული აპლიკაციები

ნაბიჯი 1: დარეგისტრირდით Google Play აპის ხელმოწერის პროგრამაში

  1. შედით Play Console-ში.
  2. აირჩიეთ აპლიკაცია.
  3. მენიუდან მარცხნივ აირჩიეთ გამოშვების მენეჯმენტი > განაცხადის ხელმოწერები.
  4. საჭიროების შემთხვევაში, წაიკითხეთ გამოყენების წესები და დააწკაპუნეთ Მიიღოს.

ნაბიჯი 2 გაგზავნეთ ორიგინალური გასაღები Google-ში და შექმენით ატვირთვის გასაღები

  1. იპოვეთ ორიგინალური აპის ხელმოწერის გასაღები.
  2. შედით Play Console-ში.
  3. აირჩიეთ აპლიკაცია.
  4. მენიუდან მარცხნივ აირჩიეთ გამოშვების მენეჯმენტი > განაცხადის ხელმოწერები.
  5. ატვირთეთ თქვენი არსებული აპლიკაციის ხელმოწერის გასაღები ისე, როგორც საუკეთესოდ შეეფერება თქვენს გამოშვების პროცესს.
  1. და ატვირთეთ სერთიფიკატი Google Play-ზე.
    • თქვენ ასევე შეგიძლიათ გამოიყენოთ განაცხადის ხელმოწერის გასაღები, როგორც ატვირთვის გასაღები.
  2. დააკოპირეთ განაცხადის ხელმოწერის სერტიფიკატის თითის ანაბეჭდები (MD5, SHA-1 და SHA-256).
    • ტესტირების მიზნით, შეიძლება დაგჭირდეთ ატვირთვის სერთიფიკატის დარეგისტრირება API პროვაიდერთან სერთიფიკატის ცერა ანაბეჭდისა და განაცხადის ხელმოწერის გასაღების გამოყენებით.

ნაბიჯი 4: ხელი მოაწერეთ თქვენი აპის შემდეგ განახლებას ატვირთვის გასაღებით

აპის განახლებები, რომლებიც გამოშვებულია, ხელმოწერილი უნდა იყოს ჩამოტვირთვის გასაღებით.

როგორ შევქმნათ ატვირთვის გასაღები და განაახლოთ გასაღებების მაღაზიები

შეგიძლიათ ატვირთვის გასაღების გენერირება, როდესაც დარეგისტრირდებით Google Play-ზე აპის ხელმოწერის პროგრამაში, ან შეგიძლიათ შექმნათ ის მოგვიანებით განყოფილებაში გამოშვების მენეჯმენტი > განაცხადის ხელმოწერები.

ატვირთვის გასაღების შესაქმნელად, მიჰყევით ამ ნაბიჯებს:

  1. მიჰყევით ინსტრუქციას Android Developers საიტზე. შეინახეთ გასაღები უსაფრთხო ადგილას.
  2. ჩატვირთვის გასაღების სერთიფიკატის ექსპორტი PEM ფორმატში. შეცვალეთ შემდეგი არგუმენტები ქვედა ხაზით:
    • $ keytool -ექსპორტი -rfc -keystore upload-keystore.jks -სხვა სახელის ატვირთვა -ფაილი upload_certificate.pem
  3. გამოშვების პროცესში მოთხოვნის შემთხვევაში, ატვირთეთ სერთიფიკატი Google-ში დასარეგისტრირებლად.

თუ იყენებთ ატვირთვის გასაღებს:

  • ატვირთვის გასაღები რეგისტრირებულია მხოლოდ Google-ში აპის შემქმნელის ვინაობის დასადასტურებლად.
  • თქვენი ხელმოწერა წაიშლება ყველა ატვირთული APK-დან, სანამ ისინი მიაღწევენ მომხმარებლებს.
შეზღუდვები
  • ატვირთვის გასაღები უნდა გამოიყენოს RSA დაშიფვრა და უნდა იყოს მინიმუმ 2048 ბიტიანი ზომა.
  • DSA და EC კლავიშები და 2048 ბიტზე ნაკლები RSA კლავიშები არ არის მხარდაჭერილი.
გასაღებების მაღაზიების განახლება

ჩატვირთვის გასაღების შექმნის შემდეგ, შეამოწმეთ და განაახლეთ შემდეგი მდებარეობები საჭიროებისამებრ:

  • ლოკალური სისტემა;
  • უსაფრთხო ლოკალური სერვერი (დაშვების კონტროლის სხვადასხვა სიით);
  • ღრუბლოვანი სისტემა (დაშვების კონტროლის სხვადასხვა სიებით);
  • სპეციალური სერვისები გასაღების მენეჯმენტისთვის;
  • Git საცავები.

როგორ განაახლოთ ხელმოწერის გასაღები ახალი აპის ინსტალაციისთვის

ზოგიერთ შემთხვევაში, შეგიძლიათ მოითხოვოთ აპის ხელმოწერის გასაღების განახლება. ახალი გასაღები გამოყენებული იქნება აპლიკაციის ახალი ინსტალაციებისა და განახლებების ხელმოწერისთვის, ხოლო მოძველებული გასაღები გამოყენებული იქნება ხელმოწერილი ვერსიების განახლებისთვის, რომლებიც მომხმარებლებმა უკვე დააინსტალირეს.

ხელმოწერის გასაღები შეიძლება განახლდეს მხოლოდ ერთხელ თითო აპლიკაციაზე. საეჭვო შემთხვევის შემთხვევაში, როდესაც თქვენ იყენებთ ხელმოწერის ერთსა და იმავე კლავიშს მრავალი აპლიკაციის გასაშვებად იმავე პროცესში, გასაღები ვერ განახლდება.

თქვენ უნდა მოითხოვოთ განაცხადის ხელმოწერის გასაღების განახლება შემდეგ შემთხვევებში:

  • გჭირდებათ უფრო კრიპტოგრაფიულად ძლიერი გასაღები.
  • აპის ხელმოწერის გასაღები გატეხილია.

Შენიშვნა. Play Console-ზე აპის ხელმოწერის გასაღების განახლების მოთხოვნა არ არის დაკავშირებული კლავიშის შეცვლასთან Android P-ში და შემდეგში. ამ გასაღების ჩანაცვლება ამჟამად არ არის მხარდაჭერილი Google Play-ს მიერ.

მნიშვნელოვანი შენიშვნები გასაღებების განახლების შესახებ

გასაღების განახლების მოთხოვნამდე მნიშვნელოვანია იმის გაგება, თუ რა ცვლილებებს გამოიწვევს ეს.

  • თუ თქვენ იყენებთ ხელმოწერის ერთსა და იმავე გასაღებს მრავალი აპისთვის, რათა გამოიყენოს ერთი და იგივე კოდი ან მონაცემები, თქვენ უნდა განაახლოთ აპები, რათა ამოიცნოთ როგორც ახალი, ასევე ძველი გასაღები.
  • თუ თქვენი აპი იყენებს API-ს, დარწმუნდით, რომ დაარეგისტრირეთ სერთიფიკატები ახალი და ძველი აპის ხელმოწერის გასაღებებისთვის API პროვაიდერთან მის განახლებამდე. სერთიფიკატები ხელმისაწვდომია გვერდზე განაცხადის ხელმოწერა Play Console.
  • თუ თქვენი აპლიკაციის ბევრი მომხმარებელი დააინსტალირებს განახლებებს ფაილების გაზიარების ქსელების მეშვეობით, ისინი შეძლებენ მხოლოდ განახლებების დაინსტალირებას, რომლებიც ხელმოწერილია იმავე გასაღებით, როგორც აპი დაინსტალირებულია მათ მოწყობილობებზე. თუ აპლიკაციების განახლება შეუძლებელია იმის გამო დაინსტალირებული ვერსიახელმოწერილი სხვა გასაღებით, მომხმარებლებს შეუძლიათ მისი დეინსტალაცია და ხელახლა ინსტალაცია განახლებების მისაღებად.
მოითხოვეთ გასაღების განახლება ახალი ინსტალაციისთვის. ამისათვის მიჰყევით ამ ნაბიჯებს:
  1. შედით Play Console-ში.
  2. აირჩიეთ აპლიკაცია.
  3. მენიუდან მარცხნივ აირჩიეთ გამოშვების მენეჯმენტი > განაცხადის ხელმოწერები.
  4. „აპლიკაციის ახალი ინსტალაციისთვის ხელმოწერის გასაღების განახლება“ ბარათში აირჩიეთ მოითხოვეთ გასაღების განახლება.
  5. აირჩიეთ რა უნდა გააკეთოთ მოწყობილობასთან.
    • არჩეული ვარიანტიდან გამომდინარე, შეიძლება დაგჭირდეთ დაუკავშირდეთ მხარდაჭერას თქვენი მოთხოვნის შესასრულებლად.
  6. მიეცით საშუალება Google Play-ს შექმნას ახალი აპის ხელმოწერის გასაღები (რეკომენდირებულია) ან ჩამოტვირთოს.
    • აპის ხელმოწერის გასაღების განახლების შემდეგ, თუ გასაღები იგივე იყო, რაც ატვირთვის გასაღები, შეგიძლიათ გააგრძელოთ ძველი აპის ხელმოწერის გასაღების გამოყენება ატვირთვის გასაღებად ან შექმნათ ახალი.
  • თუ თქვენ ასევე გამოაქვეყნეთ თქვენი აპი Google Play-ს გარეთ, ან აპირებთ ამის გაკეთებას, შეგიძლიათ შექმნათ წინასწარ გაზიარებული აპის ხელმოწერის გასაღები და ატვირთოთ იგი Google-ში, როდესაც დარეგისტრირდებით Google Play App Signing Program-ში.
  • თქვენი ანგარიშის დასაცავად, ჩართეთ ორეტაპიანი დადასტურებაყველა ანგარიშისთვის, რომელსაც აქვს წვდომა Play Console-ზე.
  • როგორც კი App Bundle გამოქვეყნდება სატესტო ან საწარმოო ვერსიაში, შეგიძლიათ გახსნათ App Bundle ბრაუზერი და ჩამოტვირთოთ ZIP არქივი, რომელიც შეიცავს ყველა APK-ს კონკრეტული მოწყობილობისთვის. ეს APK-ები უკვე ხელმოწერილია აპის ხელმოწერის გასაღებით. თქვენ შეგიძლიათ დააინსტალიროთ ისინი მოწყობილობაზე ZIP არქივიდან კომუნალური პროგრამის გამოყენებით ბრძანების ხაზი bundletool.
  • მეტი უსაფრთხოებისთვის შექმენით ახალი ატვირთვის გასაღები, რომელიც განსხვავდება აპის ხელმოწერის გასაღებისგან.
  • თუ გსურთ ატვირთვის გასაღებით ხელმოწერილი APK-ის ტესტირება, დაარეგისტრირეთ გასაღები სერვისით ან API-ით, რომელიც იყენებს აპის ხელმოწერას ავტორიზაციისთვის (როგორიცაა Google Maps API ან Facebook SDK).
  • თუ იყენებთ Google API-ებს, შეგიძლიათ დაარეგისტრიროთ ატვირთვის სერტიფიკატი Google Cloud Console-ში.

რა უნდა გააკეთოს, თუ გასაღები დაიკარგა ან გატეხილია

თუ დაკარგეთ წვდომა თქვენს პირად ატვირთვის გასაღებზე ან ის გატეხილია და ჰკითხეთ თქვენი ანგარიშის მფლობელს. მხარდაჭერასთან დაკავშირებისას, ანგარიშის მფლობელმა უნდა დაურთოს upload_certificate.pem ფაილი.

როდესაც დამხმარე ჯგუფი დაარეგისტრირებს ატვირთვის ახალ გასაღებს, თქვენ მიიღებთ ელ.წერილს და შემდეგ შეგიძლიათ განაახლოთ გასაღებების მაღაზიები და დაარეგისტრიროთ გასაღები API პროვაიდერებთან.

Მნიშვნელოვანი!ატვირთვის გასაღების გადაყენება არ იმოქმედებს აპის ხელმოწერის გასაღებზე, რომელსაც Google Play იყენებს APK ფაილების მომხმარებლებისთვის გაგზავნამდე ხელმოწერისთვის.

სასარგებლო იყო ინფორმაცია?

როგორ შეიძლება ამ სტატიის გაუმჯობესება?

ზოგჯერ ანდროიდის ზოგიერთი აპლიკაცია რატომღაც არ უხდება მომხმარებელს. ამის მაგალითია შემაშფოთებელი რეკლამები. და ეს ასეც ხდება - პროგრამაში ყველა კარგად ერკვევა, მაგრამ მასში მხოლოდ თარგმანია ან მრუდი, ან საერთოდ არ არსებობს. ან, მაგალითად, პროგრამა საცდელია, მაგრამ სრული ვერსიის მიღების საშუალება არ არსებობს. როგორ შევცვალოთ სიტუაცია?

შესავალი

ამ სტატიაში ვისაუბრებთ იმაზე, თუ როგორ უნდა დაშალოთ APK აპლიკაციით, გადავხედოთ მის შიდა სტრუქტურას, დავშალოთ და დავაკომპილოთ ბაიტეკოდი, ასევე შევეცდებით რამდენიმე ცვლილება შევიტანოთ აპლიკაციებში, რამაც შეიძლება მოგვიტანოს ესა თუ ის სარგებელი.

ამ ყველაფრის დამოუკიდებლად გასაკეთებლად, დაგჭირდებათ Java ენის მინიმუმ საბაზისო ცოდნა, რომელშიც იწერება Android აპლიკაციები და XML ენა, რომელიც ყველგან გამოიყენება Android-ში - თავად აპლიკაციის აღწერიდან და მისი წვდომის უფლებების სტრიქონების შენახვამდე. რომელიც გამოჩნდება ეკრანზე. თქვენ ასევე დაგჭირდებათ სპეციალიზებული კონსოლის პროგრამული უზრუნველყოფის დამუშავების უნარი.

მაშ, რა არის APK პაკეტი, რომელშიც განაწილებულია აბსოლუტურად ყველა პროგრამა Android-ისთვის?

განაცხადის დეკომპილაცია

სტატიაში ჩვენ მხოლოდ დაშლილი აპლიკაციის კოდით ვიმუშავეთ, თუმცა, თუ უფრო სერიოზულ ცვლილებებს შეიტანთ დიდ აპლიკაციებში, გაცილებით რთული იქნება smali კოდის გაგება. საბედნიეროდ, ჩვენ შეგვიძლია dex კოდის დეკომპილირება Java-ის კოდში, რომელიც მართალია ორიგინალური არ არის და არ არის კომპილირებული, მაგრამ ბევრად უფრო ადვილია წაკითხვა და აპლიკაციის ლოგიკის გაგება. ამისათვის ჩვენ გვჭირდება ორი ინსტრუმენტი:

  • dex2jar - Dalvik bytecode-ის თარჯიმანი JVM bytecode-ზე, რომლის საფუძველზეც შეგვიძლია მივიღოთ Java კოდი;
  • jd-gui არის თავად დეკომპილერი, რომელიც საშუალებას გაძლევთ მიიღოთ იკითხებადი Java კოდი JVM bytecode-დან. გარდა ამისა, შეგიძლიათ გამოიყენოთ Jad (www.varanecas.com/jad); მიუხედავად იმისა, რომ ის საკმაოდ ძველია, ზოგიერთ შემთხვევაში ის წარმოქმნის უფრო წასაკითხ კოდს, ვიდრე Jd-gui.

ისინი უნდა იქნას გამოყენებული ასე. პირველ რიგში, ჩვენ ვიწყებთ dex2jar-ს, არგუმენტად აკონკრეტებთ გზას apk პაკეტისკენ:

%dex2jar.sh mail.apk

შედეგად, mail.jar Java პაკეტი გამოჩნდება მიმდინარე დირექტორიაში, რომელიც უკვე შეიძლება გაიხსნას jd-gui-ში Java კოდის სანახავად.

APK პაკეტების მოწყობა და მათი მიღება

ანდროიდის აპლიკაციის პაკეტი არსებითად ჩვეულებრივი ZIP ფაილია, რომელიც არ საჭიროებს რაიმე სპეციალურ ინსტრუმენტებს შინაარსის სანახავად და გასახსნელად. საკმარისია არქივატორი - 7zip Windows-ისთვის ან კონსოლის unzip Linux-ში. მაგრამ ეს ეხება შეფუთვას. Რა არის შიგნით? შიგნით, ზოგადად გვაქვს შემდეგი სტრუქტურა:

  • META-INF/- შეიცავს აპლიკაციის ციფრულ სერთიფიკატს, რომელიც ადასტურებს მის შემქმნელს და პაკეტის ფაილების ჩეკს;
  • res/ - სხვადასხვა რესურსი, რომელსაც აპლიკაცია იყენებს თავის მუშაობაში, როგორიცაა სურათები, ინტერფეისის დეკლარაციული აღწერა და სხვა მონაცემები;
  • AndroidManifest.xml- განაცხადის აღწერა. ეს მოიცავს, მაგალითად, საჭირო ნებართვების ჩამონათვალს, Android-ის საჭირო ვერსიას და ეკრანის საჭირო გარჩევადობას;
  • კლასები.dex- შედგენილი განაცხადის ბაიტეკოდი Dalvik ვირტუალური მანქანისთვის;
  • რესურსები.arsc- ასევე რესურსები, მაგრამ სხვა სახის - კერძოდ, სტრიქონები (დიახ, ეს ფაილი შეიძლება გამოყენებულ იქნას რუსიფიკაციისთვის!).

ჩამოთვლილი ფაილები და დირექტორიები არის, თუ არა ყველა, მაშინ, შესაძლოა, APK-ების დიდ უმრავლესობაში. თუმცა, არის კიდევ რამდენიმე ნაკლებად გავრცელებული ფაილი/ცნობარი, რომელიც უნდა აღინიშნოს:

  • აქტივები- რესურსების ანალოგი. მთავარი განსხვავება ისაა, რომ რესურსზე წვდომისთვის საჭიროა იცოდეთ მისი იდენტიფიკატორი, ხოლო აქტივების სიის დინამიურად მიღება შესაძლებელია აპლიკაციის კოდში AssetManager.list() მეთოდის გამოყენებით;
  • lib- მშობლიური Linux ბიბლიოთეკები დაწერილი NDK (Native Development Kit) დახმარებით.

ამ დირექტორიას იყენებენ თამაშების მწარმოებლები C/C++-ში დაწერილი სათამაშო ძრავის დასაყენებლად, ასევე მაღალი ხარისხის აპლიკაციების შემქმნელების მიერ (მაგალითად, გუგლ ქრომი). ესმოდა მოწყობილობა. მაგრამ როგორ მივიღოთ ინტერესის განაცხადის პაკეტის ფაილი? იმის გამო, რომ შეუძლებელია მოწყობილობიდან APK ფაილების მიღება rooting-ის გარეშე (ისინი არიან / data / app დირექტორიაში) და rooting ყოველთვის არ არის მიზანშეწონილი, აპლიკაციის ფაილის კომპიუტერში გადატანის მინიმუმ სამი გზა არსებობს:

  • APK Downloader გაფართოება Chrome-ისთვის;
  • რეალური APK Leecher აპლიკაცია;
  • სხვადასხვა ფაილების ჰოსტინგი და warezniki.

რომელი გამოვიყენოთ გემოვნების საკითხია; ჩვენ გვირჩევნია გამოვიყენოთ ცალკეული აპლიკაციები, ამიტომ აღვწერთ Real APK Leecher-ის გამოყენებას, მით უმეტეს, რომ ის Java-შია დაწერილი და, შესაბამისად, იმუშავებს თუნდაც Windows-ში, თუნდაც nix-ში.

პროგრამის დაწყების შემდეგ თქვენ უნდა შეავსოთ სამი ველი: ელფოსტა, პაროლი და მოწყობილობის ID - და აირჩიეთ ენა. პირველი ორი არის თქვენი Google ანგარიშის ელექტრონული ფოსტა და პაროლი, რომელსაც იყენებთ მოწყობილობაზე. მესამე არის მოწყობილობის ID და მისი მიღება შეგიძლიათ აკრიფეთ კოდის აკრეფით # #8255## და შემდეგ იპოვნეთ ხაზი მოწყობილობის ID. შევსებისას თქვენ უნდა შეიყვანოთ მხოლოდ ID ანდროიდის პრეფიქსის გარეშე.

შევსების და შენახვის შემდეგ ხშირად ჩნდება შეტყობინება „შეცდომა სერვერთან დაკავშირებისას“. მას არაფერი აქვს საერთო Google Play-სთან, ასე რომ, თავისუფლად უგულებელყოფთ მას და მოძებნეთ თქვენთვის საინტერესო პაკეტები.

განხილვა და მოდიფიკაცია

ვთქვათ, იპოვნეთ თქვენთვის საინტერესო პაკეტი, ჩამოტვირთეთ, ამოშალეთ... და როცა ცდილობდით ზოგიერთი XML ფაილის ნახვას, გაგიკვირდათ, როცა აღმოაჩინეთ, რომ ფაილი არ არის ტექსტური ფაილი. როგორ ხდება მისი დეკომპილი და ზოგადად პაკეტებთან მუშაობა? ნამდვილად საჭიროა SDK-ის დაყენება? არა, თქვენ არ გჭირდებათ SDK-ის დაყენება. სინამდვილეში, APK პაკეტების ამოხსნის, შეცვლისა და შეფუთვის ყველა ნაბიჯისთვის საჭიროა შემდეგი ინსტრუმენტები:

  • ZIP არქივატორიგასახსნელად და შესაფუთად;
  • სმალი- Dalvik ვირტუალური მანქანის ბაიტეკოდის ასამბლერი/დემონტაჟი (code.google.com/p/smali);
  • აპტ- რესურსების შეფუთვის ინსტრუმენტი (ნაგულისხმევად, რესურსები ინახება ორობითი ფორმით აპლიკაციის მუშაობის ოპტიმიზაციისთვის). მოყვება Android SDK, მაგრამ მისი მიღება შესაძლებელია ცალკე;
  • ხელმომწერი- ინსტრუმენტი შეცვლილი პაკეტის ციფრული ხელმოწერისთვის (bit.ly/Rmrv4M).

თქვენ შეგიძლიათ გამოიყენოთ ყველა ეს ინსტრუმენტი ცალკე, მაგრამ ეს მოუხერხებელია, ამიტომ უმჯობესია გამოიყენოთ უფრო მაღალი დონის პროგრამული უზრუნველყოფა, რომელიც აგებულია მათ საფუძველზე. თუ თქვენ მუშაობთ Linux-ზე ან Mac OS X-ზე, არის ინსტრუმენტი სახელწოდებით apktool. ეს საშუალებას გაძლევთ გახსნათ რესურსები თავდაპირველ ფორმაში (მათ შორის ორობითი XML და arsc ფაილები), აღადგინოთ პაკეტი შეცვლილი რესურსებით, მაგრამ მან არ იცის როგორ მოაწეროს ხელი პაკეტებს, ასე რომ თქვენ მოგიწევთ ხელმომწერის პროგრამის ხელით გაშვება. იმისდა მიუხედავად, რომ პროგრამა დაწერილია ჯავაში, მისი ინსტალაცია საკმაოდ არასტანდარტულია. ჯერ თავად უნდა მიიღოთ jar ფაილი:

$ cd /tmp $ wget http://bit.ly/WC3OCz $ tar -xjf apktool1.5.1.tar.bz2

$ wget http://bit.ly/WRjEc7 $ tar -xjf apktool-install-linux-r05-ibot.tar.bz2

$ mv apktool.jar ~/bin $ mv apktool-install-linux-r05-ibot/* ~/bin $ export PATH=~/bin:$PATH

თუ თქვენ მუშაობთ Windows-ზე, მაშინ არის მისთვის შესანიშნავი ინსტრუმენტი სახელწოდებით Virtual Ten Studio, რომელიც ასევე აგროვებს ყველა ამ ინსტრუმენტს (თავად apktool-ის ჩათვლით), მაგრამ CLI ინტერფეისის ნაცვლად, მომხმარებელს აძლევს ინტუიციურ გრაფიკულ ინტერფეისს, რომლითაც შეასრულეთ შეფუთვის, დაშლისა და დეკომპილაციის ოპერაციები რამდენიმე დაწკაპუნებით. ეს ინსტრუმენტი არის Donation-ware, ანუ ფანჯრები ხანდახან ჩნდება ლიცენზიის მოპოვების წინადადებით, მაგრამ ეს, საბოლოო ჯამში, შეიძლება მოითმინოს. აზრი არ აქვს მის აღწერას, რადგან ინტერფეისის გაგება რამდენიმე წუთში შეგიძლიათ. მაგრამ apktool, მისი კონსოლის ბუნებიდან გამომდინარე, უფრო დეტალურად უნდა იყოს განხილული.


განიხილეთ apktool პარამეტრები. მოკლედ, არსებობს სამი ძირითადი ბრძანება: d (decode), b (build) და if (install frame). თუ პირველი ორი ბრძანებით ყველაფერი ნათელია, მაშინ რას აკეთებს მესამე, პირობითი ოპერატორი? ის ხსნის მითითებულ UI ჩარჩოს, რომელიც საჭიროა სისტემის პაკეტის ამოკვეთისას.

განვიხილოთ პირველი ბრძანების ყველაზე საინტერესო ვარიანტები:

  • -ს- არ დაშალოთ dex ფაილები;
  • -რ- არ გახსნათ რესურსები;
  • -ბ- არ ჩადოთ გამართვის ინფორმაცია dex ფაილის დაშლის შედეგებში;
  • --ჩარჩო-გზა- გამოიყენეთ მითითებული UI ჩარჩო ჩაშენებული apktool-ის ნაცვლად. ახლა განიხილეთ b ბრძანების რამდენიმე ვარიანტი:
  • -ვ- იძულებითი შეკრება ცვლილებების შემოწმების გარეშე;
  • -ა- მიუთითეთ გზა aapt-მდე (აპკ არქივის შესაქმნელად ინსტრუმენტი), თუ რაიმე მიზეზით გსურთ მისი გამოყენება სხვა წყაროდან.

apktool-ის გამოყენება ძალიან მარტივია, თქვენ მხოლოდ უნდა მიუთითოთ ერთ-ერთი ბრძანება და APK-ის გზა, მაგალითად:

$ apktool d mail.apk

ამის შემდეგ, ყველა ამოღებული და დაშლილი პაკეტის ფაილი გამოჩნდება ფოსტის დირექტორიაში.

მომზადება. გამორთეთ რეკლამები

თეორია, რა თქმა უნდა, კარგია, მაგრამ რატომ არის საჭირო, თუ არ ვიცით რა ვუყოთ შეუფუთავ პაკეტს? შევეცადოთ გამოვიყენოთ თეორია ჩვენივე სარგებლისთვის, კერძოდ, შევცვლით ზოგიერთ პროგრამულ უზრუნველყოფას ისე, რომ არ გვიჩვენოს რეკლამები. მაგალითად, იყოს ვირტუალური ჩირაღდანი - ვირტუალური ჩირაღდანი. ჩვენთვის ეს პროგრამა შესანიშნავია, რადგან ის სავსეა შემაშფოთებელი რეკლამებით და საკმარისად მარტივია, რომ არ დაიკარგოს კოდის ველურში.


ასე რომ, ერთ-ერთი ზემოაღნიშნული მეთოდის გამოყენებით, ჩამოტვირთეთ აპლიკაცია მარკეტიდან. თუ გადაწყვეტთ გამოიყენოთ Virtuous Ten Studio, უბრალოდ გახსენით APK ფაილი აპლიკაციაში და ამოალაგეთ იგი, რისთვისაც შექმენით პროექტი (ფაილი -> ახალი პროექტი), შემდეგ კონტექსტური მენიუპროექტი, აირჩიეთ ფაილის იმპორტი. თუ თქვენი არჩევანი დაეცა apktool-ზე, მაშინ საკმარისია შეასრულოთ ერთი ბრძანება:

$ apktool d com.kauf.particle.virtualtorch.apk

ამის შემდეგ, ფაილის ხე გამოჩნდება com.kauf.particle.virtualtorch დირექტორიაში, წინა განყოფილებაში აღწერილის მსგავსი, მაგრამ dex ფაილების და apktool.yml ფაილის ნაცვლად დამატებითი smali დირექტორია. პირველი შეიცავს აპლიკაციის შესრულებადი dex ფაილის დაშლილ კოდს, მეორე შეიცავს სერვისის ინფორმაციას, რომელიც საჭიროა apktool-ის მიერ პაკეტის უკან აწყობისთვის.

პირველი ადგილი, რომელიც უნდა ვეძებოთ, რა თქმა უნდა, არის AndroidManifest.xml. და აქ ჩვენ მაშინვე ვხვდებით შემდეგ ხაზს:

ადვილი მისახვედრია, რომ ის არის პასუხისმგებელი აპლიკაციისთვის ინტერნეტის გამოყენების ნებართვის მინიჭებაზე. ფაქტობრივად, თუ ჩვენ უბრალოდ გვინდა რეკლამებისგან თავის დაღწევა, დიდი ალბათობით საკმარისი იქნება აპლიკაციის ინტერნეტიდან აკრძალვა. ვცადოთ ამის გაკეთება. წაშალეთ მითითებული ხაზი და სცადეთ პროგრამის შედგენა apktool-ის გამოყენებით:

$ apktool b com.kauf.particle.virtualtorch

შედეგად მიღებული APK ფაილი გამოჩნდება com.kauf.particle.virtualtorch/build/ დირექტორიაში. თუმცა, მისი ინსტალაცია შეუძლებელია, რადგან მას არ აქვს ციფრული ხელმოწერა და ფაილების შემოწმება (მას უბრალოდ არ აქვს META-INF/ დირექტორია). ჩვენ უნდა მოვაწეროთ პაკეტს apk-signer უტილიტა. Დაიწყო. ინტერფეისი შედგება ორი ჩანართისგან - პირველზე (Key Generator) ჩვენ ვქმნით გასაღებებს, მეორეზე (APK Signer) ვაწერთ ხელს. ჩვენი პირადი გასაღების შესაქმნელად, შეავსეთ შემდეგი ველები:

  • სამიზნე ფაილი- keystore გამომავალი ფაილი; ის ჩვეულებრივ ინახავს ერთ წყვილ გასაღებს;
  • პაროლიდა დაადასტურეთ- პაროლი შენახვისთვის;
  • მეტსახელი- გასაღების დასახელება საცავში;
  • მეტსახელის პაროლიდა დაადასტურეთ- საიდუმლო გასაღების პაროლი;
  • მოქმედების ვადა- მოქმედების ვადა (წლები). ნაგულისხმევი მნიშვნელობა ოპტიმალურია.

დანარჩენი ველები, ზოგადად, არჩევითია - მაგრამ თქვენ უნდა შეავსოთ მინიმუმ ერთი.


გაფრთხილება

apk-signer-ით აპლიკაციის გასაფორმებლად, თქვენ უნდა დააინსტალიროთ Android SDK და მიუთითოთ მისი სრული გზა აპლიკაციის პარამეტრებში.

ყველა ინფორმაცია მოცემულია მხოლოდ საინფორმაციო მიზნებისთვის. არც რედაქტორები და არც ავტორი არ არიან პასუხისმგებელი ამ სტატიის მასალებით მიყენებულ შესაძლო ზიანს.

ახლა თქვენ შეგიძლიათ ხელი მოაწეროთ APK-ს ამ გასაღებით. APK Signer ჩანართზე აირჩიეთ ახლად გენერირებული ფაილი, შეიყვანეთ მისთვის პაროლი, გასაღების მეტსახელი და პაროლი, შემდეგ იპოვეთ APK ფაილი და თამამად დააწკაპუნეთ ღილაკზე "ხელმოწერა". თუ ყველაფერი კარგად წავა, პაკეტს მოეწერება ხელი.

ინფორმაცია

ვინაიდან ჩვენ ხელი მოვაწერეთ პაკეტს ჩვენივე გასაღებით, ის ეწინააღმდეგება თავდაპირველ აპლიკაციას, რაც ნიშნავს, რომ როდესაც ვცდილობთ პროგრამული უზრუნველყოფის განახლებას ბაზრის მეშვეობით, მივიღებთ შეცდომას.

მხოლოდ მესამე მხარის პროგრამულ უზრუნველყოფას სჭირდება ციფრული ხელმოწერა, ასე რომ, თუ თქვენ ცვლით სისტემურ აპლიკაციებს, რომლებიც დაინსტალირებულია მათი კოპირებით /system/app/ დირექტორიაში, მაშინ არ გჭირდებათ მათი ხელმოწერა.

ამის შემდეგ პაკეტს სმარტფონზე ვყრით, ვაინსტალირებთ და ვაწარმოებთ. Voila, რეკლამა გაქრა! თუმცა, ამის ნაცვლად, გამოჩნდა შეტყობინება, რომ ჩვენ არ გვაქვს ინტერნეტი ან არ გვაქვს შესაბამისი ნებართვები. თეორიულად, ეს შეიძლება იყოს საკმარისი, მაგრამ შეტყობინება გამაღიზიანებლად გამოიყურება და, მართალი გითხრათ, ჩვენ უბრალოდ გაგვიმართლა სულელური აპლიკაცია. კარგად დაწერილი პროგრამული უზრუნველყოფა, სავარაუდოდ, დააზუსტებს მის რწმუნებათა სიგელებს ან შეამოწმებს ინტერნეტ კავშირს და წინააღმდეგ შემთხვევაში უბრალოდ უარს იტყვის დაწყებაზე. როგორ უნდა იყოს ამ შემთხვევაში? რა თქმა უნდა, შეცვალეთ კოდი.

როგორც წესი, აპლიკაციის ავტორები ქმნიან სპეციალურ კლასებს რეკლამებისა და ამ კლასების გამოძახების მეთოდების საჩვენებლად აპლიკაციის ან მისი ერთ-ერთი „აქტივობის“ დროს (მარტივი სიტყვებით, აპლიკაციის ეკრანები). შევეცადოთ ვიპოვოთ ეს კლასები. ჩვენ მივდივართ smali დირექტორიაში, შემდეგ com-ში (org არის მხოლოდ ღია გრაფიკული ბიბლიოთეკა cocos2d), შემდეგ kauf (ზუსტად იქ, რადგან ეს არის დეველოპერის სახელი და მთელი მისი კოდი იქ არის) - და აი, მარკეტინგის დირექტორია. შიგნით ვპოულობთ ფაილების თაიგულს smali გაფართოებით. ეს არის კლასები და მათგან ყველაზე საყურადღებოა Ad.smali კლასი, რომლის სახელწოდებითაც ადვილი მისახვედრია, რომ ის აჩვენებს რეკლამებს.

ჩვენ შეგვეძლო შევცვალოთ მისი მუშაობის ლოგიკა, მაგრამ ბევრად უფრო ადვილი იქნებოდა ზარების სულელურად ამოღება მის რომელიმე მეთოდზე თავად აპლიკაციიდან. აქედან გამომდინარე, ჩვენ გავდივართ მარკეტინგის დირექტორიაში და მივდივართ მეზობელ ნაწილაკების დირექტორიაში, შემდეგ კი ვირტუალურ ტორშზე. MainActivity.smali ფაილი აქ განსაკუთრებულ ყურადღებას იმსახურებს. ეს არის სტანდარტული ანდროიდის კლასი, რომელიც გენერირებულია Android SDK-ით და დაყენებულია აპლიკაციის შესვლის წერტილად (C-ში მთავარი ფუნქციის ანალოგიურად). გახსენით ფაილი რედაქტირებისთვის.

შიგნით არის smali კოდი (ლოკალური ასამბლერი). ის საკმაოდ დამაბნეველი და ძნელად იკითხება მისი დაბალი დონის გამო, ამიტომ ჩვენ არ შევისწავლით მას, არამედ უბრალოდ ვიპოვით კოდში რეკლამის კლასის ყველა ხსენებას და კომენტარს გავაკეთებთ. ჩვენ ვატარებთ სტრიქონში "რეკლამა" ძიებაში და მივდივართ სტრიქონში 25:

საველე პირადი რეკლამა:Lcom/kauf/მარკეტინგი/რეკლამა;

აქ იქმნება ველი რეკლამა Ad კლასის ობიექტის შესანახად. კომენტარს ვაკეთებთ ხაზის წინ ### ნიშნის დაყენებით. ჩვენ ვაგრძელებთ ძებნას. ხაზი 423:

ახალი ინსტანციის v3, Lcom/kauf/მარკეტინგი/რეკლამა;

სწორედ აქ იქმნება ობიექტი. კომენტარს ვაკეთებთ. ჩვენ ვაგრძელებთ ძიებას და ვპოულობთ 433, 435, 466, 468, 738, 740, 800 და 802 ხაზებში რეკლამის კლასის მეთოდებს. კომენტარს ვაკეთებთ. გამოიყურებოდეს, რომ ეს არის. ჩვენ ვზოგავთ. ახლა საჭიროა პაკეტის აწყობა და შემოწმება მისი შესრულებისა და რეკლამის არსებობისთვის. ექსპერიმენტის სიწმინდისთვის, ჩვენ ვაბრუნებთ AndroidManifest.xml-დან ამოღებულ ხაზს, ვაგროვებთ პაკეტს, ხელს ვაწერთ მას და დავაინსტალირებთ.

ჩვენი ზღვის გოჭი. ხილული რეკლამა

ოპ-პა! რეკლამა გაქრა მხოლოდ აპლიკაციის მუშაობის დროს, მაგრამ დარჩა მთავარ მენიუში, რომელსაც ვხედავთ პროგრამის გაშვებისას. ასე რომ, დაელოდეთ, მაგრამ შესვლის წერტილი არის MainActivity კლასი და რეკლამა გაქრა აპლიკაციის მუშაობის დროს, მაგრამ დარჩა მთავარ მენიუში, ასე რომ, შესვლის წერტილი განსხვავებულია? ნამდვილი შესვლის წერტილის გამოსავლენად, ჩვენ ხელახლა ვხსნით AndroidManifest.xml ფაილს. დიახ, ის შეიცავს შემდეგ ხაზებს:

ისინი გვეუბნებიან (და რაც მთავარია, ანდროიდს), რომ აქტივობა სახელწოდებით Start უნდა დაიწყოს android.intent.action.MAIN მიზნის (მოვლენის) გენერირების პასუხად android.intent.category.LAUNCHER კატეგორიიდან. ეს მოვლენა წარმოიქმნება, როდესაც თქვენ შეეხებით აპლიკაციის ხატულას გამშვებში, ასე რომ ის განსაზღვრავს შესვლის წერტილს, კერძოდ Start კლასს. სავარაუდოდ, პროგრამისტმა ჯერ დაწერა აპლიკაცია მთავარი მენიუს გარეშე, რომლის შესვლის წერტილი იყო სტანდარტული MainActivity კლასი, შემდეგ დაამატა ახალი ფანჯარა (აქტივობა), რომელიც შეიცავს მენიუს და აღწერა Start კლასში, და ხელით გააკეთა ჩანაწერად. წერტილი.

ვხსნით ფაილს Start.smali და ისევ ვეძებთ ხაზს "Ad", 153 და 155 სტრიქონებში ვხვდებით FirstAd კლასის ხსენებას. ის ასევე არის საწყის კოდში და, სახელწოდებით თუ ვიმსჯელებთ, ის პასუხისმგებელია მთავარ ეკრანზე რეკლამის ჩვენებაზე. ჩვენ უფრო შორს ვიყურებით, იქმნება FirstAd კლასის ინსტანცია და ინტენტი, ამ მაგალითთან დაკავშირებული კონტექსტის მიხედვით, შემდეგ კი label cond_10, რომელზეც პირობითი გადასვლა ხორციელდება ზუსტად კლასის ინსტანციის შექმნამდე. :

If-ne p1, v0, :cond_10 .ხაზი 74 new-instance v0, Landroid/content/Intent; ... :cond_10

სავარაუდოდ, პროგრამა რატომღაც შემთხვევით ითვლის, საჭიროა თუ არა რეკლამის ჩვენება მთავარ ეკრანზე და თუ არა, პირდაპირ გადადის cond_10-ზე. კარგი, მოდით გავამარტივოთ მისი ამოცანა და შევცვალოთ პირობითი გადასვლა უპირობოთი:

#if-ne p1, v0, :cond_10 goto:cond_10

კოდში აღარ არის ნახსენები FirstAd-ის შესახებ, ამიტომ ჩვენ ვხურავთ ფაილს და ხელახლა ვაწყობთ ჩვენს ვირტუალურ ჩირაღდნებს apktool-ის გამოყენებით. დააკოპირეთ სმარტფონზე, დააინსტალირეთ, გაუშვით. Voila, ყველა რეკლამა გაქრა, გილოცავთ ყველას.

შედეგები

ეს სტატია მხოლოდ მოკლე შესავალია Android აპლიკაციების გახსნისა და მოდიფიცირების მეთოდების შესახებ. ბევრი პრობლემა დარჩა კულისებში, როგორიცაა დაცვის მოხსნა, ბუნდოვანი კოდის გაანალიზება, აპლიკაციის რესურსების თარგმნა და ჩანაცვლება, ასევე დაწერილი აპლიკაციების შეცვლა. ანდროიდის გამოყენებით NDK. თუმცა საბაზისო ცოდნის ქონა, ამ ყველაფრის გაგება მხოლოდ დროის საკითხია.

პოსტის ნახვები: 5 618

ანდროიდის სტუდიაიძლევა უამრავ შესაძლებლობებს როგორც აპლიკაციების შემუშავებისთვის, ასევე ავტომატიზაციისა და კომფორტის გაზრდისთვის პროგრამირებისას.

თუ იყენებთ build სისტემას გრადლისაკუთარი აპლიკაციების შესაქმნელად, თქვენ ასევე შეგიძლიათ დააყენოთ რამდენიმე ვარიანტი თქვენი აპლიკაციებისთვის ხელმოწერების შესაქმნელად.

თქვენ ალბათ არ გსურთ გამოაქვეყნოთ თქვენი ხელმოწერის გასაღებები, პაროლები და მომხმარებლის სახელები საჯარო (ან თუნდაც პირად) საცავში. ამიტომ, თქვენ შეგიძლიათ განსაზღვროთ გასაღები, პაროლი და მომხმარებლის სახელი, როგორც თვისებები ცალკე ფაილში.

სანამ განაცხადზე ხელმოწერას დაიწყებთ, თქვენ უნდა შექმნათ ახალი თვისება gradle.properties ფაილში. დავარქვათ გასაღებები.რეპოდა, როგორც მნიშვნელობა, მიუთითეთ გზა საქაღალდეში, სადაც განთავსდება გასაღებების შესანახი ფაილი და თვისებების მქონე ფაილი (მაგალითად, C:/Users/UserName/.ხელმოწერა).

Keys.repo=C:/Users/UserName/.ხელმოწერა

შემდეგ თქვენ უნდა შექმნათ ეს საქაღალდე ან, თუ მიუთითეთ არსებული, გახსენით იგი. მას სჭირდება ფაილის შექმნა YourProjectName.properties, რომლის შიგნით გასაღებების შენახვის გზა, გასაღების მეტსახელი და პაროლი ჩაიწერება თვისებების სახით შემდეგი ფორმით.

RELEASE_STORE_FILE=/YourProjectName/KeyStoreName.jks RELEASE_STORE_PASS=****** RELEASE_ALIAS=საკვანძო სახელი (RELEASE_KEY_PASS=******)

როგორ შევქმნათ გასაღების მაღაზია?

თუ არ გაქვთ გასაღებების მაღაზია, შეგიძლიათ მარტივად შექმნათ ის Android-ის გამოყენებითსტუდია. ამისათვის აირჩიეთ მენიუს ელემენტი აშენება -> ხელმოწერილი APK-ის გენერირება.

ფანჯარაში, რომელიც გამოჩნდება, დააწკაპუნეთ Შექმენი ახალი...შედეგად, გაიხსნება ფანჯარა, რომელშიც შეგიძლიათ მიუთითოთ სად განთავსდება გასაღების მაღაზია (ამ გაკვეთილისთვის უმჯობესია დაუყოვნებლივ აირჩიოთ ის გზა, რომელიც მიუთითეთ YourProjectName.propertiesქონებაში RELEASE_STORE_FILE), ისევე როგორც მონაცემები გასაღების შესახებ.

შემდეგ თქვენ უნდა შექმნათ საქაღალდე შენიპროექტის სახელიდა იქ გადაიტანეთ სასურველი keystore ფაილი.

ახლა შეგიძლიათ პირდაპირ გააგრძელოთ ხელმოწერის პროცესი. ამისათვის თქვენს პროექტში თქვენ უნდა გახსნათ ფაილი აშენება.gradle(მდებარეობს აპლიკაციის საქაღალდეში). მის შიგნით ბლოკში ანდროიდითქვენ უნდა დაამატოთ შემდეგი კოდი.

SigningConfigs ( გამართვა ( /* აქ ცვლილება არ არის */ ) გამოშვება ( if (project.hasProperty("Keys.repo")) ( def projectPropsFile = file(project.property("Keys.repo") + "/YourProjectName.properties " ) if (projectPropsFile.exists()) ( Properties props = new Properties() props.load(new FileInputStream(projectPropsFile)) storeFile file(file(project.property("Keys.repo") + props["RELEASE_STORE_FILE"] ) ) storePassword props["RELEASE_STORE_PASS"] keyAlias ​​რეკვიზიტები["RELEASE_ALIAS"] keyPassword props["RELEASE_KEY_PASS"] ) ) სხვა ( println "=================== = =================================" println " - Please configure release-compilation environment - e.g. in ~/. ხელმოწერის დირექტორია" println "============================================= ========" )))

რა არის ხელმოწერის სქემები?

APK ხელმოწერის მოპოვების ორი სქემა არსებობს: v1 JARდა v2 სრული APK.

პირველ შემთხვევაში, მოაწერეთ ხელი JAR-ფაილი, რომელიც ხელმოწერის ტრადიციული გზაა. v1 ხელმოწერა არ იცავს APK-ის ზოგიერთ ნაწილს, როგორიცაა ZIP მეტამონაცემები. APK შემმოწმებელს უწევს გაუმკლავდეს უამრავ არასანდო (ჯერ არ არის დამოწმებული) მონაცემთა სტრუქტურას და შემდეგ გადააგდოს ხელმოუწერელი მონაცემები, რაც ტოვებს დიდ ადგილს თავდასხმისთვის. გარდა ამისა, APK ვერიფიკატორს უწევს ყველა შეკუმშული ჩანაწერის დეკომპრესია, რაც კარგავს დიდ დროს და მეხსიერებას. ამ პრობლემების გადასაჭრელად, შეიქმნა მეორე სქემა v2 სრული APK.

Schema v2 დაინერგა Android 7.0 Nougat (API 25)და მუშაობს ვერსიიდან Android Studio 2.2და Android Gradle მოდული 2.2. ეს სქემა უზრუნველყოფს აპლიკაციის უფრო სწრაფ ინსტალაციას და კარგ დაცვას APK-ში არაავტორიზებული ცვლილებებისგან. APK კონტენტი ჰეშირებულია და ხელმოწერილი, შემდეგ მიღებული APK ხელმოწერის ბლოკიჩასმულია APK-ში.

ვალიდაციის დროს, v2 სქემა განიხილავს APK-ს, როგორც ბლომად და ახორციელებს ხელმოწერის გადამოწმებას მთელ ფაილზე. APK-ის ნებისმიერი ცვლილება, ZIP მეტამონაცემების ცვლილებების ჩათვლით, არღვევს ხელმოწერას. გადამოწმების ეს ფორმა ბევრად უფრო სწრაფია და უფრო მეტი არაავტორიზებული ცვლილებების გამოვლენის საშუალებას იძლევა.

ახალი ფორმატი უკუთავსებადია, ამიტომ ახალი სქემით ხელმოწერილი APK შეიძლება დაინსტალირდეს ძველ მოწყობილობებზე (რომლებიც უბრალოდ უგულებელყოფენ ახალ ხელმოწერას), სანამ ეს APK ასევე გაფორმებულია v1 სქემით.

ხელმოწერა ნაგულისხმევად იყენებს ორივე სქემას, რათა აპლიკაციები დაინსტალირდეს ნებისმიერ მოწყობილობაზე. თუმცა, საჭიროების შემთხვევაში, შეგიძლიათ გამორთოთ v1 ან v2 ხელმოწერა. ამისათვის, ზემოთ მოცემულ კოდში ბლოკში გათავისუფლებაუბრალოდ დაამატეთ შემდეგი ხაზები.

V1SigningEnabled false

V2SigningEnabled false

ასევე მნიშვნელოვანია აღინიშნოს, რომ v2 სქემით ხელმოწერამდე უნდა მოაწეროთ ხელი v1 სქემით, რადგან APK არ გაივლის v2-ს, თუ ხელმოწერილი იქნება დამატებითი სერთიფიკატებით მას შემდეგ, რაც გაფორმდება v2 სქემით.

კოდის დამატების შემდეგ, მიუთითეთ ეს კოდი ბლოკში buildTypesშიგნით გათავისუფლება. Მაგალითად:

BuildTypes (გამოშვება ( minifyEnabled true shrinkResources true proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro" signingConfig signingConfigs.release) )

ახლა თქვენ შეგიძლიათ უსაფრთხოდ მენიუს პუნქტში აშენებაარჩევა შექმენით APK, რომელმაც ადრე შეცვალა ასამბლეის ტიპი გამართვა on გათავისუფლება. როგორც ხედავთ, ეს მეთოდი მოსახერხებელია იმით, რომ ის ავტომატურია, საჭიროა მხოლოდ ერთხელ კონფიგურაცია და თქვენი გასაღებები უსაფრთხო იქნება.

ასე რომ, თქვენ მუშაობდით მრავალი დღე (და შესაძლოა ღამე) და ახლა თქვენი პირველი ჰიბრიდული მობილური აპლიკაცია მზად არის. ის საკმაოდ სტაბილურია, კრიტიკული შეცდომების უმეტესობა დახურულია. დარჩა პატარები, მაგრამ გახსოვთ, რომ პერფექციონიზმი ბოროტებაა, თქვენ იღებთ მტკიცე გადაწყვეტილებას განაცხადის გამოქვეყნებაზე.

ამის წინაპირობაა ხელმოწერილი APK ფაილის არსებობა. როგორ მოვაწეროთ ხელი apk ფაილს, ამ სტატიიდან შეიტყობთ.

მცირე გადახრა

როდესაც ჩემი შინაური ცხოველების პროექტი გამოშვებას მიუახლოვდა, დავიწყე ინფორმაციის მოძიება, თუ როგორ გამოვაქვეყნო აპლიკაცია სწრაფად და უმტკივნეულოდ. ნაპოვნი ბევრი ინსტრუქცია მარტივი ჩანდა. მე ავირჩიე Ionic Framework-ის ავტორების ინსტრუქციები, რომლებზედაც შემუშავდა აპლიკაცია. ყველაფერი არ გამოუვიდა პირველად, არის რამდენიმე ფუნქცია. ხელმოწერის პროცესი აღწერილია ამ სტატიაში, ხაზგასმულია მნიშვნელოვანი პუნქტები.

საწყისი მონაცემები

მე ვარაუდობ, რომ თქვენ გაქვთ ყველაფერი, რაც გჭირდებათ ჰიბრიდის განვითარებისთვის მობილური აპლიკაციები Apache Cordova-ს გამოყენებით. უნდა დამონტაჟდეს:
  • აპაჩე კორდოვა
  • ჯავის განვითარების ნაკრები
  • Android SDK ინსტრუმენტები
lcf გამოიყენება როგორც პროექტის და განაცხადის სახელი. საჭიროების შემთხვევაში ჩაანაცვლეთ თქვენი პროექტის სახელით.

წადი

პირველ რიგში, თქვენ უნდა შექმნათ თქვენი აპლიკაციის გამოშვების build. მანამდე კი დავრწმუნდეთ, რომ ყველა არასაჭირო დანამატი ამოღებულია. მაგალითად, ჩვენ არ გვჭირდება დანამატი, რომელიც ბეჭდავს გამართვის ინფორმაციას კონსოლში. მოვიშოროთ:

$ cordova მოდული rm cordova-plugin-console
Android-ისთვის გამოშვების კონსტრუქციის შესაქმნელად გამოიყენეთ ბრძანება აშენებადროშით -- გათავისუფლება:

$ cordova build -- გამოუშვით android
ეს ბრძანება შეიქმნება ხელმოუწერელი APK ფაილი დირექტორიაში:

პლატფორმები/ანდროიდი/build/outputs/apk
მაგალითად, პლატფორმები/android/build/outputs/apk/ android-release-unsigned.apk. შემდეგ ჩვენ უნდა მოვაწეროთ ხელი ამ ფაილს და გავუშვათ პროგრამა zipalignფაილის ოპტიმიზაციისთვის და Google Play-სთვის მოსამზადებლად.

ფაილზე ხელმოწერისთვის საჭიროა სერთიფიკატი. მოდით შევქმნათ იგი უტილიტის გამოყენებით გასაღები ინსტრუმენტირომელიც შედის JDK-ში:

$ keytool -genkey -v -keystore lcf.keystore -alias lcf -keyalg RSA -keysize 2048 -validity 10000
Მნიშვნელოვანი

-ალიას პარამეტრის მნიშვნელობა უნდა დაიმახსოვროთ, მაგრამ უმჯობესია ჩაწეროთ იგი. ზემოთ მოყვანილ მაგალითში ის უდრის lcf-ს (Loyal Client Free აპლიკაციის სახელის პირველი ასოებით). დეტალებს აქ არ მოგახსენებთ, თუ დაგაინტერესებთ დაწერეთ კომენტარებში, მეტს გეტყვით.

ალიასი გამოიყენება ყოველ ჯერზე ხელმოწერისას * აპლიკაციები. დამახსოვრების გასაადვილებლად გამოიყენეთ keystore ფაილის სახელი, როგორც მეტსახელი, მაგალითად:


-keystore hello-world.keystore -სხვა სახელი hello-world -keystore weather-app.keystore -სხვა სახელი weather-app -keystore todo.keystore -სხვა სახელი todo
* თქვენ უნდა მოაწეროთ აპლიკაცია განახლებების ყოველი გამოშვებით

კომუნალური გასაღები ინსტრუმენტისვამს კითხვების სერიას. სულ 8 იქნება, წინასწარ რომ გქონდეთ წარმოდგენა კითხვებზე და სავარაუდო პასუხებზე, ყველა ქვემოთ მოცემულია სპოილერის ქვეშ.

საკვანძო ინსტრუმენტების კითხვები და პასუხების ნიმუში

1. შეიყვანეთ გასაღების მაღაზიის პაროლი:
აქ თქვენ უნდა შეიყვანოთ ფაილის პაროლი (მინიმუმ 6 სიმბოლო). შეყვანილი პაროლი უნდა ჩაიწეროს უსაფრთხო ადგილას, ის საჭიროა ყოველ ჯერზე განაცხადის ხელმოწერისას.

2. ხელახლა შეიყვანეთ ახალი პაროლი:
პაროლის ხელახლა შეყვანა.

3. რა არის შენი სახელი და გვარი?
: ივან პეტროვი
შენი სახელი და გვარი. მნიშვნელობა კვადრატულ ფრჩხილებში არის ნაგულისხმევი მნიშვნელობა.

4. რა ჰქვია თქვენს ორგანიზაციულ ერთეულს?
: IT
თქვენი კომპანიის განყოფილების სახელი. თქვენ შეგიძლიათ დატოვოთ იგი ცარიელი, მე ვაკონკრეტებ IT.

5. რა ჰქვია თქვენს ორგანიზაციას?
: 2 დეველოპერები
თქვენი ორგანიზაციის სახელი. მიუთითეთ ასეთის არსებობის შემთხვევაში.

6. რა ჰქვია თქვენს ქალაქს ან ადგილს?
: მოსკოვი
Ქალაქის სახელი

7. რა ჰქვია თქვენს შტატს ან პროვინციას?
: MO
რეგიონის სახელი

8. რა არის ამ ერთეულის ორასოიანი ქვეყნის კოდი?
: EN
Ქვეყნის კოდი. მე მივუთითებ RU.

:

დაადასტურეთ ყველაფერი სწორია ან დააჭირეთ Enter ხელახლა შესასვლელად.


დასასრულს გამოჩნდება შეტყობინება გასაღების წარმატებული გენერირების შესახებ. თქვენ მოგეთხოვებათ დააყენოთ პაროლი პირადი გასაღებისთვის (თუ გსურთ დატოვოთ იგივე, რაც სერთიფიკატისთვის, დააჭირეთ Enter):

2 048 ბიტიანი RSA გასაღების წყვილის და ხელმოწერილი სერტიფიკატის გენერირება (SHA256withRSA) 10 000 დღის მოქმედებით: CN=Ivan Petrov, OU=IT, O=2developers, L=Moscow, ST=MO, C=RU Enter key. პაროლისთვის (დაბრუნება, თუ იგივეა keystore პაროლი):
ფაილი შეიქმნება მიმდინარე დირექტორიაში lcf.keystore.

Მნიშვნელოვანი

შექმნილი ფაილი უნდა იყოს შენახული უსაფრთხო ადგილას. თუ იყენებთ პირად საცავს, მაშინ ფაილის ჩადენა შესაძლებელია აპლიკაციის წყაროს კოდებთან ერთად. ზოგადად, სერთიფიკატები საუკეთესოდ ინახება ცალკე. თუ დაკარგავთ სერთიფიკატს, ვერ შეძლებთ აპის განახლებების გამოშვებას.

დარჩენილია ორი ნაბიჯი და თქვენ გექნებათ APK ფაილი მზად განაწილებისთვის. ჩვენ პირდაპირ ვაგრძელებთ ხელმოწერას.

თქვენი apk ფაილის ხელმოწერისთვის გამოიყენეთ კომუნალური პროგრამა ჯარსინერი, რომელიც ასევე შედის JDK-ში.

$ jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore lcf.keystore android-release-unsigned.apk lcf
პარამეტრის შემდეგ მითითებულია სერტიფიკატის სახელი - გასაღებების მაღაზია, მეტსახელი - ფაილის სახელის შემდეგ.

და ბოლოს, apk ფაილის ოპტიმიზაციისთვის, ჩვენ გამოვიყენებთ კომუნალურ პროგრამას zipalign:

$ zipalign -v 4 android-release-unsigned.apk LoyalClientFree.apk
ბოლო პარამეტრი არის ფაილის სახელი, რომელსაც ატვირთავთ Google Play-ში.

Მნიშვნელოვანი.

კომუნალური zipalignის Android SDK ინსტრუმენტების ნაწილია და შეგიძლიათ იხილოთ აქ:

/path/to/Android/sdk/build-tools/VERSION/zipalign

დასკვნა

ახლა თქვენ გაქვთ apk ფაილი მზად განაწილებისთვის, რომელიც შეიძლება ატვირთოთ Google Play-ში. შეავსეთ აღწერა, განსაზღვრეთ თქვენი განაცხადის რეიტინგი და თავისუფლად დააწკაპუნეთ "გამოქვეყნება".
 
სტატიები onთემა:
როგორ წაშალოთ შეტყობინებები whatsapp-ზე
WhatsApp-ში აქტიური კომუნიკაციის დროს შეგიძლიათ შემთხვევით გაუგზავნოთ არასწორი შეტყობინება თანამოსაუბრეს, დაუშვათ შეცდომა ან თუნდაც სხვა ჩატში გაგზავნოთ. ნებისმიერ ამ შემთხვევაში, საუკეთესო გამოსავალი იქნება არასაჭირო „მესიჯის“ წაშლა არა მხოლოდ საკუთარ თავში, არამედ არეულობაშიც.
გვერდითი პანელი Windows XP-ისთვის
ოდნავ მოძველებულ, მაგრამ მაინც მხიარული და ბევრისთვის საყვარელი Windows XP-ში, გაჯეტების გამოყენება შესაძლებელია, თუმცა გარკვეულწილად შეზღუდული ვერსიით. შეზღუდვა ეხება გაჯეტების სკალირების გამოყენების შეუძლებლობას, რომელშიც ასეთი ა
MTS ტარიფის აღწერა „სმარტი საკუთარი სატარიფო გეგმისთვის ჭკვიანი საკუთარი მც
თარიღი: 2018 წლის 27 მარტი „სმარტი მეგობრებისთვის“ არის MTS-ის დახურული სატარიფო გეგმა, რომლის გადართვა შესაძლებელია სპეციალური კოდის გამოყენებით. ეს ტარიფი უკიდურესად მომგებიანია რუსეთის უმეტეს რეგიონისთვის - სააბონენტო გადასახადი თვეში მხოლოდ 200 რუბლია, ხოლო mi პაკეტი.
კოტეჯები ფინეთში კოტეჯების შერჩევა ფინეთში
თქვენი კონფიდენციალურობის პარამეტრების შეცვლა აირჩიეთ ქუქიები, რომელთა მიღებაც გსურთ საიტზე. რა არის ფუნქციური ქუქიები? ფუნქციონალური ქუქიები ეხმარება ჩვენს ვებსაიტს გამართულად ფუნქციონირებაში და საშუალებას გაძლევთ შექმნათ, შეხვიდეთ და მართოთ ანგარიში.