Desidero eseguire gli opcode direttamente contro l'istanza di Dalvik VM in esecuzione dalla mia applicazione su Android. Sto cercando qualcosa di simile alla funzione C asm. Ho una lista di opcode per dalvik, ma non ho familiarità con come eseguirli direttamente, o scriverli in file .class ed eseguirli su qualche tipo di comando CLI VM come dalvikvm da un'applicazione in esecuzione.Come eseguire i codici opzionali Dalvik
5
A
risposta
4
non è possibile. Vedi la presentazione di Google IO 2008 su youtube sugli interni di Dalvik per i dettagli. Le VM mobili, incluse sia Java che MS .NET, non sono VM complete e, a causa di vincoli di memoria e prestazioni, lasciano fuori parti che consentono di realizzare ciò che hai descritto.
1
In passato era impossibile, ma ora è possibile:
http://android-developers.blogspot.sg/2011/07/custom-class-loading-in-dalvik.html
In sostanza è possibile creare il file dex personalizzato e del carico ed eseguirlo.
Come ho approfondito, vedo che questo è purtroppo vero ... Grazie! –
sì, sfortunatamente .. –
[Originariamente ho postato questo come una risposta separata, prima di avere i diritti di commento.] Non è necessario l'accesso di root per caricare i file dex. Esiste una classe di sistema, dalvik.system.DexClassLoader, creata per rendere ragionevolmente semplice il caricamento di file dex. – danfuzz