Po dokonaniu wstępnej build (jestem zakładając, że zostały wykonane czynności opisane tutaj: http://source.android.com/source/building.html), można zbudować tylko Dalvik VM wykonując
$ make libdvm
When kompilacja jest zrobione, widać jakieś wyjście w pobliżu, który wygląda mniej więcej tak
Install: out/target/product/generic/system/lib/libdvm.so
jest to nowo wybudowany Dalvik VM (lub dokładniej, t jest biblioteką, w której wdrażana jest maszyna wirtualna Dalvik). Ostatnią częścią ścieżki wyjściowej jest oczekiwany plik instalacyjny, w tym przypadku /system/lib/libdvm.so
. Aby zainstalować nową maszynę wirtualną, należy najpierw upewnić się, czy korzeń, a następnie zamontować partycji systemowej
$ adb root
adbd is already running as root
$ adb remount
remount succeeded
można teraz wcisnąć nową maszynę wirtualną z systemem:
$ adb push out/target/product/generic/system/lib/libdvm.so /system/lib/libdvm.so
Zauważ, że jeśli uruchomić emulator, zmiana ta nie jest trwała, ponieważ emulator ładuje się za każdym razem, gdy rozpoczyna się od system.img
. Jednak na urządzeniu zmiana będzie trwała. Ponadto, ponieważ Android wstępnie załadować proces zwany Zygote który jest później wykorzystywany do talerza procesów aplikacyjnych, musisz ponownie uruchomić system, aby nowy VM być stosowany w aplikacjach
$ adb reboot
Rzeczywiście można odbudować komponenty praktycznie wszystko Androida w ten sposób . Ogólne kroki są
- Znajdź
Android.mk
w drzewie źródłowym komponentu chcesz odbudować
- Znajdź nazwę modułu. W przypadku Dalvik VM, linia wygląda następująco:
LOCAL_MODULE := libdvm
make
nazwa modułu, który jest libdvm
dla Dalvik VM
- Wbudowany plik zostanie ogłoszony w produkcji budowlanej i zacząć
Install:
. W przypadku maszyny Dalvik VM jest to Install: out/target/product/generic/system/lib/libdvm.so
adb root
i adb remount
, następnie adb push
zbudowany plik do działającego systemu Android. Ścieżka docelowa jest ostatnią częścią ścieżki pliku wyjściowego, która w przypadku dalvik to /system/lib/libdvm.so