Windows Mobile (Classic, Professional, Standard), Windows Phone 6.x oraz 7/8.x/10 > HTC

Poradnik kucharza, jak zrobić dobry OEMPack

(1/4) > >>

globalbus:
Są 2 metody zrobienia OEMPacka, ręczna i automatyczna przez programik packages_creator (w załączniku). Problem polega na tym, że paczka zrobiona przez taki program nie do końca nadaje się do użycia ;)

1.Podstawowe części OEMPacka:


* wszystkie pliki wrzucone do OEMPacka wylądują w \Windows na urządzeniu!
* option.xml -> plik umożliwiający selekcję OEMPacka w BuildOS, wygląda mniej więcej tak


--- Kod: ---<?xml version="1.0" encoding="UTF-16" standalone="yes"?>
<Items>
  <Item name="Nazwa" group="Nazwa grupy do której jest przypisany OEMPack" checked="true or false, czyli czy ma być domyślnie zaznaczony">
    <Tip>Porada, wyświetlana przez najechanie myszką na Nazwę</Tip>
    <Guid type="p">UUID</Guid>
  </Item>
</Items>
--- Koniec kodu ---

option.xml powinien być zapisany jako unicode, ostrożnie też ze stosowaniem znaków specjalnych (wprowadzamy je według zasad XML). Jeśli nie damy option.xml, paczka zostanie automatycznie dodana.


* Pewnie zastanawiacie się co to jest te UUID?
UUID - Universally Unique Identifier, potrzebny do organizacji plików w kuchni, W jednej paczce musi być to samo UUID w option.xml, .dsm i .rgu, inaczej BuildOS wysypie się już na wstępie.
Skąd to wziąć?
Wpisać w google "UUID generator" :P
* plik .dsm w formacie UUID.dsm -> normalnie służy do posegregowania wszystkich fragmentów \dump do katalogów OEM i SYS, ale w naszym przypadku może mieć pustą zawartość, nie będziemy po ugotowaniu ROMu znowu rozrzucać go na części pierwsze ;)
* plik .rgu w formacie UUID.rgu -> tutaj jest popełnianych najwięcej błędów, plik musi posiadać nagłówek "REGEDIT4", enter na końcu i musi być zapisany w formacie unicode. Po więcej informacji odsyłam was tutaj http://support.microsoft.com/kb/310516/PL/ Jeśli nie dodajemy nic do rejestru możemy pominąć tworzenie pliku .rgu
przykładowy plik rejestru


--- Kod: ---[HKEY_LOCAL_MACHINE\SOFTWARE\HTC\CommManager]
"SupportedFunctions"=dword:0000000A
"DisableButtonText"=dword:00000002

[HKEY_LOCAL_MACHINE\SOFTWARE\HTC\CommManager\0]
""="FlightMode"

[HKEY_LOCAL_MACHINE\SOFTWARE\HTC\CommManager\WLAN]
""="\\Windows\\WLanMgr.exe"
"DeviceName"="{98C5250D-C29A-4985-AE5F-AFE5367E5006}\\TIACXWLN1"

--- Koniec kodu ---


* initflashfiles.txt -> umożliwia kopiowanie plików z \windows i tworzenie katalogów
przykładowy plik


--- Kod: ---Directory("\Windows\"):-Directory("gfx")
Directory("\Windows\gfx\"):-Directory("clock")
Directory("\Windows\gfx\"):-Directory("clockA")
Directory("\Windows\gfx\"):-Directory("weather")
Directory("\Windows\gfx"):-File("arrows.png","\windows\000-arrows.png")
Directory("\Windows\gfx"):-File("battery1.png","\windows\000-battery1.png")
Directory("\Windows\gfx"):-File("battery2.png","\windows\000-battery2.png")
Directory("\Windows\gfx"):-File("battery3.png","\windows\000-battery3.png")
Directory("\Windows\gfx"):-File("batteryg.png","\windows\000-batteryg.png")
Directory("\Windows\gfx"):-File("buttons.png","\windows\000-buttons.png")
Directory("\Windows\gfx"):-File("notice.png","\windows\000-notice.png")
Directory("\Windows\gfx"):-File("pbackward.png","\windows\000-pbackward.png")
Directory("\Windows\gfx"):-File("pbarbutton.png","\windows\000-pbarbutton.png")
Directory("\Windows\gfx"):-File("pbaroff.png","\windows\000-pbaroff.png")
Directory("\Windows\gfx"):-File("pbaron.png","\windows\000-pbaron.png")
--- Koniec kodu ---

Directory("\katalog1\"):-Directory("katalog2") utworzy coś takiego \katalog1\katalog2

Directory("\Windows\gfx"):-File("buttons.png","\windows\000-buttons.png") przekopiuje plik 000-buttons.png do \windows\gfx i zmieni jego nazwę na buttons.png

2. A może by to tak automatycznie? (packages_creator)


* kopiujemy interesujący nas .cab do jakiegoś folderu na dysku C np C:\caby\
* uruchamiamy packages_creator, open cab file i wskazujemy plik
* Otworzy się winCE cab analizer, klikamy 7 ikonkę od lewej, potwierdzamy i zamykamy to okno.
* Program zapyta się teraz do którego pliku utworzyć skrót i w jakim katalogu, klikamy Default i wprowadzamy adres ręcznie, nazywamy link i klikamy done
* Kończymy pracę klikając "complete package"
3. Optymalizacja (na przykładzie NetFront Browser 3.5)

Po przetworzeniu paczki initflashfiles.txt wygląda mnie więcej tak Directory("\Program Files\"):-Directory("NetFront Browser v3.5")


--- Kod: ---Directory("\Program Files\NetFront Browser v3.5\"):-Directory("cache")
Directory("\Program Files\NetFront Browser v3.5\"):-Directory("search")
Directory("\Program Files\NetFront Browser v3.5\"):-Directory("skin")
Directory("\Program Files\NetFront Browser v3.5\"):-Directory("thumbnail")
Directory("\Program Files\NetFront Browser v3.5"):-File("NFB35Res.dll","\windows\000-NFB35Res.dll")
Directory("\Program Files\NetFront Browser v3.5"):-File("NFB35ResVGA.dll","\windows\000-NFB35ResVGA.dll")
Directory("\Program Files\NetFront Browser v3.5"):-File("NFBrowser.exe","\windows\000-NFBrowser.exe")
Directory("\Program Files\NetFront Browser v3.5"):-File("NFBrowser35.dll","\windows\000-NFBrowser35.dll")
Directory("\Program Files\NetFront Browser v3.5"):-File("NFLauncher.exe","\windows\000-NFLauncher.exe")
Directory("\Program Files\NetFront Browser v3.5"):-File("NFSetting.exe","\windows\000-NFSetting.exe")
Directory("\Program Files\NetFront Browser v3.5"):-File("NFSetup.dll","\windows\000-NFSetup.dll")
Directory("\Program Files\NetFront Browser v3.5"):-File("title_e.gif","\windows\000-title_e.gif")
Directory("\Program Files\NetFront Browser v3.5"):-File("title_e_VGA.gif","\windows\000-title_e_VGA.gif")
Directory("\Program Files\NetFront Browser v3.5"):-File("top.html","\windows\000-top.html")
Directory("\Program Files\NetFront Browser v3.5"):-File("top_VGA.html","\windows\000-top_VGA.html")
Directory("\Program Files\NetFront Browser v3.5\thumbnail"):-File("BBC - bbc.co.uk homepage - Home of the BBC on the Internet.vbt","\windows\000-BBC - bbc.co.uk homepage - Home of the BBC on the Internet.vbt")
Directory("\Program Files\NetFront Browser v3.5\thumbnail"):-File("CNN.com - Breaking News, U.S., World, Weather, Entertainment & Video News.vbt","\windows\000-CNN.com - Breaking News, U.S., World, Weather, Entertainment & Video News.vbt")
Directory("\Program Files\NetFront Browser v3.5\thumbnail"):-File("eBay - New & used electronics, cars, apparel, collectibles, sporting goods & more at low prices.vbt","\windows\000-eBay - New & used electronics, cars, apparel, collectibles, sporting goods & more at low prices.vbt")
Directory("\Program Files\NetFront Browser v3.5\thumbnail"):-File("Google.vbt","\windows\000-Google.vbt")
Directory("\Program Files\NetFront Browser v3.5\thumbnail"):-File("internet.com - the Internet and IT Network from Jupitermedia Corp..vbt","\windows\000-internet.com - the Internet and IT Network from Jupitermedia Corp..vbt")
Directory("\Program Files\NetFront Browser v3.5\thumbnail"):-File("Lycos.vbt","\windows\000-Lycos.vbt")
Directory("\Program Files\NetFront Browser v3.5\thumbnail"):-File("The New York Times - Breaking News, World News & Multimedia.vbt","\windows\000-The New York Times - Breaking News, World News & Multimedia.vbt")
Directory("\Program Files\NetFront Browser v3.5\thumbnail"):-File("The top news headlines on current events from Yahoo! News.vbt","\windows\000-The top news headlines on current events from Yahoo! News.vbt")
Directory("\Program Files\NetFront Browser v3.5\thumbnail"):-File("Welcome to About.com.vbt","\windows\000-Welcome to About.com.vbt")
Directory("\Program Files\NetFront Browser v3.5\skin"):-File("vbl_bg.gif","\windows\000-vbl_bg.gif")
Directory("\Program Files\NetFront Browser v3.5\skin"):-File("vbl_down.bmp","\windows\000-vbl_down.bmp")
Directory("\Program Files\NetFront Browser v3.5\skin"):-File("vbl_down_focus.bmp","\windows\000-vbl_down_focus.bmp")
Directory("\Program Files\NetFront Browser v3.5\skin"):-File("vbl_up.bmp","\windows\000-vbl_up.bmp")
Directory("\Program Files\NetFront Browser v3.5\skin"):-File("vbl_up_focus.bmp","\windows\000-vbl_up_focus.bmp")
Directory("\Program Files\NetFront Browser v3.5\skin"):-File("vb_bar_over.bmp","\windows\000-vb_bar_over.bmp")
Directory("\Program Files\NetFront Browser v3.5\skin"):-File("vb_bar_under.bmp","\windows\000-vb_bar_under.bmp")
Directory("\Program Files\NetFront Browser v3.5\skin"):-File("vb_bg.gif","\windows\000-vb_bg.gif")
Directory("\Program Files\NetFront Browser v3.5\skin"):-File("vb_default.bmp","\windows\000-vb_default.bmp")
Directory("\Program Files\NetFront Browser v3.5\skin"):-File("vb_down.bmp","\windows\000-vb_down.bmp")
Directory("\Program Files\NetFront Browser v3.5\skin"):-File("vb_down_focus.bmp","\windows\000-vb_down_focus.bmp")

--- Koniec kodu ---
Zaraz, zaraz a po co to wszystko kopiować? Chyba każdy chce mieć więcej wolnego miejsca ? :D


* Patrzymy na pliki które są umieszczone w \Program Files\NetFront Browser v3.5 i zmieniamy ich nazwy usuwając "000-"
* Uruchamiamy w notatniku replace, zamieniamy "\Program Files\NetFront Browser v3.5\" na "\windows\"
* Znowu patrzymy na pliki i na initflashfiles.txt, usuwamy pliki instalatora .cab, które są nam do niczego nie potrzebne (w tym wypadku "0NFSetup.dll" i "000-NFSetup.dll")
* Usuwamy głupie wpisy, które zostały po tej operacji np Directory("\Program Files\"):-Directory("NetFront Browser v3.5") i Directory("\Program Files\NetFront Browser v3.5"):-File("NFB35Res.dll","\windows\000-NFB35Res.dll")
* Wrzucamy "NFBrowser" do \windows na urządzeniu, tworzymy skrót przez eksplorator plików i podmieniamy ze skrótem stworzonym przez packages_creator
* Zaraz to wszystko? Nie! Czas na eksperymenty :) Czynności wykonane tutaj najlepiej sprawdzać po kolei. Patrząć na pliki, po co nam "NFB35ResVGA.dll" przy ekranie qvga? Kasujemy. Możemy również spróbować kompresji plików wykonywalnych narzędziem UPX, ale pamiętajcie, że nie wszystkie pliki chcą się uruchomić po spakowaniu.
4. Debugging

* BuildOS pokazuje, że plik który chcemy dodać już istnieje -> poszukać i skasować duplikat
* BuildOS zgłasza "error building user.hv and default.hv" -> plik rejestru jest źle skonstruowany/zapisany
* Brakuje skrótu do programu -> popatrz w initflashfiles.txt czy czegoś nie brakuje.
5. Sprawdzamy przed wgraniem (po co komu wgrywanie za każdym razem?)

* Wrzucamy wszystkie pliki na miejsce, w które mają trafić
* Importujemy rejestr z pliku za pomocą np tego programu
* Sprawdzamy czy działa.

Życzę wszystkim udanego gotowania ;)

qsqa:
Dobra robota  :ok: aby tak dalej.

nokser:
Muszę powiedzieć że kolega naprawdę, się postarał jednak na dzisiejszy dzień jest już łatwiej tworzyć dane nam operacje, o ile wiem podobny plik znajduje się na mobione.pl , ale jestem jak najbardziej za, żeby ilość właśnie artykułów pomocy nas przerosła.
Pozdrawiam - Świetna praca

lovelasik:
A jesli po wyciagnieciu z cab paczka wyglada tak?? Da się to jakoś ugotować żeby nie pokazywało się że jest wiele dms'ow i rgu?


globalbus:
zapewne przepaczkowałeś caba w którym już były rgu i dsm
wypakuj go tylko, nie dodawaj nic nowego

Nawigacja

[0] Indeks wiadomości

[#] Następna strona

Idź do wersji pełnej