]> glassweightruler.freedombox.rocks Git - waydroid.git/blobdiff - tools/interfaces/IPlatform.py
Mount overlays on top of image mount points
[waydroid.git] / tools / interfaces / IPlatform.py
index 9887d13713e4e572d3ffe7dacb9fc4a39bc47ab0..a5d6d08a602c7566182815eb1b417a3e8efc2dfb 100644 (file)
@@ -18,7 +18,8 @@ TRANSACTION_getAppName = 8
 TRANSACTION_settingsPutString = 9
 TRANSACTION_settingsGetString = 10
 TRANSACTION_settingsPutInt = 11
-TRANSACTION_getAppName = 12
+TRANSACTION_settingsGetInt = 12
+TRANSACTION_launchIntent = 13
 
 class IPlatform:
     def __init__(self, remote):
@@ -182,6 +183,25 @@ class IPlatform:
             if exception != 0:
                 logging.error("Failed with code: {}".format(exception))
 
+    def launchIntent(self, arg1, arg2):
+        request = self.client.new_request()
+        request.append_string16(arg1)
+        request.append_string16(arg2)
+        reply, status = self.client.transact_sync_reply(
+            TRANSACTION_launchIntent, request)
+
+        if status:
+            logging.error("Sending reply failed")
+        else:
+            reader = reply.init_reader()
+            status, exception = reader.read_int32()
+            if exception == 0:
+                rep1 = reader.read_string16()
+                return rep1
+            else:
+                logging.error("Failed with code: {}".format(exception))
+        return None
+
     def getAppName(self, arg1):
         request = self.client.new_request()
         request.append_string16(arg1)
@@ -275,7 +295,10 @@ class IPlatform:
 
 def get_service(args):
     helpers.drivers.loadBinderNodes(args)
-    serviceManager = gbinder.ServiceManager("/dev/" + args.BINDER_DRIVER)
+    try:
+        serviceManager = gbinder.ServiceManager("/dev/" + args.BINDER_DRIVER, args.SERVICE_MANAGER_PROTOCOL, args.BINDER_PROTOCOL)
+    except TypeError:
+        serviceManager = gbinder.ServiceManager("/dev/" + args.BINDER_DRIVER)
     tries = 1000
 
     remote, status = serviceManager.get_service_sync(SERVICE_NAME)