Zastanawiałem się trochę czy w ogóle pisać taki poradnik , czy komuś będzie się chciało go czytać i przenieść własnoręcznie wybrany rom. Ale co tam , macie.
Witam serdecznie wszystkich , którzy chcieliby przenieść jakiś wybrany przez siebie rom oparty na Androidzie Gingerbread z LG P500 na swojego Swifta.
Nie jest to bynajmniej poradnik z cyklu ,, How to port roms...easy way'' z xda.
Jest to coś lepszego , w porcie romu zazwyczaj działa nam to co w naszym romie bazowym (stworzonym dla Swifta) , tutaj otrzymujemy działający tak samo jak ten z P500 (wszystkie funkcje romu).
A sam proces nie jest specjalnie trudny i czasochłonny i z każdym kolejnym razem tworzymy rom szybciej (uczymy się wielu trików i wprowadzamy je z pamięci).
Nie wiem za bardzo od czego zacząć więc może od początku:
1. Przygotowujemy potrzebne pliki.
Ściągamy wybrany przez siebie rom z działu P500 stąd Optimus One, P500 Android Development - xda-developers lub Optimus One, P500 Original Android Development - xda-developers . Zalecam wybieranie romu, takiego gdzie działa jak najwięcej rzeczy. Oczywiście pamiętajcie , że musi być to Android Gingerbread.
Teraz ściągamy jakiegoś Gingerbreada stworzonego specjalnie dla naszego Swifta , polecam odrazu SDSL4 stąd DepositFiles i na jego przykładzie opiszę kolejne kroki w poradniku. Tutaj również warto brać taki rom gdzie działa jak najwięcej.
Do tego oczywiście standard - musimy mieć na kompie program do wypakowania/pakowania archiwum zip (winrar/7zip etc.) i jakiegoś edytora tekstu (Notepad++).
2. Wypakowanie romów i pierwsze podstawowe kroki.
Mając wszystko co potrzeba możemy zabierać się już do pracy. Na dobry początek wypakowujemy oba romy i umieszczamy je najlepiej w jednym folderze , aby mieć wygodny dostęp.
Idziemy do folderu z romem P500. Powinien wyglądać tak samo jak folder z systemem na nasz telefon , czyli:
- boot.img (kernel systemu , tylko pod konkretny model telefonu)
- META-INF (informacje dla recovery o sposobie instalacji romu , nadawaniu uprawnień etc.)
- system (czyli wszystkie pliki systemowe potrzebne do prawidłowej pracy)
Na początek usuwamy boot.img , kernel z P500 nie zadziała na Swifcie. Zastępujemy go boot.img z romu dla naszego telefonu. Teraz przechodzimy do folderu META-INF i dalej do com/google/android i edytujemy plik updater-script.
Usuwamy wszystko przed linijką ''show_progress(0.5000000, 0);'' tak aby była to pierwsza linia w pliku i zapisujemy zmiany.
3. Zaczyna się zabawa. Czas na systemTo najważniejsze zadanie , ale wcale nie takie trudne jak się wydaje. Musimy wziąć odpowiednie pliki z systemu Swifta i podmienić je. Dzięki temu zadziała obsługa całego hardware'u , czyli aparat , kamera , sensory , podświetlenie , gps , wifi....i najważniejsze RIL (całe środowisko odpowiedzialne za łączność GSM , UMTS , SMS etc.).
Opiszę tę procedurę w kolejności występujących folderów w system. Będziemy podmieniać/dodawać potrzebne pliki chronologicznie i dodam krótki opis czego dotyczy dany plik. Czyli:
*app - aplikacje zawarte w danym systemie , jeśli widzimy w tym folderze aplikację której nie potrzebujemy , usuwamy. Jeśli nie wiemy do czego służy , zostawiamy.
Osobiście radzę zostawić ten folder bez zmian.
*bin - przenosimy z systemu dla Swifta:
akmd2 (część akcelerometru)
BCM4325D1_004... (niezbędne do działania wifi i bluetooth)
btld (część bluetooth)
qmuxd (część RIL)
rild (część RIL)
*etc - przenosimy z systemu dla Swifta:
media_profiles.xml (ustawienia nagrywania wideo)
wifi/wpa_supplicant.conf (konfiguracja wifi)
*fonts - zostawiamy bez zmian
*framework - zostawiamy bez zmian
*lib - przenosimy z systemu dla Swifta:
zamieniamy folder hw (zawiera kontrolery niezbędne do działania gps , podświetlenia , sensoru)
zamieniamy folder modules (niezbędne do działania min. wifi)
libcamera.so (część aparatu)
libgps.so (część gps)
liboemcamera.so (część aparatu)
libOmxVidEnc.so (kodery niezbędne do działania nagrywania wideo)
librpc.so (część gps)
libsensorservice.so (część akcelerometru)
libauth.so/libbcmwl.so/libcm.so/libcommondefs.so/libdiag.so/libdll.so/libdsm.so/libdss.so/libgsdi_exp.so/libgstk_exp.so/liblgdrm.so/liblgdrmwbxml.so/liblgeat.so/liblgerft.so/libloc-rpc.so/libloc.so/libloc_api.so/libmmgsdilib.so/libnv.so/liboem_rapi.so/liboncrpc.so/libpbmlib.so/libqmi.so/libqueue.so/libril-qc-1.so/libril-qcril-hook-oem.so/libril.so/libril_log.so/libwms.so/libwmsts.so (lwia część RIL , bez tego ani rusz)
*media - zostawiamy bez zmian
*usr - przenosimy z systemu dla Swifta:
zamieniamy folder keychars (ustawienia przycisków i ekranu dotykowego)
zamieniamy folder keylayout (ustawienia przycisków i ekranu dotykowego)
*xbin - zostawiamy bez zmian
*build.prop - musimy edytować ten plik.
A więc edytujemy linijkę jeśli dostępna:
''ro.product.model='' wpisujemy LG GT540
''ro.product.name='' wpisujemy swift
''ro.product.device='' wpisujemy swift
''ro.product.board=''
wpisujemy swift
''ro.build.product=''
wpisujemy swift
''ro.cm.device=''
wpisujemy swift
Niezbędne informacje potrzebne do działania RIL i wifi , wpisujemy jeśli ich nie ma:
# RIL
rild.libpath=/system/lib/libril-qc-1.so
rild.libargs=-d /dev/smd0
persist.rild.nitz_plmn=
persist.rild.nitz_long_ons_0=
persist.rild.nitz_long_ons_1=
persist.rild.nitz_long_ons_2=
persist.rild.nitz_long_ons_3=
persist.rild.nitz_short_ons_0=
persist.rild.nitz_short_ons_1=
persist.rild.nitz_short_ons_2=
persist.rild.nitz_short_ons_3=
DEVICE_PROVISIONED=1
ro.telephony.ril.v3=signalstrength,skipbrokendatacall,facilitylock,datacall,icccardstatus,1
mobiledata.interfaces=rmnet0,rmnet1,rmnet2
ro.telephony.default_network=0
persist.cust.tel.eons=1
ro.ril.baseband=AMSS53404003
ro.ril.disable.power.collapse=0
# Wifi
wifi.interface=wlan0
Informacje te muszą znaleźć się w każdym build.prop dla Swifta , nie ważne jaka wersja Androida.
Jeśli w system są jeszcze inne foldery , zostaw bez zmian.
4. No to pakujemy
Przed nami ostatnia rzecz , należy spakować folder META-INF , system i boot.img (jeśli jest folder extras , to również jego) w archiwum zip. Otrzymamy tym samym gotowy system do instalacji przez Recovery.
Teraz pozostaje Wam wyłapać i naprawić w miarę możliwości istniejące bugi. Można też wyczyścić paczkę z niepotrzebnych śmieci zostałych z P500.
Uwagi:
- RIL właśnie z SDSL4 i AOSP jest według mnie najlepszy , działa wyszukiwanie i wybieranie sieci itp. Można używać go nie tylko na 2.3.7 ale i na nowszych wersjach Androida. Dlatego jeśli na swoim obecnym romie masz problemy z zasięgiem , wyszukiwaniem sieci - spróbuj wgrać ten RIL (Baseband).
- niektóre romy mogą wymagać czegoś specjalnego aby się uruchomić , np. CyanMobileX aby odpalił , należało dodać odpowiednią linijkę do init.rc (w kernelu). Ale jeśli ktoś nie umie edytować kernela , może tę linijkę dodać do jakiegoś skryptu w etc/init.d i system również wstanie. Nie wiem czy jeszcze jakieś custom romy wymagają czegoś podobnego , napewno CyanMobileX.
- jeśli coś nie działa w systemie , który chcesz przenieść , a działa na Twoim , można to naprawić zamieniając odpowiednie pliki.
- pewnie zastanawiacie się czy z innych modeli telefonów można w ten sposób przenieść rom. Pewnie jest to możliwe , ale musicie wybierać bardzo podobne hardware'owo telefony , i najlepiej marki LG. Z innymi może być sporo problemów , co nie znaczy że system nie wstanie. Wstanie...
- jeśli masz jakieś problemy z uruchomieniem stworzonego romu , pisz w tym temacie , może ja lub ktoś inny Ci pomoże
- oczywiście śmiało , możecie pisać w temacie o Waszych sukcesach i porażkach w przeniesieniu romu
Nie zezwalam na kopiowanie tego poradnika bez mojej zgody. Jest on wyłącznie mojej treści i nikt nie ma prawa traktować go jako swoją własność!