Este artigo necessita de uma revisão editorial. Como posso ajudar.
brew install binutils
hdiutil create -volname 'firefoxos' -type SPARSE -fs 'Case-sensitive Journaled HFS+' -size 40g ~/firefoxos.sparseimage
open ~/firefoxos.sparseimage
cd /Volumes/firefoxos/
Clone o repositório B2G
O primeiro passo, antes de iniciar a sua primeira compilação, é clonar o repositório B2G. Não vai buscar tudo! Em vez disso, ele vai buscar o sistema compilação B2G e utilitários de configuração. A maioria do código B2G real está no principal repositório Mercurial da Mozilla.
Para clonar o repositório, use o git:
git clone git://github.com/mozilla-b2g/B2G.git
Após a clonagem (que só deve levar um minuto com uma conexão rápida), cd para o diretório B2G:
cd B2G
Configurando o B2G para o flame
Quando você tiver obtido o core da build de sistema B2G, você precisa configurar o dispositivo que você planeja instála-lo. Para ver a lista de dispositivos suportados, você pode usar o utilitário config.sh — rode o seguinte comando de dentro do diretório B2g:
./config.sh flame
Configurando a compilação do B2G para um dispositivo móvel
Neste ponto, conecte o seu dispositivo se ele já não estiver conectado; será necessário passar pelo processo de configuração para acessá-lo.
adb devices -l >List of devices attached >f04840ed device
O dispositivo deve estar disponível e conectado:
mkdir backup-flame cd backup-flame adb pull /system system adb pull /data data
Soluções de problema na compilação no OSX
Testado no OSX 10.9.4 Maverick.
Não existe mkfs.vfat
Precisa instalar a versão portada do dosfstools para trabalhar com a imagem dosfstools-osx.
brew create https://github.com/sv99/dosfstools-osx.git
Edite o Dosfstools formula
require "formula" class Dosfstools < Formula homepage "https://github.com/sv99/dosfstools-osx" url "https://github.com/sv99/dosfstools-osx.git" sha1 "" def install system "make", "install" end end
e instale-o
brew install dosfstools
Bugs 1039223 and 1027682 workaround in .userconfig
# .userconfig for flame build 14.08.2014
# osx repo change
# Bug 1039223 - Build for flame fails complaining of missing dt.img
# https://bugzilla.mozilla.org/show_bug.cgi?id=1039223
pushd device/qcom/common/dtbtool
patch -N << EOF
--- a/dtbtool/dtbtool.c
+++ b/dtbtool/dtbtool.c
@@ -616,7 +616,7 @@ int main(int argc, char **argv)
extract "qcom,msm-id" parameter
*/
while ((dp = readdir(dir)) != NULL) {
- if ((dp->d_type == DT_REG)) {
+ if ((dp->d_type == DT_REG||dp->d_type == DT_UNKNOWN)) {
flen = strlen(dp->d_name);
if ((flen > 4) &&
(strncmp(&dp->d_name[flen-4], ".dtb", 4) == 0)) {
EOF
popd
# Bug 1027682 - [Flame][Build] Failed to build on Mac OS X 10.9, elf.h file not found
# https://bugzilla.mozilla.org/show_bug.cgi?id=1027682
if [[ ! -e /usr/local/include/elf.h ]]; then
cp "${B2G_DIR}/external/elfutils/libelf/elf.h" /usr/local/include
echo "Bug 1027682: elf.h copied into /usr/local/include"
fi
# Disable First Time User experience
export NOFTU=1
echo "NOFTU = ${NOFTU}"
# Enable gaia developer mode
export DEVICE_DEBUG=1
echo "DEVICE_DEBUG = ${DEVICE_DEBUG}"
# Keeping both debug and non-debug objects
#export GECKO_PATH=${B2G_DIR}/mozilla-inbound
echo "GECKO_PATH = ${GECKO_PATH}"
export B2G_DEBUG=1
echo "B2G_DEBUG = ${B2G_DEBUG}"
#export GECKO_OBJDIR=${GECKO_PATH}/objdir-gonk
if [[ "${B2G_DEBUG}" != "0" ]]; then
export GECKO_OBJDIR=${GECKO_OBJDIR}-debug
fi
echo "GECKO_OBJDIR = ${GECKO_OBJDIR}"
Primeira Compilação
./build.sh