Enforce CREATE_VIRTUAL_DEVICE permission for virtual camera service

Bug: 301023410
Test: atest
Change-Id: Ia3850ef0ace096dcda6c1d2fe8d3c5fd39e0a271
diff --git a/services/camera/virtualcamera/VirtualCameraService.h b/services/camera/virtualcamera/VirtualCameraService.h
index b68d43a..d573986 100644
--- a/services/camera/virtualcamera/VirtualCameraService.h
+++ b/services/camera/virtualcamera/VirtualCameraService.h
@@ -24,6 +24,7 @@
 #include "VirtualCameraDevice.h"
 #include "VirtualCameraProvider.h"
 #include "aidl/android/companion/virtualcamera/BnVirtualCameraService.h"
+#include "util/Permissions.h"
 
 namespace android {
 namespace companion {
@@ -34,7 +35,8 @@
     : public aidl::android::companion::virtualcamera::BnVirtualCameraService {
  public:
   VirtualCameraService(
-      std::shared_ptr<VirtualCameraProvider> virtualCameraProvider);
+      std::shared_ptr<VirtualCameraProvider> virtualCameraProvider,
+      const PermissionsProxy& permissionProxy = PermissionsProxy::get());
 
   // Register camera corresponding to the binder token.
   ndk::ScopedAStatus registerCamera(
@@ -68,6 +70,8 @@
 
   std::shared_ptr<VirtualCameraProvider> mVirtualCameraProvider;
 
+  const PermissionsProxy& mPermissionProxy;
+
   std::mutex mLock;
   struct BinderTokenHash {
     std::size_t operator()(const ::ndk::SpAIBinder& key) const {