iTunes只從8.2版本開始就不支持Windows 2003了。
在9.0版本之前,8.2版本之后出來的版本都是除了驅(qū)動(dòng)其他都能正常安裝的。
現(xiàn)在連最重要的iTunes都裝不了了。
這下可氣壞像我這樣喜歡在Windows Server版下工作的玩家。
今天一起之下決定網(wǎng)上找不到解決方案的話 自己進(jìn)行反匯編也要將其解決掉。
先說一下在Windows 2003下安裝會(huì)出現(xiàn)的問題吧。
1.驅(qū)動(dòng)裝不上,提示要WinXP SP1及以上版本,顯然是把Server版給蔽掉了;這個(gè)裝不上對(duì)于機(jī)上上沒有老版本的玩家那可是致命的。
2.iTunes裝到最后,啟動(dòng)iPodService時(shí),哐,彈出一個(gè)應(yīng)用程序錯(cuò)誤。對(duì)于編程的人來說,就跟讀了空指針一樣。最后無法安裝通過。
我在網(wǎng)上找了一大圈,都沒法完全的解決問題。
對(duì)于第一個(gè)問題,方法是一致的,確實(shí)能解決問題,用Orca這個(gè)工具。但對(duì)于第二個(gè)問題都沒法完全解決,在我的機(jī)子上行的通的一個(gè)方法是安裝到啟動(dòng) iPodService時(shí)將舊版本的iPodService.exe替換到安裝文件夾中,這樣可以欺騙過去,但由于iPodService.exe用的是老版本的,所以功能會(huì)有缺陷,至于會(huì)不會(huì)使軟件變得不穩(wěn)定,那就不清楚了,我也懶得去試。
下面是我的具體解決方案:
1.將iTunes解壓到一個(gè)文件,例如C:\iTunesSetup。會(huì)得到7個(gè)msi文件,一個(gè)SetupAdmin.exe,這個(gè)文件沒用。
2.用Orca工具打開AppleMobileDeviceSupport.msi,找到LaunchCondition,將Condition中的 ((VersionNT=501 AND ServicePackLevel>=2) OR VersionNT>=600)改為((VersionNT=501 AND ServicePackLevel>=2) OR VersionNT>501)。VersionNT代表的是當(dāng)前操作系統(tǒng)的版本號(hào),501是XP,502是2003,600是Vista(猜的,因?yàn)槲业腣S2005MSDN上沒有600版本)。再點(diǎn)View->Summary Information...,將Languages項(xiàng)改為1033,其他的不留,不然安裝的時(shí)候還會(huì)出問題,這個(gè)問題應(yīng)該是由于系統(tǒng)不是英文版的問題,反正這東西是是驅(qū)動(dòng),中文的還是英文的不會(huì)影響iTunes的使用。修改完之后保存。
3.MobileMe.msi的修改類似步驟2。
4.用命令msidb -x iTunes.cab -d iTunes.msi將iTunes.msi中的iTunes.cab包提取出來,因?yàn)閕PodService.exe就在這個(gè)包里。
5.用命令md iTunes在C:\iTunesSetup下建立一個(gè)iTunes文件夾
6.用命令expand iTunes.cab -F:* iTunes
7.UltraEdit打開C:\iTunesSetup\iTunes\iPodService.exe,將6A 01 6A 02 6A 00 6A 00 C7替換為6A 03 6A 02 6A 00 6A 00 C7,在將6A 01 6A 01 52 50 FF D6 52替換為6A 03 6A 01 52 50 FF D6 52。因?yàn)檫@里在比較版本號(hào)的時(shí)候用了相等比較,改了之后版本的比較就是大于等于比較了,這樣Windows 2003也能比較通過了。修改完之后保存。
8.用命令cabarc –m LZX:21 –r N iTunes.cab "iTunes\*"將修改后的程序壓縮成cab包。
9.用命令msidb -k iTunes.cab -d iTunes.msi將iTunes.cab從iTunes.msi中刪除掉。
10.用命令msidb -a iTunes.cab -d iTunes.msi將iTuens.cab加入到iTunes.msi中。
最后雙擊iTunes.msi就可以安裝了,大功告成。
以上用到的工具除了UltraEdit,其他的都是可以從M$那里得到。對(duì)于UltraEdit你也可以選擇用其他的十六進(jìn)制編輯器,只要能查找替換就行了。
我用的iTunes的版本為9.0.1.8,第7步涉及到iPodService.exe的實(shí)現(xiàn),所以版本不同可能找不到對(duì)應(yīng)的字節(jié),如果他們不更改系統(tǒng)版本判斷的代碼,應(yīng)該還是可以繼續(xù)使用第7步。
注:轉(zhuǎn)載請(qǐng)注明出處!