app - codice sorgente clash royale android




C'è un modo per ottenere il codice sorgente da un file APK? (11)

Il disco rigido del mio portatile si è bloccato e ho perso tutto il codice sorgente di un'app a cui ho lavorato negli ultimi due mesi. Tutto quello che ho è il file APK che è memorizzato nella mia e-mail da quando l'ho inviato ad un amico.

C'è un modo per estrarre il mio codice sorgente da questo file APK?


Anche se potresti essere in grado di decompilare il tuo file APK , probabilmente avrai un grosso problema:

non restituirà il codice che hai scritto. Sta invece restituendo tutto il compilatore in linea, con variabili date nomi casuali, oltre a funzioni date nomi casuali. Potrebbe volerci molto più tempo per provare a decompilarlo e ripristinarlo nel codice che avevi, piuttosto che ricominciare.

Purtroppo, cose del genere hanno ucciso molti progetti.
Per il futuro, consiglio vivamente di imparare un sistema di controllo della versione, come CVS , SVN e git ecc.

e come eseguirne il backup.


C'è anche una nuova applicazione sul Play Store con la quale è possibile decompilare un apk (anche applicazioni di sistema) e visualizzare il codice sorgente direttamente sul tuo smartphone. Salva i file sulla tua scheda SD in modo da poterli visualizzare anche sul tuo computer. Non richiede root o qualcos'altro.

Installa e divertiti. Penso che questo sia il modo più semplice per decompilare un'app.


Modo semplice: utilizzare lo strumento online http://www.javadecompilers.com/apk , caricare l'apk e ottenere il codice sorgente.

Procedura per la decodifica dei file .apk, metodo passo-passo:

Passo 1:

  1. Crea una nuova cartella e copia il file .apk che vuoi decodificare.

  2. Ora rinomina l'estensione di questo file .apk in .zip (es. Rinomina da nomefile.apk a nomefile.zip) e salvalo. Ora puoi accedere ai file classes.dex, ecc. In questa fase puoi vedere i drawable ma non i file xml e java, quindi continua.

Passo 2:

  1. Ora estrai questo file .zip nella stessa cartella (o NEW FOLDER).

  2. Scarica dex2jar ed estrailo nella stessa cartella (o NEW FOLDER).

  3. Spostare il file classes.dex nella cartella dex2jar.

  4. Ora apri il prompt dei comandi e cambia la directory in quella cartella (o NEW FOLDER). Quindi scrivere d2j-dex2jar classes.dex (per mac terminal o ubuntu write ./d2j-dex2jar.sh classes.dex ) e premere ./d2j-dex2jar.sh classes.dex . Ora hai il file classes.dex.dex2jar nella stessa cartella.

  5. Scarica java decompiler , fai doppio clic su jd-gui, fai clic sul file aperto e apri il file classes.dex.dex2jar da quella cartella: ora ottieni i file di classe.

  6. Salva tutti questi file di classe (in jd-gui, fai clic su File -> Salva tutte le fonti) per nome src. In questa fase si ottiene il sorgente java ma i file .xml sono ancora illeggibili, quindi continua.

Passaggio 3:

Ora apri un'altra nuova cartella

  1. Inserisci il file .apk che desideri decodificare

  2. Scarica la versione più recente della finestra di installazione apktool AND apktool (entrambi possono essere scaricati dallo stesso link) e inserirli nella stessa cartella

  3. Apri una finestra di comando

  4. Ora esegui comando come apktool if framework-res.apk e successivo

  5. apktool d myApp.apk (dove myApp.apk denota il nome del file che si desidera decodificare)

ora ottieni una cartella di file in quella cartella e puoi leggere facilmente i file xml dell'apk.

Passaggio 4:

Non è un passo basta copiare i contenuti di entrambe le cartelle (in questo caso entrambe le nuove cartelle) per il singolo

e goditi il ​​codice sorgente ...


Personalmente raccomando Mostra App Android Java per ottenere il codice sorgente. Puoi scaricarlo dal Play Store o da here


Puoi provare DexPatcher . Si integra anche con Android Studio. Utilizza apktool e Dex2Jar internamente.
Puoi usare anche questi strumenti in modo indipendente. apktool decompila apk ed estrae i file .dex, che possono essere ulteriormente convertiti in jar usando Dex2Jar. Jar può essere decompilato usando la JD-GUI . Puoi vedere il codice Java con l'aiuto di quello strumento. Sebbene non sia possibile garantire la somiglianza del codice decompilato con il codice reale. Ci sono alcuni strumenti avanzati di offuscamento del codice disponibili sul mercato, che rovinano il codice per rendere difficile la decompilazione / comprensione. per esempio. Proguard


Questa è una descrizione alternativa - nel caso in cui qualcuno è rimasto bloccato con la descrizione di cui sopra. Segui i passi:

  1. scarica apktool.bat (o apktool per Linux) e apktool_<version>.jar da http://ibotpeaches.github.io/Apktool/install/
  2. rinominare il file jar dall'alto in apktool.jar e inserire entrambi i file nella stessa cartella

  3. apri una casella dos ( cmd.exe ) e cambia in quella cartella; verificare che sia installato un ambiente Java (per Linux controllare anche le note riguardanti le librerie richieste)
  4. Inizio: apktool decode [apk file]

    Risultato intermedio : file di risorse, AndroidManifest.xml

  5. decomprimere il file APK con un decompressore a scelta

    Risultato intermedio : classes.dex

  6. scarica ed estrai dex2jar-0.0.9.15.zip da http://code.google.com/p/dex2jar/downloads/detail?name=dex2jar-0.0.9.15.zip&can=2&q=
  7. trascina e rilascia classes.dex su dex2jar.bat (o inserisci <path_to>\dex2jar.bat classes.dex in una finestra DOS, per Linux usa dex2jar.sh )

    Risultato intermedio : classes_dex2jar.jar

  8. decomprimere classes_dex2jar.jar (potrebbe essere opzionale a seconda del decompilatore usato)
  9. decompilare i file di classe (ad es. con JD-GUI o DJ Decompiler )

    Risultato : codice sorgente

Nota: non è consentito decompilare i pacchetti di terze parti; questa guida ha lo scopo di recuperare il codice sorgente personale solo da un file APK; infine, il codice risultante sarà molto probabilmente offuscato


Questo sito https://www.apkdecompilers.com/ lo ha fatto automaticamente.

Ho provato prima il sito menzionato nella risposta accettata, ma questo non ha funzionato per me.


Sotto lo strumento ONLINE :

http://www.javadecompilers.com/apk

fa TUTTO con un clic: file .java decompilati + risorse + xml (in un file .zip) con decompilatore molto buono (jadx restituisce il codice java in luoghi / funzioni in cui altre compilazioni restituiscono commenti all'interno di funzioni come "impossibile decompilare" o alcuni assemblatore Android / codice macchina)


apktool funzionerà. Non è nemmeno necessario conoscere il keystore per estrarre il codice sorgente (che è un po 'spaventoso). Lo svantaggio principale è che la fonte viene presentata in formato Smali anziché in Java. Altri file come l'icona e main.xml arrivano perfettamente alla perfezione e potrebbe valerne la pena almeno per recuperarli. In definitiva, sarà probabilmente necessario riscrivere il codice Java da zero.

Puoi trovare apktool here . Basta scaricare apktool e l'helper appropriato (per Windows, Linux o Mac OS). Consiglio di utilizzare uno strumento come 7-zip per decomprimerli.


apktool è la cosa migliore che puoi provare. Ho salvato qualche xml con esso, ma sinceramente non so come funzionerà con il codice .java.

Ti consiglierei di avere un repository di codice anche se sei l'unico programmatore. Sto usando Project Locker per i miei progetti. Ti dà i repository svn e git gratuiti.


apktool è la strada da percorrere. Esiste anche un servizio di apktool online: http://www.javadecompilers.com/apktool

Alcune limitazioni, ovviamente, esistono a causa del servizio "natura online": è possibile estrarre e ricercare risorse e file manifest, ma al momento non è possibile ricompilare l'applicazione.

Tuttavia, questo è un modo semplice per "aprire" l'applicazione Android.







apk