transcoding: use NDK methods for permission and binder

- Change permission checks to use NDK
- Replace MediaProvider uid check with permission check of
  MANAGE_EXTERNAL_STORAGE (which is replacing the deprecated
  WRITE_MEDIA_STORAGE).
- Use ABinderProcess_* for thread pool.

bug: 159172726
bug: 171393067
test: MediaTranscodingService unit tests; dumpsys to check if
MediaProvider can still regiserClient successfully.

Change-Id: I4fed7bb23a2d68c92e5cd1aecd5a6ef340dc2b61
diff --git a/services/mediatranscoding/main_mediatranscodingservice.cpp b/services/mediatranscoding/main_mediatranscodingservice.cpp
index 7d862e6..14c568e 100644
--- a/services/mediatranscoding/main_mediatranscodingservice.cpp
+++ b/services/mediatranscoding/main_mediatranscodingservice.cpp
@@ -15,8 +15,7 @@
  */
 
 #include <android-base/logging.h>
-#include <binder/IPCThreadState.h>
-#include <binder/ProcessState.h>
+#include <android/binder_process.h>
 
 #include "MediaTranscodingService.h"
 
@@ -25,12 +24,9 @@
 int main(int argc __unused, char** argv) {
     LOG(INFO) << "media transcoding service starting";
 
-    // TODO(hkuang): Start the service with libbinder_ndk.
     strcpy(argv[0], "media.transcoding");
-    sp<ProcessState> proc(ProcessState::self());
-    sp<IServiceManager> sm = defaultServiceManager();
     android::MediaTranscodingService::instantiate();
 
-    ProcessState::self()->startThreadPool();
-    IPCThreadState::self()->joinThreadPool();
+    ABinderProcess_startThreadPool();
+    ABinderProcess_joinThreadPool();
 }