X-Git-Url: https://glassweightruler.freedombox.rocks/gitweb/waydroid.git/blobdiff_plain/677710ab36bba687b04268704bd92b37638854d0..2e4e921317903f5152ce17bc7aa9fdf278b45f15:/tools/interfaces/IUserMonitor.py diff --git a/tools/interfaces/IUserMonitor.py b/tools/interfaces/IUserMonitor.py index 0a16031..e8fd656 100644 --- a/tools/interfaces/IUserMonitor.py +++ b/tools/interfaces/IUserMonitor.py @@ -10,9 +10,16 @@ SERVICE_NAME = "waydroidusermonitor" TRANSACTION_userUnlocked = 1 TRANSACTION_packageStateChanged = 2 +PACKAGE_ADDED = 0; +PACKAGE_REMOVED = 1; +PACKAGE_UPDATED = 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( @@ -23,12 +30,14 @@ def add_service(args, userUnlocked, packageStateChanged): status, arg1 = reader.read_int32() userUnlocked(arg1) local_response.append_int32(0) - if code == TRANSACTION_packageStateChanged: + elif code == TRANSACTION_packageStateChanged: status, arg1 = reader.read_int32() arg2 = reader.read_string16() status, arg3 = reader.read_int32() packageStateChanged(arg1, arg2, arg3) local_response.append_int32(0) + else: + return local_response, -99999 # Some error unknown to binder to force a RemoteException return local_response, 0