http://bugs.winehq.org/show_bug.cgi?id=10018
--- Comment #16 from Anastasius Focht focht@gmx.net 2007-11-12 12:26:26 --- Created an attachment (id=9132) --> (http://bugs.winehq.org/attachment.cgi?id=9132) patch which briefly implements SMART_GET_VERSION and SMART_RCV_DRIVE_DATA
Hello,
Ok, I present two possible ways to work around the problem...
Seems Macrovision provided the code for adobe license manager .. sweet SafeDisc memories *g* The adobe license manager service uses two methods of gathering hardware data needed to calculate the activation code.
1. S.M.A.R.T interface: SMART_GET_VERSION and SMART_RCV_DRIVE_DATA 2. SCSI interface: IOCTL_SCSI_GET_INQUIRY_DATA and IOCTL_SCSI_PASS_THROUGH
If S.M.A.R.T requests fail it uses the second "fallback" strategy, SCSI. By using ATA PASS-THROUGH SCSI command it wraps an ATA IDENTIFY DEVICE command to get drive controller data (essentially the same like (1))
Though it seems only drive model and serial number are actually used to derive activation code.
============= RECOMMENDED WAY ================
Using the SCSI ATA PASSTHRU method:
Make your primary harddisk block device (/dev/hda or /dev/sda .. whatever, owned by root) raw accessible to the wine user. At least: chmod g+rw /dev/hda (sda), if you are in "disk" group. If not: chmod a+rw /dev/hda (sda). +r is not enough because the block device is unfortunately opened with default READ_WRITE permissions requested. Don't be scared .. "write" isn't used at all.
Make the following symlink in .wine/dosdevices: "ln -s /dev/hda c::"
Start Photoshop CS2 and wait for activation dialog. It should now show activation code. Fill in required authorization code to activate your copy.
If successful you can remove the symlink and revoke permissions to hda/sda.
=================================================== Using the SMART method:
DISCLAIMER (just to avoid legal issues arising if people use faking IDENTIFY data for activation purposes): I take no responsibility for any damage to any computer equipment, legal action whatsoever, that arises, directly or indirectly, from the using the patch.
The S.M.A.R.T patch is for educational purposes, presented as base for other people to work on. The ioctl used for SMART_RCV_DRIVE_DATA, HDIO_DRIVE_CMD + ATA_IDENTIFY_DEVICE currently requires certain permissions (problematic without being root user). Therefore I implemented a second method, faking the ATA_IDENTIFY_DEVICE data without making an ioctl call to ATA driver. This has the interesting effect of being completely hardware independent (user can swap harddisks without changing activation code). This setting is the default one. Needless to say that any modification to fake IDENTIFY data changes activation code. If you want to play with real ioctl, undefine FAKE_SMART_DISK_IDENTIFY in dlls/ntdll/cdrom.c
The attached patch implements the necessary SMART stuff (either with real and fake ioctl data)
You should have a symlink in .wine/dosdevices: "ln -s /dev/hda c::" in place (for the FAKE_SMART_DISK_IDENTIFY case a symlink to any "harddisk like" block device will be sufficient)
Start Photoshop CS2 and wait for activation dialog. It should now show activation code. Fill in required authorization code to activate your copy.
If successful you can remove the symlink and revoke permissions to hda/sda.
=================
The product activation data is stored in "C:\windows\profiles\All Users\Application Data\Adobe Systems\Product licenses<xxx>.dat" If you accidentally removed this file (by wiping out .wine) you need to re-activate using same procedure.
Regards