low level hard drive help
Posted on 2003-10-27
Ok, first a quick background: I, along with a small group of diehards came up with a way to disable the EU volume cap protection on the european ipods. Unfortunately, this way never caught on, as it is a VERY difficult process for people used to apple products to handle.
Now, to solve the problem, and possibly make it more mainstream, i would like to create a C++ (or java, altho i hate the language, i also know a little about it) application to accomplish the task for the user.
Herein lies the problem, i cannot for the life of me find any API or class file that will allow me to accomplish the specific tasks required. I believe it would require Very Very low level hard drive access, and some way to determine which drive is the ipod on everyones computer (ipod is treated as a standard Hard Disk by linux, only as an SDA device, if that helps), and accomplish the following processes (first on the win 2k/xp platform, then possibly on the osx platform):
1) Completely repartition a hard drive, including hidden partitions.
The way the ipod is set up, there is 3 partitions, only 1 of which is viewable to the OS. AS read in osx
#: type name length base ( size
1: Apple_partition_map partition map 62 @ 1
2: Apple_MDFW firmware 81920 @ 63 (
3: Apple_HFS* disk 29215536 @ 81983 (
Device block size=512, Number of Blocks=29215536 DeviceType=0x0, DeviceId=0x0
*can also be FAT32 for windows formatted ipods
** Can be anywhere from 10G(advertisers gb, not a real one, the 13.9 is supposedly a 15gb) worth, to now 40G worth.
The 3rd partition is unimportant at the moment, only the first 2.
2) Write back a firmware image onto the MDFW partition from a binary file previously captured.
Basically, what needs to be done is the MDFW partition needs to be resized from 32 mb to 40mb and a new firmware file written back to it.
If anyone has any information whatsoever on something that you think will help me with my task, i would be very gratefull.
Thank you all,
PS, looking through the pages and pages here, i saw that perhaps createfile(\\.\PhysicalDrivex) might help me somewhat. The OS is Windows 2000/XP only.