Skocz do zawartości
eagleeyetom

Kompilacja CyanogenMod Android dla Sony Ericsson Xperia X8

    Rekomendowane odpowiedzi

    Napisano (edytowane)

    Cześć wszystkim :)

    Jako, że dostałem wiele próśb związanych z publikacją tego poradnika, postanowiłem podzielić się z Wami wiedzą, jaką zdobyłem podczas swojej zabawy z budowaniem ROMów. Na wstępie chciałem powiedzieć, że jestem początkującym developerem i nie znam się na wszystkim ;)

    Co otrzymamy?:

    CyanogenMod w wersji 2.3.7 dla X8 (shakira). Wymagany jest kernel FXP i odblokowany bootloader.

    UWAGA! Można zamienić telefon w plastikową cegłę, o ile nie będzie się myślało!

    Czego potrzebujemy?

    0. Mózgu i chęci nauczenia się czegoś nowego.

    1. Procesora dwurdzeniowego (im szybszy, tym lepszy) i minimum 1,5 GB RAMU. Obsługa 64-Bitów (Intel EM64T / AMD64) i Parawirtualizacji (Intel VT-x / AMD-V) jest wymagana, gdy chcesz użyć 64-bitowego systemu (zalecane).

    2. System operacyjny oparty na systemie Linux - Ubuntu i Mint są najfajniejsze moim zdaniem. Mój poradnik powinien być użyteczny dla każdej dystrybucji, jednak trzeba pamiętać o dostosowaniu komend. Jeżeli korzystacie z Windowsa polecam użycie wirtualnych maszyn - VirtualBox, VMWare itp.

    3. Szybkie łącze internetowe, żeby ściągnąć ponad 10 GB danych.

    4. Około 50 GB wolnego miejsca na dysku.

    5. Dostęp do Internetu na wirtualnej maszynie, ponieważ jeśli coś ma pójść źle, to pójdzie źle ;P Google i XDA są najlepszymi przyjaciółmi.

    6. Znajomość podstaw angielskiego ;)

    Zatańczymy? :)

    1. Ściągnij i zainstaluj Linuxa. Linux jest darmowym, opensourceowym produktem; więzienie Ci nie grozi :P. Preferuję Minta w wersji 10 lub 12. Sam używam 12.

    2. Aplikacja "Terminal" - nowy najlepszy przyjaciel. Stwórz skrót na pulpicie.

    Jak wygląda Linux?

    attachment.php?attachmentid=864386&stc=1&d=1327052280

    Tak jak Windows, tylko lepiej ;)

    Wklejcie to do terminala:

    sudo apt-get install git-core gnupg flex bison gperf libsdl1.2-dev libesd0-dev libwxgtk2.6-dev squashfs-tools build-essential zip curl libncurses5-dev zlib1g-dev openjdk-6-jdk pngcrush schedtool g++-multilib lib32z1-dev lib32ncurses5-dev lib32readline5-dev gcc-4.3-multilib g++-4.3-multilib

    Do kompilacji w systemach opartych na wersji 11.04+ nie są wymagane niektóre biblioteki

    lib32readline5-dev zastąpiono lib32readline-gplv2-dev w 11.10

    I "gcc-4.3-multilib g++-4.3-multilib" nie jest wymagane w wersji powyżej 11.04

    Ta komenda zainstaluje wymagane biblioteki. Jeśli wyskoczą błędy postaraj się wykasować część kodu.

    Po tym stwórz folder dla repozytorium CyanogenModa.

    Wpisz:

    mkdir -p ~/bin 
    mkdir -p ~/android/system
    PATH=~/bin:$PATH

    Możesz nazwać drugi folder jak chcesz.

    Następny krok: inicjacja repozytorium

    curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo > ~/bin/repo 
    chmod a+x ~/bin/repo

    chmod to bardzo ważna komenda, pozwala na ustalenie uprawnień plikom/folderom.

    Następny krok: Ściągnij bestyję ;)

    Pamiętaj by wpisać poprawną nazwę folderu!

    cd ~/android/system/ 
    repo init -u git://github.com/CyanogenMod/android.git -b gingerbread 
    repo sync -j10

    Atrybut -j jest odpowiedzialny za liczbę procesów podejmowanych przy jednej akcji. Jeśli masz potężny procesor możesz użyć -j16 a nawet -j32

    Pobierz ROM Managera

    ~/android/system/vendor/cyanogen/get-rommanager

    Następny krok: Download Android-SDK by uruchomić ADB

    Wypakuj do home, a potem

    cd ~/android-sdk-linux/tools
    ./android
    

    Zrób to, co jest pokazane w filmikach:

    I druga część tu:

    Ściągnij wszystkie pliki i przygotuj się.

    Następny krok (nie wymagany): Skopiuj pliki własności? Proprietary brzmi lepiej :P (telefon musi być w trybie debugowania)

    Wpisz w terminalu:

    cd ~/android/system/device/semc/shakira/ 
    ./extract-files.sh

    Jeśli masz problem edytuj skrypt i użyj:

    ./adb pull zamiast of adb pull

    Po instalacji wpisz w terminalu:

    export PATH=${PATH}:~/android-sdk-linux/tools
    export PATH=${PATH}:~/android-sdk-linux/platform-tools

    Wpisz poprawną ści.

    Type

    ./adb devices

    i jeśli otrzymasz następujący log

    "List of devices attached
    ???????????? no permissions"

    zrób następującą rzecz.

    sudo touch /etc/udev/rules.d/51-android.rules && sudo sh -c "echo 'SUBSYSTEM=="usb", ATTRS{idVendor}=="0fce", SYSFS{idProduct}=="612e", MODE="0666"' >> /etc/udev/rules.d/51-android.rules" && sudo chmod 644 /etc/udev/rules.d/51-android.rules

    Jeśli coś jest nie tak wpisz

    lsusb

    by zobaczyć jakie urządzenia są podpięte i zmień kod

    Następnie

    sudo restart udev
    sudo ./adb kill-server
    sudo ./adb start-server

    I jest gotowe do działania.

    Następny krok: Ustalenie środowiska buildu

    Wpisz w terminalu:

    cd ~/android/system/
    . build/envsetup.sh && lunch

    Zobaczysz listę urządzeń

    Shakira ma numer 136 (ciągle się zmienia, teraz to chyba 143)

    attachment.php?attachmentid=864397&stc=1&d=1327053072

    Następny krok - Tworzenie ROMu!

    Pozostała magiczna komenda "make"

    Dodaj -j4 by budować szybciej. Zasada jest taka, że mnożymy liczbę rdzeni przez 1,5.

    Sam używam -j6 na Intel i5.

    By uzyskać update.zip wpisz:

    make -j4 otapackage

    attachment.php?attachmentid=864401&stc=1&d=1327053347

    Pozostaje czekać i eliminować błędy :)

    Jeśli komuś pomogłem zbudować pierwszy ROM, postaw mi piwo ;)

    Jeśli popełniłem błędy, poprawcie mnie.

    Podziękowania dla B.Jay'a i doixanha.

    Uff. Trochę mi zajęło, by to wszystko przetłumaczyć.

    Oryginalny temat znajdziecie TUTAJ.

    Edytowane przez Zenderable
    Tytuł był podobny do innego wątku, więc zmieniłem ;)

    Udostępnij tę odpowiedź


    Odnośnik do odpowiedzi
    Udostępnij na innych stronach

    Poradnik fajny. Ale ciekawi mnie kilka rzeczy, a mianowicie :

    -Czy jest możliwość dogrania własnych aplikacji (file manager), modułów?

    Udostępnij tę odpowiedź


    Odnośnik do odpowiedzi
    Udostępnij na innych stronach

    tylko jak już ktoś coś stworzy to niech nie wrzuca tego od razu do działu romy... bo dziwnie czuję, że pojawiłby się następny MiniCM z inną tapetą i launcherem :D

    Udostępnij tę odpowiedź


    Odnośnik do odpowiedzi
    Udostępnij na innych stronach
    A dlaczego miałoby nie być takiej możliwości?

    Nie mówię że takiej możliwości nie ma, ale jak to się wgrywa? Normalnie jak każdy moduł? Czy też trzeba jakoś kombinować?

    Udostępnij tę odpowiedź


    Odnośnik do odpowiedzi
    Udostępnij na innych stronach

    Trochę w tym siedzę (inny fon ale to nie ma znaczenia) i muszę powiedzieć, że poradnik strasznie ogólny jest:) Wiem, że to nie twoje autorstwo a jedynie tłumaczenie ale kilka rzeczy mi nie pasuje. M.in. jak ktoś dopiero ściągnął linuxa to ani nie będzie wiedział co robi komenda sudo apt-get czy curl czy mkdir a tym bardziej chmod;) Możnaby to wyjaśnić przynajmniej w podstawowym stopniu:

    sudo - fraza dawana przed jakąkolwiek komendą by uzyskać uprawnienia administratora dla tej komendy.

    apt-get install - fraza która pozwala na instalację programów czy pakietów wypisanych po tej komendzie.

    chmod - to już wyjasnione, służy do nadania z poziomu terminala praw do plików bądź folderów

    curl - w skrócie, pobiera to do czego damy adres po komendzie curl (w tym przypadku jest to tekst). Dalsza część komendy czyli > ~/bin/repo informuje gdzie ściągnięta rzecz ma się znaleźć

    mkdir - najprościej tworzy folder:) a fraza -p znaczy tyle, że przy tworzeniu od razu zostaną dla katalogu nadane odpowiednie prawa

    W samym poradniku brakuje też instalacji JAVY która jest konieczna do kompilacji.

    Również zła kolejność. Najpierw instalacja SDK i export PATH=ścieżka/do/tools i export PATH=ścieżka/do/plarform-tools a później dopiero komenda ./extract-files.sh bo ./extract-files.sh by działać musi wiedzieć gdzie jest zainstalowane SDK a do tego służy właśnie ten export. Jak coś znajdę jeszcze to napiszę;)

    Udostępnij tę odpowiedź


    Odnośnik do odpowiedzi
    Udostępnij na innych stronach
    Napisano (edytowane)

    Up.. ale właśnie o to chodzi... Żeby tworzeniem romiow nie zajmowali się kompletni amatorzy, którzy w życiu na oczy linuksa nie widzieli, a potem tych pseudoromow na bazie minicma ze zmieniona tapeta, motywem i paroma

    Modułami i tak jest dużo... Imo taki poradnik jest w porządku (jeśli chodzi o szczegółowość, na temat poprawności wykonywanych czynności się nie w wypowiem, ale tłumaczenie w takim poradniku podstawowych komend linuksa imo mijalo by się z celem) a jeśli ktoś się jeszcze pyta, czy można sobie dodać moduły, czy może nie, to w ogóle nie powinien się za to zabierać, bo to chyba oczywiste.

    /wytapatalkowane z x8.

    Edytowane przez Terrqge

    Udostępnij tę odpowiedź


    Odnośnik do odpowiedzi
    Udostępnij na innych stronach
    Kacq

    Forum Android drżyj! Czeka nas "powódź" nowych ROM-ów xD

    A tak na serio poradnik dobry, teraz wiem ile pracy potrzeba by "wyprodukować" nawet najprostszy ROM. Któż wie, może dzięki temu tutkowi, niektórzy odkryją w sobie smykałkę do tego typu robótek ;)

    Mnie osobiście nie chciało by się tego wszystkiego robić. Za leniwy jestem :DDD

    Udostępnij tę odpowiedź


    Odnośnik do odpowiedzi
    Udostępnij na innych stronach

    Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

    Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

    Zarejestruj nowe konto

    Załóż nowe konto. To bardzo proste!

    Zarejestruj się

    Zaloguj się

    Posiadasz już konto? Zaloguj się poniżej.

    Zaloguj się

    • Przeglądający   0 użytkowników

      Brak zarejestrowanych użytkowników przeglądających tę stronę.