MediaPlayer2: uid is always valid.

Test: MediaPlayer2 plays
Bug: 63934228
Change-Id: I4c9fefe1cdb04f0f7fa82cf08f382c12f6bf5b0b
diff --git a/media/libmediaplayer2/nuplayer2/GenericSource2.cpp b/media/libmediaplayer2/nuplayer2/GenericSource2.cpp
index 0351a76..4700660 100644
--- a/media/libmediaplayer2/nuplayer2/GenericSource2.cpp
+++ b/media/libmediaplayer2/nuplayer2/GenericSource2.cpp
@@ -54,7 +54,6 @@
 
 NuPlayer2::GenericSource2::GenericSource2(
         const sp<AMessage> &notify,
-        bool uidValid,
         uid_t uid,
         const sp<MediaClock> &mediaClock)
     : Source(notify),
@@ -73,7 +72,6 @@
       mAudioIsVorbis(false),
       mIsSecure(false),
       mIsStreaming(false),
-      mUIDValid(uidValid),
       mUID(uid),
       mMediaClock(mediaClock),
       mFd(-1),
diff --git a/media/libmediaplayer2/nuplayer2/GenericSource2.h b/media/libmediaplayer2/nuplayer2/GenericSource2.h
index bc13eb7..1a5409a 100644
--- a/media/libmediaplayer2/nuplayer2/GenericSource2.h
+++ b/media/libmediaplayer2/nuplayer2/GenericSource2.h
@@ -43,7 +43,7 @@
 struct NuPlayer2::GenericSource2 : public NuPlayer2::Source,
                                    public MediaBufferObserver // Modular DRM
 {
-    GenericSource2(const sp<AMessage> &notify, bool uidValid, uid_t uid,
+    GenericSource2(const sp<AMessage> &notify, uid_t uid,
                    const sp<MediaClock> &mediaClock);
 
     status_t setDataSource(
@@ -150,7 +150,6 @@
     // Secure codec is required.
     bool mIsSecure;
     bool mIsStreaming;
-    bool mUIDValid;
     uid_t mUID;
     const sp<MediaClock> mMediaClock;
     sp<MediaHTTPService> mHTTPService;
diff --git a/media/libmediaplayer2/nuplayer2/NuPlayer2.cpp b/media/libmediaplayer2/nuplayer2/NuPlayer2.cpp
index 65e0957..00f49f5 100644
--- a/media/libmediaplayer2/nuplayer2/NuPlayer2.cpp
+++ b/media/libmediaplayer2/nuplayer2/NuPlayer2.cpp
@@ -208,9 +208,9 @@
 
 ////////////////////////////////////////////////////////////////////////////////
 
-NuPlayer2::NuPlayer2(pid_t pid, const sp<MediaClock> &mediaClock)
-    : mUIDValid(false),
-      mPID(pid),
+NuPlayer2::NuPlayer2(pid_t pid, uid_t uid, const sp<MediaClock> &mediaClock)
+    : mPID(pid),
+      mUID(uid),
       mMediaClock(mediaClock),
       mSourceFlags(0),
       mOffloadAudio(false),
@@ -249,11 +249,6 @@
 NuPlayer2::~NuPlayer2() {
 }
 
-void NuPlayer2::setUID(uid_t uid) {
-    mUIDValid = true;
-    mUID = uid;
-}
-
 void NuPlayer2::setDriver(const wp<NuPlayer2Driver> &driver) {
     mDriver = driver;
 }
@@ -295,7 +290,7 @@
                 mDataSourceType = DATA_SOURCE_TYPE_HTTP_LIVE;
             } else if (!strncasecmp(url, "rtsp://", 7)) {
                 source = new RTSPSource2(
-                        notify, httpService, url, headers, mUIDValid, mUID);
+                        notify, httpService, url, headers, mUID);
                 ALOGV("setDataSourceAsync RTSPSource2 %s", url);
                 mDataSourceType = DATA_SOURCE_TYPE_RTSP;
             } else if ((!strncasecmp(url, "http://", 7)
@@ -303,14 +298,14 @@
                             && ((len >= 4 && !strcasecmp(".sdp", &url[len - 4]))
                             || strstr(url, ".sdp?"))) {
                 source = new RTSPSource2(
-                        notify, httpService, url, headers, mUIDValid, mUID, true);
+                        notify, httpService, url, headers, mUID, true);
                 ALOGV("setDataSourceAsync RTSPSource2 http/https/.sdp %s", url);
                 mDataSourceType = DATA_SOURCE_TYPE_RTSP;
             } else {
                 ALOGV("setDataSourceAsync GenericSource2 %s", url);
 
                 sp<GenericSource2> genericSource =
-                        new GenericSource2(notify, mUIDValid, mUID, mMediaClock);
+                        new GenericSource2(notify, mUID, mMediaClock);
 
                 status_t err = genericSource->setDataSource(httpService, url, headers);
 
@@ -329,7 +324,7 @@
         case DataSourceDesc::TYPE_FD:
         {
             sp<GenericSource2> genericSource =
-                    new GenericSource2(notify, mUIDValid, mUID, mMediaClock);
+                    new GenericSource2(notify, mUID, mMediaClock);
 
             ALOGV("setDataSourceAsync fd %d/%lld/%lld source: %p",
                   dsd->mFD, (long long)dsd->mFDOffset, (long long)dsd->mFDLength, source.get());
@@ -350,7 +345,7 @@
         case DataSourceDesc::TYPE_CALLBACK:
         {
             sp<GenericSource2> genericSource =
-                    new GenericSource2(notify, mUIDValid, mUID, mMediaClock);
+                    new GenericSource2(notify, mUID, mMediaClock);
             status_t err = genericSource->setDataSource(dsd->mCallbackSource);
 
             if (err != OK) {
diff --git a/media/libmediaplayer2/nuplayer2/NuPlayer2.h b/media/libmediaplayer2/nuplayer2/NuPlayer2.h
index 594525c..cdb9a4f 100644
--- a/media/libmediaplayer2/nuplayer2/NuPlayer2.h
+++ b/media/libmediaplayer2/nuplayer2/NuPlayer2.h
@@ -39,9 +39,7 @@
 struct NuPlayer2Driver;
 
 struct NuPlayer2 : public AHandler {
-    explicit NuPlayer2(pid_t pid, const sp<MediaClock> &mediaClock);
-
-    void setUID(uid_t uid);
+    explicit NuPlayer2(pid_t pid, uid_t uid, const sp<MediaClock> &mediaClock);
 
     void setDriver(const wp<NuPlayer2Driver> &driver);
 
@@ -152,9 +150,8 @@
     };
 
     wp<NuPlayer2Driver> mDriver;
-    bool mUIDValid;
-    uid_t mUID;
     pid_t mPID;
+    uid_t mUID;
     const sp<MediaClock> mMediaClock;
     Mutex mSourceLock;  // guard |mSource|.
     sp<Source> mSource;
diff --git a/media/libmediaplayer2/nuplayer2/NuPlayer2Driver.cpp b/media/libmediaplayer2/nuplayer2/NuPlayer2Driver.cpp
index 6137fd1..2a1e904 100644
--- a/media/libmediaplayer2/nuplayer2/NuPlayer2Driver.cpp
+++ b/media/libmediaplayer2/nuplayer2/NuPlayer2Driver.cpp
@@ -99,7 +99,7 @@
 static const char *kPlayerRebufferingAtExit = "android.media.mediaplayer.rebufferExit";
 
 
-NuPlayer2Driver::NuPlayer2Driver(pid_t pid)
+NuPlayer2Driver::NuPlayer2Driver(pid_t pid, uid_t uid)
     : mState(STATE_IDLE),
       mIsAsyncPrepare(false),
       mAsyncResult(UNKNOWN_ERROR),
@@ -114,10 +114,10 @@
       mLooper(new ALooper),
       mNuPlayer2Looper(new ALooper),
       mMediaClock(new MediaClock),
-      mPlayer(new NuPlayer2(pid, mMediaClock)),
+      mPlayer(new NuPlayer2(pid, uid, mMediaClock)),
       mPlayerFlags(0),
       mAnalyticsItem(NULL),
-      mClientUid(-1),
+      mClientUid(uid),
       mAtEOS(false),
       mLooping(false),
       mAutoLoop(false) {
@@ -129,6 +129,7 @@
 
     // set up an analytics record
     mAnalyticsItem = new MediaAnalyticsItem(kKeyPlayer);
+    mAnalyticsItem->setUid(mClientUid);
 
     mNuPlayer2Looper->start(
             false, /* runOnCallingThread */
@@ -165,16 +166,6 @@
     return OK;
 }
 
-status_t NuPlayer2Driver::setUID(uid_t uid) {
-    mPlayer->setUID(uid);
-    mClientUid = uid;
-    if (mAnalyticsItem) {
-        mAnalyticsItem->setUid(mClientUid);
-    }
-
-    return OK;
-}
-
 status_t NuPlayer2Driver::setDataSource(const sp<DataSourceDesc> &dsd) {
     ALOGV("setDataSource(%p) callback source", this);
     Mutex::Autolock autoLock(mLock);
diff --git a/media/libmediaplayer2/nuplayer2/NuPlayer2Driver.h b/media/libmediaplayer2/nuplayer2/NuPlayer2Driver.h
index 7156813..087d2c2 100644
--- a/media/libmediaplayer2/nuplayer2/NuPlayer2Driver.h
+++ b/media/libmediaplayer2/nuplayer2/NuPlayer2Driver.h
@@ -26,12 +26,10 @@
 struct NuPlayer2;
 
 struct NuPlayer2Driver : public MediaPlayer2Interface {
-    explicit NuPlayer2Driver(pid_t pid);
+    explicit NuPlayer2Driver(pid_t pid, uid_t uid);
 
     virtual status_t initCheck();
 
-    virtual status_t setUID(uid_t uid);
-
     virtual status_t setDataSource(const sp<DataSourceDesc> &dsd) override;
 
     virtual status_t setVideoSurfaceTexture(const sp<ANativeWindowWrapper> &nww);
diff --git a/media/libmediaplayer2/nuplayer2/RTSPSource2.cpp b/media/libmediaplayer2/nuplayer2/RTSPSource2.cpp
index 8b67ae5..1dfe383 100644
--- a/media/libmediaplayer2/nuplayer2/RTSPSource2.cpp
+++ b/media/libmediaplayer2/nuplayer2/RTSPSource2.cpp
@@ -43,13 +43,11 @@
         const sp<MediaHTTPService> &httpService,
         const char *url,
         const KeyedVector<String8, String8> *headers,
-        bool uidValid,
         uid_t uid,
         bool isSDP)
     : Source(notify),
       mHTTPService(httpService),
       mURL(url),
-      mUIDValid(uidValid),
       mUID(uid),
       mFlags(0),
       mIsSDP(isSDP),
@@ -128,7 +126,7 @@
         mSDPLoader->load(
                 mURL.c_str(), mExtraHeaders.isEmpty() ? NULL : &mExtraHeaders);
     } else {
-        mHandler = new MyHandler(mURL.c_str(), notify, mUIDValid, mUID);
+        mHandler = new MyHandler(mURL.c_str(), notify, true /* uidValid */, mUID);
         mLooper->registerHandler(mHandler);
 
         mHandler->connect();
@@ -793,7 +791,7 @@
         } else {
             sp<AMessage> notify = new AMessage(kWhatNotify, this);
 
-            mHandler = new MyHandler(rtspUri.c_str(), notify, mUIDValid, mUID);
+            mHandler = new MyHandler(rtspUri.c_str(), notify, true /* uidValid */, mUID);
             mLooper->registerHandler(mHandler);
 
             mHandler->loadSDP(desc);
diff --git a/media/libmediaplayer2/nuplayer2/RTSPSource2.h b/media/libmediaplayer2/nuplayer2/RTSPSource2.h
index 739bd53..712c3e5 100644
--- a/media/libmediaplayer2/nuplayer2/RTSPSource2.h
+++ b/media/libmediaplayer2/nuplayer2/RTSPSource2.h
@@ -36,7 +36,6 @@
             const sp<MediaHTTPService> &httpService,
             const char *url,
             const KeyedVector<String8, String8> *headers,
-            bool uidValid = false,
             uid_t uid = 0,
             bool isSDP = false);
 
@@ -97,7 +96,6 @@
     sp<MediaHTTPService> mHTTPService;
     AString mURL;
     KeyedVector<String8, String8> mExtraHeaders;
-    bool mUIDValid;
     uid_t mUID;
     uint32_t mFlags;
     bool mIsSDP;