OSDN Git Service

media.log dump
authorGlenn Kasten <gkasten@google.com>
Tue, 26 Mar 2013 22:09:04 +0000 (15:09 -0700)
committerGlenn Kasten <gkasten@google.com>
Tue, 26 Mar 2013 22:09:04 +0000 (15:09 -0700)
Bug: 8446008
Change-Id: Ia47b204f5c4c91b99591eec5420a25a3dc8e7631

services/medialog/MediaLogService.cpp

index 2332b3e..f60749d 100644 (file)
@@ -19,6 +19,7 @@
 
 #include <sys/mman.h>
 #include <utils/Log.h>
+#include <binder/PermissionCache.h>
 #include <media/nbaio/NBLog.h>
 #include <private/android_filesystem_config.h>
 #include "MediaLogService.h"
@@ -55,6 +56,14 @@ void MediaLogService::unregisterWriter(const sp<IMemory>& shared)
 
 status_t MediaLogService::dump(int fd, const Vector<String16>& args)
 {
+    // FIXME merge with similar but not identical code at services/audioflinger/ServiceUtilities.cpp
+    static const String16 sDump("android.permission.DUMP");
+    if (!(IPCThreadState::self()->getCallingUid() == AID_MEDIA ||
+            PermissionCache::checkCallingPermission(sDump))) {
+        fdprintf(fd, "Permission denied.\n");
+        return NO_ERROR;
+    }
+
     Vector<NamedReader> namedReaders;
     {
         Mutex::Autolock _l(mLock);