Cum se schimbă fișierele jocului pe Android. Elementele de bază ale editării aplicațiilor de sistem Android (apk)

Editare aplicații de sistem Android se realizează cel mai adesea atunci când utilizatorul unui smartphone, tabletă sau alt dispozitiv controlat de acest sistem de operare încetează să satisfacă actualul aspect programe instalate în dispozitiv de către producător sau vânzător. Un alt motiv poate fi necesitatea de a face nu numai modificări în ceea ce privește designul grafic al aplicațiilor Android, ci și afectarea locației diferitelor elemente și a performanței funcțiilor de bază.

Pentru a face modificări codului, sunt necesare abilități elementare de programare în aproape orice limbaj (de preferință Java și C++). Pentru a înlocui grafica, mâinile directe și capacitatea de a lucra într-un editor grafic va fi de folos.

În primul rând, ar trebui să decideți dacă trebuie doar să înlocuiți grafica în aplicațiile Android sau dacă trebuie să schimbați aranjarea elementelor din sistem și să faceți modificări mai profunde în cod. De asta depind alți pași, care implică fie lucrul cu aplicația ca arhivă, fie dezasamblarea și editarea completă a acesteia.

Schimbarea graficii în aplicațiile de sistem Android

Pentru a pur și simplu înlocui sau modifica grafica originală (schimbarea culorilor butoanelor, redesenarea imaginilor etc.), este suficient să existe un standard Arhivator WinRAR. În același timp, utilizatorul trebuie să aibă drepturi de „rădăcină” pe dispozitiv (similar cu cont administrator pe Windows), și este, de asemenea, de dorit să aveți o recuperare alternativă (CWM) și un explorator rădăcină (pentru a accesa sistemul de fișiere Android direct în dispozitivul însuși).

În primul rând, trebuie să activați depanarea USB în dispozitiv, apoi să îl conectați la computer folosind un cablu USB și să instalați driverele necesare. De obicei, acestea sunt localizate pe un disc virtual care apare atunci când sunt conectate la un computer.

Apoi, trebuie să descărcați și pluginul ADB pentru managerul de fișiere de pe Internet. Acest plugin vă permite să vedeți întregul sistem Android ca o unitate conectată cu foldere. Toate aplicațiile de sistem sunt localizate la /system/app și /system/framework. După ce ați găsit aplicația dorită, pur și simplu copiați-o pe computer. Dacă pluginul nu este instalat, puteți utiliza exploratorul rădăcină pentru a copia aplicația cu extensia apk pe un card SD amovibil și apoi de pe acesta pe computer.

După copiere aplicatia dorita puteți începe editarea graficelor. Apropo, toate imaginile din aplicațiile Android sunt salvate în format png, care este ușor deschis de orice editor grafic. Când deschideți fișierul aplicației cu WinRAR, puteți vedea o serie de foldere. Ne va interesa doar folderul res, în interiorul căruia, la rândul său, o mulțime de foldere diferite. Dintre acestea, sunt necesare doar cele care au cuvântul „desenabil” în numele lor.

Acum să ne amintim tipul dispozitivului nostru și rezoluția ecranului acestuia. Dacă acesta este un smartphone, iar rezoluția este 240x320, atunci vom fi interesați în principal de folderele drawable și drawable-ldpi. Dacă rezoluția este 320x480 - folderele drawable și, respectiv, drawable-mdpi, iar pentru rezoluția 480x800 - folderele drawable și drawable-hdpi. Pe lângă ele, există de obicei și foldere cu cuvântul „terren” în numele lor - acestea sunt grafice pentru modul portret, adică. când dispozitivul este înclinat.

Dacă aveți o tabletă în mâini, atunci ne vor interesa doar folderele drawable și drawable-mdpi la orice rezoluție de ecran.

Copiind folderele selectate pe computer, puteți înlocui sau recolora imaginile originale cu cele dorite și plăcute ochiului. Ar trebui să acordați o atenție deosebită imaginilor cu o rezoluție de 9.png. Faptul este că de-a lungul perimetrului unei astfel de imagini există un cadru special cu lățime de un pixel cu semne speciale, a cărui încălcare a integrității va duce la eșecul aplicației. Prin urmare, trebuie avută o atenție sporită atunci când editați astfel de fișiere.

După editarea folderului, trebuie să-l încărcați înapoi în arhivă, care este aplicația în sine cu extensia apk. În acest caz, este necesar să selectați opțiunea „fără compresie” în WinRAR.

Aplicația corectată este descărcată înapoi pe dispozitiv fie utilizând exploratorul rădăcină (mai întâi fișierul este copiat pe cardul SD și de pe acesta pe dispozitiv), fie după ieșirea din recuperare - imediat de pe computer în / sistem / aplicație sau folderul /sistem/cadru. Apoi, trebuie să setați permisiunile fișierelor folosind opțiunile corespunzătoare din exploratorul rădăcină sau pluginul ADB. Acestea trebuie să fie în format 644. După repornirea dispozitivului, puteți vedea rezultatul aplicației actualizate.

Editarea codului sursă al aplicațiilor de sistem

Este nevoie de puțin mai mult efort pentru a edita codul sursă al aplicațiilor de sistem. Pentru a dezasambla și a construi aplicația după ce ați făcut modificări, va trebui să efectuați câțiva dintre următorii pași.

1) Instalați pachetul software necesar pe computerul lor ultimele versiuni: Java SE Runtime Environment și Android SDK Windows (programe pentru lucrul cu aplicațiile și componentele acestora), APKtool sau APKManager sau Firmware_tool (unul dintre cele trei programe pentru dezasamblarea și decompilarea aplicațiilor de sistem), editorul NotePad ++ (pentru a efectua modificări la sursă aplicații de sistem Android).

2) Activați depanarea USB în dispozitiv, conectați-l la computer folosind un cablu USB, instalați driverele necesare pentru a funcționa cu dispozitivul.

3) Folosind unul dintre programele de mai sus pentru a lucra cu codul aplicației, trebuie să extrageți folderul / sistem / cadru (complet) de pe telefon în folderul corespunzător al programului și al aplicațiilor de sistem din folderul / sistem / aplicație. De exemplu, pentru programul Firmware_tool, fișierele de pe telefon trebuie copiate în folderul C: Firmwaretoolfw_project1_source2_system.img_unpacked în subfolderele corespunzătoare (aplicații în folderul aplicației, fișiere din cadru în folderul cadru). Când utilizați atât acest program, cât și alte programe, asigurați-vă că citiți instrucțiunile pentru acestea.

4) Instalați „cadru de referință”, adică un set de reguli în conformitate cu care vor fi efectuate decompilarea (adică dezasamblarea codului) și compilarea (adică asamblarea codului) a aplicațiilor.

Aceasta completează pregătirea pentru lucrul cu aplicațiile de sistem.

Descărcarea aplicațiilor de pe dispozitiv și încărcarea lor înapoi se efectuează în mod similar cu procedura descrisă în secțiunea „Schimbarea graficii în aplicațiile de sistem Android”.

Editarea codului aplicației Android se face de obicei folosind editorul NotePad ++ - unul dintre cele mai convenabile editori de text care are opțiunea de a evidenția sintaxa limbajului de programare selectat. De regulă, atunci când editați, puteți, de asemenea, să schimbați grafica pe parcurs utilizând cele selectate editor grafic.

La finalizarea editării, aplicația modificată este încărcată din nou în dispozitiv, iar dispozitivul în sine trebuie repornit. Editorii mai avansati pentru depanarea aplicațiilor înainte de a le descărca pe dispozitiv folosesc diverși emulatori, de exemplu, Eclipse de la Google.

Acesta sunt din nou eu și instrucțiunile mele pentru ceainice și vase de cafea cu imagini.

De data aceasta voi intra in detalii despre inlocuire componentele sistemului Sistemul de operare Android pe exemplul instalării unei modificări a barei de stare.

Android este un Linux mic. Este necesar să urmați o serie de reguli atunci când înlocuiți fișierele, astfel încât telefonul să nu se transforme într-o cărămidă, care poate fi reînviată doar printr-o clipire completă cu pierderea tuturor datelor din memorie interna dispozitive. Partițiile interne sunt formatate într-un alt sistem de fișiere decât FAT32 pe unitățile flash. Proprietățile fișierului, printre altele, stochează permisiuni pentru diferite grupuri de utilizatori (proprietar de fișier, grup de proprietar de fișier, alți utilizatori). Când operează cu fișiere de sistem acestea trebuie să fie salvate, deoarece la pornire este posibil ca sistemul pur și simplu să nu le poată accesa și să nu pornească normal.
Să începem cu trusa de instrumente.

Noi vom avea nevoie:

  • Un manager de fișiere care știe să lucreze cu drepturi root și permisiuni de fișiere. Root Explorer este cel mai bun (l-ai cumpărat, nu?)
  • Fișierul modificat în sine, pe care vrem să-l punem în locul celui de sistem (link la sfârșitul articolului).

Acum folosim una dintre funcțiile convenabile rădăcină de explorare. Să facem o apăsare lungă pe fișierul dorit pentru a apela meniul contextual

Și faceți clic pe elementul " Arhivați acest fișier" pentru a salva fișierul într-o arhivă zip pe cardul SD. După arhivare, vom primi următorul mesaj:

Apasa butonul " stau" să rămân în dosar și să mai fac ceva.

Acum totul este gata pentru a înlocui fișierul.
Am vorbit deja despre drepturile de acces pentru fiecare fișier. Pentru a le recrea pe un fișier nou, trebuie mai întâi să le priviți din cel vechi. Ele sunt reprezentate de o serie de caractere „rwxrwxrwx”. Prima triadă - drepturile proprietarului, a doua - grupurile proprietarului, a treia - toți ceilalți utilizatori. Fișierul nostru are permisiuni „rw-r--r--”.

Acum accesați cardul SD, găsiți fișierul modificat acolo și selectați elementul " Copie", dar nu ne grăbim să selectăm imediat folderul „/system/app”, deoarece vom deteriora imediat sistemul. În schimb, copiem fișierul într-un folder special pentru fișierele temporare „/data/local/tmp " pentru a aduce fișierul într-o formă care va lua sistem.
Mai întâi, apelați meniul contextual al fișierului și selectați elementul " Redenumiți" și introduceți numele fișierului " SystemUI.apk". Așa este, pentru că pe Linux contează cazul literelor din nume, adică " systemui.apk" și " SystemUI.apk" sunt fișiere diferite.
În continuare, trebuie să modificați permisiunile pentru fișier, deoarece acum sunt aproape sigur setate incorect. Pentru a face acest lucru, apelați din nou meniul contextual al fișierului cu o apăsare lungă și selectați elementul " Permisiuni„. Pentru valoarea noastră „rw-r--r--”, steagurile ar trebui setate astfel:

Presa " Bine" și apelați din nou meniul contextual. Acum trebuie să schimbăm proprietarul și grupul pentru această aplicație. Pentru a face acest lucru, selectați elementul " Schimbați proprietarul". Va apărea o fereastră cu informații despre proprietarul actual al fișierului.
Aici este necesar să facem o mică digresiune.
În folderul „/system/app” toate fișierele sunt deținute de utilizatorul „root” (uid=0) și grupul „root” (gid=0), iar în folderul „/system/framework” utilizatorul „system „ (gid=1000) deține și grupul „sistem” (gid=1000).
Pe baza celor de mai sus, setați valorile dorite și faceți clic pe „ Bine".
Și pentru a treia oară apelăm meniul contextual pentru fișier și selectăm elementul " Copie" și în dialogul de copiere accesați folderul " / system / app". Acum faceți clic cu îndrăzneală " pastă„și citiți cu atenție.
Aproape imediat, sistemul va raporta că procesul barei de stare s-a încheiat brusc și se va oferi să-l pornească. Toate încercările vor eșua. Între apariția ferestrelor, trebuie să aveți timp să faceți o serie de acțiuni. Înainte de a apăsa butonul, trebuie să apelați meniul pentru oprirea dispozitivului, acesta va apărea sub un avertisment. Acum trebuie să plasați degetul aproximativ pe partea stângă a butonului. Acum trebuie să faceți clic foarte repede de trei ori cu degetul pentru a avea timp să închideți avertismentul, să selectați elementul de închidere și să vă confirmați intențiile.
Acum așteptăm ca telefonul să se oprească, să-l repornească și să se bucure de rezultat sau să nu se bucure de el și să caute erori.

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 și obține versiunea completa nu exista nicio posibilitate. 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

Punga de plastic aplicații Android, de fapt, este un fișier ZIP obișnuit, pentru vizualizarea conținutului și despachetarea căruia nu sunt necesare instrumente speciale. 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/- contine certificat digital aplicația care își certifică creatorul și sumele 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, o listă de permisiuni necesare, necesare versiunea 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 nimic de-a face 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- unealta pentru semnatura digitala 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 dezarhivați-l, pentru care creați un proiect (Fișier -> Proiect nou), apoi selectați Import File din meniul contextual al proiectului. 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 un open biblioteca grafica cocos2d), apoi kauf (exact acolo, pentru că acesta este numele dezvoltatorului și tot codul său este acolo) - și aici este, directorul 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. atentie speciala fișierul MainActivity.smali merită aici. Aceasta este o clasă Android standard care este generată de SDK-ul Android și setată ca punct de intrare în aplicație (similar cu functii principaleîn 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 este cumva la întâmplare calculează dacă să afișeze anunțuri pe ecranul principal și, dacă nu, trece 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.

În acest articol, veți afla în ce constă o aplicație Android, cum să deschideți un fișier APK și cu ce programe.

Ce este un fișier APK?

Format APK sistem de operare Android, folosit pentru arhivarea fișierelor aplicației executabile și numele fișierului în sine poate fi orice, dar extensia ar trebui să arate doar ca .apk. Analogii APK în alte sisteme de operare sunt .msi în Windows, .sis în Symbian, .rpm sau .deb în Linux.

Să vedem ce e înăuntru
De fapt, .apk este o arhivă ZIP, așa că puteți privi dispozitivul intern folosind oricare manager de fișiere sau un arhivator cum ar fi WinRAR sau aplicatie de mobil Xplore.





În același timp, merită să ne amintim că obțineți doar acces vizual la resursele interne, opțiunile de editare sunt extrem de limitate.
Luați în considerare structura
În interiorul .apk vedem o serie de fișiere și foldere, să aflăm pentru ce sunt acestea:
  • AndroidManifest.xml este un fel de „pașaport” al aplicației din care poți afla toate punctele principale, cerințele, versiunea, permisiunile și multe altele.
  • META-INF acest fișier conține metadate, adică date despre date, sume de control, căi de date, căi de resurse și sume de control, certificate. Puteți deschide acest fișier cu orice editor de text, dar este recomandat Notepad++.
  • Dosarul res conține toate resursele programului, grafice, cum ar fi pictograme, imagini, text, elemente GUI. De asemenea, puteți accesa cu ușurință folderul.
  • clase.dex - imediată cod de programare aplicații care rulează mașină virtuală Dalvik VM, puteți vedea ce este în interiorul acestui fișier doar prin decompilarea .apk, despre asta vom vorbi în alte articole. resurse.arsc -compilat fișier XML, acest fișier conține date despre toate resursele implicate în program.
  • lib - un folder cu biblioteci native, ale căror resurse pot fi accesate numai atunci când se utilizează programe specializate. De asemenea, în APK, pot exista fișiere și foldere precum com, org, udk, dar nu întotdeauna.

Acum să ne uităm la structura internă mai detaliat, pentru aceasta avem nevoie de un program de decompilare, Java și un fișier APK. Instrumentul principal pentru dezasamblarea .apk este Apktool, dar acest program funcționează numai din linie, ceea ce nu este foarte convenabil. Pentru o analiză mai rapidă și mai convenabilă, puteți folosi APKing, este în continuare același Apktool, dar cu capacitatea de a funcționa din meniul contextual.
Și așa instalăm APKing ca orice aplicație pentru Windows și selectând .apk facem clic pe el cu butonul drept al mouse-ului și în același timp Shift, după care vom vedea următoarele:


Și selectăm acțiunea necesară, de exemplu, decompilați complet, apoi programul va finaliza operația și va crea un folder cu același nume.


Prin deschiderea folderului, vom avea acces la toate resursele fișierului APK.


Asta este fișiere text poate fi editat, respectând regulile de bază, puteți utiliza popularul program Notepad ++, de exemplu, luați în considerare AndroidManifest.xml

Apk editor pro, pe care îl puteți descărca pentru Android de pe site-ul nostru web, vă va permite să piratați/modificați conținutul fișierelor oricărei aplicații pentru dispozitive mobileși personalizați-l după bunul plac.

Particularități

Programul este un utilitar profesional care în mâinile utilizatorilor avansați poate deveni un instrument puternic pentru editarea aplicațiilor pentru Android. Funcționalitatea este practic aceeași software pentru calculatoare personale.

Ce poate face acest utilitar?

  1. Schimbați (traduceți) numele altor aplicații.
  2. Schimbați aspectul arhitecturii, culorile, șabloanele de setări grafice (de ex. dimensiunea pictogramei).
  3. Schimbați designul sunetului, fișierele media.
  4. Elimina anunțurile.
  5. Evitați blocarea conținutului plătit.
  6. Mutați aplicația din memoria internă a dispozitivului pe cardul SD.
  7. Schimbați rezoluția și multe altele.

Pentru a înțelege cum să utilizați utilitarul, trebuie să descărcați apk editor pro și să mergeți la meniu. Apoi alegeți oricare aplicație instalată pe Android sau fișier apk. După aceea, în mod implicit, se vor deschide date pe care utilizatorul le poate modifica:

  • editarea resurselor;
  • înlocuire fișier;
  • editare generală;
  • editarea datelor.

Programul vă va solicita să instalați versiunea modificată. Nu funcționează în toate cazurile, așa că versiune veche trebuie îndepărtat manual și instalat unul nou. După dezinstalare, ar trebui să selectați folderul editor apk (pentru comoditate, puteți utiliza ES Explorer) dintre programele de pe Android și să găsiți fișierul aplicației modificate, să îl instalați pe dispozitiv.

Programul este diferit interfață ușor de utilizat. Navigarea este destul de simplă, dar utilizatorul trebuie să aibă cunoștințe de bază de limba engleză pentru a o înțelege corect.

Avantaje și dezavantaje

  1. Programul oferă utilizatorului o gamă largă de opțiuni pentru personalizarea aplicațiilor.
  2. Există o secțiune Ajutor în meniu, care descrie simplu și în detaliu o cantitate mare de caracteristici ale programului editorului. Prin urmare, utilizatorii care sunt departe de a programa nu vor fi nevoiți să caute exemple și instrucțiuni de editare pe resurse terțe.
  3. Puteți descărca programul gratuit de pe site-ul nostru.

Utilizarea acestui utilitar necesită anumite abilități și cunoștințe. În mâinile unui utilizator fără experiență, editarea poate duce la încălcări ale integrității Sistemul de fișiere, care în cele din urmă va duce la blocarea aplicațiilor. În meniul din elementul Ajutor există exemple de conversie cu imagini și sfaturi despre cum utilizarea corectă apk editor pro pentru Android. Prin urmare, dacă doriți să vă ocupați de acest program, trebuie doar să urmați instrucțiunile.

Editorul este un instrument destul de util pentru cei care se confruntă cu o interfață de aplicație incomodă (fără limba rusă, publicitate constantă, bannere etc.). Dacă ați folosit deja acest program, împărtășiți-vă impresiile mai jos în comentarii.



Se încarcă...
Top