Sobota, 11 Luty 2012, 13:55

Autor Wątek: Budujemy nowy ROM: Przenoszenie XIP prawie na maksa  (Przeczytany 12771 razy)

0 użytkowników i 1 Gość przegląda ten wątek.

Offline utak3r

  • Global Moderator
  • Core
  • *****
  • Wiadomości: 8241
  • Podziękowań: 137
  • Płeć: Mężczyzna
  • Samsung Ace, Raphael, Hermes, Universal i inne
    • Wirtualne Zacisze utak3ra
Odp: Budujemy nowy ROM: Przenoszenie XIP prawie na maksa
« Odpowiedź #15 dnia: Niedziela, 10 Maj 2009, 20:23 »
hmm, akurat te info mogłoby wylądować w innym wątku... (zakamarki os.nb).
Windows Mobile: a story of love and hate.


Offline globalbus

  • GZU
  • Core
  • ****
  • Wiadomości: 1969
  • Podziękowań: 77
  • Płeć: Mężczyzna
  • N900 + Zest
Odp: Budujemy nowy ROM: Przenoszenie XIP prawie na maksa
« Odpowiedź #16 dnia: Niedziela, 10 Maj 2009, 20:25 »
bądz co bądz, bez tego niektórych xipów nie przeniesiesz.

Offline utak3r

  • Global Moderator
  • Core
  • *****
  • Wiadomości: 8241
  • Podziękowań: 137
  • Płeć: Mężczyzna
  • Samsung Ace, Raphael, Hermes, Universal i inne
    • Wirtualne Zacisze utak3ra
Odp: Budujemy nowy ROM: Przenoszenie XIP prawie na maksa
« Odpowiedź #17 dnia: Niedziela, 10 Maj 2009, 20:45 »
heh, tak to można pół forum zaklasyfikować ;) ok.
Windows Mobile: a story of love and hate.


Offline globalbus

  • GZU
  • Core
  • ****
  • Wiadomości: 1969
  • Podziękowań: 77
  • Płeć: Mężczyzna
  • N900 + Zest
Odp: Budujemy nowy ROM: Przenoszenie XIP prawie na maksa
« Odpowiedź #18 dnia: Sobota, 13 Czerwiec 2009, 17:59 »
bawię się w dodawanie modułów do xip, które pochodzą z imgfs, metoda wygląda mniej więcej tak.
Ustawiamy mreloc adresy, e32 jako virtual base jakiś nieobłożony, o32 jako jakiś z dll address (jest jeszcze inna metoda alokacji tego, ale na razie dla mnie mglista).
Teraz idziemy do imageinfo.txt i zamieniamy o32_flags z XX0020XX na XX0000XX, to samo musimy poprawić hex editem w imageinfo.bin
Poprawiamy P+, V+ itd.
- dajemy przed e32_vbase V=
- dajemy przed każdym dataptr P+
- jeśli o32_flags to 40000040 lub 60000020 dajemy w realaddr V+XXXXXXXX, wartość tego musi być równa o32_rva
- jeśli o32_flags to C0000040 dajemy w realaddr D= to co wpisaliśmy w o32 realaddr w mreloc (trochę mniej ciekawie jest przy paru regionach z tymi flagami, ale o tym kiedy indziej).
czas zrobić module.txt
Cytuj
  Module name: nazwa_modułu
   dwFileAttributes:      00000007
   ftTime:                01C9EC398D2DE5FA (jakiś losowy ?)
   nFileSize:             (rozmiar wszystkich SXXX + imageinfo.bin w hex)
   lpszFileName:        P+XXXXXXX dajemy dowolne adresy, xipport je poprawi.
   ulE32Offset:         P+XXXXXXX
   ulO32Offset:         P+XXXXXXX
teraz relloc P, sprawdzamy mapy, jeśli wszystko jest ok to składamy i sprawdzamy czy wszystko działa.