iOS 10.3 (currently in beta) converts the filesystem to APFS. This happens transparently during the update and without changing any data or installed apps. Impressive.
But the APFS in-place conversion probably isn’t happening on iPhone 5 devices at all. I have an old iPhone 5 and was curious to see if there was a way to check for that programmatically. One of the features advertised for APFS was higher resolution for file timestamps. So I wrote a little test app and ran it on different devices. It quickly creates a series of files and compares their “modified” timestamps. It seems like the time resolution for iPhone 5 running iOS 10.3 beta is still 1 second, which would suggest it’s still using HFS. Link to the app: https://github.com/catnapgames/TestIOSAPFSCheck. If you have Xcode installed on your Mac you can build and run it yourself – developer account is no longer required for running apps on your own device.
- it’s easier to #include <sys/mount.h>, call statfs and check the f_fstypename of the struct statfs result: it will be hfs or apfs.
- it is “hfs” on the iPhone 5 with 10.3 release
- it is “apfs” on an iPad Mini4 with 10.3 release
Thanks to @jakepetroules for the tip. No APFS on iPhone 5 = 2x confirmed.