MDN wants to learn about developers like you: https://qsurvey.mozilla.com/s3/MDN-dev-survey

Kompilowanie i instalowanie systemu Firefox OS wymaga dużo wolnego czasu, szybkiego łącza internetowego i wysokiej mocy obliczeniowej komputera. Niestety podczas tak długiego procesu coś może pójść nie tak. Na tej stronie znajdują się  informacje, które pomogą przebyć tę długą drogę.

Notatka: Podczas czytania artykułów dotyczących kompilowania Firefox OS natkniesz się na określenia "B2G", lub "Boot2Gecko". "Boot2Gecko" jest oficjalną nazwą kodową systemu Firefox OS.

Główny cel: uzyskanie czterech plików .img

 

boot.img Zawiera rdzeń Linuxa, system plików i podstawowe narzędzia Unixowe.
system.img Znajduje się tam główny rdzeń systemu Firefox OS, czyli Gonk, Gecko i plik wykonywalny b2g.
userdata.img Tutaj zawarty jest profil Gecko i aplikacje Gaia.
recovery.img Tak samo jak boot.img, zawiera rdzeń Linuxa i system plików, ale odpowiada za udostępnienie użytkownikowi narzędzi do naprawy uszkodzonego urządzenia.

Kiedy te cztery obrazy zostaną stworzone, mogą zostać przesłane do urządzenia.

Firefox OS jest tworzony na podstawie Android Open Source Project (AOSP). Narzędzia AOSP takie jak adb lub fastboot pozwalają na zaawansowane zarządzanie urządzeniem. Przykładem może być komenda adb reboot-bootloader, która sprawia, że urządzenie zrestartuje się i zatrzyma rozruch systemu na wczesnym etapie, co umożliwi przesłanie obrazu systemu poprzez wpisanie komendy fastboot flash $partition $image.

Pierwszy obraz: boot.img

Zawiera rdzeń Linuxa, odpowiadający za uruchamianie podstawowych programów i wykonywanie skryptów. Zostanie przesłany na partycję "boot" i dostęp do niego będzie możliwy poprzez użycie komendy adb shell. Ponieważ jest najważniejszą częścią systemu, aby go modyfikować, potrzeba uprawnień root.

Możliwe jest również modyfikowanie istniejącego już obrazu boot.img, poprzez przeglądanie, kopiowanie,  ponowne kompilowanie jego elementów. Takie operacje zostały opisane na tej stronie: Alcatel One Touch Fire Hacking (Mini) Guide.

Obrazy boot.img mogą zostać przetestowane przed przesłaniem ich. Gdy urządzenie będzie w trybie bootloadera, wystarczy użyć narzędzia fastboot do uruchomienia obrazu boot.img. Nie trzeba wtedy instalować obrazu na urządzeniu, tak, jak miałoby to miejsce w przypadku komendy fastboot boot /ścieżka/do/boot.img.

Drugi obraz: system.img

Obraz systemu (system.img) zawiera główne elementy systemu Firefox OS:

  • Gonk: nisko-poziomowy dostęp systemu do komponentów urządzenia.
  • Gecko: silnik przeglądarki Firefox, przystosowany do obsługi urządzeń mobilnych.
  • B2G: główny proces systemowy.

Więcej informacji o budowie systemu znajdziesz na stronie Firefox OS platform.

Obraz systemu zostanie przesłany na główną partycję urządzenia (utworzoną przez obraz boot.img), a wszystkie pliki systemowe będą znajdowały się w folderze /system/.

Notatka: Obraz systemu zawiera również plamy binarne (binary blobs), które mogą zostać wykorzystane przez urządzenie do kontrolowania radia komórkowego.

Trzeci obraz: userdata.img

Obraz z danymi użytkownika zawiera aplikacje Gaia, które są wykorzystywane podczas pracy systemu.

Obraz userdata.img zostanie umieszczony na partycji userdata, a jego zawartość będzie widoczna w folderze /data/ wtedy, gdy system plików urządzenia będzie z niego korzystał. Trzeba również wspomnieć, że folder /data/b2g/ zawiera profil platformy Gecko, a zawartością folderu /data/local/webapps/ są wszystkie aplikacje, które znajdują się w pamięci urządzenia.

Czwarty obraz: recovery.img

Obraz przywracania systemu zawiera taki sam rdzeń, jaki ma obraz boot.img. Różnicą jest sposób wykonywania skryptu, co pozwala użytkownikowi na aktywowanie skryptu przywracającego system poprzez użycie fizycznych przycisków na urządzeniu.

Obraz recovery.img zostanie umieszczony na partycji recovery i nie może on zostać zmodyfikowany podczas działania systemu.

Proces kompilacji

Cały proces kompilacji systemu Firefox OS składa się z następujących etapów:

Przygotowania Uzyskanie wszystkich programów potrzebnych do przeprowadzenia procesu kompilacji. Do tych programów zaliczają się kompilatory, biblioteki itp.
Konfiguracji Pobranie kodu źródłowego i utworzenie pliku .configure, w którym zawarte będą zmiennie, ścieżki i inne wartości, które zostaną wykorzystane w procesie kompilacji.
Tworzenia Tworzenie profili platformy Gecko i aplikacji Gaia dla urządzenia.
Instalowania Zainstalowanie na urządzeniu wcześniej przygotowanych plików.

 

Przygotowanie

Należy przeprowadzić konfigurację wstępną, aby upewnić się, że komputer ma wszystkie narzędzia, potrzebne do skompilowania systemu. Do takich narzędzi zalicza się m.in. kompilator.

Ten krok można wykonać przy użyciu skryptu. Szczegóły zostały omówione na tej stronie.

Notatka: Na Unixowych systemach można sprawdzić obecność wymaganego oprogramowania, poprzez komendę which. Parametrem komendy which jest sprawdzany program.

Konfiguracja

Aktualny krok zaczyna się wraz z uzyskaniem plików systemu Firefox OS. W uzyskaniu tych plików może pomóc narzędzie git. Konfiguracja obejmie cały kod źródłowy i utworzy plik .config, w którym znajdą się zmienne dla kompilowanego systemu.

Konfiguracja rozpocznie się po uruchomieniu skryptu config.sh. Szczegóły zostały omówione na stronie Preparing for your first B2G build.

Skrypt konfiguracyjny potrzebuje parametrów urządzenia, na którym ma zostać zainstalowany system Firefox OS. Nazwa tworzonego systemu jest nazwą kodową powiązaną z architekturą CPU, a nie z konkretnym urządzeniem. Lista nazw kodowych znajduje się tutaj.

Podczas konfiguracji używane jest również narzędzie Android Open Source Project repo. Pozwala ono na pobranie lub zaktualizowanie kodu używanego podczas procesu kompilacji.

Kompilacja

W tym kroku zaczyna się kompilacja kodu źródłowego i uzyskanie czterech obrazów.

Kompilacja uruchomi się po aktywowaniu skryptu build.sh. Szczegóły zostały omówione na stronie Building Firefox OS.

Możliwe jest skompilowanie tylko części systemu Firefox OS. Można to zrobić poprzez dodanie do skryptu kompilującego jednego parametru. Na przykład, jeżeli chcemy uzyskać tylko element gaia, to dodajemy parametr gaia.

Możliwe jest również skompilowanie obrazów omówionych na początku tej strony. Jeżeli chcemy skompilować obraz system.img, możemy to zrobić komendą ./build.sh out/platform/$target/system.img (parametr $target jest taki sam, jak w procesie konfiguracji).

Instalacja

Należy uruchomić skrypt flash.sh, aby nowo skompilowany kod trafił do pamięci urządzenia.

Możliwe jest zainstalowanie tylko poszczególnych części systemu. Żeby to zrobić, trzeba dodać parametr do skryptu flash.sh. Na przykład, żeby zainstalować tylko aplikacje Gaia, wystarczy wpisać ./flash.sh gaia.

Autorzy i etykiety dokumentu

 Autorzy tej strony: chrisdavidmills, kfrejlich, Kesirik
 Ostatnia aktualizacja: chrisdavidmills,