Skocz do zawartości
szymel00

Szybka i łatwa metoda portowania ROM-u

    Rekomendowane odpowiedzi

    szymel00

    CrbXX7L.png

    Do wykorzystania tej metody będziesz potrzebował programów:
    Winrar oraz Notepad++

    Tutorial dotyczy urządzeń "bliźniaczych", o tej samej architekturze procesora oraz rozdzielczości.
    Tą metodą można portować ROMY z urządzeń armv6 do urządzeń z armv7.
    Podobne urządzenia z grupy ARM można również znaleźć pod tym linkiem, Qualcomm Snapdragon

    Wyjaśnienie:



    Źródło:
    jest to Soft, ROM tworzony na twoje urządzenie przez innych developerów lub producenta.


    Port:
    jest to ROM, który chcesz przeportować na swój telefon

     

    I




    1



    Musisz mieć gotowy ROM przeznaczony dla twojego urządzenia, może to być AOSP, CM7, CM9, CM10

     

    2



    Rozpakuj swój ROM (źródło) na pulpit komputera i zmień nazwę folderu na źródło

     

    3



    Teraz wypakuj ROM, który chcesz przeportować na pulpit oraz zmień nazwę folderu na Port

     

    4



    Z źródło usuń foldery:

    • app
    • fonts
    • framework
    • media

    5



    Z Port skopiuj do źródło

    • app
    • fonts
    • framework
    • media

    6



    Otwórz źródło i wejdź do folderu etc

     

    7



    W etc znajduje się folder permissions


    Usuń pliki z folderu lecz zostaw w nim te które są potrzebne:

    • platform.xml
    • handheld_core_hardware.xml

    8



    Teraz z Port skopiuj wszystkie pliki z folderu permissions do źródło pomijając oczywiście:

    • platform.xml
    • handheld_core_hardware.xml

    9



    Wejdź do źródło otwórz w nim folder etc oraz init.d

    Usuń wszystkie pliki z init.d zostawiając:

    • 00banner

    10



    Otwórz Port i wejdź do folderu etc oraz init.d

    Skopiuj wszystkie pliki do źródło pomijając oczywiście:

    • 00banner

    11



    Teraz otwórz plik build.prop z źródło używaj do tego notepad++

    Zmień wpisy w linijkach:


    ro.build.id=JZO54K
    ro.build.display.id=Avatar EXTREME
    ro.build.version.incremental=AvatarRom
    ro.build.version.sdk=16
    ro.build.version.codename=REL
    ro.build.version.release=4.1.2
    ro.build.date=Sun Dec 15 16:14:21 PDT 2013
    ro.build.date.utc=1378663583
    ro.build.type=userdebug
    ro.build.user=build
    ro.build.host=avatarrom-buildmc
    ro.build.tags=test-keys
    ro.product.model=LG-P700
    ro.product.brand=lge
    ro.product.name=u0_open_eu
    ro.product.device=p700
    ro.product.board=p700
    ro.product.cpu.abi=armeabi-v7a
    ro.product.cpu.abi2=armeabi
    ro.product.manufacturer=LGE
    ro.product.locale.language=en
    ro.product.locale.region=US


    Możesz również zmienić

    ro.sf.lcd_density=240


    ro.cm.version=CyanogenMod 10
    ro.modversion=CyanogenMod 10


    Dane do tych linijek skopiuj z pliku build.prop z Port

    ro.config.ringtone=Callisto.ogg
    ro.config.notification_sound=Tethys.ogg
    ro.config.alarm_alert=Helium.ogg


    W tych linijkach możesz ale nie musisz dokonywać zmian, jeśli jednak chcesz to musisz wiedzieć do czego służą te wpisy aby nie zaszkodzić wydajności softu:

    sys.mem.max_hidden_apps=10
    dalvik.vm.heapstartsize=5m
    dalvik.vm.heapgrowthlimit=48m
    dalvik.vm.heapsize=128m
    dalvik.vm.dexopt-flags=m=y

     

    12



    Teraz przejdź do Źródło oraz Port



    Otwórz folder
    META-INF/com/google/android/
    Edytuj plik z Źródło:

    • updater-script

    zwróć uwagę na wpisy od ok 115 linijki do 139:


    112 "/system/bin/top", "/system/bin/touch", "/system/bin/umount",
    113 "/system/bin/uptime", "/system/bin/vmstat", "/system/bin/watchprops",
    114 "/system/bin/wipe");
    115 set_perm_recursive(0, 0, 0755, 0644, "/system");
    116 set_perm_recursive(0, 0, 0755, 0755, "/system/addon.d");
    117 set_perm_recursive(0, 2000, 0755, 0755, "/system/bin");
    118 set_perm(0, 3003, 02750, "/system/bin/netcfg");
    119 set_perm(0, 3004, 02755, "/system/bin/ping");
    119 set_perm(0, 2000, 06750, "/system/bin/run-as");
    120 set_perm_recursive(1002, 1002, 0755, 0440, "/system/etc/bluetooth");
    121 set_perm(0, 0, 0755, "/system/etc/bluetooth");
    122 set_perm(1000, 1000, 0640, "/system/etc/bluetooth/auto_pairing.conf");
    123 set_perm(3002, 3002, 0444, "/system/etc/bluetooth/blacklist.conf");
    124 set_perm(1002, 1002, 0440, "/system/etc/dbus.conf");
    125 set_perm(1014, 2000, 0550, "/system/etc/dhcpcd/dhcpcd-run-hooks");
    126 set_perm_recursive(0, 2000, 0755, 0755, "/system/etc/init.d");
    127 set_perm(0, 0, 0755, "/system/etc/init.d");
    128 set_perm(0, 2000, 0550, "/system/etc/init.goldfish.sh");
    129 set_perm_recursive(0, 0, 0755, 0555, "/system/etc/ppp");
    130 set_perm_recursive(0, 2000, 0755, 0644, "/system/vendor");
    131 set_perm(0, 0, 0644, "/system/vendor/etc/audio_effects.conf");
    132 set_perm(0, 0, 0644, "/system/vendor/firmware/libpn544_fw.so");
    133 set_perm_recursive(0, 2000, 0755, 0755, "/system/xbin");
    134 set_perm(0, 0, 06755, "/system/xbin/librank");
    135 set_perm(0, 0, 06755, "/system/xbin/procmem");
    136 set_perm(0, 0, 06755, "/system/xbin/procrank");
    136 set_perm(0, 0, 06755, "/system/xbin/su");
    138 set_perm(0, 0, 0755, "/system/addon.d/70-gapps.sh");
    139 set_perm_recursive(0, 0, 0755, 0644, "/system/app");
    140 show_progress(0.200000, 0);
    141 show_progress(0.200000, 10);


    I porównaj z wpisami z pliku updater-script z Port


    Wpisy te odpowiadają za nadanie uprawnień i jeśli coś pójdzie nie tak to przy instalacji softu możesz mieć statu1, status 7, status 6 itp błędy oraz nawet jeśli instalacja dobiegnie końca możesz mieć źle nadane uprawnienia w ROM-ie

     

    13



    Poszukaj w Port dodatkowe foldery, które być może trzeba skopiować do Źródło. Przykładem jest folder paranoid w ROM-ach ParanoidAndroid lub PAC

     

    14



    Spakuj teraz wszystkie foldery w Źródło w plik zip:

    • Zaznacz foldery i pliki myszką
    • Wybierz opcję dodaj do archiwum
    • Zmień Format archiwum na zip


     

    II




    Specjalne wpisy w build.prop , updater-script lub dodatkowe pliki dla specyficznych ROM-ów
     

    1



    ParanoidAndroid And PAC
     



    Skopiuj folder paranoid z Port do Źródło z folderu system/etc

    W updater-script dodaj linijkę:
    set_perm(1000, 1000, 0644, "/system/etc/paranoid/properties.conf");

     

    Dotyczy PA:



    Otwórz build.prop i dodaj lub skopiuj linijki z Port do Źródło


    ro.pa.family=pa_mdpi
    ro.pa.version=PA-26.14 wpisz wersję, którą portujesz

    Czerwone wpisy w ro.pa.family= zmień zgodnie z wersją zgodną z rozdzielczością twojego urządzenia

    • pa_hdpi
    • pa_mdpi
    • pa_xhdpi

     

     

    2


    Miui



    Skopiuj pliki telocation.db oraz yellowpage.db z Port do Źródło z folderu system/etc
    Skopiuj plik content-types.properties z folderu system/libs
    Skopiuj plik liblbesec.so z folderu system/lib
    Skopiuj plik invoke-as z folderu system/xbin


    W updater-script dodaj wpisy nadające uprawnienia:

     

    • set_perm(0, 0, 0755, "/system/lib/liblbesec.so");
    • set_perm(0, 0, 06755, "/system/xbin/invoke-as");

     


    W pliku build.prop dodaj wpisy:


    ro.build.id=MIUIv4
    ro.build.display.id=MIUIv4
    ro.build.version.incremental=4.1
    ro.config.ringtone=MI.ogg
    ro.config.notification_sound=Tetys.ogg
    ro.config.alarm_alert=Hello.ogg
    ro.config.sms_received_sound=Donk.ogg
    ro.config.sms_delivered_sound=Sms.ogg

     

    3

    PAC ROM


    Otwórz build.prop i dodaj linijki i zmień odpowiednio wpisy zgodnie z twoimi danymi :


    ro.pac.version=xxx
    ro.pacrom.version=xxx
    ro.modversion=xxx
    ro.pa.family=pa_mdpi
    ro.pa.version=xxx
    ro.aokp.version=xxx
    ro.cm.version=xxx

     

    4



    Dla urządzeń HTC


    Jeśli masz problem z siecią musisz dekompilować framework-res.apk
    /framework-res/res/values/bools.xml i zmienić:


    <bool name="skip_restoring_network_selection">true</bool> na false

     

    5



    Jeśli po instalacjo softu masz boot-loop, skopiuj z Port do Źródło pliki:

     

    • libandroid_runtime.so
    • libandroid_servers.so
    • libmedia_jni.so

     


    Znajdują się one w folderze system/lib


    Chętnym do wykorzystania tego skromnego Tutoriala życzę miłego PORT-U

    ©

    Edytowane przez szymel00

    Udostępnij tę odpowiedź


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

    czy źródło musi mieć taką samą wersję androida? czy źródłem może być np. 4.4 a port 4.2.2?

    ---------- Post dołączono o 23:19 ---------- Poprzedni post napisano o 23:08 ----------

    zwróć uwagę na wpisy od ok 115 linijki do 139:

    112 "/system/bin/top", "/system/bin/touch", "/system/bin/umount",

    113 "/system/bin/uptime", "/system/bin/vmstat", "/system/bin/watchprops",

    114 "/system/bin/wipe");

    115 set_perm_recursive(0, 0, 0755, 0644, "/system");

    116 set_perm_recursive(0, 0, 0755, 0755, "/system/addon.d");

    117 set_perm_recursive(0, 2000, 0755, 0755, "/system/bin");

    118 set_perm(0, 3003, 02750, "/system/bin/netcfg");

    119 set_perm(0, 3004, 02755, "/system/bin/ping");

    119 set_perm(0, 2000, 06750, "/system/bin/run-as");

    120 set_perm_recursive(1002, 1002, 0755, 0440, "/system/etc/bluetooth");

    121 set_perm(0, 0, 0755, "/system/etc/bluetooth");

    122 set_perm(1000, 1000, 0640, "/system/etc/bluetooth/auto_pairing.conf");

    123 set_perm(3002, 3002, 0444, "/system/etc/bluetooth/blacklist.conf");

    124 set_perm(1002, 1002, 0440, "/system/etc/dbus.conf");

    125 set_perm(1014, 2000, 0550, "/system/etc/dhcpcd/dhcpcd-run-hooks");

    126 set_perm_recursive(0, 2000, 0755, 0755, "/system/etc/init.d");

    127 set_perm(0, 0, 0755, "/system/etc/init.d");

    128 set_perm(0, 2000, 0550, "/system/etc/init.goldfish.sh");

    129 set_perm_recursive(0, 0, 0755, 0555, "/system/etc/ppp");

    130 set_perm_recursive(0, 2000, 0755, 0644, "/system/vendor");

    131 set_perm(0, 0, 0644, "/system/vendor/etc/audio_effects.conf");

    132 set_perm(0, 0, 0644, "/system/vendor/firmware/libpn544_fw.so");

    133 set_perm_recursive(0, 2000, 0755, 0755, "/system/xbin");

    134 set_perm(0, 0, 06755, "/system/xbin/librank");

    135 set_perm(0, 0, 06755, "/system/xbin/procmem");

    136 set_perm(0, 0, 06755, "/system/xbin/procrank");

    136 set_perm(0, 0, 06755, "/system/xbin/su");

    138 set_perm(0, 0, 0755, "/system/addon.d/70-gapps.sh");

    139 set_perm_recursive(0, 0, 0755, 0644, "/system/app");

    140 show_progress(0.200000, 0);

    141 show_progress(0.200000, 10);

    co jeżeli żródło posiada inne wpisy w tym przedziale? zostawiamy je i dopisujemy te z portu? czy usuwamy?:P

    Edytowane przez pavulon00

    Udostępnij tę odpowiedź


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

    Możesz spróbować ale ma prawo nie ruszyć

    Udostępnij tę odpowiedź


    Odnośnik do odpowiedzi
    Udostępnij na innych stronach
    bart00
    Jeśli po instalacjo softu masz boot-loop, skopiuj z Port do Źródło pliki:

    libandroid_runtime.so

    libandroid_servers.so

    libmedia_jni.so

    ,

    W obu przypadkach mam bootloopa kurde, źródło jak i port na andku 4.2.2, jakieś pomysły?

    Udostępnij tę odpowiedź


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

    @up

    Jeśli chodzi o update scripter, musisz zwrócić uwagę na pozwolenia nadane plikom, być może w porcie jest jakiś dodatkowy plik, bez którego soft nie ruszy i musisz go dodać do źródła oraz nadać uprawnienia, wiadomo, że zmiana oryginalnych uprawnień ze źródła może przynieść negatywne skutki w postaci bootloopa.

    Na przykładzie tej linijki, czerwony wpis to plik w podanej niebieskiej ścieżce, jeśli usuniesz ten plik z softu to w recovery przy instalacji softu będziesz miał błąd set permission failed lub podobny.

    123 set_perm(3002, 3002, 0444, "/system/etc/bluetooth/blacklist.conf");

    Teraz jeśli będzie potrzeba dodania pliku do źródła z portu, któremu należy nadać uprawnienia to będzie to ujęte w pliku update scripter, ta metoda portu polega w głównej mierze na obserwacji. To ty widzisz jakie masz pliki w podanych wpisach i czy nie dodajesz nowych, do pierwszego udanego portu nie należy się załamywać, najważniejsze to znaleźć odpowiednie urządzenia.

    Podaj z jakiego telefonu na jaki telefon próbowałeś zrobić port.

    Należy pamiętać z Hdpi tylko na Hdpi, z mdpi tylko na mdpi itd,

    Jeśli sprawa tyczy się portu innej wersji androida np 4.1 źródło a 4.4. port to nie uda się tego zrobić

    Port dotyczy tych samych wersji androida 4.2 na 4.2 itd

    Udostępnij tę odpowiedź


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

    Electre próbuje przeportować z huaweia G300 soft 4.2.2 na jakimś niestabilnym cm10.1, wiesz o jakim sofcie mówie:P na LG l7 P700

    Za źródło wybrałem cm10.1 bo to też 4.2.2 ( beta 6 od tudorsirba).

    Pliki z updater-scripta od linijki 115 do 139 są takie same w obu plikach bo porównywałem.

    Soft sie instaluje, jest bootlogo electry ale stoi w miejscu no i zamiana tych plików nie pomogła.

    [color=#333333][i]libandroid_runtime.so[/i][/color]
    [color=#333333][i]libandroid_servers.so[/i][/color]
    [color=#333333][i]libmedia_jni.so[/i][/color]
    

    Edytowane przez pavulon00

    Udostępnij tę odpowiedź


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

    @up

    Mi się udało bez problemu przeportować ten soft, także do dzieła na pewno ci się uda także :D

    Robiłeś wszystkie wipe i format przed instalacją ;)

    Udostępnij tę odpowiedź


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

    Co do szybkiego i łatwego sposobu to się nie zgodzę :)

    Już łatwiej jest portować ze źródeł niż tak, ale do tego sposobu nie potrzeba 70gb i kompa-kombajna :D

    Udostępnij tę odpowiedź


    Odnośnik do odpowiedzi
    Udostępnij na innych stronach
    bart00
    @up

    Mi się udało bez problemu przeportować ten soft, także do dzieła na pewno ci się uda także :D

    Robiłeś wszystkie wipe i format przed instalacją ;)

    No właśnie robiłem, a pamiętasz co zrobiłeś z patchem do tego romu bo może żle zrobiłem że zamieniłem oryginalne pliki na te z patcha i dlatego bootloop?

    rower45

    jak widzisz temat dotyczy protowania metodą kopiuj wklej a nie kompilacji ze źródeł ;-)

    Edytowane przez pavulon00

    Udostępnij tę odpowiedź


    Odnośnik do odpowiedzi
    Udostępnij na innych stronach
    szymel00
    Co do szybkiego i łatwego sposobu to się nie zgodzę :)

    Już łatwiej jest portować ze źródeł niż tak, ale do tego sposobu nie potrzeba 70gb i kompa-kombajna :D

    U mnie port ROM-u tą metodą trwa od 5 do 10 minut, łatwość wykonania w skali od 1 do 100 = 5, port czy kompilacja ze źródeł także nie stanowi problemu, ale każdy ma wybór i może skorzystać z metody, która jest dla niego łatwiejsza, jeśli komuś przyda się taki poradnik to na pewno mnie to ucieszy, ;)

    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ę.