Come configurare smartphone e PC. Portale informativo
  • casa
  • TV (Smart TV)
  • Scarica l'apk dell'editor di file di sistema. Come modificare i file apk sul tuo computer

Scarica l'apk dell'editor di file di sistema. Come modificare i file apk sul tuo computer

Da questo articolo imparerai in cosa consiste l'applicazione Android, come aprire un file APK e con quali programmi.

Cos'è un file APK?

APK è un formato del sistema operativo Android utilizzato per i file di applicazioni eseguibili archiviati e il nome del file stesso può essere qualsiasi cosa, ma l'estensione dovrebbe assomigliare solo a this.apk. Gli analoghi APK in altri sistemi operativi sono .msi in Windows, .sis in Symbian, .rpm o .deb in Linux.

Vediamo cosa c'è dentro
In effetti, .apk è un archivio ZIP, quindi puoi guardare il dispositivo interno utilizzando qualsiasi file manager o archiviatore, ad esempio WinRAR o l'applicazione mobile X-plore.





Vale la pena ricordare che si ottiene solo l'accesso visivo alle risorse interne; le capacità di modifica sono estremamente limitate.
Diamo un'occhiata alla struttura
All'interno del file .apk vediamo una serie di file e cartelle, scopriamo a cosa servono:
  • AndroidManifest.xml è una sorta di “passaporto” dell'applicazione da cui è possibile scoprire tutti i punti principali, requisiti, versione, permessi, ecc.
  • META-INF questo file contiene metadati, ovvero dati su dati, checksum, percorsi di dati, percorsi e checksum di risorse, certificati. Puoi aprire questo file con qualsiasi editor di testo, ma è consigliabile utilizzare Notepad++.
  • La cartella res contiene tutte le risorse del programma, grafiche, come icone, immagini, testo ed elementi dell'interfaccia grafica. Puoi anche accedere facilmente alla cartella.
  • classes.dex è il codice del programma applicativo diretto eseguito dalla macchina virtuale Dalvik VM; puoi vedere cosa c'è dentro questo file solo decompilando il file .apk, di questo parleremo in altri articoli. resources.arsc - file XML compilato, questo file contiene dati su tutte le risorse coinvolte nel programma.
  • lib: una cartella con librerie native, alle cui risorse è possibile accedere solo quando si utilizzano programmi specializzati. L'APK può contenere anche file e cartelle come com, org, udk, ma non sempre.

Vediamo ora più nel dettaglio la struttura interna; per questo abbiamo bisogno di un programma di decompilazione, Java e un file APK. Lo strumento principale per disassemblare .apk è Apktool, ma questo programma funziona solo dalla linea, il che non è molto conveniente. Per un'analisi più rapida e conveniente, puoi utilizzare APKing, questo è sempre lo stesso Apktool, ma con la possibilità di lavorare dal menu contestuale.
E così installiamo APKing come qualsiasi applicazione per Windows e, dopo aver selezionato .apk, facciamo clic su di esso con il tasto destro del mouse e contemporaneamente Maiusc, dopodiché vedremo quanto segue:


E seleziona l'azione richiesta, ad esempio, decompila completamente, quindi il programma completerà l'operazione e creerà una cartella con lo stesso nome.


Aprendo la cartella avremo accesso a tutte le risorse del file APK.


Ora tutti i file di testo possono essere modificati, osservando le regole di base, puoi utilizzare il popolare programma Notepad++, ad esempio considera AndroidManifest.xml

I programmi per la piattaforma Android sono un unico file con estensione apk, il che è molto comodo. In effetti, l'installazione di qualsiasi programma su uno smartphone o un tablet si riduce semplicemente a copiarlo sul tuo gadget. Cos'è un file apk e come puoi vedere cosa c'è dentro?

Cos'è un file APK?

L'abbreviazione APK sta per Android Package Kit, un pacchetto eseguibile di file per applicazioni Android. Si tratta di un archivio contenente codici compilati e pronti per l'esecuzione e altre risorse. apk vengono archiviati su siti Internet come Google Play, da dove possono essere scaricati e installati nel tuo gadget. Non sono crittografati.

La sua struttura è preparata dallo sviluppatore per essere eseguita nell'ambiente della macchina virtuale Dalvik o ART. Queste macchine sono integrate nel sistema operativo Android ed eseguono tutte le applicazioni presenti sul tuo dispositivo.

Il file apk stesso è un normale archivio che puoi aprire con qualsiasi archiviatore in Windows. Ad esempio, WinRAR o un file manager che apre archivi ZIP. Vediamo cosa c'è dentro.

  • Un file eseguibile con estensione dex (il nome può essere qualsiasi), che è appunto il codice del programma.
  • Accanto c'è resources.arsc, questo è un registro delle risorse che il programma dovrebbe utilizzare. Questa è una struttura in formato XML.
  • AndroidManifest.xml è un file obbligatorio per qualsiasi programma, un manifest contenente le informazioni di base su di esso. Qui è possibile registrare ad esempio la versione del programma, la versione Android richiesta, le informazioni sullo sviluppatore, le risoluzioni dello schermo richieste ecc.
  • La directory res contiene le risorse interne di cui il programma ha bisogno per funzionare. Tutte le immagini, le icone, le icone, le mappe e così via possono essere qui.
  • La directory lib: librerie native per l'esecuzione del programma, ad esempio codice C++. Questa directory potrebbe non essere presente se le librerie non vengono utilizzate.
  • La directory delle risorse è una risorsa aggiuntiva per l'applicazione e talvolta potrebbe anche mancare. Le risorse da utilizzare sono descritte nel file resources.arsc.
  • Directory META-INF: metadati del programma. Ad esempio, il file MANIFEST.MF, che può contenere percorsi di dati e relativi checksum. Qui è possibile archiviare file di certificato RSA, informazioni sulla versione manifest e informazioni di servizio simili.

Revisione dei popolari editor di file ARK

Come già accennato, puoi decomprimere il file apk utilizzando qualsiasi archiviatore ZIP. Successivamente, sarai in grado di visualizzare le risorse archiviate lì.

Non ci saranno problemi con le immagini, potranno essere aperte con qualsiasi programma appropriato. Il formato XML può essere aperto con qualsiasi editor di testo, ad esempio Notepad++. Se sai come funziona questo formato, puoi già modificarli. Ma per i file eseguibili compilati dovrai utilizzare strumenti speciali.

Editore di eclissi. Questo è un ambiente multipiattaforma completo per un programmatore. Puoi sviluppare in qualsiasi linguaggio moderno e preparare file eseguibili, anche per Android. L'ambiente può essere personalizzato in modo flessibile utilizzando numerosi plugin.

SDK Android. Come suggerisce il nome, si tratta di uno strumento specializzato per lo sviluppo di programmi mobili specifici per Android. Con il suo aiuto, puoi facilmente decompilare i file eseguibili dell'applicazione di qualcun altro o scriverne uno tuo da zero. Si differenzia in quanto collega facoltativamente vari moduli per il debug e il test del codice, per testare la compatibilità dei programmi con diversi gadget e così via.

Scaricatore APK. Si tratta di un plugin per il browser Chrome che rende molto semplice scaricare programmi apk da qualsiasi sito e visualizzarne la struttura. Per fare ciò non è nemmeno necessario essere registrati su Google Play.

Editor dell'APK. Un editor che ti consente di lavorare con le risorse all'interno dei pacchetti apk. Non potente come Eclipse, ma risolve molti problemi semplici. Ad esempio, puoi rimuovere i blocchi pubblicitari dal programma, russificare l'interfaccia, sostituire icone o texture con le tue e molto altro ancora.

Apk editor pro, che puoi scaricare per Android sul nostro sito web, ti permetterà di hackerare/modificare il contenuto dei file di qualsiasi applicazione per dispositivi mobili e personalizzarla a tua discrezione.

Peculiarità

Il programma è un'utilità professionale che, nelle mani di utenti esperti, può diventare un potente strumento per modificare applicazioni per Android. La funzionalità non è praticamente diversa da software simili per personal computer.

Cosa può fare questa utility?

  1. Cambia (traduci) i nomi di altre applicazioni.
  2. Modificare layout dell'architettura, colori, modelli di impostazioni grafiche (ad esempio, dimensione delle icone).
  3. Cambia il design del suono, i file multimediali.
  4. Rimuovi gli annunci pubblicitari.
  5. Bypassa il blocco dei contenuti a pagamento.
  6. Trasferisci un'applicazione dalla memoria interna del dispositivo a una scheda SD.
  7. Cambia risoluzione e molto altro.

Per capire come utilizzare l'utilità, è necessario scaricare apk editor pro e andare al menu. Quindi seleziona un'applicazione già installata su Android o il suo file apk. Successivamente, si apriranno i dati predefiniti, che l'utente può modificare:

  • risorse di modifica;
  • sostituzione di file;
  • editing generale;
  • modifica dei dati.

Il programma offrirà di installare la versione modificata. Questo non funziona in tutti i casi, quindi la vecchia versione deve essere disinstallata manualmente e quella nuova installata. Dopo l'eliminazione, dovresti selezionare la cartella dell'editor apk (per comodità, puoi utilizzare ES Explorer) tra i programmi su Android, trovare il file dell'applicazione modificata e installarlo sul dispositivo.

Il programma ha un'interfaccia user-friendly. La navigazione è abbastanza semplice, ma l'utente deve avere una conoscenza base dell'inglese per capirlo.

Vantaggi e svantaggi

  1. Il programma apre all'utente una vasta gamma di opzioni per personalizzare le applicazioni.
  2. Il menu contiene una sezione Guida, che descrive in modo semplice e dettagliato un gran numero di funzionalità del programma editor. Pertanto, gli utenti lontani dalla programmazione non dovranno cercare esempi e istruzioni di modifica su risorse di terze parti.
  3. Puoi scaricare il programma gratuitamente sul nostro sito web.

L'utilizzo di questa utilità richiede alcune competenze e conoscenze. Nelle mani di un utente inesperto, la modifica può portare a violazioni dell'integrità del file system, che alla fine porteranno a guasti dell'applicazione. Nel menu alla voce Aiuto sono presenti esempi di conversione con immagini e suggerimenti su come utilizzare correttamente apk editor pro su Android. Pertanto, se vuoi comprendere questo programma, segui semplicemente le istruzioni.

L'editor è uno strumento abbastanza utile per coloro che si trovano ad affrontare un'interfaccia dell'applicazione scomoda (mancanza di lingua russa, pubblicità costante, banner, ecc.). Se hai già utilizzato questo programma, condividi le tue impressioni qui sotto nei commenti.

A volte alcune applicazioni su Android non si adattano in qualche modo all'utente. Un esempio è la pubblicità intrusiva. E succede anche che il programma vada bene per tutti, ma la traduzione in esso contenuta è storta o completamente assente. Oppure, ad esempio, il programma è in versione di prova, ma non è possibile ottenere la versione completa. Come cambiare la situazione?

introduzione

In questo articolo parleremo di come disassemblare un pacchetto APK con un'applicazione, esamineremo la sua struttura interna, disassemblare e decompilare il bytecode e proveremo anche ad apportare diverse modifiche alle applicazioni che possono portarci un vantaggio o un altro.

Per fare tutto questo da solo, avrai bisogno almeno di una conoscenza di base del linguaggio Java, in cui sono scritte le applicazioni Android, e del linguaggio XML, che viene utilizzato ovunque in Android, dalla descrizione dell'applicazione stessa e dei suoi diritti di accesso alla memorizzazione di stringhe che verrà visualizzato sullo schermo. Avrai anche bisogno della capacità di utilizzare software console specializzato.

Allora, cos'è un pacchetto APK in cui è distribuito assolutamente tutto il software Android?

Decompilazione dell'applicazione

In questo articolo abbiamo lavorato solo con codice applicativo disassemblato, ma se vengono apportate modifiche più serie ad applicazioni di grandi dimensioni, comprendere il codice piccolo sarà molto più difficile. Fortunatamente possiamo decompilare il codice dex in codice Java, che, sebbene non originale e non compilato, è molto più facile da leggere e comprendere la logica dell'applicazione. Per fare ciò, avremo bisogno di due strumenti:

  • dex2jar è un traduttore del bytecode Dalvik nel bytecode JVM, sulla base del quale possiamo ottenere il codice nel linguaggio Java;
  • jd-gui è esso stesso un decompilatore che ti consente di ottenere codice Java leggibile dal bytecode JVM. In alternativa potete utilizzare Jad (www.varaneckas.com/jad); Sebbene sia piuttosto vecchio, in alcuni casi genera codice più leggibile rispetto a Jd-gui.

Ecco come dovrebbero essere usati. Per prima cosa lanciamo dex2jar, specificando il percorso del pacchetto apk come argomento:

% dex2jar.shmail.apk

Di conseguenza, nella directory corrente apparirà il pacchetto Java mail.jar, che può già essere aperto in jd-gui per visualizzare il codice Java.

Disposizione dei pacchetti APK e loro ricezione

Un pacchetto di app Android è essenzialmente un normale file ZIP che non richiede strumenti speciali per visualizzarne il contenuto o estrarlo. È sufficiente avere un archiviatore: 7zip per Windows o unzip per console su Linux. Ma questo riguarda l'involucro. Cosa c'è dentro? In generale, all'interno abbiamo la seguente struttura:

  • META-INF/- contiene un certificato digitale dell'applicazione, identificandone l'autore e i checksum dei file del pacchetto;
  • res/ - varie risorse che l'applicazione utilizza nel suo lavoro, come immagini, descrizione dichiarativa dell'interfaccia e altri dati;
  • AndroidManifest.xml- descrizione della domanda. Ciò include, ad esempio, un elenco delle autorizzazioni richieste, la versione Android richiesta e la risoluzione dello schermo richiesta;
  • classi.dex- bytecode dell'applicazione compilato per la macchina virtuale Dalvik;
  • risorse.arc- anche risorse, ma di tipo diverso - in particolare stringhe (sì, questo file può essere utilizzato per la russificazione!).

I file e le directory elencati si trovano, se non in tutti, forse nella stragrande maggioranza degli APK. Tuttavia, ci sono alcuni altri file/directory non così comuni che vale la pena menzionare:

  • risorse- analogo delle risorse. La differenza principale è che per accedere ad una risorsa è necessario conoscerne l'identificatore, ma l'elenco degli asset può essere ottenuto dinamicamente utilizzando il metodo AssetManager.list() nel codice dell'applicazione;
  • lib- librerie native Linux scritte utilizzando NDK (Native Development Kit).

Questa directory viene utilizzata dai produttori di giochi che vi inseriscono i loro motori di gioco scritti in C/C++, nonché dai creatori di applicazioni ad alte prestazioni (ad esempio Google Chrome). Abbiamo scoperto il dispositivo. Ma come si ottiene il file del pacchetto dell'applicazione che ti interessa? Poiché non è possibile prelevare i file APK dal dispositivo senza root (si trovano nella directory /data/app) e il rooting non è sempre consigliabile, esistono almeno tre modi per trasferire il file dell'applicazione sul computer:

  • Estensione APK Downloader per Chrome;
  • Applicazione APK Leecher reale;
  • vari file hosting e Vareznik.

Quale usare è una questione di gusti; preferiamo utilizzare applicazioni separate, quindi descriveremo l'uso di Real APK Leecher, soprattutto perché è scritto in Java e, di conseguenza, funzionerà sia su Windows che su Nix.

Dopo aver avviato il programma, è necessario compilare tre campi: Email, Password e ID dispositivo e selezionare una lingua. I primi due sono l'e-mail e la password del tuo account Google che utilizzi sul dispositivo. Il terzo è l'identificativo del dispositivo, e si ottiene digitando il codice sul combinatore # #8255## e quindi trovare la riga ID dispositivo. Durante la compilazione è sufficiente inserire l'ID senza il prefisso android-.

Dopo aver compilato e salvato, spesso viene visualizzato il messaggio "Errore durante la connessione al server". Non ha nulla a che fare con Google Play, quindi sentiti libero di ignorarlo e cercare i pacchetti che ti interessano.

Visualizza e modifica

Diciamo che hai trovato un pacchetto che ti interessa, lo hai scaricato, lo hai decompresso... e quando hai provato a visualizzare un file XML, sei rimasto sorpreso di scoprire che il file non era di testo. Come decompilarlo e come lavorare con i pacchetti in generale? È davvero necessario installare l'SDK? No, non è affatto necessario installare l'SDK. Infatti, tutti i passaggi per estrarre, modificare e impacchettare i pacchetti APK richiedono i seguenti strumenti:

  • Archiviatore ZIP per disimballare e imballare;
  • piccolo- Assemblatore/disassemblatore bytecode della macchina virtuale Dalvik (code.google.com/p/smali);
  • adatto- uno strumento per impacchettare le risorse (per impostazione predefinita, le risorse vengono archiviate in formato binario per ottimizzare le prestazioni dell'applicazione). Incluso nell'SDK di Android, ma può essere ottenuto separatamente;
  • firmatario- uno strumento per firmare digitalmente un pacchetto modificato (bit.ly/Rmrv4M).

Puoi utilizzare tutti questi strumenti separatamente, ma ciò è scomodo, quindi è meglio utilizzare software di livello superiore basato su di essi. Se lavori su Linux o Mac OS X, c'è uno strumento chiamato apktool. Ti consente di decomprimere le risorse nella loro forma originale (inclusi file XML binari e arsc), ricostruire un pacchetto con risorse modificate, ma non sa come firmare i pacchetti, quindi dovrai eseguire manualmente l'utilità firmatario. Nonostante il fatto che l'utilità sia scritta in Java, la sua installazione è piuttosto non standard. Per prima cosa devi ottenere il file jar stesso:

$ 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

Se lavori su Windows, allora c'è un eccellente strumento chiamato Virtuous Ten Studio, che anch'esso accumula tutti questi strumenti (incluso apktool stesso), ma invece di un'interfaccia CLI fornisce all'utente un'interfaccia grafica intuitiva con cui puoi eseguire operazioni di spacchettamento, disassemblaggio e decompilazione in pochi click. Questo strumento è Donation-ware, cioè a volte appaiono finestre che ti chiedono di ottenere una licenza, ma alla fine questo può essere tollerato. È inutile descriverlo perché puoi comprendere l'interfaccia in pochi minuti. Ma apktool, data la sua natura di console, dovrebbe essere discusso in modo più dettagliato.


Diamo un'occhiata alle opzioni di apktool. In breve, i comandi base sono tre: d (decode), b (build) e if (install framework). Se tutto è chiaro con i primi due comandi, allora cosa fa la terza istruzione condizionale? Decomprime il framework dell'interfaccia utente specificato, necessario nei casi in cui si analizza un pacchetto di sistema.

Diamo un'occhiata alle opzioni più interessanti del primo comando:

  • -S- non disassemblare i file dex;
  • -R- non disimballare le risorse;
  • -B- non inserire informazioni di debug nei risultati del disassemblaggio del file dex;
  • --percorso-frame- utilizza il framework dell'interfaccia utente specificato anziché quello integrato in apktool. Ora diamo un'occhiata ad un paio di opzioni per il comando b:
  • -F- assemblaggio forzato senza controllo delle modifiche;
  • -UN- indica il percorso di aapt (uno strumento per creare un archivio APK), se per qualche motivo desideri utilizzarlo da un'altra fonte.

Usare apktool è molto semplice; per farlo basta specificare uno dei comandi e il percorso dell'APK, ad esempio:

$ apktool d mail.apk

Successivamente, tutti i file estratti e disassemblati del pacchetto appariranno nella directory della posta.

Preparazione. Disattivazione della pubblicità

La teoria, ovviamente, è buona, ma perché è necessaria se non sappiamo cosa fare con il pacchetto spacchettato? Proviamo ad applicare la teoria a nostro vantaggio, ovvero a modificare alcuni software in modo che non ci mostrino pubblicità. Ad esempio, lascia che sia Virtual Torch, una torcia virtuale. Questo software è l'ideale per noi, perché è pieno di pubblicità fastidiose e, inoltre, è abbastanza semplice da non perdersi nella giungla del codice.


Quindi, utilizzando uno dei metodi sopra indicati, scarica l'applicazione dal market. Se decidi di utilizzare Virtuous Ten Studio, è sufficiente aprire il file APK nell'applicazione e decomprimerlo, creare un progetto (File -> Nuovo progetto), quindi selezionare Importa file nel menu contestuale del progetto. Se la tua scelta è caduta su apktool, esegui semplicemente un comando:

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

Successivamente, nella directory com.kauf.particle.virtualtorch apparirà un albero di file simile a quello descritto nella sezione precedente, ma con una directory smali aggiuntiva invece dei file dex e un file apktool.yml. Il primo contiene il codice disassemblato del file dex eseguibile dell'applicazione, il secondo contiene le informazioni di servizio necessarie affinché apktool possa riassemblare il pacchetto.

Il primo posto in cui dovremmo cercare è, ovviamente, AndroidManifest.xml. E qui incontriamo subito la seguente riga:

Non è difficile intuire che sia responsabile della concessione all'applicazione delle autorizzazioni per l'utilizzo della connessione Internet. Infatti, se vogliamo semplicemente sbarazzarci della pubblicità, molto probabilmente basterà bloccare l'applicazione da Internet. Proviamo a farlo. Eliminiamo la riga specificata e proviamo a creare il software utilizzando apktool:

$ apktool b com.kauf.particle.virtualtorch

Il file APK risultante verrà visualizzato nella directory com.kauf.particle.virtualtorch/build/. Tuttavia, non sarà possibile installarlo, poiché non dispone di firma digitale e checksum dei file (semplicemente non ha una directory META-INF/). Dobbiamo firmare il pacchetto utilizzando l'utilità apk-signer. Lanciato. L'interfaccia è composta da due schede: nella prima (Key Generator) creiamo le chiavi, nella seconda (APK Signer) firmiamo. Per creare la nostra chiave privata, compila i seguenti campi:

  • File di destinazione- file di output dell'archivio chiavi; normalmente memorizza una coppia di chiavi;
  • Parola d'ordine E Confermare- password per l'archiviazione;
  • Alias- nome della chiave presente nel deposito;
  • Password alias E Confermare- password chiave segreta;
  • Validità- periodo di validità (in anni). Il valore predefinito è ottimale.

I restanti campi sono, in generale, facoltativi, ma almeno uno deve essere compilato.


AVVERTIMENTO

Per firmare un'applicazione utilizzando apk-signer, è necessario installare Android SDK e specificarne il percorso completo nelle impostazioni dell'applicazione.

Tutte le informazioni sono fornite solo a scopo informativo. Né gli editori né l'autore sono responsabili per eventuali danni causati dai materiali di questo articolo.

Ora puoi firmare l'APK con questa chiave. Nella scheda Firma APK, seleziona il file appena generato, inserisci la password, l'alias della chiave e la password, quindi trova il file APK e fai clic con coraggio sul pulsante "Firma". Se tutto andrà bene, il pacco verrà firmato.

INFORMAZIONI

Dato che abbiamo firmato il pacchetto con la nostra chiave, questo entrerà in conflitto con l'applicazione originale, il che significa che quando proveremo ad aggiornare il software tramite il market, riceveremo un errore.

Una firma digitale è richiesta solo per il software di terze parti, quindi se stai modificando le applicazioni di sistema installate copiandole nella directory /system/app/, non è necessario firmarle.

Successivamente, scarica il pacchetto sul tuo smartphone, installalo e avvialo. Voilà, l'annuncio è sparito! Invece, però, è apparso un messaggio che non abbiamo Internet o non disponiamo delle autorizzazioni adeguate. In teoria questo potrebbe essere sufficiente, ma il messaggio sembra fastidioso e, a dire il vero, siamo stati fortunati con un'applicazione stupida. Il software normalmente scritto molto probabilmente chiarirà le proprie credenziali o verificherà la presenza di una connessione Internet e altrimenti si rifiuterà semplicemente di avviarsi. Come comportarsi in questo caso? Ovviamente modifica il codice.

In genere, gli autori delle applicazioni creano classi speciali per visualizzare annunci pubblicitari e chiamano metodi di queste classi quando viene avviata l'applicazione o una delle sue "attività" (in termini semplici, schermate dell'applicazione). Proviamo a trovare queste classi. Andiamo nella directory smali, poi com (org contiene solo la libreria grafica aperta cocos2d), poi kauf (qui è dov'è, perché questo è il nome dello sviluppatore e tutto il suo codice è lì) - ed eccolo qui, l'elenco di marketing. All'interno troviamo un mucchio di file con estensione smali. Si tratta di classi, e la più notevole di queste è la classe Ad.smali, dal nome della quale è facile intuire che è quella che visualizza la pubblicità.

Potremmo cambiare la logica del suo funzionamento, ma sarebbe molto più semplice rimuovere semplicemente le chiamate a uno qualsiasi dei suoi metodi dall'applicazione stessa. Pertanto, lasciamo la directory marketing e andiamo alla directory delle particelle adiacente, quindi a virtualtorch. Il file MainActivity.smali merita qui un'attenzione particolare. Si tratta di una classe Android standard creata dall'SDK di Android e installata come punto di ingresso dell'applicazione (analoga alla funzione principale in C). Apri il file per la modifica.

All'interno c'è il codice smali (assemblatore locale). È abbastanza confuso e difficile da leggere a causa della sua natura di basso livello, quindi non lo studieremo, ma troveremo semplicemente tutti i riferimenti alla classe Ad nel codice e li commenteremo. Inseriamo nella ricerca la riga “Ad” e arriviamo alla riga 25:

Campo annuncio privato:Lcom/kauf/marketing/Ad;

Qui viene creato un campo dell'annuncio per memorizzare un oggetto della classe Ad. Commentiamo ponendo un segno ### davanti alla riga. Continuiamo la ricerca. Linea 423:

Nuova istanza v3, Lcom/kauf/marketing/Ad;

È qui che avviene la creazione dell'oggetto. Commentiamo. Continuiamo la ricerca e troviamo nelle righe 433, 435, 466, 468, 738, 740, 800 e 802 chiamate ai metodi della classe Ad. Commentiamo. Sembra che sia tutto. Salva. Ora è necessario rimontare la confezione e verificarne la funzionalità e la presenza di pubblicità. Per purezza dell'esperimento, restituiamo la riga rimossa da AndroidManifest.xml, assembliamo il pacchetto, firmiamo e installiamo.

La nostra cavia. Pubblicità visibile

Ops! La pubblicità è scomparsa solo durante l'esecuzione dell'applicazione, ma è rimasta nel menu principale, che vediamo quando lanciamo il software. Quindi, aspetta, ma il punto di ingresso è la classe MainActivity e l'annuncio è scomparso mentre l'applicazione era in esecuzione, ma è rimasto nel menu principale, quindi il punto di ingresso è diverso? Per identificare il vero punto di ingresso, riaprire il file AndroidManifest.xml. E sì, contiene le seguenti righe:

Dicono a noi (e, cosa più importante, all'androide) che un'attività denominata Start dovrebbe essere avviata in risposta alla generazione di un intento (evento) android.intent.action.MAIN dalla categoria android.intent.category.LAUNCHER. Questo evento viene generato quando si tocca l'icona dell'applicazione nel launcher, quindi determina il punto di ingresso, ovvero la classe Start. Molto probabilmente, il programmatore ha prima scritto un'applicazione senza menu principale, il cui punto di ingresso era la classe standard MainActivity, quindi ha aggiunto una nuova finestra (attività) contenente il menu e descritta nella classe Start, e l'ha inserita manualmente nella voce punto.

Apriamo il file Start.smali e cerchiamo nuovamente la riga “Ad”, troviamo nelle righe 153 e 155 una menzione della classe FirstAd. È presente anche nel codice sorgente e, a giudicare dal nome, è responsabile della visualizzazione degli annunci pubblicitari sulla schermata principale. Guardiamo oltre, c'è la creazione di un'istanza della classe FirstAd e un intento che, a seconda del contesto, è legato a questa istanza, e poi l'etichetta cond_10, il passaggio condizionale alla quale viene effettuato esattamente prima della creazione dell'istanza della classe:

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

Molto probabilmente, il programma calcola in qualche modo in modo casuale se la pubblicità deve essere mostrata sulla schermata principale e, in caso contrario, passa direttamente a cond_10. Ok, semplifichiamo il suo compito e sostituiamo la transizione condizionale con una incondizionata:

#if-ne p1, v0, :cond_10 vai a:cond_10

Non ci sono più riferimenti a FirstAd nel codice, quindi chiudiamo il file e rimontiamo la nostra torcia virtuale utilizzando apktool. Copialo sul tuo smartphone, installalo, avvialo. Voilà, tutta la pubblicità è scomparsa, per questo ci congratuliamo con tutti noi.

Risultati

Questo articolo è solo una breve introduzione ai metodi di hacking e modifica delle applicazioni Android. Molti problemi rimanevano dietro le quinte, come la rimozione della protezione, l'analisi del codice offuscato, la traduzione e la sostituzione delle risorse delle applicazioni, nonché la modifica delle applicazioni scritte utilizzando Android NDK. Tuttavia, avendo una conoscenza di base, è solo questione di tempo per capire tutto.

La modifica delle applicazioni del sistema Android viene spesso eseguita quando l'utente di uno smartphone, tablet o altro dispositivo controllato da questo sistema operativo non è più soddisfatto dell'aspetto attuale dei programmi installati sul dispositivo dal produttore o dal venditore. Un altro motivo potrebbe essere la necessità di apportare modifiche non solo alla progettazione grafica delle applicazioni Android, ma anche alla posizione dei vari elementi e all'esecuzione delle funzioni di base.

Per apportare modifiche al codice sono necessarie competenze di programmazione di base in quasi tutti i linguaggi (preferibilmente Java e C++). Per sostituire la grafica, basteranno le mani diritte e la capacità di lavorare in un editor grafico.

Prima di tutto, devi decidere se devi solo sostituire la grafica nelle applicazioni Android o se devi cambiare la disposizione degli elementi nel sistema e apportare modifiche più profonde al codice. Da ciò dipendono ulteriori passaggi, che implicano il lavoro con l'applicazione come archivio o il suo completo disassemblaggio e modifica.

Modifica della grafica nelle applicazioni del sistema Android

Per sostituire o modificare semplicemente la grafica originale (cambiare i colori dei pulsanti, ridisegnare le immagini, ecc.), è sufficiente avere un archiviatore WinRAR standard sul proprio computer. Sul dispositivo l'utente deve avere i diritti di “root” (analoghi a un account amministratore su Windows), ed è consigliabile anche avere una recovery alternativa (CWM) e un root explorer (per accedere al file system di Android direttamente nel dispositivo si).

Prima di tutto, devi abilitare il “Debug USB” nel dispositivo, quindi collegarlo al computer utilizzando un cavo USB e installare i driver necessari. Di solito si trovano su un disco virtuale che appare quando ti connetti al tuo computer.

Successivamente è necessario scaricare da Internet anche il plug-in ADB per il file manager. Questo plugin ti consente di vedere l'intero sistema Android come un disco connesso con cartelle. Tutte le applicazioni di sistema si trovano in /system/app, nonché in /system/framework. Dopo aver trovato l'applicazione che ti serve, copiala semplicemente sul tuo computer. Se il plugin non è installato, puoi utilizzare root explorer per copiare l'applicazione con l'estensione apk su una scheda SD rimovibile e poi da essa sul computer.

Dopo aver copiato l'applicazione desiderata, puoi iniziare a modificare la grafica. A proposito, tutte le immagini nelle applicazioni Android vengono salvate in formato PNG, che può essere facilmente aperto con qualsiasi editor grafico. Quando apri il file dell'applicazione utilizzando WinRAR, puoi vedere una serie di cartelle. A noi interesserà solo la cartella res, all'interno della quale troveremo, a turno, tantissime cartelle diverse. Di questi servono solo quelli che hanno la parola “drawable” nel nome.

Ora ricordiamo il tipo di dispositivo e la risoluzione dello schermo. Se si tratta di uno smartphone e la risoluzione è 240x320, allora saremo interessati principalmente alle cartelle drawable e drawable-ldpi. Se la risoluzione è 320x480 - rispettivamente le cartelle drawable e drawable-mdpi e per la risoluzione 480x800 - le cartelle drawable e drawable-hdpi. Oltre a loro, di solito ci sono anche cartelle i cui nomi contengono la parola "terra": si tratta di grafica per la modalità verticale, ad es. quando il dispositivo è inclinato.

Se hai un tablet tra le mani, saremo interessati solo alle cartelle drawable e drawable-mdpi con qualsiasi risoluzione dello schermo.

Copiando le cartelle selezionate sul tuo computer, puoi sostituire o ricolorare le immagini originali con quelle che ti servono e che sono gradevoli alla vista. Dovresti prestare particolare attenzione alle immagini con una risoluzione di 9.png. Il fatto è che lungo il perimetro di tale immagine è presente una cornice speciale larga un pixel con segni speciali, la cui violazione dell'integrità porterà a un malfunzionamento dell'applicazione. Pertanto, è necessario prestare la massima attenzione quando si modificano tali file.

Dopo aver modificato la cartella, è necessario caricarla nuovamente nell'archivio, che è l'applicazione stessa con l'estensione apk. In questo caso è necessario selezionare l'opzione “nessuna compressione” in WinRAR.

L'applicazione corretta viene scaricata nuovamente sul dispositivo utilizzando root explorer (prima il file viene copiato sulla scheda SD e da questa sul dispositivo) oppure dopo essere usciti dal ripristino, direttamente dal computer su /system/app o / cartella di sistema/framework. Successivamente, è necessario impostare i permessi dei file utilizzando le opzioni appropriate nel root explorer o nel plugin ADB. Devono essere nel formato 644. Dopo aver riavviato il dispositivo, puoi vedere il risultato dell'applicazione aggiornata.

Modifica del codice sorgente delle applicazioni di sistema

Ci vuole un piccolo sforzo in più per modificare il codice sorgente delle applicazioni di sistema. Per disassemblare e rimontare l'applicazione dopo aver apportato modifiche, sarà necessario completare i seguenti passaggi.

1) Installa sul tuo computer il pacchetto software necessario nelle loro ultime versioni: Java SE Runtime Environment e Android SDK Windows (programmi per lavorare con le applicazioni e i loro componenti), APKtool o APKManager o Firmware_tool (uno dei tre programmi per disassemblare e decompilare le applicazioni di sistema ), editor NotePad++ (per apportare modifiche al codice sorgente delle applicazioni del sistema Android).

2) Abilita "Debug USB" nel dispositivo, collegalo al computer tramite un cavo USB, installa i driver necessari per funzionare con il dispositivo.

3) Utilizzando uno dei programmi sopra menzionati per lavorare con il codice dell'applicazione, è necessario estrarre la cartella /system/framework (interamente) e le applicazioni di sistema dalla cartella /system/app del telefono nella cartella del programma appropriata. Ad esempio, per il programma Firmware_tool, i file dal telefono devono essere copiati nella cartella C:Firmwaretoolfw_project1_source2_system.img_unpacked nelle sottocartelle appropriate (applicazioni - nella cartella app, file dal framework - nella cartella framework). Quando usi questo e altri programmi, assicurati di leggere le relative istruzioni.

4) Installare il “quadro di supporto”, ovvero un insieme di regole in base alle quali verranno effettuate la decompilazione (ovvero il disassemblaggio del codice) e la compilazione (ovvero l'assemblaggio del codice) delle applicazioni.

Ciò completa la preparazione per lavorare con le applicazioni di sistema.

Lo scaricamento delle applicazioni dal dispositivo e il loro ricaricamento vengono eseguiti in modo simile alla procedura descritta nella sezione "Modifica della grafica nelle applicazioni del sistema Android".

La modifica del codice delle applicazioni Android viene solitamente eseguita utilizzando l'editor NotePad++, uno degli editor di testo più convenienti che ha la possibilità di evidenziare la sintassi del linguaggio di programmazione selezionato. Di norma, durante la modifica è anche possibile modificare la grafica lungo il percorso utilizzando l'editor grafico selezionato.

Al termine della modifica, l'applicazione modificata viene scaricata nuovamente sul dispositivo e il dispositivo stesso deve essere riavviato. Gli editor più avanzati utilizzano vari emulatori, ad esempio Eclipse di Google, per eseguire il debug delle applicazioni prima di scaricarle sul dispositivo.

I migliori articoli sull'argomento