I've read that there is a settings file (/System/Library/CoreServices/SystemVersion.plist) that stores the value of the iOS version which can be changed (at least on Jailbroken iOS devices) temporarily to fool apps (or the app store) into thinking a device is running a different version than it actually is. (There even is/was a tweak that changed this for you, FWChanger.)

Is the device type/model (iPad, iPhone, etc. and generation) also stored in a way that can be temporarily changed? (The reason is to just quickly test out an app, I'm not expecting a long-term, stable solution here. And yes, I know about the potential dangers of changing such values in regards to stability, etc.)


1 Answer 1


As for the first paragraph: Yes, the OS version can be changed (at your own risk) by opening said file (/System/Library/CoreServices/SystemVersion.plist) with a plist editor of your choice and then changing the version from 5.1 to 6.0.1 or whatever you intend.

The device type can’t – and even if it could, shouldn’t – be changed, though, as there are versions for each and every device and while the OS version might change over time, the device itself obviously won’t automagically transform into another device. There is a file called after the device you’re using in many of the subfolders of /CoreServices/, though. In case of an iPod touch 4th gen, the name would be N81ap.plist. In there, you find the capabilities of the device.


I just spoke with a friend of mine. He told me that yes, you could modify the version. But you would also have to change the ProductBuildVersion – for example from 9B208 (iOS 5.1.1) to 10A523 (iOS 6.0.1). But this, of course, might lead to failure because the app might try to use methods not available in the OS version you pretend to be using. By copying the values of (for example) N81ap.plist to #yourDevice.plist, your device (theoratically) gets the features of n81.ap. This could also lead to failure, because Springboard (or others) might need functions not available to the device you are actually using.

For some apps, it is quite easy to set the required phone/device, though. In that case you would have to search for a value like “requires telephony” or alike.

  • Sorry, logged in too late to give you some of the bounty. (If a moderator reads this, can you give an extension? The last time I had a bounty, there was a grace period for rewarding.) Personally I think this can be done with a hook of the function that queries the device type. I don't think it matters what the app is, especially since the alternative is buying a device that it'll run on. Nov 9, 2012 at 11:53
  • @newenglander That would be nice. However, I edited the answer. Nov 9, 2012 at 13:44
  • @newenglander The tools are not set up to reverse a bounty after the fact. You could re-bounty things or just hope that your votes are enough reward for the answerer. Do check your email address and spam filters since the system sends out a reminder email 23 hours before your bounty ends to prevent you missing the award period. There is a 24 hour grace period to award a bounty after the question becomes de-listed publicly, but that too has passed.
    – bmike
    Nov 9, 2012 at 15:51

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .