Kako i šta urediti android aplikacije. Otvaranje, mijenjanje i pakiranje Android aplikacija

Ovo sam opet ja i moje upute za čajnike i lonce sa slikama.

Ovaj put ću detaljno govoriti o zamjeni sistemskih komponenti Android OS -a na primjeru instaliranja izmjene statusne trake.

Android je mali Linux. U njemu se moraju pridržavati brojnih pravila prilikom zamjene datoteka kako se telefon ne bi pretvorio u ciglu, što se može oživjeti samo potpunim bljeskanjem uz gubitak svih podataka iz internu memoriju uređaja. Interne particije su formatirane u sistemu datoteka koji nije FAT32 na fleš diskovima. Svojstva datoteke, između ostalog, pohranjuju dozvole za različite grupe korisnika (vlasnik datoteke, grupa vlasnika datoteke, drugi korisnici). Prilikom rada sa sistemske datoteke moraju se spremiti jer sistem prilikom pokretanja možda jednostavno neće moći da im pristupi i neće se normalno pokrenuti.
Počnimo s alatom.

Trebamo:

  • Upravitelj datoteka koji zna kako raditi s root-pravima i dozvolama za datoteke. Root Explorer je najbolji (kupili ste ga, zar ne?)
  • Sama izmijenjena datoteka koju želimo staviti umjesto sistemske (veza na kraju članka).

Sada koristimo jednu od prikladnih funkcija Root Explorera. Hajde da dugo dodirnemo željenu datoteku za otvaranje kontekstnog menija

I kliknite na stavku " Zip datoteku"za spremanje datoteke u zip arhivu na SD kartici. Nakon arhiviranja dobivamo ovu poruku:

Pritisnite dugme " Ostani"da ostanete u mapi i učinite nešto drugo.

Sada ste spremni za zamjenu datoteke.
Već sam govorio o dozvolama za svaku datoteku. Da biste ih ponovo stvorili u novoj datoteci, prvo ih morate pogledati iz stare. Predstavljeni su nizom simbola "rwxrwxrwx". 1. trijada - vlasnička prava, 2. - vlasničke grupe, 3. - svi ostali korisnici. Naša datoteka ima dozvole "rw-r-r--".

Sada idemo na SD karticu, tamo pronađite izmijenjenu datoteku i odaberite stavku " Copy", ali ne žurimo s odabirom mape" / system / app "odmah, jer ćemo odmah oštetiti sistem. Umjesto toga, kopiramo datoteku u posebnu mapu za privremene datoteke" / data / local / tmp "da biste datoteku doveli u oblik koji će preuzeti sistem.
Za početak otvorite kontekstni izbornik datoteke i odaberite stavku " Preimenuj"i unesite naziv datoteke" SystemUI.apk ". Tako je, jer u Linuxu su slova u nazivu važna, tj." systemui.apk "i" SystemUI.apk "su različite datoteke.
Zatim morate promijeniti dozvole za datoteku, jer su sada gotovo sigurno pogrešno postavljene. Da biste to učinili, ponovo pozovite kontekstni izbornik datoteke dugim dodirom i odaberite stavku " Dozvole". Za našu vrijednost" rw-r- r-- "zastavice treba postaviti ovako:

Kliknite na " uredu"i ponovo pozovite kontekstni izbornik. Sada moramo promijeniti vlasnika i grupu za ovu aplikaciju. Da biste to učinili, odaberite" Promijenite vlasnika". Pojavit će se prozor s podacima o trenutnom vlasniku datoteke.
Ovdje moramo napraviti malu digresiju.
U mapi " / system / app" sve datoteke su u vlasništvu korisnika "root" (uid = 0) i grupe "root" (gid = 0), a u mapi " / system / framework" sistem "korisnik" "(gid = 1000) i" sistemska "grupa (gid = 1000).
Na osnovu gore navedenog izlažemo željene vrednosti i pritisnite " uredu".
I po treći put pozivamo kontekstni izbornik za datoteku i odabiremo stavku " Copy"i u dijalogu za kopiranje idite u mapu" / system / app ". Sada hrabro pritisnite" Zalijepi"i pažljivo čitajte.
Skoro odmah, sistem će izvijestiti da je proces statusne trake naglo završio i ponudit će ga da se pokrene. Svi pokušaji neće uspjeti. Između pojavljivanja prozora morate imati vremena za brojne radnje. Prije nego pritisnete dugme, morate pozvati meni za isključivanje uređaja, bit će pod upozorenjem. Sada morate staviti prst otprilike na lijevu stranu dugmeta. Sada morate vrlo brzo kliknuti prstom tri puta kako biste imali vremena zatvoriti upozorenje, odabrati stavku za isključivanje i potvrditi svoje namjere.
Sada čekamo da se telefon isključi, ponovo pokrenemo i uživamo u rezultatu ili ne uživamo i tražimo greške.

Uređivanje sistemske aplikacije Android se najčešće izvodi kada korisnik pametnog telefona, tableta ili drugog uređaja kontrolira ovo operativni sistem, prestaje zadovoljavati struju izgled programe koje je proizvođač ili prodavač instalirao na uređaj. Drugi razlog može biti potreba da se ne izvrše samo promjene koje se tiču grafički dizajn Android aplikacije, ali i utječu na lokaciju različitih elemenata i performanse osnovnih funkcija.

Da bi se izvršile promjene u kodu, potrebne su osnovne vještine programiranja na gotovo svakom jeziku (po mogućnosti Java i C ++). Za zamjenu grafike bit će dovoljne ravne ruke i mogućnost rada u grafičkom uređivaču.

Prije svega, morate odlučiti trebate li samo zamijeniti grafiku u Android aplikacijama ili trebate promijeniti raspored elemenata u sistemu i unijeti dublje promjene u kôd. Daljnji koraci ovise o tome, pod pretpostavkom da radite s aplikacijom kao arhivom ili kompletno rastavljanje i uređivanje.

Promjena grafike u sistemskim aplikacijama Android

Da biste jednostavno zamijenili ili izmijenili originalnu grafiku (promijenili boje tipki, precrtali slike itd.), Dovoljno je imati standardni WinRAR arhivar... Istovremeno, korisnik mora imati root prava na uređaju (analogno račun administrator u Windowsu), a poželjno je imati i alternativni oporavak (CWM) i root explorer (za pristup datotečnom sistemu Android direktno u samom uređaju).

Prije svega, morate omogućiti USB ispravljanje pogrešaka u uređaju, zatim ga spojiti na računalo pomoću USB kabela i instalirati potrebne upravljačke programe. Obično se nalaze na adresi virtuelni disk koja se pojavljuje kada ste povezani sa računarom.

Zatim morate također preuzeti ADB dodatak za upravitelj datoteka na Internetu. Ovaj dodatak vam omogućava da vidite cijeli Android sistem kao povezani pogon sa fasciklama. Sve sistemske aplikacije nalaze se na / system / app kao i / system / framework. Nakon što smo pronašli potrebnu aplikaciju, jednostavno je kopiramo na računar. Ako dodatak nije instaliran, možete koristiti root explorer za kopiranje aplikacije s apk ekstenzijom na izmjenjivu SD karticu, a zatim s nje na vaše računalo.

Nakon kopiranja željenu aplikaciju možete započeti uređivanje grafike. Usput, sve slike u Android aplikacijama se spremaju u png formatu, koji se lako može otvoriti bilo kojim grafičkim uređivačem. Otvaranje datoteke aplikacije s WinRAR -om otkriva brojne mape. Zanimaće nas samo res fascikla, unutar koje će, zauzvrat, biti mnogo različite fascikle... Od njih su potrebni samo oni koji u svom nazivu imaju riječ "drawable".

Sjetimo se sada našeg tipa uređaja i njegove rezolucije ekrana. Ako se radi o pametnom telefonu, a rezolucija 240x320, tada će nas zanimati uglavnom mape za iscrtavanje i izvlačenje-ldpi. Ako je rezolucija 320x480, mape za crtanje i za crtanje-mdpi, odnosno za rezolucije 480 x 800, mape za crtanje i za crtanje-hdpi. Osim njih, obično postoje i fascikle s imenom "zemlja" u nazivu - to su grafike za portretni način, tj. kada je uređaj nagnut.

Ako držite tablet, tada će nas zanimati samo mape koje se mogu crtati i koje se mogu izvući-mdpi pri bilo kojoj rezoluciji ekrana.

Nakon što ste kopirali odabrane mape na svoj računar, možete zamijeniti ili promijeniti boju originalnih slika sa željenom i oku ugodnom. Posebnu pažnju trebate obratiti na slike rezolucije 9.png. Činjenica je da duž oboda takve slike postoji poseban okvir širine jedan piksel sa posebnim oznakama, čije će kršenje integriteta dovesti do kvara aplikacije. Stoga morate biti vrlo oprezni pri uređivanju takvih datoteka.

Nakon što završite uređivanje mape, morate je vratiti natrag u arhivu, koja je sama aplikacija s nastavkom apk. U ovom slučaju, neophodno je odabrati opciju "bez kompresije" u WinRAR -u.

Ispravljena aplikacija se učitava natrag na uređaj ili pomoću root explorer -a (prvo se datoteka kopira na SD karticu, a s nje na uređaj), ili nakon izlaska iz oporavka - odmah s računara u / system / app ili / system / framework folder ... Zatim morate postaviti dozvole za datoteke koristeći odgovarajuće opcije u root Exploreru ili ADB dodatku. Moraju biti u formatu 644. Nakon ponovnog pokretanja uređaja, možete vidjeti rezultat ažurirane aplikacije.

Uređivanje izvornog koda sistemskih aplikacija

Potrebno je malo više napora za uređivanje izvornog koda sistemskih aplikacija. Da biste raščlanili i sastavili aplikaciju nakon što ste je promijenili, morate dovršiti sljedećih nekoliko koraka.

1) Instalirajte na računar potreban softverski paket u svom najnovije verzije: Java SE Runtime Environment i Android Windows SDK(programi za rad s aplikacijama i njihovim komponentama), APKtool ili APKManager ili Firmware_tool (jedan od tri programa za rastavljanje i dekompilaciju sistemskih aplikacija), NotePad ++ editor (za izmjene izvornog koda sistemskih aplikacija Android).

2) Omogućite USB otklanjanje grešaka u uređaju, povežite ga s računarom pomoću USB kabela, instalirajte potrebne upravljačke programe za rad s uređajem.

3) Koristeći jedan od gore navedenih programa za rad s aplikacijskim kodom, morate izdvojiti / system / framework folder (u potpunosti) s telefona u odgovarajuću programsku mapu i sistemske aplikacije iz / system / app mape. Na primjer, za program Firmware_tool, datoteke s telefona moraju se kopirati u mapu C: Firmwaretoolfw_project1_source2_system.img_unpacked u odgovarajuće podmape (aplikacije - u mapu aplikacije, datoteke iz okvira - u mapu okvira). Kada koristite i ovaj i druge programe, svakako pročitajte upute za njih.

4) Instalirajte "osnovni okvir", tj. skup pravila prema kojima će se vršiti dekompilacija (tj. demontaža koda) i kompilacija (tj. sastavljanje koda) aplikacija.

Time je završena priprema za rad sa sistemskim aplikacijama.

Istovar aplikacija s uređaja i njihovo ponovno učitavanje vrši se na isti način kako je opisano u odjeljku "Promjena grafike u aplikacijama Android sistema".

Uređivanje koda Android aplikacija obično se vrši pomoću uređivača NotePad ++ - jednog od najpogodnijih uređivača teksta koji ima mogućnost isticanja sintakse odabranog programskog jezika. U pravilu, prilikom uređivanja možete i usput promijeniti grafiku pomoću odabranog grafičkog uređivača.

Po završetku uređivanja, izmijenjena aplikacija se ponovo učitava u uređaj, a sam uređaj treba ponovo pokrenuti. Napredniji urednici koriste razne emulatore za otklanjanje grešaka u aplikacijama prije nego što ih otpreme na uređaj, na primjer Eclipse iz Googlea.

Programi za Android platformu su jedna datoteka s nastavkom apk, što je vrlo zgodno. Zapravo, instalacija bilo kojeg programa na pametnom telefonu ili tabletu svodi se na njegovu jednostavno kopiranje na vaš gadget. Šta je apk datoteka i kako možete vidjeti šta se nalazi unutra?

Šta je APK datoteka?

Skraćenica APK otkrivena je kao Android Package Kit - izvršni paket datoteka za Android aplikacije. To je arhiva koja sadrži sastavljene i spremne kodove i druge resurse. apk datoteke pohranjene su na internetskim stranicama poput Google play odakle ih možete preuzeti i instalirati na svoj gadget. Oni nisu šifrirani.

Njegovu strukturu je pripremio programer za rad u okruženju virtuelna mašina Dalvik ili ART. Ove mašine su ugrađene u Android OS i pokreću sve aplikacije koje se nalaze na vašem uređaju.

Apk datoteka je obična arhiva koju možete otvoriti sa bilo kojim arhivatorom u Windows okruženje... Na primjer, WinRAR ili menadžer datoteka koji otvara ZIP arhive. Pogledajmo šta je unutra.

  • Izvršna datoteka s ekstenzijom dex (ime može biti bilo koje), što je upravo programski kod.
  • Pored njega nalazi se resources.arsc, koji je registar resursa koje bi program trebao koristiti. To je XML struktura.
  • AndroidManifest.xml je potrebna datoteka bilo kojeg programa, manifest koji sadrži glavne informacije o njemu. Ovdje se, na primjer, mogu snimiti verzija programa, potrebna verzija Androida, podaci o programeru, potrebne rezolucije ekrana itd.
  • Res direktorij sadrži interne resurse koji su potrebni programu za rad. Sve slike, ikone, ikone, karte itd. Mogu biti ovdje.
  • Lib direktorij - izvorne biblioteke za rad programa, na primjer, C ++ kôd. Ovaj direktorij možda neće biti prisutan ako se biblioteke ne koriste.
  • Direktorij imovine - dodatni resursi za aplikaciju, ponekad mogu nedostajati. Tačno koje resurse treba koristiti opisano je u datoteci resources.arsc.
  • Imenik META -INF - metapodaci programa. Na primjer, datoteka MANIFEST.MF, koja može sadržavati staze podataka i njihove kontrolne sume. Ovdje se mogu pohraniti datoteke RSA certifikata, informacije o verziji manifesta i slične servisne informacije.

Pregled popularnih uređivača datoteka ARK

Kao što je već spomenuto, apk datoteku možete raspakirati bilo kojim ZIP arhivatorom. Nakon toga možete pregledati tamo pohranjene resurse.

Sa slikama uopće neće biti problema, mogu se otvoriti u bilo kojem odgovarajućem programu. XML format otvara bilo koji uređivač teksta na primjer Notepad ++. Ako znate kako ovaj format funkcionira, onda ih već možete urediti. No za sastavljene izvršne datoteke morate koristiti posebne alate.

Eclipse editor... To je potpuno programersko okruženje za više platformi. Možete se razvijati na svim modernim jezicima i pripremiti izvršne datoteke, uključujući i one za Android. Okruženje se može fleksibilno prilagoditi pomoću brojnih dodataka.

Android SDK ... Kao što naziv implicira, ovo je namjenski razvojni alat mobilne programe to je za Android. Uz njegovu pomoć možete lako dekompilirati izvršne datoteke tuđe aplikacije ili napisati vlastite od nule. Razlikuje se po tome što po želji povezuje različite module za ispravljanje pogrešaka i testiranje vašeg koda, za testiranje programa na kompatibilnost s različitim gadgetima itd.

APK downloader... Ovo je dodatak za Chrome pretraživač, što olakšava preuzimanje apk-programa sa bilo koje web stranice i pregled njihove strukture. Da biste to učinili, čak možete biti i registrirani na Google Playu.

Uređivač APK -a... Uređivač koji vam omogućuje rad s resursima unutar apk-paketa. Nije tako snažan kao Eclipse, ali je ključan skup jednostavni zadaci... Na primjer, možete ukloniti oglasne jedinice iz programa, rusificirajte sučelje, zamijenite ikone ili teksture vlastitim i još mnogo toga.

Ponekad neke aplikacije na Androidu na neki način ne odgovaraju korisniku. Primjer je dosadni oglasi... I događa se tako - svi su dobri u programu, ali samo je prijevod u njemu ili iskrivljen, ili potpuno odsutan. Ili, na primjer, probni program i nabavite puna verzija nema mogućnosti. Kako se situacija može promijeniti?

Uvod

U ovom ćemo članku govoriti o tome kako rastaviti APK paket s aplikacijom, pogledati njegovu unutrašnju strukturu, rastaviti i dekompilirati bajt kod, a također ćemo pokušati napraviti nekoliko promjena u aplikacijama koje nam mogu donijeti jednu ili drugu korist.

Da biste sve ovo učinili sami, trebat će vam barem osnovno poznavanje Java jezika, na kojem su napisane Android aplikacije, i XML jezika, koji se svugdje koristi u Androidu - od opisa same aplikacije i njenih prava pristupa do spremanje nizova koji će biti prikazani na ekranu. Trebat će vam i sposobnost rukovanja specijaliziranim softverom za konzole.

Dakle, što je zapravo APK paket u kojem se distribuira apsolutno sav softver za Android?

Dekompilacija aplikacija

U članku smo radili samo s rastavljenim kodom aplikacije, ali ako je u odlične aplikacije ako napravite ozbiljnije promjene, bit će mnogo teže razumjeti smali kod. Srećom, možemo dex dex kod deksirati u Java kod, koji je, iako nije originalan i nije kompiliran, mnogo lakši za čitanje i razumijevanje logike aplikacije. Da bismo to učinili, potrebna su nam dva alata:

  • dex2jar - prevodilac Dalvik bajt koda u JVM bajt kod, na osnovu kojeg možemo dobiti kod u Javi;
  • jd-gui je sam dekompilator koji vam omogućuje da dobijete čitljiv Java kod iz JVM bajt koda. Alternativno, možete koristiti Jad (www.varaneckas.com/jad); iako je prilično star, u nekim slučajevima generira čitljiviji kod od Jd-guija.

Treba ih koristiti ovako. Prvo pokrećemo dex2jar, navodeći putanju do apk paketa kao argument:

% dex2jar.sh mail.apk

Kao rezultat toga, u trenutnom direktoriju će se pojaviti mail.jar Java paket, koji se već može otvoriti u jd-gui za pregled Java koda.

Uređaj i preuzimanje paketa APK

Plasticna kesa Android aplikacije je u stvari obična ZIP datoteka, nisu potrebni nikakvi posebni alati za pregled i izdvajanje sadržaja. Dovoljno je imati arhiver - 7zip za Windows ili unzip konzole za Linux. Ali to je otprilike omot. Šta je unutra? Unutra generalno imamo sljedeću strukturu:

  • META-INF /- sadrži digitalni certifikat aplikacije koji potvrđuje njenog tvorca i kontrolne sume datoteka paketa;
  • res / - različiti resursi koje aplikacija koristi u svom radu, na primjer, slike, deklarativni opis sučelja i drugi podaci;
  • AndroidManifest.xml- opis aplikacije. Ovo uključuje, na primjer, listu potrebnih dozvola Android verzija i potrebna rezolucija ekrana;
  • classes.dex- kompajlirani bajt kod aplikacije za Dalvik virtualnu mašinu;
  • resources.arsc- takođe resursi, ali različite vrste - posebno, nizovi (da, ova datoteka se može koristiti za rusifikaciju!).

Navedene datoteke i direktoriji nalaze se, ako ne u svim, onda su možda u velikoj većini APK -ova. Međutim, vrijedi spomenuti još nekoliko ne tako uobičajenih datoteka / direktorija:

  • imovine- analog izvora. Glavna razlika je u tome što za pristup imovini morate znati njen identifikator, dok se lista imovine može dinamički dobiti pomoću metode AssetManager.list () u aplikacijskom kodu;
  • lib- izvorne Linux biblioteke napisane sa NDK (Native Development Kit).

Ovaj direktorij koriste proizvođači igara, koji tamo stavljaju mehanizam za igre napisan na C / C ++, kao i programeri aplikacija visokih performansi (na primjer, Google chrome). Uređaj je sređen. Ali kako doći do stvarne datoteke paketa aplikacije od interesa? Budući da nije moguće preuzeti APK datoteke s uređaja bez root -a (one se nalaze u / data / app direktoriju), a root nije uvijek preporučljiv, postoje najmanje tri načina da datoteku aplikacije prenesete na računalo:

  • Proširenje APK Downloader za Chrome;
  • Prava aplikacija APK Leecher;
  • različito dijeljenje datoteka i warezniki.

Koje ćete koristiti pitanje je ukusa; radije koristimo odvojene aplikacije, stoga ćemo opisati upotrebu Real APK Leecher -a, pogotovo jer je napisan na Javi i, shodno tome, funkcionirat će čak i u Windowsima, čak i u nix -u.

Nakon pokretanja programa morate popuniti tri polja: E -pošta, Lozinka i ID uređaja - i odabrati jezik. Prva dva su e-pošta i lozinka vašeg Google računa, koje koristite na uređaju. Treći je identifikator uređaja, a možete ga dobiti biranjem koda na brojčaniku # #8255## a zatim pronalaženje linije ID uređaja. Prilikom popunjavanja trebate unijeti samo ID bez prefiksa android.

Nakon popunjavanja i spremanja često se pojavi poruka "Greška pri povezivanju sa serverom". To nema nikakve veze s Google Playom, pa ga zanemarite i potražite pakete koji vas zanimaju.

Prikaz i izmjena

Recimo da ste pronašli paket koji vas zanima, preuzeli, raspakovali ... i dok sam pokušavao pregledati neku XML datoteku, iznenadio sam se kada sam otkrio da datoteka nije tekst. Kako ga dekompilirati i kako općenito raditi s paketima? Je li zaista potrebno instalirati SDK? Ne, ne morate instalirati SDK. Zapravo, svi koraci za raspakiranje, izmjenu i pakiranje APK paketa zahtijevaju sljedeće alate:

  • ZIP arhivar za raspakivanje i pakovanje;
  • smali- asembler/rastavljač bajt koda Dalvik virtualne mašine (code.google.com/p/smali);
  • aapt- alat za pakiranje resursa (prema zadanim postavkama, resursi se pohranjuju u binarnom obliku radi optimizacije performansi aplikacije). Uključeno u Android SDK, ali se može nabaviti zasebno;
  • potpisnik- alat za digitalni potpis izmijenjeni paket (bit.ly/Rmrv4M).

Sve ove alate možete koristiti zasebno, ali to je nezgodno, pa je bolje koristiti softver više razine izgrađen na njihovoj osnovi. Ako radite na Linuxu ili Mac OS X -u, postoji alat koji se zove apktool. Omogućava vam da raspakirate resurse u njihovom izvornom obliku (uključujući binarne XML i arsc datoteke), ponovo izgradite paket s promijenjenim resursima, ali ne može potpisati pakete, pa ćete morati ručno pokrenuti pomoćni program za potpisivanje. Unatoč činjenici da je uslužni program napisan na Javi, njegova instalacija je prilično nestandardna. Prvo biste trebali nabaviti samu jar datoteku:

$ 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

Ako radite u sustavu Windows, za njega postoji odličan alat pod nazivom Virtual Ten Studio, koji također akumulira sve te alate (uključujući i sam apktool), ali umjesto CLI sučelja korisniku pruža intuitivan grafičko sučelje, pomoću kojih možete izvesti operacije raspakivanja, rastavljanja i dekompilacije u nekoliko klikova. Ovaj alat je donacija, odnosno ponekad postoje prozori koji nude dobijanje licence, ali to se na kraju može tolerirati. Nema smisla to opisivati ​​jer možete razumjeti sučelje za nekoliko minuta. No o apktoolu, zbog njegove konzole, trebalo bi razgovarati detaljnije.


Pogledajmo apktool opcije. Ukratko, postoje tri glavne naredbe: d (dekodiranje), b (izgradnja) i if (instalacijski okvir). Ako je sa prve dvije naredbe sve jasno, šta onda radi treći, uvjetni operator? Raspakira navedeni okvir korisničkog sučelja, koji je potreban kada secirate bilo koji sistemski paket.

Razmotrimo najzanimljivije opcije prve naredbe:

  • -s- ne rastavljajte dex datoteke;
  • -r- ne raspakirajte resurse;
  • -b- ne ubacujte informacije o otklanjanju grešaka u rezultate rastavljanja dex datoteke;
  • —Okvir-putanja- koristite navedeni okvir korisničkog sučelja umjesto onog ugrađenog u apktool. Pogledajmo sada nekoliko opcija za naredbu b:
  • -f- prisilno sklapanje bez provjere promjena;
  • -a- određujemo put do aapt (alat za izgradnju APK arhive), ako ga iz nekog razloga želite koristiti iz drugog izvora.

Korištenje aplikacije apktool vrlo je jednostavno, za to trebate samo navesti jednu od naredbi i put do APK -a, na primjer:

$ apktool d mail.apk

Nakon toga će se sve izdvojene i rastavljene datoteke paketa pojaviti u direktoriju pošte.

Disekcija. Onemogućite oglase

Teorija je, naravno, dobra, ali zašto je potrebna ako ne znamo što ćemo s raspakiranim paketom? Pokušajmo primijeniti teoriju u svoju korist, naime izmijeniti neki softver tako da nam ne prikazuje oglase. Na primjer, neka to bude Virtual Torch - virtualna baklja. Za nas je ovaj softver savršen jer je pun očnih jabučica dosadnim oglasima i, štoviše, dovoljno je jednostavan da se ne izgubi u džungli koda.


Dakle, koristeći jednu od gore navedenih metoda, preuzmite aplikaciju s tržišta. Ako odlučite koristiti Virtuous Ten Studio, samo otvorite APK datoteku u aplikaciji i raspakirajte je, za što stvorite projekt (Datoteka -> Novi projekt), a zatim u kontekstni meni odaberite Uvezi datoteku. Ako je vaš izbor pao na apktool, tada je dovoljno izvršiti jednu naredbu:

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

Nakon toga, stablo datoteka slično onom opisanom u prethodnom odjeljku pojavit će se u direktoriju com.kauf.particle.virtualtorch, ali s dodatnim smali direktorijem umjesto dex datoteka i datotekom apktool.yml. Prvi sadrži rastavljeni kôd izvršne dex datoteke aplikacije, drugi sadrži servisne informacije potrebne apktool -u za izgradnju paketa.

Prvo mjesto koje bismo trebali pogledati je, naravno, AndroidManifest.xml. I tu odmah nailazimo na sljedeću liniju:

Kao što možete pretpostaviti, ona je odgovorna za davanje aplikacije dozvoli za korištenje internetske veze. U stvari, ako se samo želimo riješiti oglasa, najvjerojatnije ćemo morati onemogućiti Internet za aplikaciju. Pokušajmo to učiniti. Brišemo navedenu liniju i pokušavamo izgraditi softver pomoću aplikacije apktool:

$ apktool b com.kauf.particle.virtualtorch

Rezultirajuća APK datoteka pojavit će se u direktoriju com.kauf.particle.virtualtorch / build /. Međutim, neće ga biti moguće instalirati jer nema digitalni potpis i kontrolne sume datoteke (jednostavno nema direktorij META-INF /). Moramo potpisati paket pomoću uslužnog programa apk-signer. Pokrenuto. Sučelje se sastoji od dvije kartice - na prvoj (Key Generator) stvaramo ključeve, na drugoj (APK Signer) potpisujemo. Da biste stvorili naš privatni ključ, popunite sljedeća polja:

  • Ciljna datoteka- izlazna datoteka skladišta ključeva; obično sadrži jedan par ključeva;
  • Lozinka i Potvrdi- lozinka za skladište;
  • Alias- ime ključa u spremištu;
  • Alias ​​lozinka i Potvrdi- lozinka za tajni ključ;
  • Validnost- period važenja (u godinama). Zadana vrijednost je optimalna.

Ostala polja općenito su neobavezna - ali barem jedno morate popuniti.


UPOZORENJE

Da biste potpisali aplikaciju pomoću aplikacije apk-signer, morate instalirati Android SDK i navesti punu putanju do nje u postavkama aplikacije.

Sve informacije su date samo u informativne svrhe. Ni uredništvo ni autor nisu odgovorni za bilo kakvu moguću štetu uzrokovanu materijalima ovog članka.

Sada možete potpisati APK ovim ključem. Na kartici Potpisnik APK -a odaberite novo generiranu datoteku, unesite lozinku, pseudonim ključa i lozinku, zatim pronađite APK datoteku i hrabro pritisnite gumb "Potpiši". Ako sve prođe kako treba, paket će biti potpisan.

INFO

Budući da smo paket potpisali vlastitim ključem, on će biti u sukobu s izvornom aplikacijom, što znači da ćemo, kada pokušamo ažurirati softver putem tržišta, primiti grešku.

Digitalni potpis potreban je samo za softver treće strane, pa ako mijenjate sistemske aplikacije instalirane kopiranjem u / system / app / direktorij, onda ih ne morate potpisati.

Nakon toga paket bacamo na pametni telefon, instaliramo i pokrećemo. Voila, oglasi su nestali! Umjesto toga, pojavila se poruka da nemamo internet ili nemamo odgovarajuće dozvole. U teoriji, ovo bi moglo biti dovoljno, ali poruka izgleda dosadno, i, iskreno, imali smo samo sreću s glupom aplikacijom. Uobičajeno napisan softver će najvjerojatnije pojasniti svoja ovlaštenja ili provjeriti internetsku vezu i, u protivnom, jednostavno odbiti pokretanje. Kako biti u ovom slučaju? Naravno, uredite kôd.

Obično autori aplikacija stvaraju posebne klase za prikazivanje oglasa i metode pozivanja ovih klasa tokom pokretanja aplikacije ili jedne od njenih "aktivnosti" (pojednostavljeno rečeno, ekrana aplikacija). Pokušajmo pronaći ove klase. Idemo u smali direktorij, zatim com (org sadrži samo otvorenu biblioteku grafike cocos2d), zatim kauf (upravo tamo, jer ovo je ime programera i sav njegov kôd je tu) - i evo ga, marketinški imenik . Unutra nalazimo hrpu datoteka s smali ekstenzijom. To su klase, a najistaknutija od njih je klasa Ad.smali, po čijem je imenu lako pogoditi što točno prikazuje oglase.

Mogli bismo promijeniti logiku njegovog rada, ali bi bilo mnogo lakše ukloniti pozive na bilo koju od njegovih metoda iz same aplikacije. Stoga napuštamo marketinški direktorij i idemo u susjedni direktorij čestica, a zatim u virtualtorch. Datoteka MainActivity.smali ovdje zaslužuje posebnu pažnju. Ovo je standardna Android klasa koju stvara Android SDK i postavlja kao ulazna točka u aplikaciju (analogno glavnoj funkciji u C). Otvorite datoteku za uređivanje.

Unutra je smali (lokalni asemblerski) kod. Prilično je zbunjujuće i teško ga je čitati zbog niske razine, pa ga nećemo proučavati, već jednostavno pronađite sve reference na klasu oglasa u kodu i komentirajte ih. Vozimo se u redu "Oglas" u pretraživanju i nalazimo se na retku 25:

Privatni oglas na terenu: Lcom / kauf / marketing / Oglas;

Ovdje se stvara oglasno polje za smještaj objekta klase Ad. Komentiranje postavljanjem znaka ### ispred retka. Nastavljamo s pretraživanjem. Red 423:

Nova instanca v3, Lcom / kauf / marketing / Ad;

Ovdje nastaje objekt. Komentiramo. Nastavljamo traženje i u redovima 433, 435, 466, 468, 738, 740, 800 i 802 nalazimo pozive metodama klase Ad. Komentiramo. Izgleda da je to to. Štedimo. Sada morate ponovno sastaviti paket i provjeriti njegove performanse i prisutnost oglasa. Radi čistoće eksperimenta, vraćamo niz izbrisan iz AndroidManifest.xml, prikupljamo paket, potpisujemo i instaliramo.

Naš zamorac. Oglašavanje vidljivo

Ups! Oglašavanje je nestalo samo dok je aplikacija radila, ali je ostalo u glavnom meniju, što vidimo kada pokrenemo softver. Dakle, pričekajte, ali ulazna točka je klasa MainActivity, a oglasi su nestali dok je aplikacija radila, ali su ostali u glavnom izborniku, pa je ulazna točka drugačija? Da biste identificirali pravu ulaznu točku, ponovno otvorite datoteku AndroidManifest.xml. I da, ima sljedeće redove:

Kažu nam (i što je još važnije, android) da bi aktivnost pod imenom Start trebala biti pokrenuta kao odgovor na generiranje namjere (događaja) android.intent.action.MAIN iz kategorije android.intent.category.LAUNCHER. Ovaj događaj se generira dodirom na ikonu aplikacije u pokretaču, pa definira ulaznu točku, naime klasu Start. Najvjerojatnije, programer je prvo napisao aplikaciju bez glavnog izbornika, ulazna točka u koju je bila standardna klasa MainActivity, a zatim je dodao novi prozor (aktivnost) koji sadrži izbornik i opisan u klasi Start, te ga ručno upisao tačka.

Otvorite datoteku Start.smali i ponovo potražite redak "Oglas", pronađite u redovima 153 i 155 spominjanje klase FirstAd. Nalazi se i u izvornom kodu i, sudeći po imenu, precizno je odgovoran za prikazivanje oglasa na glavnom ekranu. Gledamo dalje, postoji stvaranje instance klase FirstAd i namjere, u skladu s kontekstom koji se odnosi na ovu instancu, a zatim oznaka cond_10, uslovni prijelaz na koji se izvodi točno prije stvaranja instance klase :

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

Najvjerojatnije, program nekako nasumično izračunava hoće li oglase prikazivati ​​na glavnom ekranu, a ako ne, prelazi ravno na cond_10. U redu, pojednostavimo njen zadatak i zamijenimo uvjetni skok bezuvjetnim:

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

U kodu nema više referenci na FirstAd, pa zatvorite datoteku i sastavite našu virtualnu baklju koristeći apktool. Kopirajte ga na pametni telefon, instalirajte, pokrenite. Voila, svi su oglasi nestali i čestitamo svima.

Ishodi

Ovaj članak je samo kratki uvod u tehnike za krekiranje i izmjenu Android aplikacija. Mnogi su problemi ostali iza kulisa, poput uklanjanja zaštite, raščlanjivanja zataškanog koda, prevođenja i zamjene resursa aplikacija, kao i izmjene aplikacija napisanih sa koristeći Android NDK. Međutim, posjedujući osnovno znanje, samo je pitanje vremena kada ćete sve to razumjeti.

Apk editor pro, koji možete preuzeti za android na našoj web stranici, omogućit će vam hakiranje / promjenu sadržaja datoteka bilo koje aplikacije za mobilnim uređajima i prilagodite ga svom ukusu.

Osobitosti

Program je profesionalni uslužni program koji u rukama naprednih korisnika može postati moćan alat za uređivanje aplikacija za android. Funkcionalnost se praktično ne razlikuje od sličnih softvera za personalne računare.

Šta ovaj uslužni program može učiniti?

  1. Promijenite (prevedite) nazive drugih aplikacija.
  2. Promijenite arhitektonske rasporede, boje, predloške grafičke postavke(na primjer, veličina ikona).
  3. Promijenite dizajn zvuka, medijske datoteke.
  4. Ukloniti reklame.
  5. Zaobiđite blokiranje plaćenog sadržaja.
  6. Prenesite aplikaciju iz interne memorije uređaja na SD karticu.
  7. Promijenite rezoluciju i još mnogo toga.

Da biste razumjeli kako koristiti uslužni program, morate preuzeti apk editor pro i otići u izbornik. Zatim već odaberite jedno ili drugo instaliranu aplikaciju na androidu ili njegovoj apk datoteci. Nakon toga će se prema zadanim postavkama otvoriti podaci koje korisnik može promijeniti:

  • uređivanje resursa;
  • zamjena datoteka;
  • općenito uređivanje;
  • uređivanje podataka.

Program će od vas zatražiti da instalirate izmijenjenu verziju. Ovo ne funkcionira u svim slučajevima, pa stara verzija morate ručno deinstalirati i instalirati novu. Nakon deinstalacije, odaberite mapu uređivača apk (radi praktičnosti, možete koristiti ES Explorer) među programima na androidu i pronađite izmijenjenu datoteku aplikacije, instalirajte je na uređaj.

Program je drugačiji korisničko sučelje... Navigacija je prilično jednostavna, ali korisnik mora imati osnovno znanje engleskog da bi to shvatio.

Prednosti i nedostaci

  1. Program otvara širok raspon opcija za prilagođavanje aplikacija korisniku.
  2. U izborniku postoji odjeljak Pomoć koji jednostavno i detaljno opisuje veliku količinu mogućnosti uređivača. Stoga korisnici koji su daleko od programiranja neće morati tražiti primjere i upute za uređivanje na izvorima trećih strana.
  3. Program možete besplatno preuzeti na našoj web stranici.

Korištenje ovog uslužnog programa zahtijeva određenu vještinu i znanje. U rukama neiskusnog korisnika uređivanje može dovesti do povrede integriteta sistem podatakašto će na kraju dovesti do rušenja aplikacija. U izborniku u stavci pomoći nalaze se primjeri pretvorbe sa slikama i savjeti za ispravnu upotrebu apk editor pro za android. Stoga, ako postoji želja da se bavite ovim programom, dovoljno je samo slijediti upute.

Urednik je dovoljan koristan alat za one koji se suočavaju sa nezgodnim interfejsom aplikacije (nedostatak ruskog jezika, stalno oglašavanje, baneri itd.). Ako ste već koristili ovaj program, podijelite svoje dojmove ispod u komentarima.