Autore Topic: Leggere Manifest da altra applicazione  (Letto 1582 volte)

Offline andry90

  • Nuovo arrivato
  • *
  • Post: 3
  • Respect: 0
    • Mostra profilo
Leggere Manifest da altra applicazione
« il: 28 Giugno 2012, 15:39:51 CEST »
0
Salve, volevo sapere se era possibile andare a leggere il manifest di un apk, precisamente per vedere la sua versione. Quando vado a costrire la apk il suo manifest viene codificato e quindi non riesco a vedere le informazioni. E' possibile utilizzare del codice java per leggerlo? (non sono sicuro sia possibile, vi ringrazio comunque delle risposte!)

Offline gabric

  • Utente senior
  • ****
  • Post: 613
  • Respect: +18
    • Google+
    • Mostra profilo
    • Brancato's site
  • Dispositivo Android:
    Nexus 5 / Tablet mediacom s4
  • Play Store ID:
    Brancato's+app
  • Sistema operativo:
    window7. ubuntu
Re:Leggere Manifest da altra applicazione
« Risposta #1 il: 28 Giugno 2012, 23:12:46 CEST »
0
beh è possibile (non so come) perchè il market quando carichi un app va a leggere il manifest, legge la versione, i permessi, il package etc etc... provato a scompattar il file apk?

Offline andry90

  • Nuovo arrivato
  • *
  • Post: 3
  • Respect: 0
    • Mostra profilo
Re:Leggere Manifest da altra applicazione
« Risposta #2 il: 29 Giugno 2012, 00:27:11 CEST »
0
Scompattando io vedo il manifest.xml ma quando vado ad aprirlo metà è in chiaro e metà è codificato (quindi simbolini strani ecc..). Penso possa esserci qualche routine per decodificare il manifest oppure qualche funzione che ancora non conosco, perchè dall'interno del programma riesco a sapere che versione è, ma con un app "esterna" non capisco come fare   :'(

Offline gabric

  • Utente senior
  • ****
  • Post: 613
  • Respect: +18
    • Google+
    • Mostra profilo
    • Brancato's site
  • Dispositivo Android:
    Nexus 5 / Tablet mediacom s4
  • Play Store ID:
    Brancato's+app
  • Sistema operativo:
    window7. ubuntu
Re:Leggere Manifest da altra applicazione
« Risposta #3 il: 29 Giugno 2012, 00:45:53 CEST »
0
aprendo un apk con winrar e poi  aprendo il manifest con notepa++,  è tutto criptato.. si può provar a scompattarlo con winzip, e poi aprirlo con eclipse direttamente (o la combinazione lineare di queste 4 possibilità)

Offline iceweasel

  • Moderatore globale
  • Utente senior
  • *****
  • Post: 878
  • Respect: +147
    • Mostra profilo
  • Dispositivo Android:
    LGE P990 - Google Nexus 5
  • Sistema operativo:
    Linux Debian Sid
Re:Leggere Manifest da altra applicazione
« Risposta #4 il: 29 Giugno 2012, 01:08:49 CEST »
0
Non è criptato (non avrebbe senso) è nel formato Android Binary XML. Il file AndroidManifest.xml viene letto durante l'installazione e aggiornati altri file interni di Android in /data/system/*.xml (dipendono dalla versione di Android).
adb logcat | tee /tmp/logcat | grep TAG

Offline gabric

  • Utente senior
  • ****
  • Post: 613
  • Respect: +18
    • Google+
    • Mostra profilo
    • Brancato's site
  • Dispositivo Android:
    Nexus 5 / Tablet mediacom s4
  • Play Store ID:
    Brancato's+app
  • Sistema operativo:
    window7. ubuntu
Re:Leggere Manifest da altra applicazione
« Risposta #5 il: 29 Giugno 2012, 01:16:30 CEST »
0
Appunto qui dovrebbe essere leggibile da Eclipse...

Offline andry90

  • Nuovo arrivato
  • *
  • Post: 3
  • Respect: 0
    • Mostra profilo
Re:Leggere Manifest da altra applicazione
« Risposta #6 il: 30 Giugno 2012, 11:32:38 CEST »
0
Quindi se ho ben capito basterebbe usare un codice come AMXLPrinter2 per convertire binary XML in un formato leggibile?

Offline Ricky`

  • Amministratore
  • Utente storico
  • *****
  • Post: 3487
  • Respect: +506
    • Github
    • Google+
    • rciovati
    • Mostra profilo
Re:Leggere Manifest da altra applicazione
« Risposta #7 il: 30 Giugno 2012, 11:51:01 CEST »
0
Potresti alternativamente fare un programmino java che esegue il comando aapt dump badging file.apk (dove aapt è un tool presente nella cartella platform-tools nell'android sdk) e ne parsa l'output :)

Offline iceweasel

  • Moderatore globale
  • Utente senior
  • *****
  • Post: 878
  • Respect: +147
    • Mostra profilo
  • Dispositivo Android:
    LGE P990 - Google Nexus 5
  • Sistema operativo:
    Linux Debian Sid
Re:Leggere Manifest da altra applicazione
« Risposta #8 il: 30 Giugno 2012, 12:42:21 CEST »
0
Ci sono diversi programmi che leggono Android Binary XML, io di solito uso "axml2xml.pl" scritto in Perl in questo modo riformattando output con "xmlpretty" per renderlo più leggibile:

Codice: [Seleziona]
$> axml2xml.pl <AndroidManifest.xml | xmlpretty --PrettyWhiteNewline --PrettyWhiteIndent --CatchEmptyElement | view -
Come dice Ricky esiste anche "aapt" ma esegue un dump, consiglio di usarlo in questo modo:

Codice: [Seleziona]
$> aapt d xmltree file.apk AndroidManifest.xml
adb logcat | tee /tmp/logcat | grep TAG