5

In Settings → Cellular (Mobile in UK), settings can be changed regarding mobile data, including per-app switches for all installed apps to enable or disable mobile data.

Where are these preferences stored?

I've looked in /var/mobile/Library/Preferences, but there doesn't seem to be any preferences relating to this. I've searched through the plists for various strings including app names and IDs from the list of per-app settings, but not found anything.

  • Apple stores many info in a cache.db ( is wildcard for almost everything). Is there a cellular.db or preferences.db available on the iPhone? I don't have an iPhone image right here so I'm unable to grep. – Rob Mar 2 '14 at 16:57
  • @Robuust I'm not seeing a cellular.db/preferences.db anywhere. There are numerous cache.db files in ~/Library/Caches, but I was presuming there was an actual place where the settings are stored permanently. – grg Mar 2 '14 at 16:59
  • @Buscar웃 In ~/Library/Preferences? Nope – grg Mar 2 '14 at 17:18
6
+50

The directory you're looking for happens to be /var/wireless/Library/Preferences. This is where the Settings > Cellular settings are stored. The per-application settings are stored in the database /var/wireless/Library/Databases/CellularUsage.db. If you want to add a setting manually, you'll need to add an entry for the application in two tables. The first is bundle_uuid, and you'll need to set the bundle_id field to the friendly bundle name (such as com.developersbliss.Helicopter), and then the macho_uuid field to its UUID (such as DD314675-0AA8-8A84-DB2BB966BAD8) (Repeat this step for each UUID that the application has. In my particular example, there are two UUIDs. Just add another entry to the table for each UUID, but with the bundle_id set the same as before, and with the macho_uuid set to the next UUID the application has.). Then you'll need to make an entry in the bundle_info table with the bundle_id field set to the friendly bundle name used in the bundle_uuid table, and then the flags field set to 0. This will make that particular application be restricted from using cellular data. To enable the application to use cellular data again, just set its flags field in the bundle_info table to 1. Any application not found in this database is assumed to be allowed to use cellular data.

  • Great answer — thank you! Congrats on the 2k too :) – grg Mar 3 '14 at 7:26
  • @grgarside These are the kinds of questions I come here for! I'll be the first person on the site to get a jailbreak tag badge. Oh, and this is my second time reaching 2K on AskDifferent (because of a bounty I paid), but thanks. – Andrew Larsson Mar 4 '14 at 3:29
  • 1
    @grgarside And there we have it. I'm officially the first person to be awarded the jailbreak tag badge. I can't wait for JailbreakCon 2014, and I hope it's just as awesome as when I was there for 2012. There's so much to learn there from so many of the big players. – Andrew Larsson Mar 19 '14 at 7:09
  • 1
    This answer is fantastic, more so than I ever expected when I asked the question — I've put a bounty & hope you get more upvotes as a result (enjoy your +50 too) – grg Jun 19 '14 at 14:15
  • 1
    Good work Andrew - and kudos on the badge and effort to provide technical expertise on jailbreaking iOS. – bmike Jun 24 '14 at 20:29

You must log in to answer this question.

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