Для моего тезиса я изменяю рамки android и создаю исходный код (4.1.1 Jelly Bean). Я могу сделать полную сборку, но поскольку это очень трудоемкое занятие (я разрабатываю на виртуальной машине ubuntu 12.04 64 бит), я бы хотел создать отдельные модули.
Например: При внесении изменений в модули местоположения должно быть возможно просто создать измененный модуль и создать новый системный образ:
mmm frameworks/base
make snod
Но это не работает. Каждый раз, когда я пытаюсь загрузить, новый системный образ не загружается из-за:
I/dalvikvm( 1696): DexOpt: mismatch dep signature for '/system/framework/framework.odex'
После некоторых исследований я попытался отключить dexpreopt с переменными среды
export $WITH_DEXPREOPT=false
и
export $DISABLE_DEXPREOPT=true
и выполните полную перестройку с помощью команды make installclean. Полные работы по восстановлению и изменения в структуре присутствуют в сборке. Но после выполнения нового изменения все еще "mmm frameworks/base" и "make snod" приводят к несоответствию dexpreopt.
Файл build/core/makefile из "make snod" также выдает предупреждение: "Предупреждение: с включенным dexpreopt вам может потребоваться полная перестройка", который поступает из этой строки в make файле:
ifeq (true,$(WITH_DEXPREOPT))
$(warning Warning: with dexpreopt enabled, you may need a full rebuild.)
endif
Это заставляет меня думать, что переменная $WITH_DEXPREOPT неправильно установлена или прочитана? До сих пор я не смог получить загрузочный образ системы без чистой полной перестройки. Является ли процедура правильной, чтобы отключить dexpreopt, или есть ли какие-либо другие способы создания отдельных модулей после внесения изменений в структуру и получения нового образа системы?
Цель сборки - "полный-русский".