In the last GoogleIO 2015, google released the new feature of Marshmallow which is called "Runtime Permissions".
It drastically changed the way to handle permissions from the previous mechanism.
The change is basically great for users but also the hell for developers.
Because developers have to write a ton of boilerplate codes and the new mechanism and api may not be easy for developers.