]> glassweightruler.freedombox.rocks Git - waydroid.git/blobdiff - tools/interfaces/IHardware.py
debian: Use new polkitd package
[waydroid.git] / tools / interfaces / IHardware.py
index f7984dba34cafa0e631258eb60fea9f5caef3aee..69539f189a97c12ad38addaed962e844aa160c2f 100644 (file)
@@ -12,10 +12,14 @@ TRANSACTION_enableBluetooth = 2
 TRANSACTION_suspend = 3
 TRANSACTION_reboot = 4
 TRANSACTION_upgrade = 5
+TRANSACTION_upgrade2 = 6
 
 def add_service(args, enableNFC, enableBluetooth, suspend, reboot, upgrade):
     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)
 
     def response_handler(req, code, flags):
         logging.debug(
@@ -27,24 +31,33 @@ def add_service(args, enableNFC, enableBluetooth, suspend, reboot, upgrade):
             ret = enableNFC(arg1 != 0)
             local_response.append_int32(0)
             local_response.append_int32(ret)
-        if code == TRANSACTION_enableBluetooth:
+        elif code == TRANSACTION_enableBluetooth:
             status, arg1 = reader.read_int32()
             ret = enableBluetooth(arg1 != 0)
             local_response.append_int32(0)
             local_response.append_int32(ret)
-        if code == TRANSACTION_suspend:
+        elif code == TRANSACTION_suspend:
             suspend()
             local_response.append_int32(0)
-        if code == TRANSACTION_reboot:
+        elif code == TRANSACTION_reboot:
             reboot()
             local_response.append_int32(0)
-        if code == TRANSACTION_upgrade:
+        elif code == TRANSACTION_upgrade:
             arg1 = reader.read_string16()
             status, arg2 = reader.read_int32()
             arg3 = reader.read_string16()
             status, arg4 = reader.read_int32()
             upgrade(arg1, arg2, arg3, arg4)
             local_response.append_int32(0)
+        elif code == TRANSACTION_upgrade2:
+            arg1 = reader.read_string16()
+            status, arg2 = reader.read_int64()
+            arg3 = reader.read_string16()
+            status, arg4 = reader.read_int64()
+            upgrade(arg1, arg2, arg3, arg4)
+            local_response.append_int32(0)
+        else:
+            return local_response, -99999 # Some error unknown to binder to force a RemoteException
 
         return local_response, 0