If you're on iOS you always have to opt-in to give an app access to photos or contacts. On Android, you can't do anything about it now, but it should be moving to a similar system with Android 6 (marshmallow). Neither allows you to restrict access to accelerometers, light sensors, etc as far as I am aware.
If they siphon up your contact list and store it before Marshmallow comes out, blocking it later won't do you much good.
Many custom Android roms have had deep per-app permissions for years (CM is basically built around it at this point), and previous versions of Android loosely supported per-app permissions through the App Ops app.
Yeah, but Sony locked up my phone's low light noise reduction behind some nasty DRM system and if I switch off the stock OS it turns the camera into a huge piece of shit.
If they siphon up your contact list and store it before Marshmallow comes out, blocking it later won't do you much good.