Remove MediaDrm stack from mediaserver

Part of media security hardening

MediaDrm was temporarily allowed to
run in either mediaserver or mediadrmserver
while all nexus devices were implementing
support for the native_handle representation
of secure buffers.  Now that all nexus
devices support native_handle, the MediaDrm
stack can be removed from mediaserver.

b/22990512

Change-Id: I96a5222f94cd1580ac411de5b48beb44b99cc8d7
This commit is contained in:
Jeff Tinker
2016-04-22 17:50:33 -07:00
parent 69a6fe321c
commit d12b7c0600
3 changed files with 11 additions and 44 deletions

View File

@@ -33,6 +33,7 @@ LOCAL_SHARED_LIBRARIES := \
libutils \
libbinder \
libmedia \
libmediadrm \
libskia \
libui \
liblog \

View File

@@ -28,7 +28,6 @@
#include <cutils/properties.h>
#include <media/ICrypto.h>
#include <media/IMediaDrmService.h>
#include <media/IMediaPlayerService.h>
#include <media/stagefright/foundation/ADebug.h>
namespace android {
@@ -63,30 +62,14 @@ JCrypto::~JCrypto() {
// static
sp<ICrypto> JCrypto::MakeCrypto() {
sp<IServiceManager> sm = defaultServiceManager();
sp<ICrypto> crypto;
char value[PROPERTY_VALUE_MAX];
if (property_get("media.mediadrmservice.enable", value, NULL)
&& (!strcmp("1", value) || !strcasecmp("true", value))) {
sp<IBinder> binder =
sm->getService(String16("media.drm"));
sp<IMediaDrmService> service =
interface_cast<IMediaDrmService>(binder);
if (service == NULL) {
return NULL;
}
crypto = service->makeCrypto();
} else {
sp<IBinder> binder =
sm->getService(String16("media.player"));
sp<IMediaPlayerService> service =
interface_cast<IMediaPlayerService>(binder);
if (service == NULL) {
return NULL;
}
crypto = service->makeCrypto();
sp<IBinder> binder = sm->getService(String16("media.drm"));
sp<IMediaDrmService> service = interface_cast<IMediaDrmService>(binder);
if (service == NULL) {
return NULL;
}
sp<ICrypto> crypto = service->makeCrypto();
if (crypto == NULL || (crypto->initCheck() != OK && crypto->initCheck() != NO_INIT)) {
return NULL;
}

View File

@@ -31,7 +31,6 @@
#include <cutils/properties.h>
#include <media/IDrm.h>
#include <media/IMediaDrmService.h>
#include <media/IMediaPlayerService.h>
#include <media/stagefright/foundation/ADebug.h>
#include <media/stagefright/MediaErrors.h>
@@ -354,30 +353,14 @@ JDrm::~JDrm() {
// static
sp<IDrm> JDrm::MakeDrm() {
sp<IServiceManager> sm = defaultServiceManager();
sp<IDrm> drm;
char value[PROPERTY_VALUE_MAX];
if (property_get("media.mediadrmservice.enable", value, NULL)
&& (!strcmp("1", value) || !strcasecmp("true", value))) {
sp<IBinder> binder =
sm->getService(String16("media.drm"));
sp<IMediaDrmService> service =
interface_cast<IMediaDrmService>(binder);
if (service == NULL) {
return NULL;
}
drm = service->makeDrm();
} else {
sp<IBinder> binder =
sm->getService(String16("media.player"));
sp<IMediaPlayerService> service =
interface_cast<IMediaPlayerService>(binder);
if (service == NULL) {
return NULL;
}
drm = service->makeDrm();
sp<IBinder> binder = sm->getService(String16("media.drm"));
sp<IMediaDrmService> service = interface_cast<IMediaDrmService>(binder);
if (service == NULL) {
return NULL;
}
sp<IDrm> drm = service->makeDrm();
if (drm == NULL || (drm->initCheck() != OK && drm->initCheck() != NO_INIT)) {
return NULL;
}