Archive for the ‘Geek Corner’ Category

AFCGetFileInfo is missing on iTunes 8.2

Tuesday, June 2nd, 2009

The recent release of iTunes 8.2 ship with an updated iTunesMobileDevice.dll which is slightly not compatible with previous one. At least, we found an important function “AFCGetFileInfo” is removed from its exported functions. The function is used to look at the type (file or directory) of the entries of the filesystem as well as the size of the file, which is frequently used in file browsing applications like iFunbox. Now iFunbox got instantly crash after start up because on-demand loading of this function fails. For other applications that is hardly linked with iTunesMobileDevice.dll may refuse to start up.

We are seeking for work around.
The problem is just fixed, we released an updated version 0.8.250.160.

iTunesMobileDevice.dll Changed in iTunes 8.0

Saturday, September 13th, 2008

Many users reported iFunBox crashes after iTunes was updated to v8.0. We found the USB communication runtime library (iTunesMobileDevice.dll) was changed which cause iFunBox failure. The problem has been fixed in the newly released iFunBox v0.6.199.35.

More precisely, the memory layout of the structure am_device was extended 105bytes. The structure is used in many fundamental call for communicating with iPhone via USB port. Though the meaning of these addtional bytes is not clear to us, fortunately we don’t need to know that. The structure is created by the runtime library and feeded to other calls.

The updated am_device structure is defined as:
struct am_device {
unsigned char unknown0[16]; /* 0 - zero */
unsigned int device_id; /* 16 */
unsigned int product_id; /* 20 - set to AMD_IPHONE_PRODUCT_ID */
char *serial; /* 24 - set to AMD_IPHONE_SERIAL */
unsigned int unknown1; /* 28 */
unsigned char unknown2[4]; /* 32 */
unsigned int lockdown_conn; /* 36 */
unsigned char unknown3[8]; /* 40 */
unsigned char unknown4[6*16+1]; // + in iTunes 8.0, by iFunbox.dev
unsigned char padding[8]; // + in iTunes 8.0, by iFunbox.dev
};

Windows Register Hacking

Sunday, August 3rd, 2008

Override the Unicode codepage
The codepage used to convert non-Unicode plain text to Unicode text is obtained with GetACP call by default. The codepage can be overridden by save a DWORD value under
“HKEY_CURRENT_USER\Software\i-funbox.com\i-FunBox\Preference” with name CodePage.