.apk-tiedoston allekirjoittaminen jarsigner-apuohjelmalla. APK-pelin tai -sovelluksen allekirjoittaminen oikein Androidilla Kuinka muuttaa Android-sovelluksen allekirjoitus

Koska googletin kysymyksen itse kuinka allekirjoittaa apk-tiedosto?", tiedän, että kaikkeen ei ole niin helppoa löytää todella toimivaa ja ymmärrettävää ohjetta. Siksi päätin kirjoittaa itse materiaalia kuinka allekirjoittaa ohjelmasi tai pelisi oikein Androidilla.

Kuten nyt tiedetään digitaalinen allekirjoitus, luomustasi ei voi laittaa Marketille, ja tämä on jo vakavaa. Huomasin, että monet nuoret Android-kehittäjät, niin sanotusti aloittelijat unohtavat allekirjoittaa hakemuksensa ja yrittää tehdä sillä jotain myöhemmin ja kaikki ihmettelevät miksi eivät Ei ole mahdollista suorittaa tätä tai toista toimintoa heidän APK-tiedostollaan.

Joten älkäämme vetäkö sitä, vaan aloita heti siitä, kuinka voit allekirjoittaa apk-tiedostosi ja kuinka käyttää sitä todella halutun tuloksen saavuttamiseksi.

Tämä menetelmä on oikein kaikista luetelluista, joten kuvaamme sen tässä materiaalissa. Teemme tiedoistamme ja varmenteistamme omat avaimemme ja käytämme niitä luomasi sovelluksen allekirjoittamiseen.

Työhön tarvitsemme: OpenSSL ja SignApk.

Tehdään ensin varmenne ja allekirjoitusavain. Asenna OpenSSL. Asennuksen aikana asennusohjelma kehottaa kopioimaan komponentit Windows-kansioon, valitse Bin-kansio, joka on paikka, johon asennat koko OpenSSL:n.

Avaa nyt komentorivi järjestelmänvalvojan puolesta (tämä on erittäin tärkeää!). Siirry sitten komentorivillä bin-kansioon, joka sijaitsee kansiossa, johon asensit OpenSSL:n (esim. C:\OpenSSL\bin\ tai C:\Ohjelmatiedostot\OpenSSL\bin\). Jos et tiedä, siirrytään toiseen kansioon komennolla CD. Eli päästäksesi haluttuun kansioon, sinun tulee suorittaa seuraava komento:

cd C:\OpenSSL\bin\

Kun olet Bin-kansiossa, voit jatkaa suoraan varmenteen ja avaimen luomiseen.

Vaihe 1(Suoritamme avainten luomisen 1024 bitin pituudella)

Suorita komento:

openssl genrsa -out key.pem 1024

Vaihe 2(Luomme varmennepyynnön avaimen perusteella)

Suorita komento:

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

Tässä vaiheessa sinun on syötettävä tietosi, jotka tunnistavat sinut varmenteessa.

Vaihe 3 (Luo yksityinen avain varmenteesta)

Suorita komento:

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

Vaihe 4(Suorita julkisen avaimen luominen)

Suorita komento:

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

Tässä vaiheessa pelien ja sovellusten allekirjoittamiseen tarvittavien tiedostojen luominen on valmis. luodun avaimen ja varmenteen avulla voit allekirjoittaa Androidilla niin monta peliä ja sovellusta kuin haluat.

Ja nyt oikeastaan ​​aloitetaan hakemuksen allekirjoittaminen. Pura arkisto yllä olevasta linkistä ladatusta SingApkista. Siirry Bin-kansiosta, jossa loimme varmenteen ja avaimen 2 tiedostot: todistus.pem Ja key.pk8 kansioon, johon purit SingApkin. Windowsin pitäisi näyttää tiedoston korvaamisvalintaikkuna - vaihda.

Nyt voit allekirjoittaa apk-tiedoston ainutlaatuisella digitaalisella allekirjoituksella, jonka olet tehnyt itse, vetämällä apk-tiedostosi sign_APK.bat. Jotta et vedä tiedostoa ikkunasta toiseen (tämä ei ole kätevää), siirrä apk-tiedosto kansioon SingApkin avulla. Suorituksen jälkeen tiedosto tulee näkyviin kansioon, jossa on SingApk apk_signed.apk, joka on allekirjoittamasi sovelluksesi tai pelisi.

Sovelluksen kirjautumisominaisuuden avulla Google Play Google voi hallinnoida sovelluksesi allekirjoitusavainta, suojata tätä avainta ja käyttää sitä APK:si allekirjoittamiseen jakelua varten. Tämä säilytystapa suojaa sinua siltä varalta, että avain katoaa tai sitä muutetaan.

Tärkeä! Jotta voit käyttää Android App Bundle -paketteja (suositeltu muoto sovellusten julkaisuun), sinun on rekisteröidyttävä Google Play App Signing -ohjelmaan ennen kuin lataat App Bundle -paketin Play Consoleen.

Tilinomistajat ja käyttäjät, joilla on maailmanlaajuiset tuotannonhallintaoikeudet ja jotka ovat hyväksyneet käyttöehdot, voivat rekisteröityä. Voit rekisteröidä vain yhden sovelluksen kerrallaan Google Play -sovellusten allekirjoitusohjelmaan.

Työn periaatteet

Kun käytät Google Playn sovelluksen allekirjoitusominaisuutta, avaimesi tallennetaan samaan infrastruktuuriin kuin Google-avaimet ja suojataan erityisellä avaintenhallintapalvelulla. Yksityiskohtaiset tiedot Googlen teknisestä infrastruktuurista löytyvät Google Cloud -tietoturvadokumentaatiosta.

Android-sovellukset allekirjoitetaan yksityisellä avaimella. Jokaiseen tällaiseen avaimeen liittyy julkinen varmenne, jonka avulla laitteet ja palvelut voivat varmistaa sovellusten ja niiden päivitysten turvallisuuden. Vain ne päivitykset asennetaan laitteisiin, joiden allekirjoitus vastaa allekirjoitusta asennettu sovellus. Jos annat Googlen hallinnoida sovelluksesi allekirjoitusavainta, prosessi on turvallisempi.

Huomautus. Sovelluksen allekirjoitusominaisuuden käyttäminen Google Playssa on valinnaista. Voit lähettää APK:ita ja hallita omia avaimiasi ilman App Bundle -paketteja. Jos kuitenkin menetät pääsyn avainsäilöön tai se vaarantuu, et voi päivittää sovellustasi ja sinun on julkaistava se uudelleen toisella paketin nimellä.

Kuvaukset avaimista, esineistä ja työkaluista
ehdot Kuvaus
Sovelluksen allekirjoitusavain

Avain, jota Google Play käyttää käyttäjän laitteelle toimitettujen APK-tiedostojen allekirjoittamiseen. Kun rekisteröidyt sovellusten allekirjoitusohjelmaan Google Playssa, voit ladata olemassa olevan allekirjoitusavaimen tai antaa Googlen luoda uuden.

Lataa avain

Latausavaimen luomiseen on kaksi tapaa:

  • Käytä sovelluksen allekirjoitusavainta. Jos annoit Googlen luoda sovelluksen allekirjoitusavaimen, kun kirjauduit ohjelmaan, latausavain on avain, jota käytit sovelluksen ensimmäisen julkaisun allekirjoittamiseen.
  • Käytä erillistä latausavainta. Jos lähetit oman sovelluksen allekirjoitusavaimen rekisteröityessäsi ohjelmaan, voit luoda uuden latausavaimen turvallisuuden vuoksi. Jos et halua tehdä tätä, käytä sovelluksen allekirjoitusavainta latausavaimena uusien julkaisujen allekirjoittamiseen.
Varmenne (.der tai .pem)

Varmenne, joka sisältää julkisen avaimen ja lisätietoja sen omistajasta. Julkisen avaimen varmenne kertoo kenelle tahansa, kuka on allekirjoittanut App Bundle- tai APK-tiedoston. Tämä varmenne voidaan jakaa, koska se ei sisällä yksityistä avainta.

Voit rekisteröidä avaimia API-palveluntarjoajien kanssa lataamalla sovelluksen allekirjoitusavaimen julkisen varmenteen sivulta Hakemuksen allekirjoitus Play Consolessa. Julkisen avaimen varmenne voidaan jakaa kaikille, koska se ei sisällä yksityistä avainta.

Varmenteen sormenjälki

Lyhyt ja yksilöllinen tunniste sertifikaatille. API-palveluntarjoajat pyytävät usein peukalonjälkeä yhdessä paketin nimen kanssa tarjotakseen pääsyn palveluihinsa.

Sovelluksen lataus- ja allekirjoitusvarmenteiden MD5-, SHA-1- ja SHA-256-sormenjäljet ​​löytyvät osoitteesta Hakemuksen allekirjoitus Play Consolessa. Saatat myös saada erityyppisen digitaalisen sormenjäljen. Voit tehdä tämän lataamalla alkuperäisen sertifikaatin DER-muodossa samalta sivulta.

Java-avainsäilö (.jks tai .keystore) Suojaussertifikaattien ja yksityisten avainten säilytys.
PEPK työkalu

Työkalu yksityisten avainten viemiseen Java-tallennustilasta ja niiden salaamiseen Google Playhin lähetystä varten.

Kun olet toimittanut Googlelle sovelluksen allekirjoitusavaimen, valitse viedä ja lähettää oma avaimesi (ja tarvittaessa sen julkinen varmenne) ja noudata sitten työkalun lataamis- ja käyttöohjeita. Voit myös ladata, tarkastella ja käyttää avoimen lähdekoodin PEPK-työkalua.

Hakemuksen allekirjoitusprosessi

Voit ladata alkuperäisellä sovelluksen allekirjoitusavaimella allekirjoitettuja APK-tiedostoja ennen sovelluksen allekirjoittamista tai sen jälkeen Google Playssa.

Jos päivität Android App Bundle -paketteihin, voit testata niitä testiversioissa ja käyttää olemassa olevia APK:ita tuotantoversioissa. Näin se toimii:

  1. Allekirjoitat App Bundlen tai APK:n ja lataat sen Play Consoleen.
  2. Sovelluksen allekirjoitusprosessi riippuu siitä, mitä lataat.
    • App Bundle. Google optimoi App Bundlen APK:t ja allekirjoittaa ne sitten sovelluksen allekirjoitusavaimella.
    • APK-tiedosto, joka on allekirjoitettu latausavaimella. Google vahvistaa allekirjoituksesi, poistaa sen ja allekirjoittaa APK:t uudelleen sovelluksen allekirjoitusavaimella.
    • APK-tiedosto, joka on allekirjoitettu sovelluksen allekirjoitusavaimella. Google vahvistaa allekirjoituksen.
  3. Google toimittaa allekirjoitetut APK-tiedostot käyttäjille.

Kuinka liittyä Google Play -sovelluksen allekirjoitusohjelmaan

Uusia sovelluksia

Vaihe 1: Luo latausavain

  1. Luo latausavain ohjeiden mukaan.
  2. Allekirjoita uusi APK-tiedosto latausavaimella.

Vaihe 2: Valmistele julkaisu

  1. ohjeiden mukaan.
  2. Kun olet valinnut versiotyypin, määritä sovelluksen allekirjoitusasetukset kohdassa Anna Googlen suojata ja hallinnoida sovelluksen allekirjoitusavainta.
  3. Jos napsautat Jatkaa, luodusta avaimesta tulee latausavain, jota käytetään tulevien julkaisujen allekirjoittamiseen. Voit myös valita seuraavista Lisäasetukset:
    • Käytä yhtä avainta eri sovelluksille kehittäjätilillä (vaihtoehto 2).
    • Lataa olemassa olevan sovelluksen allekirjoitusavain (vaihtoehdot 2, 3 ja 4) valitsemalla sinulle parhaiten sopiva vienti- ja lataustapa. Kun olet ladannut sovelluksen allekirjoitusavaimen ja sen julkisen varmenteen, voit joko käyttää sovelluksen allekirjoitusavainta sovelluksen allekirjoitusavaimena.

Huomautus. Jos haluat jatkaa, sinun on hyväksyttävä käyttöehdot ja rekisteröidyttävä App Signing -ohjelmaan.

Vaihe 3: Rekisteröi sovelluksen allekirjoitusavain API-palveluntarjoajien kanssa

Jos sovelluksesi käyttää API:ta, sinun on todennäköisesti rekisteröitävä avainvarmenne, jolla Google allekirjoittaa hakemuksesi, jotta voit todentaa. Varmenteen löytäminen:

  1. Kirjaudu Play Consoleen.
  2. Valitse sovellus.
  3. Valitse vasemmalla olevasta valikosta Julkaisun hallinta > Sovelluksen allekirjoitukset.
    • Jos API-palveluntarjoaja vaatii erityyppistä sormenjälkeä, voit ladata alkuperäisen varmenteen DER-muodossa ja muuntaa sen tarvittaessa asianmukaisilla työkaluilla.
Julkaistut sovellukset

Vaihe 1: Rekisteröidy Google Play -sovellusten allekirjoitusohjelmaan

  1. Kirjaudu Play Consoleen.
  2. Valitse sovellus.
  3. Valitse vasemmalla olevasta valikosta Julkaisun hallinta > Sovelluksen allekirjoitukset.
  4. Lue tarvittaessa käyttöehdot ja napsauta Hyväksyä.

Vaihe 2 Lähetä alkuperäinen avain Googlelle ja luo latausavain

  1. Etsi alkuperäinen sovelluksen allekirjoitusavain.
  2. Kirjaudu Play Consoleen.
  3. Valitse sovellus.
  4. Valitse vasemmalla olevasta valikosta Julkaisun hallinta > Sovelluksen allekirjoitukset.
  5. Lataa nykyinen sovelluksen allekirjoitusavain julkaisuprosessiisi parhaiten sopivalla tavalla.
  1. ja lataa varmenne Google Playhin.
    • Voit myös käyttää sovelluksen allekirjoitusavainta latausavaimena.
  2. Kopioi sovelluksen allekirjoitusvarmenteen peukalonjäljet ​​(MD5, SHA-1 ja SHA-256).
    • Testaustarkoituksiin saatat joutua rekisteröimään lähetysavaimen varmenteen API-palveluntarjoajalle käyttämällä varmenteen peukalojälkeä ja sovelluksen allekirjoitusavainta.

Vaihe 4: Allekirjoita sovelluksesi seuraava päivitys latausavaimella

Julkaistut sovelluspäivitykset on allekirjoitettava latausavaimella.

Lähetysavaimen luominen ja avainsäilöjen päivittäminen

Voit luoda lähetysavaimen, kun kirjaudut sovelluksen allekirjoitusohjelmaan Google Playssa, tai voit luoda sellaisen myöhemmin osiossa Julkaisun hallinta > Sovelluksen allekirjoitukset.

Luo latausavain seuraavasti:

  1. Noudata Android-kehittäjäsivuston ohjeita. Säilytä avain turvallisessa paikassa.
  2. Vie käynnistysavaimen varmenne PEM-muodossa. Korvaa seuraavat argumentit alaviivalla:
    • $ keytool -export -rfc -keystore upload-keystore.jks -alias upload -file upload_certificate.pem
  3. Lataa varmenne, kun sitä kehotetaan julkaisuprosessin aikana rekisteröimään se Googleen.

Jos käytät latausavainta:

  • Latausavain rekisteröidään Googlelle vain sovelluksen luojan henkilöllisyyden todentamiseksi.
  • Allekirjoituksesi poistetaan kaikista ladatuista APK:ista ennen kuin ne saavuttavat käyttäjiä.
Rajoitukset
  • Latausavaimen on käytettävä RSA-salausta ja sen on oltava kooltaan vähintään 2048 bittiä.
  • DSA- ja EC-avaimia ja alle 2048 bitin RSA-avaimia ei tueta.
Avainsäilöjen päivittäminen

Kun olet luonut käynnistysavaimen, tarkista ja päivitä seuraavat sijainnit tarpeen mukaan:

  • paikallinen järjestelmä;
  • suojattu paikallinen palvelin (eri pääsynhallintaluetteloineen);
  • pilvijärjestelmä (eri pääsynhallintaluetteloilla);
  • avainten hallintaan liittyvät erikoispalvelut;
  • Git arkistot.

Allekirjoitusavaimen päivittäminen uusille sovellusasennuksille

Joissakin tapauksissa voit pyytää sovelluksen allekirjoitusavaimen päivitystä. Uutta avainta käytetään sovelluksen uusien asennusten ja päivitysten allekirjoittamiseen, kun taas vanhaa avainta käytetään käyttäjien jo asentamien allekirjoitettujen versioiden päivittämiseen.

Allekirjoitusavain voidaan päivittää vain kerran sovellusta kohden. Siinä epätodennäköisessä tapauksessa, että käytät samaa allekirjoitusavainta useiden sovellusten suorittamiseen samassa prosessissa, avainta ei voida päivittää.

Sinun tulee pyytää sovelluksen allekirjoitusavaimen päivitystä seuraavissa tapauksissa:

  • Tarvitset kryptografisesti vahvemman avaimen.
  • Sovelluksen allekirjoitusavain on vaarantunut.

Huomautus. Sovelluksen allekirjoitusavaimen päivityspyyntö Play Consolessa ei liity avaimen vaihtamiseen Android P:ssä tai uudemmissa. Google Play ei tällä hetkellä tue tätä avaimen vaihtoa.

Tärkeitä huomautuksia avainten päivittämisestä

Ennen avainpäivityksen pyytämistä on tärkeää ymmärtää, mitä muutoksia tämä tuo mukanaan.

  • Jos käytät samaa allekirjoitusavainta useille sovelluksille käyttääksesi samaa koodia tai dataa, sinun on päivitettävä sovellukset tunnistamaan sekä uudet että vanhat avaimet.
  • Jos sovelluksesi käyttää API:ta, muista rekisteröidä uusien ja vanhojen sovellusten allekirjoitusavainten varmenteet API-palveluntarjoajalle ennen sen päivittämistä. Sertifikaatit löytyvät sivulta Hakemuksen allekirjoitus Play Console.
  • Jos monet sovelluksesi käyttäjät asentavat päivityksiä tiedostonjakoverkkojen kautta, he voivat asentaa vain päivitykset, jotka on allekirjoitettu samalla avaimella kuin laitteilleen asennettu sovellus. Jos sovelluksia ei voi päivittää, koska asennettu versio allekirjoitettu toisella avaimella, käyttäjät voivat poistaa sen ja asentaa sen uudelleen saadakseen päivityksiä.
Pyydä avainpäivitystä uusille asennuksille. Voit tehdä tämän seuraavasti:
  1. Kirjaudu Play Consoleen.
  2. Valitse sovellus.
  3. Valitse vasemmalla olevasta valikosta Julkaisun hallinta > Sovelluksen allekirjoitukset.
  4. Valitse Päivitä uusien sovellusasennusten allekirjoitusavain -kortista Pyydä avaimen päivitystä.
  5. Valitse, mitä laitteella tehdään.
    • Valitsemastasi vaihtoehdosta riippuen saatat joutua ottamaan yhteyttä tukeen pyyntösi viimeistelemiseksi.
  6. Anna Google Playn luoda uusi sovelluksen allekirjoitusavain (suositus) tai ladata sellainen.
    • Jos avain oli sama kuin lähetysavain päivityksen jälkeen, voit jatkaa vanhan sovelluksen allekirjoitusavaimen käyttöä latausavaimena tai luoda uuden.
  • Jos olet julkaissut sovelluksesi myös Google Playn ulkopuolella tai aiot tehdä niin, voit luoda valmiiksi jaetun sovelluksen allekirjoitusavaimen ja lähettää sen Googleen, kun rekisteröidyt Google Play -sovelluksen allekirjoitusohjelmaan.
  • Suojataksesi tilisi ota kaksivaiheinen vahvistus käyttöön kaikille tileille, joilla on Play Console -käyttöoikeus.
  • Kun App Bundle on julkaistu testi- tai tuotantoversiona, voit avata App Bundle -selaimen ja ladata ZIP-arkiston, joka sisältää kaikki tietyn laitteen APK:t. Nämä APK:t on jo allekirjoitettu sovelluksen allekirjoitusavaimella. Voit asentaa ne laitteeseen ZIP-arkistosta apuohjelman avulla komentorivi nipputyökalu.
  • Turvallisuuden parantamiseksi luo uusi lähetysavain, joka eroaa sovelluksen allekirjoitusavaimesta.
  • Jos haluat testata lähetysavaimella allekirjoitettua APK:ta, rekisteröi avain palveluun tai sovellusliittymään, joka käyttää sovelluksen allekirjoitusta todentamiseen (kuten Google Mapsin API tai Facebook SDK).
  • Jos käytät Google-sovellusliittymiä, voit rekisteröidä lähetysvarmenteen Google Cloud Consolessa .

Mitä tehdä, jos avain on kadonnut tai hakkeroitu

Jos olet menettänyt pääsyn yksityiseen lähetysavaimesi tai se on hakkeroitu, kysy tilisi omistajalta. Kun otat yhteyttä tukeen, tilin omistajan on liitettävä tiedosto upload_certificate.pem.

Kun tukitiimi rekisteröi uuden latausavaimen, saat sähköpostin, jonka jälkeen voit päivittää avainsäilöt ja rekisteröidä avaimen API-palveluntarjoajien kanssa.

Tärkeä! Latausavaimen nollaaminen ei vaikuta sovelluksen allekirjoitusavaimeen, jota Google Play käyttää APK-tiedostojen allekirjoittamiseen ennen kuin ne lähetetään käyttäjille.

Oliko tämä tieto hyödyllistä?

Miten tätä artikkelia voidaan parantaa?

Joskus jotkut Android-sovellukset eivät jostain syystä sovi käyttäjälle. Esimerkkinä ovat ärsyttävät mainokset. Ja se tapahtuu niin - kaikki ovat hyviä ohjelmassa, mutta vain siinä oleva käännös on joko vino tai puuttuu kokonaan. Tai esimerkiksi ohjelma on kokeiluversio, mutta täysversiota ei voi saada. Kuinka muuttaa tilannetta?

Johdanto

Tässä artikkelissa puhumme kuinka purkaa APK sovelluksella, tarkastella sen sisäistä rakennetta, purkaa ja purkaa tavukoodi sekä yrittää myös tehdä useita muutoksia sovelluksiin, jotka voivat tuoda meille tämän tai toisen hyödyn.

Tehdäksesi kaiken tämän itse tarvitset vähintään perustiedot Java-kielestä, jolla Android-sovellukset kirjoitetaan, ja XML-kielestä, jota käytetään kaikkialla Androidissa - itse sovelluksen ja sen käyttöoikeuksien kuvauksesta merkkijonojen tallentamiseen. joka tulee näkyviin näytölle. Tarvitset myös kyvyn käsitellä erikoiskonsoliohjelmistoja.

Joten mikä on APK-paketti, jossa ehdottomasti kaikki Android-ohjelmistot jaetaan?

Sovelluksen purku

Artikkelissa työskentelimme vain puretun sovelluskoodin kanssa, mutta jos teet vakavampia muutoksia suuriin sovelluksiin, on paljon vaikeampaa ymmärtää smali-koodia. Onneksi voimme purkaa dex-koodin Java-koodiksi, joka, vaikka ei ole alkuperäinen eikä käännettävissä takaisin, on paljon helpompi lukea ja ymmärtää sovelluksen logiikkaa. Tätä varten tarvitsemme kaksi työkalua:

  • dex2jar - Dalvik-tavukoodin kääntäjä JVM-tavukoodiksi, jonka perusteella voimme saada Java-koodin;
  • jd-gui on itse purkuohjelma, jonka avulla voit saada luettavaa Java-koodia JVM-tavukoodista. Vaihtoehtoisesti voit käyttää Jadia (www.varanecas.com/jad); vaikka se on melko vanha, se tuottaa joissakin tapauksissa luettavampaa koodia kuin Jd-gui.

Niitä pitäisi käyttää näin. Ensin käynnistämme dex2jarin ja määritämme apk-paketin polun argumenttina:

%dex2jar.sh mail.apk

Tämän seurauksena Java-paketti mail.jar ilmestyy nykyiseen hakemistoon, joka voidaan jo avata jd-guissa nähdäksesi Java-koodin.

APK-pakettien järjestäminen ja hankkiminen

Android-sovelluspaketti on pohjimmiltaan tavallinen ZIP-tiedosto, joka ei vaadi erityisiä työkaluja sisällön katsomiseen ja pakkaamiseen. Riittää, että sinulla on arkistointi - 7zip Windowsille tai konsolin purkaminen Linuxissa. Mutta se koskee käärettä. Mitä on sisällä? Sisällä meillä on yleensä seuraava rakenne:

  • META-INF/- sisältää sovelluksen digitaalisen varmenteen, joka todistaa sen luojan, ja pakettitiedostojen tarkistussummat;
  • res/ - erilaisia ​​resursseja, joita sovellus käyttää työssään, kuten kuvat, rajapinnan deklaratiivinen kuvaus ja muut tiedot;
  • AndroidManifest.xml- sovelluksen kuvaus. Tämä sisältää esimerkiksi luettelon vaadituista käyttöoikeuksista, vaaditun Android-version ja vaaditun näytön resoluution;
  • classes.dex- käännetty sovellustavukoodi Dalvik-virtuaalikoneelle;
  • resurssit.arsc- myös resursseja, mutta erilaista - erityisesti merkkijonoja (kyllä, tätä tiedostoa voidaan käyttää venäläistämiseen!).

Luetteloidut tiedostot ja hakemistot ovat, jos eivät kaikki, niin ehkä suurimmassa osassa APK:ita. On kuitenkin muutamia muita vähemmän yleisiä tiedostoja/hakemistoja, jotka kannattaa mainita:

  • omaisuutta- resurssien analogia. Suurin ero on, että päästäksesi resurssiin, sinun on tiedettävä sen tunniste, kun taas omaisuusluettelo voidaan saada dynaamisesti käyttämällä AssetManager.list()-metodia sovelluskoodissa.
  • lib- alkuperäiset Linux-kirjastot, jotka on kirjoitettu NDK:n (Native Development Kit) avulla.

Tätä hakemistoa käyttävät pelien valmistajat laittaakseen C/C++:lla kirjoitetun pelimoottorinsa sinne sekä tehokkaiden sovellusten luojat (esim. Google Chrome). Ymmärsi laitteen. Mutta kuinka saada kiinnostavan sovelluksen pakettitiedosto? Koska APK-tiedostoja ei ole mahdollista saada laitteelta ilman juurtumista (ne ovat / data / app -hakemistossa), eikä juurtuminen ole aina suositeltavaa, on ainakin kolme tapaa saada sovellustiedosto tietokoneelle:

  • APK Downloader -laajennus Chromelle;
  • Todellinen APK Leecher -sovellus;
  • eri tiedostojen isännöinti ja warezniki.

Kumpaa käyttää, on makuasia; käytämme mieluummin erillisiä sovelluksia, joten kuvailemme Real APK Leecherin käyttöä, varsinkin kun se on kirjoitettu Java-kielellä ja vastaavasti se toimii jopa Windowsissa, jopa nixissä.

Ohjelman käynnistämisen jälkeen sinun on täytettävä kolme kenttää: Sähköposti, Salasana ja Laitetunnus - ja valittava kieli. Kaksi ensimmäistä ovat laitteellasi käyttämäsi Google-tilisi sähköpostiosoite ja salasana. Kolmas on laitetunnus, ja saat sen soittamalla numerovalitsimella olevan koodin # #8255## ja etsi sitten rivi Laitetunnus. Täyttäessäsi sinun tulee syöttää vain tunnus ilman android-etuliitettä.

Täytön ja tallennuksen jälkeen näkyviin tulee usein viesti "Virhe muodostettaessa yhteyttä palvelimeen". Sillä ei ole mitään tekemistä Google Playn kanssa, joten voit jättää sen huomiotta ja etsiä sinua kiinnostavia paketteja.

Tarkastus ja muokkaus

Oletetaan, että löysit sinua kiinnostavan paketin, latasit sen, purit sen... ja kun yritit tarkastella XML-tiedostoa, yllätyit huomatessasi, että tiedosto ei ole tekstitiedosto. Kuinka purkaa se ja miten käsitellä paketteja yleensä? Onko SDK todella tarpeen asentaa? Ei, sinun ei tarvitse asentaa SDK:ta. Itse asiassa kaikki APK-pakettien purkamisen, muokkaamisen ja pakkaamisen vaiheet tarvitsevat seuraavat työkalut:

  • ZIP-arkistointi purkamiseen ja pakkaamiseen;
  • smali- Dalvikin virtuaalikoneen tavukoodin kokoaja/purkaja (code.google.com/p/smali);
  • aapt- työkalu resurssien pakkaamiseen (oletusarvoisesti resurssit tallennetaan binäärimuodossa sovellusten suorituskyvyn optimoimiseksi). Android SDK:n mukana, mutta sen voi hankkia erikseen;
  • Allekirjoittaja- työkalu muokatun paketin digitaaliseen allekirjoittamiseen (bit.ly/Rmrv4M).

Voit käyttää kaikkia näitä työkaluja erikseen, mutta tämä on hankalaa, joten on parempi käyttää niiden pohjalta rakennettuja korkeamman tason ohjelmistoja. Jos käytät Linux- tai Mac OS X -käyttöjärjestelmää, käytettävissä on apktool-niminen työkalu. Sen avulla voit purkaa resurssit alkuperäiseen muotoonsa (mukaan lukien binaariset XML- ja arsc-tiedostot), rakentaa paketin uudelleen muokatuilla resursseilla, mutta se ei osaa allekirjoittaa paketteja, joten sinun on suoritettava allekirjoitusapuohjelma manuaalisesti. Huolimatta siitä, että apuohjelma on kirjoitettu Java-kielellä, sen asennus on melko epästandardi. Ensin sinun on hankittava itse jar-tiedosto:

$ 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 $ vienti PATH=~/bin:$PATH

Jos työskentelet Windowsilla, siihen on olemassa erinomainen työkalu nimeltään Virtual Ten Studio , joka myös kerää kaikki nämä työkalut (mukaan lukien itse apktool), mutta CLI-käyttöliittymän sijaan se tarjoaa käyttäjälle intuitiivisen graafisen käyttöliittymän, jolla suorittaa pakkauksen purkamisen, purkamisen ja purkamisen muutamalla napsautuksella. Tämä työkalu on Donation-ware, eli joskus ilmestyy ikkunoita, joissa ehdotetaan lisenssin hankkimista, mutta tämä voidaan lopulta sietää. Ei ole mitään järkeä kuvailla sitä, koska voit ymmärtää käyttöliittymän muutamassa minuutissa. Mutta apktoolista sen konsoliluonteen vuoksi tulisi keskustella yksityiskohtaisemmin.


Harkitse apktool-vaihtoehtoja. Lyhyesti sanottuna on kolme pääkomentoa: d (dekoodaus), b (build) ja if (asenna kehys). Jos kaikki on selvää kahdella ensimmäisellä komennolla, mitä tekee kolmas, ehdollinen operaattori? Se purkaa määritetyn käyttöliittymäkehyksen, jota tarvitaan järjestelmäpaketin eriteltäessä.

Harkitse ensimmäisen komennon mielenkiintoisimpia vaihtoehtoja:

  • -s- älä pura dex-tiedostoja;
  • -r- älä pura resursseja;
  • -b- älä lisää virheenkorjaustietoja dex-tiedoston purkamisen tuloksiin;
  • --kehys-polku- käytä määritettyä käyttöliittymäkehystä sisäänrakennetun apktoolin sijaan. Harkitse nyt paria vaihtoehtoa b-komennolle:
  • -f- pakotettu kokoonpano ilman muutosten tarkistamista;
  • -a- määritä polku aaptiin (APK-arkiston rakennustyökalu), jos haluat jostain syystä käyttää sitä toisesta lähteestä.

Apktoolin käyttö on hyvin yksinkertaista, sinun tarvitsee vain määrittää yksi komennoista ja polku APK:hen, esimerkiksi:

$ apktool d mail.apk

Sen jälkeen kaikki puretut ja puretut pakettitiedostot näkyvät postihakemistossa.

Valmistautuminen. Poista mainokset käytöstä

Teoria on tietysti hyvä, mutta miksi sitä tarvitaan, jos emme tiedä mitä tehdä pakkaamattomalle paketille? Yritetään soveltaa teoriaa omaksi hyödyksemme, eli muokkaamme joitain ohjelmistoja niin, että ne eivät näytä meille mainoksia. Olkoon se esimerkiksi Virtual Torch - virtuaalinen taskulamppu. Meille tämä ohjelmisto on täydellinen, koska se on täynnä ärsyttäviä mainoksia ja on tarpeeksi yksinkertainen, jotta se ei eksy koodin erämaahan.


Joten lataa sovellus markkinoilta jollakin yllä olevista menetelmistä. Jos päätät käyttää Virtuous Ten Studiota, avaa vain APK-tiedosto sovelluksessa ja pura se, jolle luo projekti (Tiedosto -> Uusi projekti) kontekstivalikko projekti, valitse Tuo tiedosto. Jos valintasi osui apktooliin, riittää yhden komennon suorittaminen:

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

Tämän jälkeen com.kauf.particle.virtualtorch-hakemistoon ilmestyy tiedostopuu, joka on samanlainen kuin edellisessä osiossa kuvattu, mutta jossa on ylimääräinen smali-hakemisto dex-tiedostojen ja apktool.yml-tiedoston sijaan. Ensimmäinen sisältää sovelluksen suoritettavan dex-tiedoston puretun koodin, toinen sisältää palvelutiedot, joita apktool tarvitsee paketin kokoamiseen.

Ensimmäinen paikka, joka meidän on tarkasteltava, on tietysti AndroidManifest.xml. Ja tässä kohtaamme heti seuraavan rivin:

On helppo arvata, että hän on vastuussa Internet-yhteyden käyttöoikeuksien myöntämisestä sovellukselle. Itse asiassa, jos haluamme vain päästä eroon mainoksista, meille todennäköisesti riittää, että kiellämme sovelluksen Internetistä. Yritetään tehdä se. Poista määritetty rivi ja yritä kääntää ohjelmisto apktoolilla:

$ apktool b com.kauf.particle.virtualtorch

Tuloksena oleva APK-tiedosto näkyy hakemistossa com.kauf.particle.virtualtorch/build/. Sitä ei kuitenkaan voi asentaa, koska siinä ei ole digitaalista allekirjoitusta ja tiedostojen tarkistussummia (sillä ei yksinkertaisesti ole META-INF/-hakemistoa). Meidän on allekirjoitettava paketti apk-signer-apuohjelmalla. Käynnistetty. Käyttöliittymä koostuu kahdesta välilehdestä - ensimmäisessä (Key Generator) luomme avaimet, toisessa (APK Signer) allekirjoitamme. Luodaksesi yksityisen avaimemme, täytä seuraavat kentät:

  • Kohdetiedosto- avainsäilön tulostustiedosto; se tallentaa yleensä yhden parin avaimia;
  • Salasana Ja Vahvistaa- salasana tallennukseen;
  • Alias- arkiston avaimen nimi;
  • Alias-salasana Ja Vahvistaa- salaisen avaimen salasana;
  • Voimassaolo- Voimassaoloaika (vuosina). Oletusarvo on optimaalinen.

Muut kentät ovat yleensä valinnaisia, mutta sinun on täytettävä vähintään yksi.


VAROITUS

Jos haluat allekirjoittaa sovelluksen apk-signerilla, sinun on asennettava Android SDK ja määritettävä koko polku siihen sovelluksen asetuksissa.

Kaikki tiedot on tarkoitettu vain tiedoksi. Toimittajat tai kirjoittaja eivät ole vastuussa tämän artikkelin materiaalien mahdollisesti aiheuttamista haitoista.

Nyt voit allekirjoittaa APK:n tällä avaimella. Valitse APK Signer -välilehdellä juuri luotu tiedosto, kirjoita sen salasana, avainalias ja salasana, etsi sitten APK-tiedosto ja napsauta rohkeasti "Allekirjoita"-painiketta. Jos kaikki menee hyvin, paketti allekirjoitetaan.

TIEDOT

Koska allekirjoitimme paketin omalla avaimellamme, se tulee olemaan ristiriidassa alkuperäisen sovelluksen kanssa, mikä tarkoittaa, että kun yritämme päivittää ohjelmistoa markkinoiden kautta, saamme virheilmoituksen.

Vain kolmannen osapuolen ohjelmistot tarvitsevat digitaalisen allekirjoituksen, joten jos muokkaat asennettuja järjestelmäsovelluksia kopioimalla ne /system/app/-hakemistoon, sinun ei tarvitse allekirjoittaa niitä.

Sen jälkeen pudotamme paketin älypuhelimeen, asennamme ja suoritamme. Voila, mainos on poissa! Sen sijaan ilmestyi viesti, että meillä ei ole Internetiä tai meillä ei ole tarvittavia käyttöoikeuksia. Teoriassa tämä voisi riittää, mutta viesti näyttää ärsyttävältä, ja rehellisesti sanottuna meillä kävi vain tuuri tyhmän hakemuksen kanssa. Hyvin kirjoitettu ohjelmisto todennäköisesti selventää käyttöoikeustietojaan tai tarkistaa Internet-yhteyden ja muuten yksinkertaisesti kieltäytyy käynnistymästä. Kuinka olla tässä tapauksessa? Tietysti muokkaa koodia.

Tyypillisesti sovellusten tekijät luovat erityisluokkia mainosten näyttämiseksi ja näiden luokkien kutsumenetelmien käynnistäminen sovelluksen tai jonkin sen "toiminnon" (yksinkertaisesti sanottuna sovellusnäytöt) aikana. Yritetään löytää nämä luokat. Siirrymme smali-hakemistoon, sitten com (orgissa on vain avoin grafiikkakirjasto cocos2d), sitten kauf (täsmälleen siellä, koska tämä on kehittäjän nimi ja kaikki hänen koodinsa on siellä) - ja tässä se on, markkinointihakemisto. Sisältä löydämme joukon tiedostoja smali-tunnisteella. Nämä ovat luokkia, joista merkittävin on Ad.smali-luokka, jonka nimestä on helppo arvata, että se näyttää mainoksia.

Voisimme muuttaa sen toiminnan logiikkaa, mutta olisi paljon helpompaa poistaa tyhmästi kutsut mille tahansa sen menetelmälle itse sovelluksesta. Siksi poistumme markkinointihakemistosta ja siirrymme viereiseen hiukkashakemistoon ja sitten virtualtorchiin. MainActivity.smali-tiedosto ansaitsee tässä erityistä huomiota. Tämä on tavallinen Android-luokka, jonka luo Android SDK ja joka on asetettu sovelluksen aloituspisteeksi (analogisesti C:n päätoiminnon kanssa). Avaa tiedosto muokkausta varten.

Sisällä on smali-koodi (paikallinen kokoaja). Se on melko hämmentävää ja vaikeasti luettavaa matalan tason luonteensa vuoksi, joten emme tutki sitä, vaan yksinkertaisesti etsimme koodista kaikki maininnat Mainosluokasta ja kommentoimme niitä. Ajamme haussa merkkijonon "Mainos" ja pääsemme riville 25:

Kentän yksityinen mainos:Lcom/kauf/marketing/Ad;

Tässä luodaan kenttämainos, joka tallentaa luokan Ad objektin. Kommentoimme asettamalla ###-merkin rivin eteen. Jatkamme etsintää. Rivi 423:

Uusi instanssi v3, Lcom/kauf/marketing/Ad;

Tässä kohde luodaan. Kommentoimme. Jatkamme hakua ja löydämme riveiltä 433, 435, 466, 468, 738, 740, 800 ja 802 kutsuja Ad-luokan menetelmiin. Kommentoimme. Näyttää siltä, ​​että se on siinä. Säästämme. Nyt paketti on koottava takaisin ja tarkistettava sen toimivuuden ja mainonnan varalta. Kokeen puhtauden vuoksi palautamme AndroidManifest.xml-tiedostosta poistetun rivin, keräämme paketin, allekirjoitamme sen ja asennamme sen.

Meidän marsumme. Näkyvä mainonta

Ap-pa! Mainonta katosi vain sovelluksen ollessa käynnissä, mutta pysyi päävalikossa, jonka näemme ohjelmiston käynnistäessä. Joten, odota, mutta aloituspiste on MainActivity-luokka ja mainos katosi sovelluksen ollessa käynnissä, mutta jäi päävalikkoon, joten aloituspiste on erilainen? Avaamme AndroidManifest.xml-tiedoston uudelleen todellisen aloituskohdan paljastamiseksi. Ja kyllä, se sisältää seuraavat rivit:

He kertovat meille (ja mikä tärkeintä, Androidille), että Aloitus-niminen toiminto pitäisi käynnistää vastauksena android.intent.action.MAIN-tavoitteen (tapahtuman) luomiseen android.intent.category.LAUNCHER-luokasta. Tämä tapahtuma luodaan, kun napautat sovelluskuvaketta käynnistysohjelmassa, joten se määrittää aloituskohdan, nimittäin aloitusluokan. Todennäköisesti ohjelmoija kirjoitti ensin sovelluksen ilman päävalikkoa, jonka sisääntulopisteenä oli tavallinen MainActivity-luokka, ja lisäsi sitten uuden ikkunan (toiminto), joka sisälsi valikon ja kuvasi Aloitus-luokassa, ja teki siitä manuaalisesti merkinnän. kohta.

Avaamme tiedoston Start.smali ja etsimme uudelleen riviä "Ad", löydämme riveiltä 153 ja 155 maininnan FirstAd-luokasta. Se on myös lähdekoodissa, ja nimestä päätellen se vastaa mainosten näyttämisestä päänäytöllä. Tarkastellaan tarkemmin, siellä luodaan FirstAd-luokan esiintymä ja tarkoitus tähän ilmentymään liittyvän kontekstin mukaan, ja sitten tunniste cond_10, johon ehdollinen siirtyminen suoritetaan täsmälleen ennen luokan esiintymän luomista. :

If-ne p1, v0, :cond_10 .line 74 uusi esiintymä v0, Landroid/content/Intent; ... :cond_10

Todennäköisesti ohjelma laskee jotenkin satunnaisesti, onko mainoksia tarpeen näyttää päänäytöllä, ja jos ei, hyppää suoraan kohtaan cond_10. Ok, yksinkertaistetaan hänen tehtäväänsä ja korvataan ehdollinen siirtymä ehdottomalla:

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

Koodissa ei enää mainita FirstAdista, joten suljemme tiedoston ja kokoamme virtuaalisen taskulamppumme uudelleen apktoolilla. Kopioi älypuhelimeen, asenna, suorita. Voila, kaikki mainokset ovat poissa, onnittelut meille kaikille.

Tulokset

Tämä artikkeli on vain lyhyt johdatus Android-sovellusten avaamis- ja muokkaamismenetelmiin. Monet ongelmat jäivät kulissien taakse, kuten suojauksen poistaminen, obfusoidun koodin jäsentäminen, sovellusresurssien kääntäminen ja korvaaminen sekä sovellusten muokkaaminen androidia käyttämällä NDK. Perustiedon omaaminen, kaiken tämän ymmärtäminen on kuitenkin vain ajan kysymys.

Viestin näyttökerrat: 5 618

android studio tarjoaa runsaasti mahdollisuuksia sekä sovellusten kehittämiseen että ohjelmoinnin automatisoinnin ja mukavuuden lisäämiseen.

Jos käytät rakennusjärjestelmää asteikko luodaksesi omia sovelluksiasi, voit myös määrittää muutamia vaihtoehtoja allekirjoitusten luomiseen sovelluksille.

Et luultavasti halua julkaista allekirjoitusavaimia, salasanoja ja käyttäjätunnuksia julkiseen (tai jopa yksityiseen) arkistoon. Siksi voit määrittää avaimen, salasanan ja käyttäjänimen ominaisuuksiksi erillisessä tiedostossa.

Ennen kuin aloitat hakemuksen allekirjoittamisen, sinun on luotava uusi ominaisuus gradle.properties-tiedostoon. Kutsutaan sitä keys.repo ja määritä arvoksi polku kansioon, johon avainsäilö ja tiedosto ominaisuuksia myöhemmin sijaitsevat (esim. C:/Users/UserName/.signing).

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

Sitten sinun on luotava tämä kansio tai avattava se, jos määritit olemassa olevan. Sen on luotava tiedosto YourProjectName.properties, jonka sisään polku avainsäilöön, avainalias ja salasana kirjoitetaan ominaisuuksina seuraavassa muodossa.

RELEASE_STORE_FILE=/ProjektinNimi/KeyStoreName.jks RELEASE_STORE_PASS=****** RELEASE_ALIAS=KeyAlias RELEASE_KEY_PASS=******

Kuinka luoda avainsäilö?

Jos sinulla ei ole avainsäilöä, voit luoda sellaisen helposti Android Studiolla. Voit tehdä tämän valitsemalla valikkokohdan Rakentaa -> Luo allekirjoitettu APK.

Napsauta näkyviin tulevassa ikkunassa Luo uusi... Tämän seurauksena avautuu ikkuna, jossa voit määrittää missä avainsäilö sijaitsee (tätä oppituntia varten on parempi valita välittömästi polku, jonka määritit YourProjectName.properties omaisuudessa RELEASE_STORE_FILE), sekä tiedot avaimesta.

Sitten sinun on luotava kansio ProjektisiNimi ja siirrä haluttu avainsäilytystiedosto sinne.

Nyt voit siirtyä suoraan allekirjoitusprosessiin. Tätä varten sinun on avattava tiedosto projektissasi build.gradle(sijaitsee sovelluskansiossa). Sen sisällä lohkossa Android sinun on lisättävä seuraava koodi.

SigningConfigs ( debug ( /* ei muutoksia täällä */ ) julkaisu ( if (project.hasProperty("Keys.repo")) ( def projectPropsFile = file(project.property("Keys.repo") + "/ProjektinNimi.properties " / ) storePassword props["RELEASE_STORE_PASS"] keyAlias-props["RELEASE_ALIAS"] keyPassword props["RELEASE_KEY_PASS"] ) ) else ( println "==================== = ================================" println " - Määritä julkaisun käännösympäristö - esim. kohteessa ~/. allekirjoitushakemisto" println "=============================================== =========" ) ) )

Mitkä ovat allekirjoitusjärjestelmät?

APK-allekirjoituksen hankkimiseen on kaksi tapaa: v1 JAR Ja v2 Täysi APK.

Ensimmäisessä tapauksessa allekirjoita JAR-tiedosto, joka on perinteinen allekirjoitustapa. V1-allekirjoitus ei suojaa joitakin APK:n osia, kuten ZIP-metatietoja. APK-todentajan on käsiteltävä monia epäluotettavia (ei vielä vahvistettuja) tietorakenteita ja sitten hylättävä allekirjoittamattomat tiedot, mikä jättää paljon tilaa hyökkäyksille. Lisäksi APK-vahvistimen on purettava kaikki pakatut tietueet, mikä vie paljon aikaa ja muistia. Näiden ongelmien ratkaisemiseksi kehitettiin toinen skeema v2 Full APK.

Schema v2 esiteltiin vuonna Android 7.0 Nougat (API 25) ja toimii versiosta lähtien Android Studio 2.2 Ja Android Gradle -laajennus 2.2. Tämä järjestelmä tarjoaa nopeamman sovelluksen asennuksen ja hyvän suojan luvattomilta APK:n muutoksilta. APK-sisältö tiivistetään ja allekirjoitetaan, minkä jälkeen se vastaanotetaan APK-allekirjoituksen esto lisätty APK:hen.

Validoinnin aikana v2-skeema käsittelee APK:ta blobina ja suorittaa allekirjoituksen vahvistuksen koko tiedostolle. Kaikki APK:n muutokset, mukaan lukien ZIP-metatietojen muutokset, mitätöivät allekirjoituksen. Tämä vahvistustapa on paljon nopeampi ja mahdollistaa enemmän luvattomien muutosten havaitsemisen.

Uusi muoto on taaksepäin yhteensopiva, joten uudella mallilla allekirjoitetut APK:t voidaan asentaa vanhemmille laitteille (joka yksinkertaisesti ohittaa uuden allekirjoituksen), kunhan myös kyseiset APK:t on allekirjoitettu v1-mallilla.

Allekirjoitus käyttää oletusarvoisesti molempia kaavoja, joten sovelluksia voidaan asentaa mille tahansa laitteelle. Voit kuitenkin tarvittaessa poistaa v1- tai v2-allekirjoituksen käytöstä. Voit tehdä tämän lohkon yllä olevassa koodissa vapauttaa lisää vain seuraavat rivit.

V1SigningEnabled false

V2SigningEnabled false

On myös tärkeää huomata, että sinun on allekirjoitettava v1-mallilla ennen allekirjoittamista v2-mallilla, koska APK ei läpäise v2-mallia, jos se allekirjoitetaan lisävarmenteilla sen jälkeen, kun se on allekirjoitettu v2-mallilla.

Kun koodi on lisätty, ilmoita tämä koodi kenttään rakennustyypit sisällä vapauttaa. Esimerkiksi:

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

Nyt voit turvallisesti valikkokohdassa Rakentaa valita Rakenna APK, joka on aiemmin vaihtanut kokoonpanotyypin debug päällä vapauttaa. Kuten näet, tämä menetelmä on kätevä siinä mielessä, että se on automaattinen, se tarvitsee määrittää vain kerran ja avainsäilöt voivat olla turvallisia.

Joten olet työskennellyt monta päivää (ja ehkä öitä), ja nyt ensimmäinen hybridimobiilisovelluksesi on valmis. Se on melko vakaa, suurin osa kriittisistä virheistä on suljettu. Pieniä on jäljellä, mutta kun muistat, että perfektionismi on pahasta, teet vahvan tahdon päätöksen julkaista sovellus.

Tämän edellytyksenä on allekirjoitetun APK-tiedoston olemassaolo. Kuinka allekirjoittaa apk-tiedosto, opit tästä artikkelista.

pieni poikkeama

Kun lemmikkiprojektini lähestyi julkaisua, aloin etsiä tietoa sovelluksen nopeasta ja kivuttomasti julkaisemisesta. Monet löydetyistä ohjeista näyttivät yksinkertaisilta. Valitsin Ionic-kehyksen tekijöiden ohjeet, joiden pohjalta sovellus kehitettiin. Kaikki ei toiminut ensimmäisellä kerralla, ominaisuuksia on useita. Allekirjoitusprosessi kuvataan tässä artikkelissa, tärkeitä kohtia korostetaan.

Alkutiedot

Oletan, että sinulla on kaikki mitä tarvitset hybridin kehittämiseen mobiilisovelluksia käyttäen Apache Cordovaa. On asennettava:
  • Apache Cordova
  • Java-kehityspaketti
  • Android SDK -työkalut
lcf:ää käytetään projektin ja sovelluksen nimenä. Korvaa tarvittaessa projektisi nimellä.

Mennä

Ensin sinun on luotava sovelluksesi julkaisuversio. Mutta ennen sitä varmistetaan, että kaikki tarpeettomat laajennukset on poistettu. Emme esimerkiksi tarvitse laajennusta, joka tulostaa virheenkorjaustiedot konsoliin. Otetaan se pois:

$ cordova plugin rm cordova-plugin-console
Luo julkaisuversio Androidille käyttämällä komentoa rakentaa lipun kanssa --vapauta:

$ cordova build -- julkaisu Android
Tämä komento luo allekirjoittamaton APK-tiedosto hakemistossa:

alustat/android/build/outputs/apk
Esimerkiksi alustat/android/build/outputs/apk/ android-release-unsigned.apk. Sitten meidän on allekirjoitettava tämä tiedosto ja suoritettava apuohjelma zipalign optimoidaksesi ja valmistellaksesi tiedoston Google Playta varten.

Tiedoston allekirjoittamiseen tarvitaan varmenne. Luodaan se apuohjelman avulla avaintyökalu joka sisältyy JDK:han:

$ keytool -genkey -v -keystore lcf.keystore -alias lcf -keyalg RSA -keysize 2048 -validity 10000
Tärkeä

Parametrin -alias arvo on muistettava, mutta se on parempi kirjoittaa muistiin. Yllä olevassa esimerkissä se on yhtä suuri kuin lcf (kanta-asiakasilmaisen sovelluksen nimen ensimmäisillä kirjaimilla). En anna täällä yksityiskohtia, jos olet kiinnostunut, kirjoita kommentteihin, kerron sinulle lisää.

Aliasta käytetään joka kerta allekirjoitettaessa * sovellukset. Käytä avainsäilötiedoston nimeä aliaksena, jotta se on helpompi muistaa, esimerkiksi:


-avainkauppa hello-world.keystore -alias hello-world -avainkauppa weather-app.keystore -alias sääsovellus -avainkauppa todo.keystore -alias todo
* Sinun on allekirjoitettava hakemus jokaisen päivityksen yhteydessä

Apuohjelma avaintyökalu kysyy sarjan kysymyksiä. Niitä tulee yhteensä 8. Saadaksesi käsityksen kysymyksistä ja likimääräisistä vastauksista etukäteen, ne kaikki on alla, spoilerin alla.

avaintyökalukysymykset ja esimerkkivastaukset

1. Anna avainsäilön salasana:
Täällä sinun on syötettävä tiedoston salasana (vähintään 6 merkkiä). Syötetty salasana tulee kirjoittaa muistiin turvalliseen paikkaan, sitä tarvitaan aina hakemusta allekirjoitettaessa.

2. Kirjoita uusi salasana uudelleen:
Syötä salasana uudelleen.

3. Mikä on etu- ja sukunimesi?
: Ivan Petrov
Etu- ja sukunimesi. Hakasulkeissa oleva arvo on oletusarvo.

4. Mikä on organisaatioyksikösi nimi?
: SE
Yrityksesi divisioonan nimi. Voit jättää sen tyhjäksi, määritän IT.

5. Mikä on organisaatiosi nimi?
: 2 kehittäjää
Organisaatiosi nimi. Ilmoita jos on.

6. Mikä on kaupunkisi tai paikkakuntasi nimi?
: Moskova
Kaupungin nimi

7. Mikä on osavaltiosi tai maakuntasi nimi?
: MO
Alueen nimi

8. Mikä on tämän laitteen kaksikirjaiminen maakoodi?
: FI
Maan koodi. Osoitan RU:ta.

: y

Vahvista, onko kaikki oikein, tai paina Enter päästäksesi uudelleen.


Lopussa näkyviin tulee viesti avaimen onnistuneesta luomisesta. Sinua pyydetään asettamaan salasana yksityiselle avaimelle (jos haluat jättää saman kuin varmenteessa, paina Enter):

Luodaan 2 048-bittinen RSA-avainpari ja itseallekirjoitettu varmenne (SHA256withRSA), jonka voimassaoloaika on 10 000 päivää: CN=Ivan Petrov, OU=IT, O=2kehittäjät, L=Moskova, ST=MO, C=RU Anna avain salasana (PALAA, jos sama kuin avainsäilön salasana):
Tiedosto luodaan nykyiseen hakemistoon lcf.keystore.

Tärkeä

Luotu tiedosto on tallennettava turvalliseen paikkaan. Jos käytät yksityistä arkistoa, tiedosto voidaan sitoa yhdessä sovelluksen lähdekoodien kanssa. Yleensä varmenteet on parasta säilyttää erikseen. Jos kadotat varmenteen, et voi julkaista sovelluspäivityksiä.

Jäljellä on kaksi vaihetta, ja sinulla on APK-tiedosto valmiina jakelua varten. Siirrymme suoraan allekirjoittamiseen.

Allekirjoita apk-tiedosto käyttämällä apuohjelmaa jarsigner, joka sisältyy myös JDK:han.

$ jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -avainkauppa lcf.keystore android-release-unsigned.apk lcf
Varmenteen nimi määritetään parametrin jälkeen - avainsäilö, alias - tiedostonimen jälkeen.

Lopuksi apk-tiedoston optimoimiseksi käytämme apuohjelmaa zipalign:

$ zipalign -v 4 android-release-unsigned.apk LoyalClientFree.apk
Viimeinen parametri on sen tiedoston nimi, jonka lataat Google Playhin.

Tärkeä.

Apuohjelma zipalign se on osa Android SDK Toolsia ja löytyy täältä:

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

Johtopäätös

Sinulla on nyt apk-tiedosto valmiina jakeluun, joka voidaan ladata Google Playhin. Täytä kuvaus, määritä hakemuksesi luokitus ja napsauta "Julkaise".
 
Artikkelit Tekijä: aihe:
Tietojen vastaanottaminen Mitä eroa on tiedon vastaanottamisella ja viestin vastaanottamisella
Tieto on tietoa jostakinTiedon käsite ja tyypit, siirto ja käsittely, tiedon haku ja tallennus Laajenna sisältöä Kutista sisältö Tieto on, määritelmä Tieto on mitä tahansa vastaanotettua ja välitettyä, tallennettua tietoa
Mikä on aloitussivu ja miltä sen pitäisi näyttää Mikä on aloitussivun nimi Internetissä
Useimmat yksityisten yritysten, eri palveluiden ja pienten organisaatioiden omistajat ymmärtävät, kuinka tärkeää on asioida verkossa. Verkkosivuston luominen ja sivun ylläpitäminen sosiaalisissa verkostoissa on nyt osa minkä tahansa yrityksen markkinointistrategiaa. Mutta harvat yritykset ja
Mallin asentaminen ucoziin - Ohjelma, josta et tiennyt, opimme yhdistämään!
Joomla-mallin asentaminen - Vianetsintä - 4.5 / 5 perustuen 2 ääneen Mallin valitseminen, asentaminen ja määrittäminen on yksi tärkeimmistä vaiheista Joomla-sivuston luomisessa. Tässä opetusohjelmassa tarkastellaan mallin asentamista
Faibisovich - opas sähköverkkojen suunnitteluun
KÄSIKIRJA SÄHKÖVERKKOJEN SUUNNITTAMISTA Toimittanut D. L. FAIBISOVICH Painos 4, tarkistettu ja täydennetty Arvostelija V. V. Mogirev Tekijät: I. G. Karapetyan (s. 3.2, 5.1, 5.3–5.8, s. Faibis), 6, sek. L...