Autor Wątek: Wbudowanie nowej sekcji XIP w OS.nb? Ależ to proste!  (Przeczytany 6269 razy)

Offline utak3r

  • Global Moderator
  • Core
  • *****
  • Podziękowań: 140
  • Samsung Note 4
Wbudowanie nowej sekcji XIP w OS.nb? Ależ to proste!
« dnia: Piątek, 08 Sierpień 2008, 00:44 »
OK, OK.... fajny tytuł wątku, nie?  :D

Dla porządku: początkowo było tutaj info o jednej z metod (insert autorstwa bepe). Teraz nieco więcej, dla każdego coś dobrego...


Na początek: jak uzyskać plik xip.bin? Metod jest sporo... mają swoje zalety i wady, na jednych urządzeniach działają jedne, na innych inne... opiszę więc tylko jedną z nich: buildxip.

1. Przygotowujemy katalog (przykładowo ROM), w nim podkatalog XIP, w którym umieszczamy całą zawartość sekcji XIP - moduły i pliki, bez plików *.txt!! W katalogu głównym kuchni, w podkatalogu temp\dump, umieszczamy moduły .VM i .ROM. W katalogu ROM umieszczamy plik romhdr.bin od naszego urządzenia. Dogrywamy narzędzia od bepe. Katalog przygotowany :)

2. Wykonujemy polecenie:
> buildxip

W tym momencie otrzymujemy plik out.bin, który jest naszą nową sekcją XIP (to jest to samo, co byśmy otrzymali przy pomocy programu XIPPort jako plik xip_out.bin).


Jak taki plik osadzić w obrazie ROMu?

Metoda: implantxip.

Metoda ta jest najciekawsza, gdyż nie wymaga znajomości adresu XIP, długości sekcji, umożliwia wybór pomiędzy przesunięciem sekcji IMGFS a pozostawieniem jej tam, gdzie jest, a dodatkowo oferuje możliwość założenia w trakcie łatki na certyfikaty oraz zmniejszenia lub usunięcia partycji ULDR, co jednak nie jest przedmiotem tego wpisu.
Osadzenie pliku xip.bin w przykładowym os.nb.payload wyglądać może następująco:

> implantxip -XIP out.bin -PAYLOAD OS.nb.test -NoCert

gdzie w przykładzie:

-XIP out.bin
plik z naszą nową sekcją XIP

-PAYLOAD OS.nb.test
nasz obraz ROMu

-NoCert
wymuszenie nałożenia łatki na jądro nk.exe, usuwającej odwołania do procedur sprawdzających certyfikaty.

Metoda: insert.

> insert -i out.bin -o OS.nb -d 0x00310000 -s 0x00310000

gdzie w przykładzie:

-d 0x00310000
adres sekcji XIP

-s 0x00310000
długość sekcji. W przypadku, gdy nasz xip.bin jest krótszy, resztę dopełnia zerami.

Metoda: XIPPort.

[attachment=4]

Za pomocą programu XIPPort możemy osadzić przygotowany plik (koniecznie o nazwie xip_out.bin!) w naszym obrazie ROMu. Uruchamiamy program, wpisujemy pożądany adres (musimy go znać!) oraz nazwę pliku naszego obrazu (domyślnie jest tutaj wpisane nk.nb), np. os.nb.payload i wciskamy klawisz "write xip_out.bin to:". Koniec.



I na zakończenie: jak przygotować sobie taki katalog XIP, w celu szybkiego portowania XIPów?
Wrzuć do naszego katalogu OS.nb (bądź OS.nb.payload) zawierający interesującą Cię sekcję XIP i wykonaj:
> dumprom

W efekcie otrzymasz podkatalog XIP, oraz pliki romhdr.bin, msflash.bin i boot.bin :)

Powodzenia!

« Ostatnia zmiana: Środa, 03 Czerwiec 2009, 21:19 wysłana przez utak3r »

Offline mobi

  • Administrator
  • Core
  • ****
  • Podziękowań: 351
  • Wizard/HD2/Kaiser/SGS3/HTC E8/HTC 10/Xiaomi MiA1
Odp: Wbudowanie nowej sekcji XIP w OS.nb? Ależ to proste!
« Odpowiedź #1 dnia: Piątek, 08 Sierpień 2008, 00:59 »
Cytuj
> insert -i out.bin -o OS.nb -d 0x00310000 -s 0x00310000
a inne parametry dla innych urządzeń gdzie szukać?


Offline utak3r

  • Global Moderator
  • Core
  • *****
  • Podziękowań: 140
  • Samsung Note 4
Odp: Wbudowanie nowej sekcji XIP w OS.nb? Ależ to proste!
« Odpowiedź #2 dnia: Piątek, 08 Sierpień 2008, 01:14 »
Dwie metody:
1. ROMMaster i XIPPort, opisane tutaj.
2. Najpewniejszy sposób, który zadziała na każdym ROMie, nawet nie wiadomo jak zmodyfikowanym, gdzie ROMMaster sobie nie poradzi, równocześnie najszybciej:

- otworzyć OS.nb hexedytorem (polecam HxD).
- znaleźć ciąg 45 43 45 43.
- cofnąć się o 0x40 bajtów. Jesteśmy pod szukanym adresem  :D


Offline Grimi

  • GZU
  • Core
  • ****
  • Podziękowań: 75
  • ♠ HTC Mozart ♥ Lark FreeBird 43.1
Odp: Wbudowanie nowej sekcji XIP w OS.nb? Ależ to proste!
« Odpowiedź #3 dnia: Piątek, 08 Sierpień 2008, 01:32 »
utak3r tytuł zajefajny... ale i praktyczny. Przykleiłem Cię   :)
- Zobacz mnie na GoldenLine


Offline utak3r

  • Global Moderator
  • Core
  • *****
  • Podziękowań: 140
  • Samsung Note 4
Odp: Wbudowanie nowej sekcji XIP w OS.nb? Ależ to proste!
« Odpowiedź #4 dnia: Poniedziałek, 01 Czerwiec 2009, 21:42 »
nieco przebudowałem i rozszerzyłem pierwszy post... ;)


Offline globalbus

  • GZU
  • Core
  • ****
  • Podziękowań: 77
  • N900 + Zest
Odp: Wbudowanie nowej sekcji XIP w OS.nb? Ależ to proste!
« Odpowiedź #5 dnia: Poniedziałek, 01 Czerwiec 2009, 21:44 »
warto dodać (jak się czepiać to na całego), że program nie jest w stanie relokować sekcji ram.

Offline utak3r

  • Global Moderator
  • Core
  • *****
  • Podziękowań: 140
  • Samsung Note 4
Odp: Wbudowanie nowej sekcji XIP w OS.nb? Ależ to proste!
« Odpowiedź #6 dnia: Poniedziałek, 01 Czerwiec 2009, 21:44 »
...ale który? buildxip?

Offline globalbus

  • GZU
  • Core
  • ****
  • Podziękowań: 77
  • N900 + Zest
Odp: Wbudowanie nowej sekcji XIP w OS.nb? Ależ to proste!
« Odpowiedź #7 dnia: Poniedziałek, 01 Czerwiec 2009, 21:48 »
tak, zdecydowanie, relokuje tylko nk.exe (też nie do końca)
platfrom rebuilder również tego nie potrafi.

Offline utak3r

  • Global Moderator
  • Core
  • *****
  • Podziękowań: 140
  • Samsung Note 4
Odp: Wbudowanie nowej sekcji XIP w OS.nb? Ależ to proste!
« Odpowiedź #8 dnia: Środa, 03 Czerwiec 2009, 21:20 »
Małe uzupełnienie w pierwszym poście (podczas edycji posta z sekcji o buildxipie uciekła mi gdzieś informacja o umieszczeniu w katalogu ROM pliku romhdr.bin  ::) )

Offline globalbus

  • GZU
  • Core
  • ****
  • Podziękowań: 77
  • N900 + Zest
Odp: Wbudowanie nowej sekcji XIP w OS.nb? Ależ to proste!
« Odpowiedź #9 dnia: Środa, 03 Czerwiec 2009, 21:38 »
jak uzyskać romhdr.bin?
idziemy do naszego oryginalnego xipa, 2 dword za instrukcją ECEC to adres, w którym zaczyna się romhdr.bin, ma on długość 0x54, kopiujemy ten fragment do pliku i gotowe.


Offline utak3r

  • Global Moderator
  • Core
  • *****
  • Podziękowań: 140
  • Samsung Note 4
Odp: Wbudowanie nowej sekcji XIP w OS.nb? Ależ to proste!
« Odpowiedź #10 dnia: Środa, 03 Czerwiec 2009, 21:42 »
dokładnie. A dla leniwych: dumprom xip.bin również generuje romhdr.bin, a także sekcję msflsh50.

Offline globalbus

  • GZU
  • Core
  • ****
  • Podziękowań: 77
  • N900 + Zest
Odp: Wbudowanie nowej sekcji XIP w OS.nb? Ależ to proste!
« Odpowiedź #11 dnia: Środa, 03 Czerwiec 2009, 21:43 »
dodaj dumprom od bepe, bo te inne to raczej nie.


Offline utak3r

  • Global Moderator
  • Core
  • *****
  • Podziękowań: 140
  • Samsung Note 4
Odp: Wbudowanie nowej sekcji XIP w OS.nb? Ależ to proste!
« Odpowiedź #12 dnia: Sobota, 06 Czerwiec 2009, 20:41 »
o jaaaa.....  :oT

Siedzę od dwóch dni i kminię, dlaczego nagle przestał mi działać albo buildxip albo implantxip.... no nic nie działało, pierwszy splash i koniec, cokolwiek bym nie robił.... podstawiałem stare zachowane XIPy - to samo....
W końcu stwierdziłem, że chyba mi się rozleciał os.nb, chociaż to niemożliwe, bo pracuję zawsze tylko na kopii w tempie - no, ale a nóż....
I tak patrzę, jak buduje mi się imgfs - przelatuje i w kilka sekund zbudował.... no i mnie oświeciło  :ol:   w MSXIPKernel znajduje się cecompr.dll, tak? A ja na stałe w os.nb mam wpisane LZX, tak?....  :oT  echhhh.... coś ostatnio przemęczony jestem ;)