FMRadio: fix listen to recordings

FM app used to use file:// Uri to start a music player. However, in
recent Android versions, this became a crashable offense
(android.os.FileUriExposedException).

To fix the crash, we can either:

1. Disable StrictMode check -> won't help if music app cannot read video
   files (3gpp counts as video)
2. Cleanly expose via FileProvider -> we can't, because uid=system
   cannot give out uri permissions for security reasons
3. Not be uid=system anymore -> breaks on dirty flash/upgrade path
   because file ownership user is still system, and also breaks existing
   device trees that chmod /dev/fm to system
4. impersonate one of the system-whitelisted file providers (settings
   and tvsettings) -> HACK
5. Remove the feature -> No thanks
6. Make FM not systemUid -> Proper fix! but requires all maintainers to
   edit their trees, which is a longer-term project, that said a later
   patch preliminarily addresses this by adding this app into media GID
7. Implement stub app which hosts the FileProvider but isn't uid=system

And that's why I implemented a tiny, no-UI stub app for making listen
possible. To avoid security holes, the stub app is gated behind
"signature" permission.

Change-Id: Ibf3f3c06967dda025d489e6612678f38b549cbcb
8 files changed