最近买了个联想昭阳K42A,装上XP SP3后发现每次不管是插上U盘,还是USB移动硬盘,或是SD/MMC卡,总是提示“指定的服务并未以已安装的服务存在”,虽然可以正常使用,但每次都会出现,不免有些不爽。
于是上网Google一番,还真有不少帖子,看后确定是APS(Active Protection System)的问题。可以下载新版(1.52)驱动程序解决此问题。看看我的程序:软件版本是1.50,驱动程序版本是1.52。在联想官方网上下载最新的程序,发现还是问题依旧。
有网友说可以在联想E文网站下载IBM T系列的APS,于是我下载了个1.54版本的回来,可又发现安装不上,提示我的本本不支持APS。
怎么办,放弃?看着下载回来的两个版本的安装程序,于是有了个想法,自己动手,打造K42A的APS 1.54版本。既然决定了,就马上动手吧。
1. 从网上找来3个相关工具:orca,msidb,cabarc;
2. 从原始安装文件取得APS.MSI
APS的原始安装文件是一个压缩的EXE文件,怎么从中取得MSI文件了,我选择了安装过程中截获。
A. 进入系统临时文件夹
B. 运行aps_x86_ene_1.52.exe,开始安装,出现对话框,先不要管它
C. 返回刚才打开的系统临时文件夹页面,可以发现这时这里多了几个文件夹,把这几个文件夹复制出来。可以从里面找到APS.MSI。
按A、B、C三步分别得到两个版本的APS.MSI。
3. 用1.52版本的APS.MSI修补1.54版本的APS.MSI
由于1.54版本的APS在安装时检测不到硬件,初步想法是让它不检测,或是用1.52版本的检测。为实现我们的想法,
A. 我们用orca打开1.54版本的APS.MSI,发现在表ISSetupFile中有像检测的程序,于是导出该表,关闭1.54版本的APS.MSI。
B. 用orca打开1.52版本的APS.MSI,导出ISSetupFile表,关闭1.52版本的APS.MSI。
C. 用1.52版的程序(就是那四个ibd文件)替换1.54版的程序。
D. 用orca打开1.54版本的APS.MSI,导入已经替换的ISSetupFile表,关闭1.54版本的APS.MSI。
进行安装测试,已经可以安装上。重启,发现APS并不能工作。看来是1.54版本的驱动程序不能识别K42A的APS,那我们就把驱动换回到1.52版本。用orca打开1.54版本的APS.MSI,看到里面有两个SYS文件APSX86.sys apshm86.sys,就是它们了。开始替换吧。
A. 点击开始菜单,选择运行命令,在运行窗口中输入“cmd”并选择确定,打开一个命令提示符窗口,并切换当前工作目录。
B. 从1.52版MSI文件中提取Data1.cab执行:
msidb -x Data1.cab -d APS.msi
C. 建立一个空白文件夹152
md 152
D. 将Data1.cab解压到152文件夹
expand Data1.cab -F:* 152
E. 同样从1.54版MSI文件中提取Data1.cab并解压到Disk1文件夹
F. 用1.52版的apshm86.sys文件替换1.54版的apshm86.sys
copy 152/apshm86.sys DISK1/apshm86.sys
G. 用1.52版的apsx86.sys文件替换1.54版的apsx86.sys
copy 152/apsx86.sys DISK1/apsx86.sys
H. 将DISK1目录中的所有文件重新压缩为Data1.cab
cabarc.exe -m MSZIP -i 1111 N Data1.cab "DISK1/*"
I. 清除掉1.54版APS.msi文件中的Data1.cab
msidb -k Data1.cab -d APS.msi
J. 将新生成的Data1.cab重新打包进APS.msi
msidb -a Data1.cab -d APS.msi
至此,就完成了MSI文件所有的修改操作,我们可以执行新的APS.msi安装程序来将软件Active Protection System安装到系统中了。
最后有一点要提醒大家,所有的操作都需要在一个FAT32格式的分区上面进行,如果是在NTFS格式的分区上面,新生成的APS.MSI文件可能会出现问题而导致无法正常安装。