Вчера решил попробовать собрать по инструкции https://developer.mozilla.org/en-US/Fir … requisites и https://developer.mozilla.org/en-US/Fir … ZTE_OPEN_C B2G из исходников и наткнулся на кучу граблей. Забегая наперед, скажу, что собралось gecko и gaia с новенькими круглыми виджетами, но UI постоянно словно вылетало, перезагружалось. И хотя я при запуске config.sh явно указал во второй раз, что мне нужен именно бранч v1.3.
Теперь о некоторых моментах, с которыми пришлось столкунться при сборке.
Скачиваем файл манифеста https://bugzilla.mozilla.org/show_bug.cgi?id=1016867 и сохраняем его как openc.xml.
При сборке используется CMake. Ставим:
sudo apt-get install cmake
Устанавливаем asound:
sudo apt-get install libasound-dev
Некоторые сторонние компоненты из андроид требуют наличие java. Устанавливаем:
sudo apt-get install openjdk-6-jdk
Можете скачать родную Java сайта oracle.
При сборке некоторых внешних компонентов была указана ссылка на ndk, причем именно старой версии. Открываем файл B2G/external/apitrace/Android.mk. Вот эта строчка: NDK := prebuilt/ndk/android-ndk-r7. Скачиваем и разворачиваем:
wget http://dl.google.com/android/ndk/android-ndk-r7-linux-x86.tar.bz2 tar xvfj android-ndk-r7-linux-x86.tar.bz2
Собирать ndk я не планировал, тем более из него нужны только некоторые файлы. В .bashrc добавляем:
export ANDROID_NDK=$HOME/android-ndk-r7
Правим файл B2G/external/apitrace/Android.mk. Комментарим строку c NDK и указываем требуемую:
#NDK := prebuilt/ndk/android-ndk-r7 NDK := $(ANDROID_NDK)
Если хотите, то можете развернуть ndk прямо в нужную папку, тогда и править ничего не надо. При сборке так же ссылаются на дополнительные компоненты, которых почему-то не оказалось в дереве исходников (может были ошибки при git скачивании, не знаю).
Скачиваем недостающие компоненты и помещаем в папку B2G/external:
git clone https://android.googlesource.com/platform/external/libphonenumber git clone https://android.googlesource.com/platform/external/nist-sip git clone https://github.com/android/platform_external_apache-http
Для apache папка должна называться apache-http.
Скачиваем недостающие компоненты в директорию B2G/frameworks:
git clone https://android.googlesource.com/platform/frameworks/support git clone https://android.googlesource.com/platform/frameworks/opt/telephony git clone https://android.googlesource.com/platform/frameworks/opt/net/voip
Далее все по мануалу.
./config.sh flame openc.xml
Собираем и устанавливаем gecko:
./build.sh gecko ./flash.sh gecko
Собираем и устанавливаем gaia:
Перед началом сборки телефон должен быть подключен, так как там запускается процедура выполнения архивации текущего содержимого устройства. Оно помещается потом в B2G/backup-flame и если что-то пойдет не так, то есть возможность через вернуть обратно.
Папка с исходниками B2G занимает около 20710M. Время сборки около 4 часов. Одно только огорчает, что пользоваться этим невозможно. Пока откатился в исходное состояние через прошивание родной прошивки с помощью Open c tools.
Еще момент. В wiki-инструкции по сборке говорят указать в .userconfig
export CC=gcc-4.6.4 export CXX=g++-4.6.4
На Ubuntu 12.10 надо указать
export CC=gcc-4.6 export CXX=g++-4.6
Так как в /usr/bin файлы gcc-4.6, g++-4.6.