This article still contains speculation, wild guesses based on strings, etc. If you reverse-engineer code and find something that seems to contradict the article, you're probably right and the article is wrong. |
iOS 10 introduced the ability to remove system apps. The way it works seems to be significantly different between iOS 10 and 11.
iOS 10
In iOS 10, all system apps are still in /Applications as they were in iOS 9 and earlier. Apps that allow removal by the user have _LSSupportsRemoval=true in their Info.plist.
It seems like if the user removes a system app, user data associated with the app is deleted, TCC permissions are reset, the icon is hidden from the home screen and Spotlight, and it can't be launched via other means. However, the app is not actually deleted. When the user "re-installs" a system app from the App Store, the icon is shown again.
iOS 11
In iOS 11, removable system apps are shipped in /var/staged_system_apps in the ipsw, which will be in the user data (writable) volume. The _LSSupportsRemoval=true key is no longer used.
When an app is removed, it's actually deleted from the filesystem. When an app is re-installed from the App Store, it's downloaded and reinstalled. However, it doesn't actually come from the App Store like third party apps are. Instead, it's downloaded from a special MobileAsset called com.apple.MobileAsset.SystemApp.
List of removable apps
These system apps in iOS 10/11 can be removed by the user:
- Calculator
- Calendar
- Compass
- Contacts
- FaceTime
- Find Friends
- Fitness
- Home
- iBooks
- iCloud Drive / Files
- iTunes Store
- Maps
- Music
- News
- Notes
- Podcasts
- Reminders
- Stocks
- Tips
- TV
- Videos
- Voice Memos
- Watch
- Weather