Cum se configurează smartphone-uri și PC-uri. Portal informativ

Descărcați apk editor de fișiere de sistem. Cum se editează fișierele apk pe computer

Î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?

APK este un format de sistem de operare Android folosit pentru fișierele-aplicații executabile arhivate, iar numele fișierului în sine poate fi orice, dar extensia ar trebui să arate doar astfel .apk. Analogii APK-ului din alte sisteme de operare sunt în Windows .msi, în Symbian - .sis, în Linux - .rpm sau .deb.

Vezi ce este înăuntru
De fapt, .apk este o arhivă ZIP, așa că puteți privi dispozitivul intern folosind orice manager de fișiere sau arhivator, de exemplu WinRAR sau aplicația mobilă X-plore.





Trebuie reținut că aveț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 să utilizați Notepad ++.
  • Dosarul res conține toate resursele programului, grafice, precum pictograme, imagini, text, elemente ale interfeței grafice. De asemenea, puteți accesa cu ușurință folderul.
  • classes.dex - codul programului direct al aplicației, executat de mașina virtuală Dalvik VM, puteți vedea că în interiorul acestui fișier puteți decompila doar .apk, despre asta vom vorbi în alte articole. resources.arsc - fișier XML compilat, acest fișier conține date despre toate resursele utilizate în program.
  • lib - un folder cu biblioteci native, resurse care pot fi accesate doar cu ajutorul programelor specializate. De asemenea, APK-ul poate conține fișiere și foldere precum com, org, udk, dar nu întotdeauna.

Acum să ne uităm la structura internă mai detaliat pentru asta 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ă doar din linie, ceea ce nu este foarte convenabil. Pentru o analiză mai rapidă și mai convenabilă, puteți utiliza APKing, acesta este 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ăm .apk, facem clic dreapta pe el și Shift în același timp, 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.


Acum toate fișierele text pot fi editate, respectând regulile de bază, puteți utiliza popularul program Notepad ++, de exemplu, luați în considerare AndroidManifest.xml

Programele pentru platforma Android sunt un singur fișier cu extensia apk, ceea ce este foarte convenabil. De fapt, instalarea oricărui program pe un smartphone sau tabletă se rezumă la simpla copiere a acestuia pe gadget-ul tău. Ce este un fișier apk și cum poți vedea ce este înăuntru?

Ce este un fișier APK?

Abrevierea APK este dezvăluită ca Android Package Kit - un pachet executabil de fișiere pentru aplicațiile Android. Este o arhivă care conține coduri compilate și gata de rulat și alte resurse. fișierele apk sunt stocate pe site-uri de internet precum Google Play, de unde pot fi descărcate și instalate pe gadgetul tău. Nu sunt criptate.

Structura sa este pregătită de dezvoltator pentru a rula în mediul mașinii virtuale Dalvik sau ART. Aceste mașini sunt încorporate în sistemul de operare Android și rulează toate aplicațiile care se află pe dispozitivul dvs.

Fișierul apk în sine este o arhivă obișnuită pe care o puteți deschide cu orice arhivator din mediul Windows. De exemplu, WinRAR sau un manager de fișiere care deschide arhive ZIP. Să vedem ce este acolo.

  • Un fișier executabil cu extensia dex (numele poate fi oricare), care este doar codul programului.
  • Alături se află resources.arsc, care este un registru de resurse pe care programul ar trebui să le folosească. Este o structură XML.
  • AndroidManifest.xml este un fișier obligatoriu al oricărui program, un manifest care conține informațiile principale despre acesta. Aici, de exemplu, pot fi înregistrate versiunea programului, versiunea necesară de Android, informații despre dezvoltator, rezoluțiile de ecran necesare și așa mai departe.
  • Directorul res conține resurse interne de care programul trebuie să funcționeze. Toate imaginile, pictogramele, pictogramele, hărțile și așa mai departe pot fi aici.
  • Director Lib - biblioteci native pentru ca programul să funcționeze, de exemplu, codul C++. Este posibil ca acest director să nu fie prezent dacă bibliotecile nu sunt folosite.
  • Directorul de active - resurse suplimentare pentru aplicație, poate lipsi uneori. Exact ce resurse trebuie utilizate sunt descrise în fișierul resources.arsc.
  • Director META-INF - metadatele programului. De exemplu, un fișier MANIFEST.MF, care poate conține căi de date și sumele lor de verificare. Aici pot fi stocate fișierele certificatelor RSA, informațiile despre versiunea Manifest și informații similare despre servicii.

Revizuire a editorilor de fișiere ARK populari

După cum sa menționat deja, puteți despacheta fișierul apk cu orice arhivator ZIP. După aceea, puteți vizualiza resursele stocate acolo.

Nu vor fi deloc probleme cu imaginile, acestea pot fi deschise în orice program adecvat. Formatul XML poate fi deschis cu orice editor de text, cum ar fi Notepad ++. Dacă știți cum funcționează acest format, atunci acestea pot fi deja editate. Dar pentru fișierele executabile compilate, trebuie să utilizați instrumente speciale.

Editor Eclipse... Este un mediu multiplatform complet pentru un programator. Puteți dezvolta în orice limbă modernă și puteți pregăti fișiere executabile, inclusiv cele pentru Android. Mediul poate fi configurat flexibil folosind numeroase plugin-uri.

Android SDK... După cum sugerează și numele, acesta este un instrument specializat pentru dezvoltarea de programe mobile special pentru Android. Cu acesta, puteți decompila cu ușurință fișierele executabile ale aplicației altcuiva sau puteți să le scrieți pe ale dvs. de la zero. Diferă prin faptul că, dacă se dorește, conectează diverse module pentru depanarea și testarea codului dvs., pentru testarea programelor de compatibilitate cu diferite gadget-uri și așa mai departe.

Descărcător APK... Acesta este un plugin pentru browserul Chrome care face foarte ușor să descărcați programe apk de pe orice site și să vizualizați structura acestora. Pentru a face acest lucru, puteți chiar să nu fiți înregistrat pe Google Play.

Editor APK... Un editor care vă permite să lucrați cu resurse în interiorul pachetelor apk. Nu la fel de puternic ca Eclipse, dar face o mulțime de lucruri simple. De exemplu, puteți elimina blocurile de anunțuri din program, puteți rusifica interfața, puteți înlocui pictogramele sau texturile cu propriile dvs. și multe altele.

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

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 practic nu diferă de software-ul similar pentru computerele personale.

Ce poate face acest utilitar?

  1. Schimbați (traduceți) numele altor aplicații.
  2. Schimbați aspectul arhitecturii, culorile, presetările grafice (de exemplu, dimensiunea pictogramei).
  3. Schimbați designul sunetului, fișierele media.
  4. Elimina anunțurile.
  5. Evitați blocarea conținutului plătit.
  6. Transferaț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 selectați fie o aplicație deja instalată pe Android, fie fișierul său apk. După aceea, în mod implicit, se vor deschide date pe care utilizatorul le poate modifica:

  • resurse de editare;
  • înlocuirea dosarelor;
  • editare generală;
  • editarea datelor.

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

Programul are o interfață ușor de utilizat. Navigarea este destul de simplă, dar utilizatorul trebuie să aibă cunoștințe de bază de engleză pentru a-și da seama.

Avantaje și dezavantaje

  1. Programul deschide o gamă largă de opțiuni pentru personalizarea aplicațiilor pentru utilizator.
  2. Există o secțiune Ajutor în meniu, care descrie simplu și în detaliu o cantitate mare de capabilități ale 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 gratuit programul 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 sistemului de fișiere, ceea ce duce în cele din urmă la funcționarea defectuoasă a aplicațiilor. În meniul din elementul Ajutor există exemple de conversie cu imagini și sfaturi pentru utilizarea corectă a apk editor pro pentru Android. Prin urmare, dacă există dorința de a face față acestui program, trebuie doar să urmați instrucțiunile.

Un editor 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.

Uneori, unele aplicații de pe Android nu se potrivesc într-un fel utilizatorului. Un exemplu sunt reclamele enervante. Și se întâmplă, de asemenea, - toată lumea este bună la program, dar numai traducerea din el este fie strâmbă, fie este complet absentă. Sau, de exemplu, programul este de încercare, dar nu este posibil să obțineți versiunea completă. Cum se poate schimba situația?

Introducere

În acest articol, vom vorbi despre cum să dezasamblam un pachet 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ției care ne pot aduce unul sau altul beneficii.

Pentru a face toate acestea pe cont propriu, 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 care vor fi afișate pe ecran. Veți avea nevoie, de asemenea, de capacitatea de a gestiona software-ul de consolă specializat.

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

Decompilarea aplicațiilor

În acest 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 dex codul dex în cod Java, care, deși nu este original și nu este 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 al bytecode Dalvik în bytecode JVM, pe baza căruia putem obține cod în limbajul 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.varaneckas.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, rulă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.

APK pachet dispozitiv și obținerea acestora

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

  • META-INF /- conține un certificat digital al aplicației, care atestă creatorul acesteia și sume de control ale fișierelor pachetului;
  • res / - diverse resurse pe care aplicația le folosește în activitatea sa, de exemplu, imagini, o descriere declarativă a interfeței și alte date;
  • AndroidManifest.xml- descrierea aplicatiei. Aceasta include, de exemplu, o listă de rezoluții necesare, versiunea Android necesară ș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, mai există câteva fișiere/directoare mai puțin obișnuite care merită menționate:

  • active- analog de resurse. Principala diferență este că pentru a accesa un activ, trebuie să cunoști identificatorul acestuia, î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 NDK (Native Development Kit).

Acest director este folosit de producătorii de jocuri pentru a găzdui un motor de joc scris în C/C++, precum și producătorii de aplicații de înaltă performanță (cum ar fi Google Chrome). Dispozitivul a fost rezolvat. Dar cum obțineți fișierul pachet în sine pentru aplicația de interes? Deoarece nu este posibil să ridicați fișiere APK de pe dispozitiv fără root (se află în directorul / data / app) și root 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ție APK reală Leecher;
  • diverse partajare de fișiere și warezniki.

Pe care să-l 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 identificatorul dispozitivului și îl puteți obține formând codul de pe dialer # #8255## și apoi găsirea liniei ID dispozitiv. 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 pachetele care vă interesează.

Vizualizați și modificați

Să presupunem că ați găsit un pachet care vă interesează, descărcat, dezambalat... și în timp ce încercați să vizualizați un fișier XML, am fost surprins să constat că fișierul nu este 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, toți pașii pentru despachetarea, modificarea și ambalarea pachetelor APK necesită următoarele instrumente:

  • Arhivator ZIP pentru despachetare și ambalare;
  • smali- bytecode de asamblare/dezasamblare al mașinii virtuale Dalvik (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 și separat;
  • semnatar- un instrument pentru semnarea digitală a unui pachet modificat (bit.ly/Rmrv4M).

Puteți utiliza toate aceste instrumente separat, dar acest lucru este incomod, deci este mai bine să utilizați software-ul de nivel superior construit pe baza lor. Dacă lucraț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 un pachet cu resurse modificate, dar nu poate semna pachete, 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 ar trebui 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 în 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 interfața CLI oferă utilizatorului o interfață grafică intuitivă cu care să efectueze operațiuni. la despachetare, dezasamblare și decompilare în câteva clicuri. Acest instrument este Donation-ware, adică uneori apar ferestre cu o ofertă de a obține o licență, dar acest lucru, până la 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.


Să aruncăm o privire la opțiunile apktool. Pe scurt, există trei comenzi principale: d (decodificare), b (construire) și if (cadru de instalare). Dacă totul este clar cu primele două comenzi, atunci ce face al treilea operator condiționat? Dezambalează cadrul specificat de UI, care este necesar atunci când disecați orice pachet de sistem.

Să luăm î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;
  • — Calea cadrului- utilizați cadrul specificat de UI în loc de cel încorporat în apktool. Acum să ne uităm la câteva opțiuni pentru comanda b:
  • -f- asamblare fortata fara verificarea modificarilor;
  • -A- indicăm calea către aapt (un instrument pentru construirea unei arhive APK), dacă dintr-un motiv oarecare doriți să o utilizați din altă sursă.

Utilizarea apktool este foarte simplă, pentru aceasta trebuie doar 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.

Disecţie. 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 avantajul nostru, și anume, să 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 pentru că este plin de reclame enervante și, în plus, suficient de simplu pentru a nu se pierde în jungla codului.


Deci, folosind una dintre metodele de mai sus, descărcați aplicația de pe piață. Dacă decideți să utilizați Virtuous Ten Studio, deschideți fișierul APK în aplicație și despachetați-l, pentru care creați un proiect (Fișier -> Proiect nou), apoi 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 cu cel descris în secțiunea anterioară, dar cu un director smali suplimentar în locul fișierelor 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 construi pachetul înapoi.

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

După cum ați putea ghici, ea este responsabilă pentru acordarea permisiunii aplicației de a utiliza conexiunea la Internet. De fapt, dacă vrem doar să scăpăm de reclame, cel mai probabil va trebui să dezactivăm Internetul pentru aplicație. Să încercăm să facem asta. Ștergem linia specificată și încercăm să construim 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 îl veți putea instala, deoarece nu are semnătură digitală și sume de verificare (pur și simplu nu are directorul META-INF /). Trebuie să semnăm pachetul folosind 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șierul de ieșire al depozitului de chei; de obicei conține 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ă.

Restul câmpurilor sunt în general opționale - dar cel puțin unul trebuie completat.


AVERTIZARE

Pentru a semna o aplicație folosind 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 redacția, nici autorul nu sunt răspunzători pentru eventualele prejudicii 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 acestuia, apoi găsiți fișierul APK și apăsați cu îndrăzneală butonul „Semnați”. Dacă totul merge bine, pachetul va fi semnat.

INFO

Deoarece am semnat pachetul cu propria 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.

O semnătură digitală este necesară numai pentru software-ul terților, așa că dacă modificați aplicațiile de sistem care sunt instalate prin copierea lor în directorul /sistem/aplicație/, atunci nu trebuie să le semnați.

După aceea, aruncăm pachetul pe un smartphone, îl instalăm și îl lansăm. Voila, reclamele au dispărut! În schimb, a apărut 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, am fost doar norocoși cu o aplicație stupidă. Un software scris în mod normal își va clarifica cel mai probabil puterile sau va verifica o conexiune la Internet și, în caz contrar, pur și simplu refuză să pornească. Cum să fii în acest caz? Desigur, editați codul.

În mod obișnuit, autorii aplicațiilor 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 (mai simplu, ecranele aplicației). Să încercăm să găsim aceste clase. Mergem la directorul smali, apoi com (org conține doar biblioteca de grafică deschisă cocos2d), apoi kauf (exact acolo, pentru că acesta este numele dezvoltatorului și tot codul lui 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, sub numele căreia este ușor de ghicit ce anume afișează reclame.

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

În interior se află 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 referințele la clasa Ad din cod și le vom comenta. Conducem în linia „Ad” în căutare și ne găsim pe linia 25:

Anunț privat câmp: Lcom / kauf / marketing / Anunț;

Aici este creat un câmp de anunț pentru a deține un obiect din clasa Ad. Comentați prin plasarea semnului ### în fața liniei. Continuăm să căutăm. Linia 423:

New-instance 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 trebuie să puneți la loc pachetul și să verificați performanța acestuia și prezența reclamelor. Pentru puritatea experimentului, returnăm șirul șters din AndroidManifest.xml, colectăm pachetul, semnăm și instalăm.

Cobaiul nostru. Publicitate vizibilă

Hopa! 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 reclamele au dispărut în timp ce aplicația rula, dar au rămas în meniul principal, deci punctul de intrare este diferit? Pentru a identifica adevăratul punct de intrare, redeschideți fișierul AndroidManifest.xml. Și da, are următoarele rânduri:

Ei ne spun (și mai important, Android) că o activitate numită Start ar trebui să fie lansată ca răspuns la generarea unui intent (eveniment) android.intent.action.MAIN din categoria android.intent.category.LAUNCHER. Acest eveniment este generat la atingerea pictogramei aplicației din launcher, așa că 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 meniul și descrisă în clasa Start și a făcut-o manual intrarea punct.

Deschideți fișierul Start.smali și căutați din nou rândul „Ad”, găsiți în rândurile 153 și 155 mențiunea clasei FirstAd. Se află și în codul sursă și, judecând după nume, este tocmai 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 / continut / Intent; ...: cond_10

Cel mai probabil, programul calculează cumva aleatoriu dacă să afișeze reclame pe ecranul principal și, dacă nu, trece direct la cond_10. Ok, să-i simplificăm sarcina și să înlocuim saltul condiționat cu unul necondiționat:

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

Nu mai există referințe la FirstAd în cod, așa că închideți fișierul și reasamblați torța noastră virtuală folosind apktool. Copiați-l pe smartphone, instalați-l, lansați-l. Voila, toate reclamele au dispărut și felicitări tuturor.

Rezultate

Acest articol este doar o scurtă introducere în tehnicile de spargere și modificare a aplicațiilor Android. Multe probleme au rămas în spatele scenei, cum ar fi eliminarea protecției, analiza codului ofuscat, traducerea și înlocuirea resurselor aplicației, precum și modificarea aplicațiilor scrise folosind Android NDK. Cu toate acestea, având cunoștințe de bază, este doar o chestiune de timp să-ți dai seama.

Editarea aplicațiilor 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ă mai satisfacă aspectul actual al programelor instalate în dispozitiv de către producător sau vânzător. Un alt motiv poate fi necesitatea de a face nu doar 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 de programare de bază în aproape orice limbaj (de preferință Java și C++). Pentru a înlocui grafica, mâinile drepte și capacitatea de a lucra într-un editor grafic va fi de folos.

În primul rând, trebuie să decideți dacă trebuie doar să înlocuiți grafica în aplicațiile Android sau trebuie să schimbați aranjarea elementelor din sistem și să faceți modificări mai profunde în cod. Alți pași depind de acest lucru, sugerând fie lucrul cu aplicația ca cu o 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ă ai un arhivator standard WinRAR pe computer. În același timp, utilizatorul trebuie să aibă drepturi de root pe dispozitiv (analog cu contul de administrator pe Windows) și este, de asemenea, de dorit să aibă o recuperare alternativă (CWM) și un explorator root (pentru a accesa sistemul de fișiere Android direct în dispozitivul în sine).

Î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. Acestea sunt de obicei 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, precum și / system / framework. După ce am găsit aplicația necesară, pur și simplu o copiem 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ă ce ați copiat aplicația dorită, puteți începe editarea graficelor. Apropo, toate imaginile din aplicațiile Android sunt salvate în format png, care poate fi deschis cu ușurință cu orice editor grafic. Deschiderea fișierului aplicației cu WinRAR dezvăluie un număr de foldere. Ne va interesa doar folderul res, în interiorul căruia, la rândul său, vor fi 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 nostru de dispozitiv și rezoluția ecranului. 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. În plus față de ele, există de obicei și foldere cu cuvântul „terren” în nume - acestea sunt grafice pentru modul portret, adică. când dispozitivul este înclinat.

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

După ce ați copiat 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 rezoluția 9.png. Faptul este că de-a lungul perimetrului unei astfel de imagini există un cadru special de un pixel lățime cu semne speciale, a cărui încălcare a integrității va duce la o defecțiune a aplicației. Prin urmare, trebuie avută mare grijă atunci când editați astfel de fișiere.

După ce ați terminat de editat folderul, trebuie să îl încărcați înapoi în arhivă, care este aplicația în sine cu extensia apk. În acest caz, este imperativ să selectați opțiunea „fără compresie” în WinRAR.

Aplicația corectată este încărcată înapoi pe dispozitiv fie folosind un explorator 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 folder / sistem / cadru ... Apoi, trebuie să setați permisiunile pentru fișiere 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 asambla aplicația după modificarea acesteia, va trebui să parcurgeți următorii pași.

1) Instalați pe computer pachetul software necesar în cele mai recente 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). ), Editor NotePad ++ (pentru a face modificări la codul sursă al aplicațiilor 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 / system / framework (complet) din telefon în folderul de programe corespunzător și aplicațiile de sistem din folderul / system / app. 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 bază”, adică un set de reguli conform cărora se vor efectua 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 același mod cum este descris în secțiunea „Schimbarea graficii în aplicațiile de sistem Android”.

Editarea codului aplicațiilor Android se face de obicei folosind editorul NotePad ++ - unul dintre cele mai convenabile editori de text care au opțiunea de a evidenția sintaxa limbajului de programare selectat. De regulă, atunci când editați, puteți modifica și grafica pe parcurs folosind editorul grafic selectat.

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

Top articole similare