Semnarea unui fișier .apk utilizând utilitarul jarsigner. Cum să semnezi corect un joc APK sau o aplicație pe Android Cum să schimbi semnătura unei aplicații Android

Din moment ce am căutat eu însumi întrebarea cum se semnează fișierul apk?", Știu că nu este atât de ușor să găsești o instrucțiune cu adevărat funcțională și de înțeles în orice. De aceea am decis să scriu eu material despre cum să semnez corect programul sau jocul tău pe Android.

După cum se știe acum semnatura digitala, creația dvs. nu poate fi plasată pe Piață, iar acest lucru este deja grav. Am observat o mulțime de tineri dezvoltatori Android, ca să spun așa, începătorii uită complet să-și semneze aplicația și încearcă să facă ceva cu ea mai târziu și toată lumea se întreabă de ce nu Nu este posibil să efectuați aceasta sau acea acțiune cu fișierul APK.

Deci, să nu-l trageți și să începem imediat cu cum vă puteți semna fișierul apk și cum să-l folosiți pentru a obține rezultatul dorit.

Această metodă este cea mai corectă dintre toate enumerate, așa că o vom descrie în acest material. Ne vom crea propriile chei cu datele și certificatele noastre și le vom folosi pentru a semna aplicația pe care ați creat-o.

Pentru lucru avem nevoie de: OpenSSL și SignApk.

Mai întâi, să facem un certificat și o cheie de semnare. Instalați OpenSSL. În timpul instalării, programul de instalare vă va solicita să copiați componentele în folderul Windows, selectați folderul Bin, care va fi locul în care veți instala întregul OpenSSL.

Acum deschideți în numele administratorului de sistem (acest lucru este foarte important!) linia de comandă. Apoi, pe linia de comandă, accesați folderul bin, care se află în folderul în care ați instalat OpenSSL (De exemplu, C:\OpenSSL\bin\ sau C:\Program Files\OpenSSL\bin\). Dacă nu știți, mutarea în alt folder se face cu comanda CD. Adică, pentru a merge în folderul dorit, ar trebui să rulați următoarea comandă:

cd C:\OpenSSL\bin\

Odată ce vă aflați în folderul Bin, puteți continua direct la crearea unui certificat și a unei chei.

Pasul 1(Efectuăm generarea de chei cu o lungime de 1024 de biți)

Rulați comanda:

openssl genrsa -out key.pem 1024

Pasul 2(Pe baza cheii, creăm o cerere de certificat)

Rulați comanda:

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

În această etapă, va trebui să introduceți datele dvs., care vă vor identifica în certificat.

Etapa 3 (Generează o cheie privată dintr-un certificat)

Rulați comanda:

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

Pasul 4(Efectuați generarea cheii publice)

Rulați comanda:

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

În această etapă, crearea fișierelor de care avem nevoie pentru a vă semna jocurile și aplicațiile este încheiată. folosind cheia și certificatul generate, puteți semna câte jocuri și aplicații pe Android doriți.

Și acum, de fapt, să începem să semnăm aplicația. Despachetați arhiva din SingApk descărcată din linkul de mai sus. Mutați din folderul Bin unde am creat fișierele certificate și cheie 2: certificat.pemși cheie.pk8în folderul în care ați despachetat SingApk. Windows ar trebui să afișeze un dialog de înlocuire a fișierelor - înlocuiți.

Acum, pentru a semna fișierul apk cu o semnătură digitală unică pe care ați făcut-o singur, pur și simplu trageți fișierul apk în care sign_APK.bat. Pentru a nu trage fișierul dintr-o fereastră în alta (acest lucru nu este convenabil), mutați fișierul apk în folderul cu SingApk. După execuție, un fișier va apărea în folderul cu SingApk apk_signed.apk, care va fi aplicația sau jocul dvs. semnat.

Cu funcția de conectare la aplicație Google Play Google poate gestiona cheia de semnare a aplicației dvs. și poate proteja această cheie și o poate folosi pentru a vă semna APK-urile pentru distribuire. Această metodă de stocare vă va proteja în cazul în care cheia este pierdută sau manipulată.

Important! Pentru a utiliza Android App Bundle (formatul recomandat pentru publicarea aplicațiilor), trebuie să vă înscrieți în Programul de semnare a aplicațiilor Google Play înainte de a încărca App Bundle-ul în Play Console.

Se pot înregistra deținătorii de cont și utilizatorii cu permisiuni globale de gestionare a producției care au acceptat Termenii de utilizare. Puteți înregistra o singură aplicație odată în Programul de semnare a aplicațiilor Google Play.

Principii de lucru

Când utilizați funcția de semnare a aplicației pe Google Play, cheile sunt stocate în aceeași infrastructură ca și cheile Google și sunt protejate de un serviciu special de gestionare a cheilor. Informații detaliate despre infrastructura tehnică Google pot fi găsite în documentația de securitate Google Cloud.

Aplicațiile Android sunt semnate cu o cheie privată. Cu fiecare astfel de cheie este asociat un certificat public pe care dispozitivele și serviciile îl pot folosi pentru a verifica securitatea aplicațiilor și a actualizărilor acestora. Numai acele actualizări sunt instalate pe dispozitivele a căror semnătură se potrivește cu semnătura aplicație instalată. Dacă lăsați Google să vă gestioneze cheia de semnare a aplicației, procesul este mai sigur.

Notă. Este opțional să utilizați funcția de semnare a aplicației în Google Play. Puteți să încărcați APK-uri și să vă gestionați propriile chei fără a utiliza App Bundle. Cu toate acestea, dacă pierdeți accesul la magazinul de chei sau este compromis, nu veți putea să vă actualizați aplicația și va trebui să o publicați din nou cu un alt nume de pachet.

Descrieri ale cheilor, obiectelor și instrumentelor
Termeni Descriere
Cheie de semnare a aplicației

Cheia folosită de Google Play pentru a semna fișierele APK livrate pe dispozitivul utilizatorului. Când vă înscrieți pentru programul de semnare a aplicațiilor de pe Google Play, puteți încărca o cheie de semnare existentă sau puteți lăsa Google să genereze una nouă.

Cheia de descărcare

Există două moduri de a genera o cheie de încărcare:

  • Utilizați cheia de semnare a aplicației. Dacă ați permis Google să genereze o cheie de semnare a aplicației atunci când v-ați înscris pentru program, cheia de încărcare va fi cheia pe care ați folosit-o pentru a semna prima versiune a aplicației.
  • Utilizați o cheie de încărcare separată. Dacă ați trimis propria cheie de semnare a aplicației când v-ați înscris pentru program, puteți genera o nouă cheie de încărcare pentru securitate. Dacă nu doriți să faceți acest lucru, utilizați cheia de semnare a aplicației ca cheie de descărcare pentru a semna versiuni noi.
Certificat (.der sau .pem)

Un certificat care conține cheia publică și informații suplimentare despre proprietarul acesteia. Certificatul de cheie publică permite oricui să știe cine a semnat App Bundle-ul sau fișierul APK. Acest certificat poate fi partajat deoarece nu include o cheie privată.

Pentru a înregistra chei la furnizorii de API, puteți descărca certificatul public pentru cheia de semnare a aplicației de pe pagină Semnarea aplicațieiîn Play Console. Certificatul cheii publice poate fi partajat cu toată lumea, deoarece nu include cheia privată.

Amprenta certificatului

Un identificator scurt și unic pentru certificat. Amprenta, împreună cu numele pachetului, sunt adesea solicitate de furnizorii de API pentru a oferi acces la serviciile lor.

Amprentele digitale MD5, SHA-1 și SHA-256 ale certificatelor de încărcare și semnare a aplicației pot fi găsite la adresa Semnarea aplicațieiîn Play Console. De asemenea, este posibil să primiți un alt tip de amprentă digitală. Pentru a face acest lucru, descărcați certificatul original în format DER de pe aceeași pagină.

Magazin de chei Java (.jks sau .keystore) Stocarea certificatelor de securitate și a cheilor private.
Instrumentul PEPK

Un instrument pentru a exporta chei private din spațiul de stocare Java și a le cripta pentru a le trimite pe Google Play.

După ce ați furnizat Google cheia de semnare a aplicației, alegeți să exportați și să încărcați propria cheie (și certificatul public, dacă este necesar), apoi urmați instrucțiunile pentru a descărca și utiliza instrumentul. De asemenea, puteți descărca, vizualiza și utiliza instrumentul open source PEPK.

Procesul de semnare a cererii

Puteți încărca fișiere APK semnate cu cheia originală de semnare a aplicației înainte sau după semnarea aplicației pe Google Play.

Dacă faceți upgrade la Android App Bundle, le puteți testa în versiunile de testare și puteți utiliza APK-urile existente în versiunile de producție. Iată cum funcționează:

  1. Semnați un App Bundle sau un APK și îl încărcați în Play Console.
  2. Procesul de semnare a aplicației depinde de ceea ce descărcați.
    • App Bundle. Google optimizează APK-urile din App Bundle și apoi le semnează cu cheia de semnare a aplicației.
    • Fișier APK semnat cu cheia de încărcare. Google vă verifică semnătura, o elimină și resemnează APK-urile cu cheia de semnare a aplicației.
    • Un fișier APK semnat cu o cheie de semnare a aplicației. Google verifică semnătura.
  3. Google livrează utilizatorilor fișiere APK semnate.

Cum să vă înscrieți în Programul de semnare a aplicațiilor Google Play

Aplicații noi

Pasul 1: creați o cheie de încărcare

  1. Creați o cheie de încărcare urmând instrucțiunile.
  2. Semnați noul fișier APK cu o cheie de încărcare.

Pasul 2: Pregătiți lansarea

  1. urmând instrucțiunile.
  2. După ce ați selectat un tip de versiune, configurați opțiunile de semnare a aplicației sub „Lăsați Google să vă asigure și să gestioneze cheia de semnare a aplicației”.
  3. Dacă dai clic Continua, cheia generată va deveni cheia de încărcare care va fi folosită pentru a semna versiunile viitoare. De asemenea, puteți alege dintre următoarele Setari avansate:
    • Utilizați o cheie pentru diferite aplicații din contul de dezvoltator (opțiunea 2).
    • Încărcați cheia de semnare a unei aplicații existente (opțiunea 2, 3 și 4) alegând metoda de export și încărcare care vi se potrivește cel mai bine. După încărcarea cheii de semnare a aplicației și a certificatului său public, puteți fie să utilizați cheia de semnare a aplicației ca cheie de semnare a aplicației.

Notă. Pentru a continua, trebuie să acceptați Termenii de utilizare și să vă înscrieți în Programul de semnare a aplicațiilor.

Pasul 3: Înregistrați-vă cheia de semnare a aplicației cu furnizorii de API

Dacă aplicația dvs. utilizează un API, atunci pentru a vă autentifica, cel mai probabil va trebui să înregistrați un certificat de cheie cu care Google semnează aplicația dvs. Pentru a găsi un certificat:

  1. Conectați-vă la Play Console.
  2. Selectați o aplicație.
  3. Din meniul din stânga, selectați Managementul lansărilor > Semnăturile aplicației.
    • Dacă furnizorul de API necesită un alt tip de amprentă digitală, puteți descărca certificatul original în format DER și îl puteți converti după cum este necesar folosind instrumentele adecvate.
Aplicații publicate

Pasul 1: Înscrieți-vă la Programul de semnare a aplicațiilor Google Play

  1. Conectați-vă la Play Console.
  2. Selectați o aplicație.
  3. Din meniul din stânga, selectați Managementul lansărilor > Semnăturile aplicației.
  4. Dacă este necesar, citiți Termenii de utilizare și faceți clic A accepta.

Pasul 2 Trimiteți cheia originală la Google și generați o cheie de încărcare

  1. Găsiți cheia originală de semnare a aplicației.
  2. Conectați-vă la Play Console.
  3. Selectați o aplicație.
  4. Din meniul din stânga, selectați Managementul lansărilor > Semnăturile aplicației.
  5. Încărcați cheia existentă de semnare a aplicației în modul care se potrivește cel mai bine procesului dvs. de lansare.
  1. și încărcați certificatul pe Google Play.
    • De asemenea, puteți utiliza cheia de semnare a aplicației ca cheie de încărcare.
  2. Copiați amprentele (MD5, SHA-1 și SHA-256) ale certificatului de semnare a aplicației.
    • În scopuri de testare, poate fi necesar să înregistrați un certificat de cheie de încărcare la furnizorul API folosind amprenta certificatului și cheia de semnare a aplicației.

Pasul 4: semnați următoarea actualizare a aplicației dvs. cu o cheie de încărcare

Actualizările aplicației care sunt lansate trebuie să fie semnate cu o cheie de descărcare.

Cum se generează o cheie de încărcare și cum se actualizează depozitele de chei

Puteți genera o cheie de încărcare atunci când vă înscrieți pentru programul de semnare a aplicațiilor de pe Google Play sau puteți genera una mai târziu în secțiune Managementul lansărilor > Semnăturile aplicației.

Pentru a crea o cheie de încărcare, urmați acești pași:

  1. Urmați instrucțiunile de pe site-ul pentru dezvoltatori Android. Păstrați cheia într-un loc sigur.
  2. Exportați certificatul cheii de pornire în format PEM. Înlocuiți următoarele argumente cu liniuțe de subliniere:
    • $ keytool -export -rfc -keystore upload-keystore.jks -alias upload -file upload_certificate.pem
  3. Când vi se solicită în timpul procesului de lansare, încărcați certificatul pentru a-l înregistra la Google.

Dacă utilizați o cheie de încărcare:

  • Cheia de încărcare este înregistrată la Google doar pentru a autentifica identitatea creatorului aplicației.
  • Semnătura ta este eliminată din toate fișierele APK încărcate înainte ca acestea să ajungă la utilizatori.
Restricții
  • Cheia de încărcare trebuie să utilizeze criptarea RSA și trebuie să aibă o dimensiune de cel puțin 2048 de biți.
  • Cheile DSA și EC și cheile RSA mai mici de 2048 de biți nu sunt acceptate.
Actualizarea depozitelor de chei

După ce ați creat cheia de pornire, verificați și actualizați următoarele locații după cum este necesar:

  • sistem local;
  • server local securizat (cu diverse liste de control acces);
  • sistem cloud (cu diverse liste de control acces);
  • Servicii speciale pentru managementul cheilor;
  • Arhivele Git.

Cum să actualizați cheia de semnare pentru noile instalări de aplicații

În unele cazuri, puteți solicita o actualizare a cheii de semnare a aplicației. Noua cheie va fi folosită pentru a semna noi instalări și actualizări ale aplicației, în timp ce cheia moștenită va fi folosită pentru a actualiza versiunile semnate pe care utilizatorii le-au instalat deja.

Cheia de semnare poate fi actualizată o singură dată per aplicație. În cazul puțin probabil în care utilizați aceeași cheie de semnare pentru mai multe aplicații care să ruleze în același proces, cheia nu poate fi actualizată.

Ar trebui să solicitați o actualizare a cheii de semnare a aplicației în următoarele cazuri:

  • Ai nevoie de o cheie mai puternică din punct de vedere criptografic.
  • Cheia de semnare a aplicației a fost compromisă.

Notă. Solicitarea de actualizare a cheii de semnare a aplicației pe Play Console nu are legătură cu înlocuirea cheii în Android P și versiuni ulterioare. Această înlocuire a cheii nu este acceptată în prezent de Google Play.

Note importante despre actualizarea cheilor

Înainte de a solicita o actualizare cheie, este important să înțelegeți ce schimbări va implica aceasta.

  • Dacă utilizați aceeași cheie de semnare pentru mai multe aplicații pentru a utiliza același cod sau date, va trebui să actualizați aplicațiile pentru a recunoaște atât cheile noi, cât și cele vechi.
  • Dacă aplicația dvs. folosește un API, asigurați-vă că înregistrați certificatele pentru cheile de semnare a aplicației noi și vechi la furnizorul de API înainte de a o actualiza. Certificatele sunt disponibile pe pagină Semnarea aplicației Play Console.
  • Dacă mulți utilizatori ai aplicației dvs. instalează actualizări prin intermediul rețelelor de partajare a fișierelor, aceștia vor putea instala doar actualizări semnate cu aceeași cheie ca și aplicația instalată pe dispozitivele lor. Dacă aplicațiile nu pot fi actualizate deoarece versiunea instalată semnat cu o cheie diferită, utilizatorii îl pot dezinstala și reinstala pentru a primi actualizări.
Solicitați o actualizare cheie pentru noile instalări. Pentru a face acest lucru, urmați acești pași:
  1. Conectați-vă la Play Console.
  2. Selectați o aplicație.
  3. Din meniul din stânga, selectați Managementul lansărilor > Semnăturile aplicației.
  4. În cardul „Actualizați cheia de semnare pentru noi instalări de aplicații”, selectați Solicitați actualizarea cheii.
  5. Alegeți ce să faceți cu dispozitivul.
    • În funcție de opțiunea pe care o alegeți, poate fi necesar să contactați asistența pentru a finaliza solicitarea.
  6. Permiteți Google Play să genereze o nouă cheie de semnare a aplicației (recomandat) sau descărcați una.
    • După actualizarea cheii de semnare a aplicației, dacă cheia a fost aceeași cu cheia de încărcare, puteți continua să utilizați vechea cheie de semnare a aplicației ca cheie de încărcare sau puteți crea una nouă.
  • Dacă v-ați publicat aplicația și în afara Google Play sau intenționați să faceți acest lucru, puteți genera o cheie de semnare a aplicației partajată în prealabil și o puteți încărca pe Google atunci când vă înscrieți la Programul de semnare a aplicațiilor Google Play.
  • Pentru a vă proteja contul, activați verificarea în doi pași pentru toate conturile care au acces la Play Console.
  • Odată ce un App Bundle este publicat într-o versiune de testare sau de producție, puteți deschide Browserul App Bundle și puteți descărca arhiva ZIP care conține toate APK-urile pentru un anumit dispozitiv. Aceste APK-uri sunt deja semnate cu cheia de semnare a aplicației. Le puteți instala pe dispozitiv dintr-o arhivă ZIP folosind utilitarul Linie de comanda bundletool.
  • Pentru o mai mare securitate, generați o nouă cheie de încărcare diferită de cheia de semnare a aplicației.
  • Dacă doriți să testați un APK semnat cu o cheie de încărcare, înregistrați cheia cu un serviciu sau API care utilizează semnătura aplicației pentru autentificare (cum ar fi API-ul Google Maps sau SDK-ul Facebook).
  • Dacă utilizați API-urile Google, puteți înregistra certificatul de încărcare în Google Cloud Console .

Ce trebuie să faceți dacă cheia este pierdută sau piratată

Dacă ați pierdut accesul la cheia de încărcare privată sau a fost piratată și întrebați proprietarul contului. Când contactează asistența, proprietarul contului trebuie să atașeze fișierul upload_certificate.pem.

Când echipa de asistență înregistrează o nouă cheie de încărcare, veți primi un e-mail și apoi puteți actualiza depozitele de chei și puteți înregistra cheia la furnizorii de API.

Important! Resetarea cheii de încărcare nu afectează cheia de semnare a aplicației pe care Google Play o folosește pentru a semna fișierele APK înainte ca acestea să fie trimise utilizatorilor.

V-au fost utile aceste informații?

Cum poate fi îmbunătățit acest articol?

Uneori, unele aplicații de pe Android nu se potrivesc utilizatorului din anumite motive. Un exemplu sunt reclamele enervante. Și se întâmplă așa - toată lumea se pricepe la program, dar numai traducerea din el este fie strâmbă, fie complet absentă. Sau, de exemplu, programul este de încercare, dar nu există nicio modalitate de a obține versiunea completă. Cum să schimbi situația?

Introducere

În acest articol, vom vorbi despre cum să dezasamblam un APK cu o aplicație, să ne uităm la structura sa internă, să dezasamblam și să decompilăm bytecode și, de asemenea, vom încerca să facem mai multe modificări aplicațiilor care ne pot aduce cutare sau cutare beneficiu.

Pentru a face toate acestea singur, veți avea nevoie de cel puțin cunoștințe de bază despre limbajul Java, în care sunt scrise aplicațiile Android, și limbajul XML, care este folosit peste tot în Android - de la descrierea aplicației în sine și drepturile sale de acces până la stocarea șirurilor de caractere. care va fi afișat pe ecran. Veți avea nevoie, de asemenea, de capacitatea de a gestiona software-ul de consolă specializat.

Deci, care este pachetul APK în care este distribuit absolut tot software-ul pentru Android?

Decompilarea aplicației

În articol, am lucrat doar cu codul de aplicație dezasamblat, cu toate acestea, dacă faceți modificări mai serioase aplicațiilor mari, va fi mult mai dificil de înțeles codul smali. Din fericire, putem decompila codul dex în cod Java, care, deși nu este original și nu poate fi compilat înapoi, este mult mai ușor de citit și de înțeles logica aplicației. Pentru a face acest lucru, avem nevoie de două instrumente:

  • dex2jar - translator de bytecode Dalvik în bytecode JVM, pe baza căruia putem obține cod Java;
  • jd-gui este un decompilator în sine care vă permite să obțineți cod Java lizibil din bytecode JVM. Alternativ, puteți utiliza Jad (www.varanecas.com/jad); deși este destul de vechi, în unele cazuri generează cod mai ușor de citit decât Jd-gui.

Ar trebui folosite așa. Mai întâi, lansăm dex2jar, specificând calea către pachetul apk ca argument:

%dex2jar.sh mail.apk

Ca rezultat, pachetul mail.jar Java va apărea în directorul curent, care poate fi deja deschis în jd-gui pentru a vizualiza codul Java.

Aranjarea pachetelor APK și obținerea lor

Un pachet de aplicații Android este în esență un fișier ZIP obișnuit care nu necesită instrumente speciale pentru a vizualiza conținutul și a despacheta. Este suficient să aveți un arhivator - 7zip pentru Windows sau dezarhivare consolă în Linux. Dar asta e vorba de ambalaj. Ce e inauntru? În interior, avem în general următoarea structură:

  • META-INF/- conține un certificat digital al aplicației, care atestă creatorul acesteia și sume de control ale fișierelor pachetului;
  • res/ - diverse resurse pe care aplicația le folosește în activitatea sa, cum ar fi imagini, o descriere declarativă a interfeței și alte date;
  • AndroidManifest.xml- descrierea aplicatiei. Aceasta include, de exemplu, lista de permisiuni necesare, versiunea necesară de Android și rezoluția necesară a ecranului;
  • clase.dex- codul octet al aplicației compilat pentru mașina virtuală Dalvik;
  • resurse.arsc- de asemenea resurse, dar de alt fel - în special, șiruri (da, acest fișier poate fi folosit pentru rusificare!).

Fișierele și directoarele enumerate sunt, dacă nu în toate, atunci, poate, în marea majoritate a APK-urilor. Cu toate acestea, există câteva fișiere/directoare mai puțin comune care merită menționate:

  • active- analog de resurse. Principala diferență este că pentru a accesa o resursă, trebuie să cunoști identificatorul acesteia, în timp ce lista de active poate fi obținută dinamic folosind metoda AssetManager.list() din codul aplicației;
  • lib- biblioteci native Linux scrise cu ajutorul NDK (Native Development Kit).

Acest director este folosit de producătorii de jocuri pentru a-și pune motorul de joc scris în C/C++ acolo, precum și de creatorii de aplicații de înaltă performanță (de exemplu, Google Chrome). A înțeles dispozitivul. Dar cum să obțineți dosarul pachet al cererii de interes? Deoarece nu este posibil să obțineți fișiere APK de pe dispozitiv fără înrădăcinare (se află în directorul / data / app), iar înrădăcinarea nu este întotdeauna recomandabilă, există cel puțin trei moduri de a aduce fișierul aplicației pe computer:

  • Extensie APK Downloader pentru Chrome;
  • Aplicația Leecher APK reală;
  • diverse găzduire de fișiere și warezniki.

Pe care să folosiți este o chestiune de gust; preferăm să folosim aplicații separate, așa că vom descrie utilizarea Real APK Leecher, mai ales că este scris în Java și, în consecință, va funcționa chiar și în Windows, chiar și în nix.

După pornirea programului, trebuie să completați trei câmpuri: E-mail, Parolă și ID dispozitiv - și selectați o limbă. Primele două sunt adresa de e-mail și parola contului dvs. Google pe care le utilizați pe dispozitiv. Al treilea este ID-ul dispozitivului și îl puteți obține formând codul de pe dialer # #8255## și apoi găsiți ID-ul dispozitivului de linie. Când completați, trebuie să introduceți doar ID-ul fără prefixul android.

După completare și salvare, apare adesea mesajul „Eroare la conectarea la server”. Nu are nicio legătură cu Google Play, așa că nu ezitați să îl ignorați și să căutați pachete care vă interesează.

Revizuire și modificare

Să presupunem că ați găsit un pachet care vă interesează, l-ați descărcat, l-ați despachetat... iar când ați încercat să vizualizați un fișier XML, ați fost surprins să descoperiți că fișierul nu este un fișier text. Cum să-l decompilați și cum să lucrați cu pachetele în general? Este cu adevărat necesar să instalați SDK-ul? Nu, nu trebuie să instalați SDK-ul. De fapt, pentru toți pașii de despachetare, modificare și ambalare a pachetelor APK, sunt necesare următoarele instrumente:

  • Arhivator ZIP pentru despachetare și ambalare;
  • smali- asamblator/dezasamblator al mașinii virtuale Dalvik bytecode (code.google.com/p/smali);
  • apt- un instrument pentru împachetarea resurselor (în mod implicit, resursele sunt stocate în formă binară pentru a optimiza performanța aplicației). Inclus cu Android SDK, dar poate fi obținut separat;
  • Semnatar- un instrument pentru semnarea digitală a unui pachet modificat (bit.ly/Rmrv4M).

Puteți utiliza toate aceste instrumente separat, dar acest lucru este incomod, deci este mai bine să utilizați software de nivel superior construit pe baza lor. Dacă sunteți pe Linux sau Mac OS X, există un instrument numit apktool . Vă permite să despachetați resurse în forma lor originală (inclusiv fișiere XML binare și arsc), să reconstruiți pachetul cu resurse modificate, dar nu știe cum să semneze pachetele, așa că va trebui să rulați manual utilitarul de semnare. În ciuda faptului că utilitarul este scris în Java, instalarea lui este mai degrabă non-standard. Mai întâi trebuie să obțineți fișierul jar în sine:

$ 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

Dacă lucrați pe Windows, atunci există un instrument excelent pentru acesta numit Virtual Ten Studio , care acumulează și toate aceste instrumente (inclusiv apktool în sine), dar în loc de o interfață CLI, oferă utilizatorului o interfață grafică intuitivă cu care să efectuați operațiuni de despachetare, dezasamblare și decompilare în câteva clicuri. Acest instrument este Donation-ware, adică ferestre apar uneori cu o propunere de obținere a unei licențe, dar acest lucru, în cele din urmă, poate fi tolerat. Nu are sens să-l descrii, pentru că poți înțelege interfața în câteva minute. Dar apktool, datorită naturii sale de consolă, ar trebui discutat mai detaliat.


Luați în considerare opțiunile apktool. Pe scurt, există trei comenzi principale: d (decodificare), b (build) și if (install framework). Dacă totul este clar cu primele două comenzi, atunci ce face a treia, operatorul condiționat? Acesta despachetează cadrul specificat de UI, care este necesar atunci când disecați un pachet de sistem.

Luați în considerare cele mai interesante opțiuni ale primei comenzi:

  • -s- nu dezasamblați fișierele dex;
  • -r- nu despachetați resurse;
  • -b- nu introduceți informații de depanare în rezultatele dezasamblarii fișierului dex;
  • --cadru-cadru- utilizați cadrul specificat de UI în loc de apktool încorporat. Acum luați în considerare câteva opțiuni pentru comanda b:
  • -f- asamblare fortata fara verificarea modificarilor;
  • -A- specificați calea către aapt (instrumentul pentru construirea arhivei APK) dacă dintr-un motiv oarecare doriți să o utilizați din altă sursă.

Utilizarea apktool este foarte simplă, tot ce trebuie să faceți este să specificați una dintre comenzi și calea către APK, de exemplu:

$ apktool d mail.apk

După aceea, toate fișierele pachetului extrase și dezasamblate vor apărea în directorul de e-mail.

Pregătirea. Dezactivați reclamele

Teoria este, desigur, bună, dar de ce este nevoie dacă nu știm ce să facem cu pachetul despachetat? Să încercăm să aplicăm teoria în beneficiul nostru, și anume, modificăm niște software pentru ca acesta să nu ne arate reclame. De exemplu, să fie Virtual Torch - o torță virtuală. Pentru noi, acest software este perfect, deoarece este plin de reclame enervante și este suficient de simplu pentru a nu se pierde în sălbăticia codului.


Deci, folosind una dintre metodele de mai sus, descărcați aplicația de pe piață. Dacă decideți să utilizați Virtuous Ten Studio, deschideți fișierul APK în aplicație și despachetați-l, pentru care creați un proiect (Fișier -> Proiect nou), apoi în meniul contextual proiect, selectați Import File. Dacă alegerea dvs. a căzut pe apktool, atunci este suficient să executați o comandă:

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

După aceea, în directorul com.kauf.particle.virtualtorch va apărea un arbore de fișiere, similar celui descris în secțiunea anterioară, dar cu un director smali suplimentar în loc de fișiere dex și un fișier apktool.yml. Primul conține codul dezasamblat al fișierului executabil dex al aplicației, al doilea conține informațiile de serviciu necesare apktool pentru a asambla pachetul înapoi.

Primul loc în care trebuie să ne uităm este, desigur, AndroidManifest.xml. Și aici întâlnim imediat următoarea linie:

Este ușor de ghicit că ea este responsabilă pentru acordarea permisiunilor aplicației de a utiliza conexiunea la Internet. De fapt, dacă vrem doar să scăpăm de reclame, cel mai probabil ne va fi suficient să interzicem aplicația de pe Internet. Să încercăm să o facem. Ștergeți linia specificată și încercați să compilați software-ul folosind apktool:

$ apktool b com.kauf.particle.virtualtorch

Fișierul APK rezultat va apărea în directorul com.kauf.particle.virtualtorch/build/. Cu toate acestea, nu poate fi instalat deoarece nu are semnătură digitală și sume de verificare a fișierelor (pur și simplu nu are un director META-INF/). Trebuie să semnăm pachetul cu utilitarul apk-signer. Lansat. Interfața este formată din două file - pe prima (Key Generator) creăm chei, pe a doua (APK Signer) semnăm. Pentru a crea cheia noastră privată, completați următoarele câmpuri:

  • Fișierul țintă- fișier de ieșire keystore; de obicei stochează o pereche de chei;
  • Parolași A confirma- parola pentru stocare;
  • Alias- numele cheii din depozit;
  • Parola aliasși A confirma- parola cheie secretă;
  • Valabilitate- Perioada de valabilitate (în ani). Valoarea implicită este optimă.

Câmpurile rămase, în general, sunt opționale - dar trebuie să completați cel puțin unul.


AVERTIZARE

Pentru a semna o aplicație cu apk-signer, trebuie să instalați Android SDK și să specificați calea completă către acesta în setările aplicației.

Toate informațiile sunt furnizate doar în scop informativ. Nici editorii, nici autorul nu sunt responsabili pentru eventualele daune cauzate de materialele acestui articol.

Acum puteți semna APK-ul cu această cheie. În fila APK Signer, selectați fișierul nou generat, introduceți parola, aliasul cheii și parola pentru acesta, apoi găsiți fișierul APK și faceți clic cu îndrăzneală pe butonul „Semnați”. Daca totul merge bine, pachetul va fi semnat.

INFO

Deoarece am semnat pachetul cu propria noastră cheie, acesta va intra în conflict cu aplicația originală, ceea ce înseamnă că atunci când vom încerca să actualizăm software-ul prin piață, vom primi o eroare.

Doar software-ul terță parte are nevoie de o semnătură digitală, așa că dacă modificați aplicațiile de sistem care sunt instalate prin copierea lor în directorul /system/app/, atunci nu trebuie să le semnați.

După aceea, aruncăm pachetul pe smartphone, instalăm și rulăm. Voila, reclama a dispărut! În schimb, a apărut însă un mesaj că nu avem internet sau nu avem permisiunile corespunzătoare. În teorie, acest lucru ar putea fi suficient, dar mesajul pare enervant și, să fiu sincer, tocmai am avut noroc cu o aplicație stupidă. Un software bine scris, cel mai probabil, își va clarifica acreditările sau va verifica dacă există o conexiune la Internet și, în caz contrar, va refuza pur și simplu să pornească. Cum să fii în acest caz? Desigur, editați codul.

De obicei, autorii aplicației creează clase speciale pentru afișarea reclamelor și a metodelor de apel ale acestor clase în timpul lansării aplicației sau a uneia dintre „activitățile” acesteia (în termeni simpli, ecrane de aplicație). Să încercăm să găsim aceste clase. Mergem la directorul smali, apoi com (în org există doar biblioteca grafică deschisă cocos2d), apoi kauf (exact acolo, pentru că acesta este numele dezvoltatorului și tot codul său este acolo) - și aici este, director de marketing. În interior găsim o grămadă de fișiere cu extensia smali. Acestea sunt clase, iar cea mai notabilă dintre ele este clasa Ad.smali, după numele căreia este ușor de ghicit că afișează reclame.

Am putea schimba logica funcționării sale, dar ar fi mult mai ușor să eliminați prostește apelurile la oricare dintre metodele sale din aplicația în sine. Prin urmare, ieșim din directorul de marketing și mergem la directorul de particule vecine și apoi la virtualtorch. Fișierul MainActivity.smali merită o atenție specială aici. Aceasta este o clasă Android standard care este generată de SDK-ul Android și setată ca punct de intrare în aplicație (analog cu funcția principală din C). Deschideți fișierul pentru editare.

Înăuntru este codul smali (asambler local). Este destul de confuz și dificil de citit din cauza naturii sale de nivel scăzut, așa că nu îl vom studia, ci pur și simplu găsim toate mențiunile clasei de anunțuri în cod și le vom comenta. Conducem în șirul „Ad” în căutare și ajungem la rândul 25:

Câmp anunț privat:Lcom/kauf/marketing/Ad;

Aici, un anunț de câmp este creat pentru a stoca un obiect din clasa Ad. Comentăm punând semnul ### în fața liniei. Continuăm căutarea. Linia 423:

Noua instanță v3, Lcom/kauf/marketing/Ad;

Aici este creat obiectul. Comentăm. Continuăm căutarea și găsim în rândurile 433, 435, 466, 468, 738, 740, 800 și 802 apeluri la metodele clasei Ad. Comentăm. Arata ca asta e. Salvăm. Acum pachetul trebuie asamblat înapoi și verificat pentru performanța sa și prezența reclamei. Pentru puritatea experimentului, returnăm linia eliminată din AndroidManifest.xml, colectăm pachetul, îl semnăm și îl instalăm.

Cobaiul nostru. Publicitate vizibilă

Op-pa! Publicitatea a dispărut doar în timp ce aplicația rula, dar a rămas în meniul principal, pe care îl vedem când lansăm software-ul. Așadar, așteptați, dar punctul de intrare este clasa MainActivity, iar reclama a dispărut în timp ce aplicația rula, dar a rămas în meniul principal, deci punctul de intrare este diferit? Pentru a dezvălui adevăratul punct de intrare, redeschidem fișierul AndroidManifest.xml. Și da, conține următoarele rânduri:

Ele ne spun (și mai important, androidul) că activitatea numită Start ar trebui să fie lansată ca răspuns la generarea intenției (eveniment) android.intent.action.MAIN din categoria android.intent.category.LAUNCHER. Acest eveniment este generat atunci când atingeți pictograma aplicației din launcher, astfel încât definește punctul de intrare, și anume clasa Start. Cel mai probabil, programatorul a scris mai întâi o aplicație fără meniu principal, punctul de intrare la care era clasa standard MainActivity, apoi a adăugat o nouă fereastră (activitate) care conține un meniu și descrisă în clasa Start și a făcut-o manual o intrare. punct.

Deschidem fisierul Start.smali si cautam din nou linia „Ad”, gasim in randurile 153 si 155 mentiunea clasei FirstAd. Se află și în codul sursă și, judecând după nume, este responsabil pentru afișarea reclamelor pe ecranul principal. Ne uităm mai departe, există o creare a unei instanțe a clasei FirstAd și o intenție, conform contextului legat de această instanță, și apoi eticheta cond_10, tranziția condiționată la care se realizează exact înainte de a crea o instanță a clasei. :

If-ne p1, v0, :cond_10 .line 74 new-instance v0, Landroid/content/Intent; ... :cond_10

Cel mai probabil, programul calculează cumva aleatoriu dacă este necesar să se afișeze reclame pe ecranul principal și, dacă nu, sare direct la cond_10. Ok, să-i simplificăm sarcina și să înlocuim tranziția condiționată cu una necondiționată:

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

Nu mai există mențiuni despre FirstAd în cod, așa că închidem fișierul și reasamblam lanterna noastră virtuală folosind apktool. Copiați pe smartphone, instalați, rulați. Voila, toate reclamele au dispărut, felicitări tuturor.

Rezultate

Acest articol este doar o scurtă introducere în metodele de deschidere și modificare a aplicațiilor Android. Multe probleme au rămas în spatele scenei, cum ar fi eliminarea protecției, analizarea codului ofuscat, traducerea și înlocuirea resurselor aplicației, precum și modificarea aplicațiilor scrise cu folosind Android NDK. Cu toate acestea, având cunoștințe de bază, înțelegerea tuturor acestor lucruri este doar o chestiune de timp.

Vizualizări ale postării: 5 618

Android studio oferă oportunități ample atât pentru dezvoltarea aplicațiilor, cât și pentru creșterea automatizării și confortului la programare.

Dacă utilizați sistemul de construcție gradle pentru a vă crea propriile aplicații, puteți configura și câteva opțiuni pentru a crea semnături pentru aplicațiile dvs.

Probabil că nu doriți să vă publicați cheile de semnare, parolele și numele de utilizator într-un depozit public (sau chiar privat). Prin urmare, puteți defini cheia, parola și numele de utilizator ca proprietăți într-un fișier separat.

Înainte de a începe semnarea aplicației, trebuie să creați o nouă proprietate în fișierul gradle.properties. Să-i spunem chei.repoși, ca valoare, specificați calea către folderul în care vor fi localizate ulterior depozitul de chei și fișierul cu proprietăți (de exemplu, C:/Utilizatori/NumeUtilizator/.semnare).

Keys.repo=C:/Users/UserName/.signing

Apoi trebuie să creați acest folder sau, dacă ați specificat unul existent, să îl deschideți. Trebuie să creeze un fișier YourProjectName.properties, în care calea către depozitul de chei, aliasul cheii și parola vor fi scrise ca proprietăți în următoarea formă.

RELEASE_STORE_FILE=/YourProjectName/KeyStoreName.jks RELEASE_STORE_PASS=****** RELEASE_ALIAS=KeyAlias ​​​​RELEASE_KEY_PASS=******

Cum se creează un depozit de chei?

Dacă nu aveți un depozit de chei, puteți crea cu ușurință unul folosind Android Studio. Pentru a face acest lucru, selectați elementul de meniu Construi -> Generați APK semnat.

În fereastra care apare, faceți clic Creaza nou... Ca urmare, se va deschide o fereastră în care puteți specifica unde va fi amplasat depozitul de chei (pentru această lecție, este mai bine să selectați imediat calea pe care ați specificat-o în YourProjectName.propertiesîn proprietate RELEASE_STORE_FILE), precum și date despre cheie.

Apoi trebuie să creați un folder YourProjectNameși transferați acolo fișierul depozit de chei dorit.

Acum puteți trece direct la procesul de semnare. Pentru a face acest lucru, în proiectul dvs. trebuie să deschideți fișierul construi.gradle(situat în folderul aplicației). Înăuntrul ei în bloc android trebuie să adăugați următorul cod.

SigningConfigs ( debug ( /* nicio modificare aici */ ) lansare ( if (project.hasProperty("Keys.repo"))) (def projectPropsFile = fisier(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 ​​​​props["RELEASE_ALIAS"] keyPassword props["RELEASE_KEY_PASS"] ) ) else ( println "===================== = =================================" println " - Vă rugăm să configurați mediul de compilare de lansare - de exemplu, în ~/. director de semnare" println "============================================== ========" ) ) )

Care sunt schemele de semnătură?

Există două scheme pentru obținerea unei semnături APK: v1 JARși v2 APK complet.

În primul caz, semnați BORCAN-file, care este modalitatea tradițională de semnare. Semnătura v1 nu protejează unele părți ale APK-ului, cum ar fi metadatele ZIP. Verificatorul APK trebuie să gestioneze o mulțime de structuri de date neîncrezătoare (neverificate încă) și apoi să renunțe la datele care nu sunt semnate, lăsând mult loc pentru atac. În plus, verificatorul APK trebuie să decomprima toate înregistrările comprimate, ceea ce irosește mult timp și memorie. Pentru a rezolva aceste probleme, a fost dezvoltat un al doilea APK complet schema v2.

Schema v2 a fost introdusă în Android 7.0 Nougat (API 25)și funcționează din versiune Android Studio 2.2și Plugin Android Gradle 2.2. Această schemă oferă o instalare mai rapidă a aplicației și o protecție bună împotriva modificărilor neautorizate ale APK-ului. Conținutul APK este indexat și semnat, apoi primit Bloc de semnătură APK inserat în APK.

În timpul validării, schema v2 tratează APK-ul ca pe un blob și efectuează verificarea semnăturii pe întreg fișierul. Orice modificare adusă APK-ului, inclusiv modificările metadatelor ZIP, invalidează semnătura. Această formă de verificare este mult mai rapidă și permite detectarea mai multor modificări neautorizate.

Noul format este compatibil cu versiunea inversă, astfel încât APK-urile semnate cu noua schemă pot fi instalate pe dispozitive mai vechi (care vor ignora pur și simplu noua semnătură), atâta timp cât acele APK-uri sunt semnate și cu schema v1.

Semnarea folosește ambele scheme în mod implicit, astfel încât aplicațiile să poată fi instalate pe orice dispozitiv. Cu toate acestea, dacă este necesar, puteți dezactiva semnarea v1 sau v2. Pentru a face acest lucru, în codul de mai sus în bloc eliberare doar adăugați următoarele rânduri.

V1SigningEnabled false

V2SigningEnabled false

De asemenea, este important să rețineți că trebuie să semnați cu schema v1 înainte de a semna cu schema v2, deoarece APK-ul nu va trece de v2 dacă este semnat cu certificate suplimentare după ce a fost semnat cu schema v2.

După adăugarea codului, indicați acest cod în bloc buildTypes interior eliberare. De exemplu:

BuildTypes ( lansare ( minifyEnabled true shrinkResources true proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro" signingConfig signingConfigs.release ) )

Acum puteți în siguranță în elementul de meniu Construi a alege Creați APK, după ce a schimbat anterior tipul de ansamblu din depanare pe eliberare. După cum puteți vedea, această metodă este convenabilă, deoarece este automată, trebuie configurată o singură dată, iar depozitele de chei pot fi în siguranță.

Deci, lucrezi de multe zile (și poate nopți), iar acum prima ta aplicație mobilă hibridă este gata. Este destul de stabil, majoritatea erorilor critice sunt închise. Au mai rămas mici, dar amintindu-ți că perfecționismul este rău, iei o decizie puternică de a publica aplicația.

O condiție prealabilă pentru aceasta este prezența unui fișier APK semnat. Cum să semnați un fișier apk, veți învăța din acest articol.

mica digresiune

Când proiectul meu pentru animale de companie a fost aproape de lansare, am început să caut informații despre cum să public rapid și fără durere o aplicație. Multe dintre instrucțiunile găsite păreau simple. Am ales instrucțiunile autorilor cadrului Ionic, pe baza căruia a fost dezvoltată aplicația. Nu totul a funcționat prima dată, există mai multe caracteristici. Procesul de semnare este descris în acest articol, punctele importante sunt evidențiate.

Datele inițiale

Presupun că aveți tot ce aveți nevoie pentru a dezvolta hibrid aplicatii mobile folosind Apache Cordova. Trebuie instalat:
  • Apache Cordova
  • Kit de dezvoltare Java
  • Instrumente Android SDK
lcf este folosit ca nume de proiect și aplicație. Înlocuiți-l cu numele proiectului dvs. acolo unde este necesar.

Merge

Mai întâi trebuie să creați o versiune de versiune a aplicației dvs. Dar înainte de asta, să ne asigurăm că toate pluginurile inutile sunt eliminate. De exemplu, nu avem nevoie de un plugin care imprimă informații de depanare pe consolă. Să-l eliminăm:

$ cordova plugin rm cordova-plugin-console
Pentru a genera o versiune de versiune pentru Android, utilizați comanda construi cu steag --eliberare:

$ cordova build --release android
Această comandă va crea nesemnat Fișier APK în director:

platforme/android/build/outputs/apk
De exemplu platforme/android/build/outputs/apk/ android-release-unsigned.apk. Apoi trebuie să semnăm acest fișier și să rulăm utilitarul zipalign pentru a optimiza și pregăti fișierul pentru Google Play.

Este necesar un certificat pentru a semna un fișier. Să-l creăm folosind utilitarul instrument cheie care este inclus în JDK:

$ keytool -genkey -v -keystore lcf.keystore -alias lcf -keyalg RSA -keysize 2048 -validitate 10000
Important

Trebuie reținută valoarea parametrului -alias, dar este mai bine să o notați. În exemplul de mai sus, este egal cu lcf (prin primele litere ale numelui aplicației Loyal Client Free). Nu voi da detalii aici, daca va intereseaza scrieti in comentarii, va spun mai multe.

Aliasul este folosit de fiecare dată când semnați * aplicatii. Pentru a fi mai ușor de reținut, utilizați numele fișierului depozit de chei ca alias, de exemplu:


-keystore hello-world.keystore -alias hello-world -keystore weather-app.keystore -alias weather-app -keystore todo.keystore -alias todo
* Trebuie să semnați aplicația cu fiecare lansare de actualizări

Utilitate instrument cheie pune o serie de întrebări. În total vor fi 8. Pentru a vă face o idee despre întrebări și răspunsuri aproximative în avans, toate sunt date mai jos, sub spoiler.

întrebări cheie și exemple de răspunsuri

1. Introduceți parola depozitului de chei:
Aici trebuie să introduceți o parolă pentru fișier (cel puțin 6 caractere). Parola introdusă trebuie scrisă într-un loc sigur, este necesară de fiecare dată la semnarea aplicației.

2. Reintroduceți parola nouă:
Reintroduceți parola.

3. Care este numele și prenumele tău?
: Ivan Petrov
Numele și prenumele dvs. Valoarea dintre paranteze drepte este valoarea implicită.

4. Care este numele unității dumneavoastră organizaționale?
: ACEASTA
Numele diviziei companiei dvs. Il poti lasa necompletat, o precizez.

5. Care este numele organizației dvs.?
: 2dezvoltatori
Numele organizației dvs. Specificați dacă există.

6. Care este numele orașului sau localității dvs.?
: Moscova
Numele orasului

7. Care este numele statului sau provinciei dumneavoastră?
: MO
Numele regiunii

8. Care este codul de țară din două litere pentru această unitate?
: RO
Codul tarii. Indic RU.

: y

Confirmați dacă totul este corect sau apăsați Enter pentru a intra din nou.


La sfârșit, va apărea un mesaj despre generarea cu succes a cheii. Vi se va solicita să setați o parolă pentru cheia privată (dacă doriți să lăsați aceeași ca pentru certificat, apăsați Enter):

Se generează o pereche de chei RSA de 2 048 de biți și un certificat autosemnat (SHA256withRSA) cu o valabilitate de 10 000 de zile pentru: CN=Ivan Petrov, OU=IT, O=2dezvoltatori, L=Moscova, ST=MO, C=RU Cheie Enter parola pentru (REVENIRE dacă aceeași cu parola depozitului de chei):
Fișierul va fi creat în directorul curent lcf.keystore.

Important

Fișierul creat trebuie salvat într-un loc sigur. Dacă utilizați un depozit privat, atunci fișierul poate fi comis împreună cu codurile sursă ale aplicației. În general, certificatele sunt cel mai bine stocate separat. Dacă vă pierdeți certificatul, nu veți putea elibera actualizări ale aplicației.

Au mai rămas doi pași și veți avea un fișier APK gata pentru distribuție. Trecem direct la semnare.

Pentru a semna fișierul apk, utilizați utilitarul jarsigner, care este, de asemenea, inclus în JDK.

$ jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore lcf.keystore android-release-unsigned.apk lcf
Numele certificatului este specificat după parametru -magazin de chei, alias - după numele fișierului.

În cele din urmă, pentru a optimiza fișierul apk, vom folosi utilitarul zipalign:

$ zipalign -v 4 android-release-unsigned.apk LoyalClientFree.apk
Ultimul parametru este numele fișierului pe care îl veți încărca pe Google Play.

Important.

Utilitate zipalign face parte din Android SDK Tools și poate fi găsit aici:

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

Concluzie

Acum aveți un fișier apk gata de distribuție care poate fi încărcat pe Google Play. Completați descrierea, stabiliți evaluarea aplicației dvs. și nu ezitați să faceți clic pe „Publicați”.
 
Articole pe subiect:
Cum să faci note și note de subsol în Word
Când formatați un document, uneori devine necesar să explicați textul și, în consecință, întrebarea cum să faceți o notă de subsol în Word. De regulă, este o notă pentru a indica sursa de informații sau a explica ideea principală direct în text
Cel mai bun program de memento pentru desktop
Un site care dă +5 noroc unui investitor Cea mai bună modalitate de a evita repetarea greșelii este să dezvoltați o regulă care să vă permită să vă amintiți chiar rake-ul pe care ați călcat. Cum am intrat în plus, dar am intrat în minus Fără nicio explicație, titlul paragrafului este un exemplu
Picmonkey Photoshop este un editor foto online la îndemână, cu multe filtre și efecte.
Editarea imaginilor în cloud câștigă popularitate. Dacă mai devreme, pentru a face o procesare simplă a fotografiilor - eliminați efectul de ochi roșii, faceți un fel de săgeată etc. am instalat un astfel de profesionist
Cum să eliminați cratimele dintr-un document
Instalarea silabelor în editorul de text Word are loc automat sau manual. Dar uneori nu este întotdeauna necesar pentru utilizator. Prin urmare, în articolul nostru, vom analiza mai multe moduri de a elimina încadrarea cuvintelor din Word. După cum arată practica,