Hi!
I've been able to fix this issue on my iPhone 6 running iOS 10.3. In short : unless you're a developer or have tehcnical expertise in iPhone forensics and have a lot of time on your hands, read along. Else, wait for Apple to fix the underlying issue, one day maybe...
To diagnose whether you have the same issue I do : if you connect your device to Xcode and check the logs, you should see when opening the Settings app on the iPhone a line appearing multiple times like :
"Sep 28 13:38:01 Johns-iPhone Preferences[331] <Warning>: CoreData: error: (11) Fatal error. The database at /var/wireless/Library/Databases/DataUsage.sqlite is corrupted. SQLite error code:11, 'database disk image is malformed'"
If you find it, you're on the right path! I've had the issue since updating to iOS 10.1 I think : I was nearly out of space, the update failed multiple times, the phone crashed during the update, etc. I guess this corrupted the database (SQLite being very hard to corrupt) and therefore when iOS tries updating or opening it, it just fails and abandons.
Extracting the DB from my backup showed that opening the DB using sqlite3, dumping it and reading back from the dump created a functional DB, slightly smaller in size but filled with Data Usage stats. That means it was just a "small" corruption like a bad entry, which I imagine could happen if there are crashes during updates.
The issue then is getting that file back onto the iPhone. If jailbroken, it's relatively easy but mine wasn't so I had to manually edit my encrypted backup to replace the corrupt file with the "healthy" one, encrypt it, fix the metadata, etc. and after a few tries the restore from the backup worked and now I have the Cellular Usage back!
So, basically :
- Extract the DB from your backup (WirelessDomain/Library/Databases/DataUsage.sqlite) with the tool of your choosing or directly from the iPhone if jailbroken
- Fix it with an SQL dump
- Put it back into the backup and restore to the device (or put the file directly into the iPhone if jailbroken)
As you can see, this is particularly tricky and time-consuming, especially when you have to make the tools yourself. I've filed a bugreport to have Apple address such a corrupt database in a better way, either "fixing" it with a dump on the iPhone itself or deleting it a creating a new one. "But what about the contents of the file?" you say? Well, better to lose all the cell usage stats and start afresh than never being able to access them!
Cheers,
Joe