X-Git-Url: https://glassweightruler.freedombox.rocks/gitweb/waydroid.git/blobdiff_plain/1f0393876d891d0e32a995d0bf7259cc6505afdc..21607bbefb2ec7cb04771ad6892a7b20f63f963e:/tools/interfaces/IUserMonitor.py?ds=inline diff --git a/tools/interfaces/IUserMonitor.py b/tools/interfaces/IUserMonitor.py index 6652778..664fac6 100644 --- a/tools/interfaces/IUserMonitor.py +++ b/tools/interfaces/IUserMonitor.py @@ -12,7 +12,10 @@ TRANSACTION_packageStateChanged = 2 def add_service(args, userUnlocked, packageStateChanged): 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( @@ -37,7 +40,8 @@ def add_service(args, userUnlocked, packageStateChanged): status = serviceManager.add_service_sync(SERVICE_NAME, response) if status: - logging.error("Failed to add service " + SERVICE_NAME) + logging.error("Failed to add service {}: {}".format( + SERVICE_NAME, status)) args.userMonitorLoop.quit() response = serviceManager.new_local_object(INTERFACE, response_handler) @@ -46,6 +50,8 @@ def add_service(args, userUnlocked, packageStateChanged): status = serviceManager.add_presence_handler(binder_presence) if status: args.userMonitorLoop.run() + serviceManager.remove_handler(status) + del serviceManager else: logging.error("Failed to add presence handler: {}".format(status))