Edycja pliku CAB instalatora InstallShield sterowników SB

Witam

Posiadam urządzenie Toshiba Multimedia Center wewnątrz którego siedzi Sound Blaster Live! 24-bit External. Ponieważ mam Windows 7 x64, a na ten system nie ma sterowników od Toshiby chciałem zainstalować te od Creative, jednak instalator nie chce działać twierdząc, że nie widzi zgodnego sprzętu. Z mojej analizy wynika, że Sound Blaster w Toshibie ma zmieniony identyfikator sprzętu (SB0490 -> SB0500, PID_3040 -> PID_3048).

Kiedyś udało mi się przerobić instalator Creative SB pod Windows XP i zmusić do działania z Toshibą przez zmianę tych wartości w plikach ini instalatora. Niestety, instalator pod Windows 7 jest trochę inaczej zbudowany i plik odpowiedzialny za wykrywanie urządzeń przez instalator zawarty jest prawdopodobnie w archiwum CAB (cabinet), którego nie mogę ugryźć żadnym programem.

Potrzebuję zamienić plik Common\WebDrv.ini zawarty w pliku Support.cab

W oryginalnym jest taka sekcja:

;(SB0490) Sound Blaster Live! 24-bit External

;------------------------------------------------

[Hardware.Map14]

ID = 041E3040

ProductName = Sound Blaster Live! 24-Bit External

DefAppPath = \Creative\SBLive 24-Bit External

FeatureSet	= FeatureSet1

Podejrzewam, że wystarczy zamienić tylko ID:

;(SB0490) Sound Blaster Live! 24-bit External

;------------------------------------------------

[Hardware.Map14]

ID = 041E3048

ProductName = Sound Blaster Live! 24-Bit External

DefAppPath = \Creative\SBLive 24-Bit External

FeatureSet	= FeatureSet1

O ile 7-zip, WinRar wypakowują plik WebDrv.ini bez problemu, o tyle żaden z nich nie potrafi zamienić/zaktualizować archiwum CAB. Ma ktoś jakiś pomysł jak zamienić ten plik ini wewnątrz tego archiwum?

Rozpakowanie całości i spakowanie jako zip ze zmianą rozszerzenia nic nie dają - instalator wyrzuca błąd.

Wspomniany plik Support.cab z instalatora: http://www.wrzuc.to/P8IAeyb3X.wt

Cały instalator znajduje się na stronie Creative: http://support.creative.com/Products/ProductDetails.aspx?catID=1&subCatID=206&prodID=10702&prodName=Live!%2024-bit%20External&subCatName=Live!&CatName=Sound+Blaster&VARSET=prodfaq:PRODFAQ_10702,VARSET=CategoryID:1

Jednoplikowy instalator można rozpakować 7-zipem (WinRarem może też), wtedy dostanie się właściwy instalator o którym mówię.

Mam nadzieję, że ma ktoś jakiś pomysł, albo dysponuje narzędziami to takiej zamiany.

Służy do tego narzędzie Cab SDK nie dostępne na stronie Microsoftu, ale idzie jeszcze je odnaleźć przez wyszukiwarkę. Używasz z konsoli pliku cabarc do rozpakowywania i pakowania. Widzę że w tym pliku masz wewnętrzny folder. Czeka cię trochę zabawy.

Sprawdziłem CabSDK i po kilku kombinacjach w wierszu poleceń udało mi się zrobić archiwum cab o takiej samej strukturze jak oryginalne. Instalator bez problemu zaakceptował podstawiony plik i uwzględnił zmianę jaką w nim dokonałem - pozwolił się zainstalować, mimo iż wcześniej twierdził, że nie ma wspieranego sprzętu. Niestety, Windows jest bardzo upierdliwy i mimo, że instalacja przebiegła z pozoru pomyślnie, to system nadal forsuje swoje standardowe sterowniki o nazwie “Urządzenie audio USB”, co mnie nie zadowala ze względu na brak obsługi ASIO i marne działanie wejścia mikrofonowego, które w XP na sterownikach Creative bez problemu mogło uciągnąć mikrofon dynamiczny. Ręcznie spróbowałem wybrać sterownik w menadżerze urządzeń (był do wybrania Sound Blaster Live! 24-bit External), to otrzymałem najpierw komunikat, że sterownik nie jest podpisany cyfrowo, a po instalacji, że urządzenie nie może zostać uruchomione (Kod 10).

To raczej koniec mojej walki z tą kartą, dzięki za wskazanie narzędzia CabSDK, działa ono bardzo dobrze i jest przydatne, ale sam problem rozwiązany może być chyba tylko przez zakup innego, wspieranego przez Windows 7 urządzenia. Spróbuję najwyżej jeszcze na wersji 32-bitowej, ale wątpię w sukces.

Jakby kogoś interesowało: żeby zrobić archiwum CAB z podfolderami wydałem takie polecenie:

cabarc N -p archiwum.cab Common/* Common/Audio/*

Pozdrawiam.