Una volta che hanno fatto la build iniziale (Io parto dal presupposto di aver seguito la procedura descritta qui: http://source.android.com/source/building.html), è possibile costruire solo la Dalvik VM facendo
$ make libdvm
Quando la build è fatto, si vedrà un output vicino che sembra qualcosa di simile
Install: out/target/product/generic/system/lib/libdvm.so
Questa è la nuova costruzione Dalvik VM (o più specificamente, t la biblioteca in cui è implementata la VM Dalvik). L'ultima parte del percorso è dove è previsto il file installato, in questo caso /system/lib/libdvm.so
. Per installare la nuova VM, prima controllare che sia root e quindi rimontare la partizione di sistema
$ adb root
adbd is already running as root
$ adb remount
remount succeeded
ora si può spingere la nuova VM per il sistema:
$ adb push out/target/product/generic/system/lib/libdvm.so /system/lib/libdvm.so
Si noti che se si esegue l'emulatore, questo cambiamento non è permanente, poiché l'emulatore ricarica system.img
ogni volta che si avvia. Su un dispositivo, tuttavia, il cambiamento sarà permanente. Inoltre, dal momento che Android precarica un processo chiamato zigote che viene poi utilizzato per sborsare i processi di applicazione, è necessario riavviare il sistema per rendere la nuova VM essere utilizzato in applicazioni
$ adb reboot
Si può effettivamente ricostruire componenti praticamente tutti Android in questo modo . I passi generali sono
- Trova
Android.mk
nella struttura di origine per il componente che si desidera ricostruire
- Trova il nome del modulo. Nel caso della Dalvik VM, la linea è simile al seguente:
LOCAL_MODULE := libdvm
make
il nome del modulo, che è libdvm
per Dalvik VM
- Il file incorporato sarà annunciato nell'output Costruire e avviare con
Install:
. Nel caso di Dalvik VM, questo è Install: out/target/product/generic/system/lib/libdvm.so
adb root
e adb remount
, quindi adb push
il file creato su un sistema Android in esecuzione. Il percorso di destinazione è l'ultima parte del percorso del file out, che nel caso di dalvik è /system/lib/libdvm.so
fonte
2011-12-09 10:33:12