Android M makes modifications to existing services and introduces new features like runtime permissions, Doze mode, and adoptable storage. It modifies 31 existing services, adds 5 new services, and leaves 10 without changes. New features include runtime permissions to grant permissions to apps at runtime, Doze mode to extend battery life when unused, and adoptable storage to encrypt external storage and use it like internal storage. Tools are updated with Jack and Jill replacing JavaC and Clang replacing GCC for faster compiling.