Archive for the ‘Geek Corner’ Category

Option to disable symbolic link / robust bplist conversion

Sunday, July 11th, 2010

As requested, iFunbox V0.992.374.323 now allow disable symbolic link to avoid copying duplicated files and directories. The option can be found in [Help]\[Troubleshoot] like usual:

Also in this update, the code for binary plist conversion is revised and now made much robust. Welcome to check it out.

option to disable bplist conversion

Tuesday, June 29th, 2010

plist is essential an xml file used in iOS and many applications for storing configurations and settings. For access efficiency, or whatever other reasons, Apple developed a binary version of the plist, a.k.a bplist. ifunbox v0.99 and later will automatically detect and convert bplist to plist in plain text xml, when the user open or copy a .plist file. So that the file can be viewed on PC.

bplist conversion feature is now in beta and is recently reported crashes ifunbox on some file. We just released an update  v0.992.368.305 to fix some known bugs related to bplist conversion. Also, we provide an option to disable bplist conversion. New menu items can be find at [Help]->[Troubleshoot]->[Disable bplist conversion]:

Also, conversion of Apple PNG image can be disable in the same way.

ifunbox crash with iTunes 9.2

Friday, June 18th, 2010

We received several reports on the problem, we are investigating the reason now.

The problem has been located, which is similar to the case when iTunes 9.1 upgrade. iTunesMobileDevice.dll changed am_device structure again. We will release the new update within 24 hours. The hot fix has been released.

In iTunes 9.2, the am_device structure is updated like the following:

struct am_device_9_2
{
unsigned int unknown_header[2];
//+ in iTunes 9.2, by iFunbox.dev
unsigned int unknown0[4];
unsigned int device_id;
//+ in iTunes 9.1, by iFunbox.dev

unsigned int unknown5;
unsigned int product_id;
char *serial;
//- in iTunes 9.1, by iFunbox.dev
//unsigned int unknown1;
//unsigned char unknown2[4];
unsigned int lockdown_conn;
unsigned char unknown3[8];
// + in iTunes 8.0,  by iFunbox.dev
unsigned char unknown4[6*16+1];
// + in iTunes 8.0,  by iFunbox.dev
unsigned char padding[8];
unsigned char safe_extending[256];
// serial now starts from 9th charactor
char*GetSerial(){return serial+9;}
};

Bring back disappeared panels

Saturday, May 29th, 2010

iFunbox has a user interface with dockable panels and command bars, which allow the user to customize the layout of these UI elements easily. The customized state of all panels and bars will be saved when iFunbox exits and then loaded in next start, which makes the customization persistent.

We just released an update V0.99.353.274 to handle the case when the customization is unintentional. [ Reset UI ] entry is added to [ Help ] menu and system menu to reset the layout of all panels and command bars to its default locations and the program will be restarted.
Click [ Reset UI ] to reset all layouts.

But even if the command bar of main menu disappeared, you can click the icon in the left-top corner of the iFunbox main window and then select the [ Reset UI ] in the down list menu like below.

Finally, the worse case I can imagine, if the main window never shows up, you need to manually delete the register entry of the iFunbox by regedt.exe (regedt32.exe on 64bit windows). The related register key is located at: HKEY_CURRENT_USER\Software\i-FunBox.com\i-FunBox

iFunbox connects to iPad successfully

Tuesday, April 6th, 2010

Connecting to iPadWe just tested connect to iPad with i-Funbox v0.98. It works well. Hardware version 1.1 is recognized and the device is currently jailed.

Without jailbreak, i-Funbox can copy music and video from iPad to PC by using [Recovery Music and Video]. Also you can copy photos and voice recordings from iPad to PC. Just like on iPhone, you can also use the iPad as a much large portable driver (16GB), just put any files and folders in [General Storage].

iPad exhibits a file structure quite similar to iPhone’s. i-Funbox is also a power file manager, file explorer and file browser for iPad.

Ideas for the Next Release

Thursday, March 18th, 2010

We are planning features for the next release of iFunbox: the v1.0. We call for your ideas for the future of iFunbox.
Planned features:
1. searching files
2. editing file permission with SSH installed on iPhone
3. … ( please tell us know your thoughts )

Also, we find many users are still using the v0.9 instead of latest v0.95 with music/video recovery.
Please tell us your reason of sticking on v0.9.

Quick fixup for iPhones Jailbroken by Spirit

Sunday, October 25th, 2009

iFunbox relies on the AFC2 service to access the root file system of iPhones. AFC2 is usually enabled during jailbreak procedures as many previous Jailbreak tools do. If AFC2 serivce is not enabled, iFunbox will recognize it as a jailed iphone and access the file system with AFC service.

Recently iFunbox is found recognizing iPhones jailbroken by blackra1n and spirit as jailed ones. The reason is that the AFC2 service is not enabled in jailbreaking procedure.

A quick fixup is to install a tiny app from Cydia, afc2add to enable the AFC2 service on iPhone. Remember to reboot iPhone after installing.
More details can be found at:
http://www.ihackintosh.com/2009/10/afc2add-solve-ifunbox-iphonebrowser-diskaid-with-blackra1n-phones/

Thanks “Helper” for the message.

Call for iPod alternative

Sunday, September 27th, 2009

After several rounds of fighting against Apple’s iTunes database, we decide to stop following any further variations of the new database format. Instead, we are looking for alternatives of the iPod application on iPhone/iTouch.

Our plan is to provide an open, efficient and easy-to-use solution for obtaining and enjoying video and music on iPhone. The key of the solution is to establish an open, flexible and efficient standard of playlist exchange format, which describes a list of the video and music on iPhone and their associated information such as album title, cover and the year of publish. Such a standard bridges the mediaplayer on iPhone and File browsers on PC/Mac and provides the seamless user experience of copy-and-play of media files in any format. On the other hand, we are open to alternative ideas.

We are calling for collaborations with iPhone developers who are working on mediaplayer/file browser. We are working on a dedicate edition of the ifunbox to convert and transfer media files from PC/Mac to iPhone via high-speed USB connection.

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
};