Protect TrackRecordingService to allow

external applications access based on the
sharing settings.

Protect all RPCs calls using the caller's
process id.

When the service is started, we cannot
tell whether the caller is MyTracks or
another app. Thus when the service
is started, we cannot access MyTracks
database or start/stop a recording.

Previsouly, only the MyTracks app
widget is using the service's start method
to start and stop a recording. Thus
create a private service, ControlRecordingService,
that only the MyTracks app widget can access and delegate
starting/stopping a recording to
TrackRecordingService.
This commit is contained in:
Jimmy Shih
2011-10-05 16:45:32 -07:00
parent 969a677d7d
commit 2fa325dbf3
6 changed files with 195 additions and 68 deletions
+3
View File
@@ -178,6 +178,9 @@ limitations under the License.
android:exported="true"
android:permission="com.google.android.apps.mytracks.WRITE_TRACK_DATA" />
<service android:name="com.google.android.apps.mytracks.services.ControlRecordingService"
android:exported="false" />
<receiver android:name="com.google.android.apps.mytracks.BootReceiver">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />