Jak utworzyć pakiet instalacyjny ClockworkMod?

10

Jestem doświadczonym weteranem Linuksa, a ostatnio kupiłem Samsung Galaxy S2 od T-Mobile. Czuję majsterkowanie, więc zdecydowałem się pobrać kod źródłowy ze strony Samsunga i zacząć bawić się.

Mój problem polega na tym, że mam już zainstalowany ClockworkMod na moim telefonie, więc nie chcę odinflashować nowego jądra i tym samym uszkodzić ClockworkMod, więc szukam szczegółów, jak stworzyć odpowiedni pakiet instalacyjny ClockworkMod (ogólnie / always zip file?), abym mógł przetestować nowo skompilowane jądra.

Moje wyszukiwanie w Google do tej pory przyniosło nic. Strona ClockworkMod wydaje się być dość jałową dokumentacją. Czy ktoś może wskazać mi dokumentację dotyczącą procesu tworzenia pakietu instalacyjnego?

Peter Grace
źródło
1
Flashowanie jądra za pomocą Odina powoduje uszkodzenie CWM?
Mateusz
1
Pomyślałem, że tak, ponieważ ODIN wydaje się flashować główny blok rozruchowy telefonu, ale mógłbym tam być całkowicie poza bazą. Nie chciałem tego próbować bez pewności. Zrozumiałem, że CWM jest cienkim jądrem średniego człowieka, który przestawiałby się na właściwe jądro, ale znowu może być całkowicie nie na bazie.
Peter Grace

Odpowiedzi:

8

Wymagana część pliku .zip jądra wygląda następująco:

META-INF
    com
        google
            android
                update-binary
                updater-script

Będziesz także chciał mieć zImageplik jądra w innym miejscu, najłatwiej, jeśli po prostu masz go w katalogu głównym archiwum.

updater-scriptzawiera co najmniej następujące (zakłada zImagew katalogu głównym):

assert(package_extract_file("zImage", "/tmp/zImage");
       write_raw_image("/tmp/zImage", "/dev/block/mmcblk0p8");
       delete("/tmp/zImage")
);

Możesz także wykonywać takie czynności, jak pokazywanie paska postępu, drukowanie wiadomości, czyszczenie /cachei tak dalej.

Będziesz chciał pobrać update-binaryz innego pakietu jądra dla SGS2. Jeden losowo jest dołączony do tego postu XDA .

Testowałem tę metodę na moim SGS Vibrant bez problemu, używając jądra z pakietu Odin i update-binaryinnego .zip jądra Vibrant. Zauważ, że jest to całkowicie bezpieczne, dopóki piszesz na właściwej partycji - dla Vibrant tak było bml17, dla SGS2 wydaje się, że tak mmcblk0p5(na podstawie jądra z XDA, które podłączyłem powyżej) lub mmcblk0p8jeśli flashujesz cały obraz rozruchowy (patrz komentarze poniżej). Na pewno będziesz chciał to zweryfikować. W najgorszym przypadku twoje jądro nie działa i flashujesz znane dobre.

Matthew Read
źródło
W przypadku Samsunga Galaxy S2 (T-Mobile) SGH-T989 odpowiednia dyrektywa (zebrana ze znanego dobrego romu, który już zainstalowałem) pokazuje, że blok rozruchowy jest w / dev / block / mmcblk0p8, a nie p5. Może chcę to edytować ze względów bezpieczeństwa. Zrobiłem zip na podstawie tego postu i działał jak urok! Dzięki!
Peter Grace
@PeterGrace Ah, obraz rozruchowy jest czymś więcej niż tylko jądrem, dlatego jest inny.
Mateusz
Czy istnieje sposób, aby upewnić się, że powinienem używać / dev / block / mmcblk0p8? Mam Galaxy S2 z Virgin Mobile Canada (ten sam Bell Canada), więc nie pochodzi z T-Mobile i nie mam dobrej dobrej pamięci ROM (oprócz CM7, ale zapisuje obraz rozruchowy, a nie zImage). Czy powinienem założyć, że moja Virgin Mobile GS2 działa tak samo jak T-Mobile GS2, czy jest sposób, aby to sprawdzić?
Rognon
@Rognon Możesz spróbować uruchomić, mountaby zobaczyć, które bloki są mapowane gdzie. W przeciwnym razie znajdź ROM.
Matthew
@MatthewRead mountnie pokazuje ani p8, ani p5. Googling wydaje się wskazywać, że zImage powinien być zapisany na p5, podobnie jak ta strona: forum.xda-developers.com/showthread.php?t=1691867 . Próbowałem wyświetlić zawartość folderu wymienionego w wątku, ale nie istnieje on na moim telefonie ...
Rognon
-1

Odkryłem, że możesz używać fastboot bez wpływu na CWM.

sudo /path/to/fastboot boot boot.img

lub

sudo /path/to/fastboot flash:raw boot /path/to/zImage /path/to/ramdisk.img
redbmk
źródło