I think that feeding fake data by default in case use reject a permission is not appropriate. There should be an option to do that (or, like I suggested, a way for the user to write programs to program it to feed whatever data they want), although I think that by default if a permission is rejected it should just provide empty data (e.g. an empty contacts list) or an appropriate error code (e.g. network error or disk error or cannot acquire satellite, just as though that error had actually occurred), rather than making up fake data.