BINDER_DRIVERS = [
"anbox-binder",
"puddlejumper",
+ "bonder",
"binder"
]
VNDBINDER_DRIVERS = [
"anbox-vndbinder",
"vndpuddlejumper",
+ "vndbonder",
"vndbinder"
]
HWBINDER_DRIVERS = [
"anbox-hwbinder",
"hwpuddlejumper",
+ "hwbonder",
"hwbinder"
]
for node in binder_dev_nodes:
node_struct = struct.pack(
'256sII', bytes(node, 'utf-8'), 0, 0)
- fcntl.ioctl(binderctrlfd.fileno(), BINDER_CTL_ADD, node_struct)
+ try:
+ fcntl.ioctl(binderctrlfd.fileno(), BINDER_CTL_ADD, node_struct)
+ except FileExistsError:
+ pass
def probeBinderDriver(args):
binder_dev_nodes = []
if len(binder_dev_nodes) > 0:
if not isBinderfsLoaded(args):
- command = ["modprobe", "binder_linux"]
+ devices = ','.join(binder_dev_nodes)
+ command = ["modprobe", "binder_linux",
+ "devices=\"{}\"".format(devices)]
output = tools.helpers.run.user(args, command, check=False, output_return=True)
if output:
logging.error("Failed to load binder driver")
def probeAshmemDriver(args):
if not os.path.exists("/dev/ashmem"):
- command = ["modprobe", "ashmem_linux"]
- output = tools.helpers.run.user(args, command, check=False, output_return=True)
- if output:
- logging.error("Failed to load ashmem driver")
- logging.error(output.strip())
+ command = ["modprobe", "-q", "ashmem_linux"]
+ tools.helpers.run.user(args, command, check=False)
if not os.path.exists("/dev/ashmem"):
return -1
args.BINDER_DRIVER = cfg["waydroid"]["binder"]
args.VNDBINDER_DRIVER = cfg["waydroid"]["vndbinder"]
args.HWBINDER_DRIVER = cfg["waydroid"]["hwbinder"]
+ # These might not be in cfg on package upgrade
+ args.BINDER_PROTOCOL = cfg["waydroid"].get("binder_protocol")
+ args.SERVICE_MANAGER_PROTOCOL = cfg["waydroid"].get("service_manager_protocol")