Store OmapiTransport as a shared_ptr

OmapiTransport needs to be stored as a shared_ptr so it safely handle
its DeathRecipient callbacks.

Test: cd hardware/nxp/ && mm
Bug: 346416142
Change-Id: I2e802819614b547e8bf096a446ed48118a795e27
diff --git a/libese_weaver/inc/TransportFactory.h b/libese_weaver/inc/TransportFactory.h
index 416f6d5..9cc0036 100644
--- a/libese_weaver/inc/TransportFactory.h
+++ b/libese_weaver/inc/TransportFactory.h
@@ -59,14 +59,14 @@
     TransportFactory(bool isEmulator, const std::vector<uint8_t>& mAppletAID) {
         if (!isEmulator) {
 #ifdef OMAPI_TRANSPORT
-            mTransport = std::unique_ptr<OmapiTransport>(new OmapiTransport(mAppletAID));
+            mTransport = OmapiTransport::make(mAppletAID);
 #else
-            mTransport = std::unique_ptr<HalToHalTransport>(new HalToHalTransport(mAppletAID));
+            mTransport = std::shared_ptr<HalToHalTransport>(new HalToHalTransport(mAppletAID));
 #endif
         }
 #ifndef NXP_EXTNS
         else
-            mTransport = std::unique_ptr<SocketTransport>(new SocketTransport(mAppletAID));
+            mTransport = std::shared_ptr<SocketTransport>(new SocketTransport(mAppletAID));
 #endif
     }
 
@@ -113,7 +113,7 @@
     /**
      * Holds the instance of either OmapiTransport class or SocketTransport class.
      */
-    std::unique_ptr<ITransport> mTransport;
+    std::shared_ptr<ITransport> mTransport;
 
 };
 } // namespace se_transport