# Recursive mount /run to provide necessary host sockets
make_entry("/run", options="rbind,create=dir 0 0")
+ # And /dev/shm
+ make_entry("/dev/shm", options="rbind,create=dir,optional 0 0")
# Necessary sw_sync node for HWC
make_entry("/dev/sw_sync")
LXC_APPARMOR_PROFILE = "lxc-waydroid"
def get_apparmor_status(args):
enabled = False
- if shutil.which("aa-status"):
- enabled = (tools.helpers.run.user(args, ["aa-status", "--quiet"], check=False) == 0)
+ if shutil.which("aa-enabled"):
+ enabled = (tools.helpers.run.user(args, ["aa-enabled", "--quiet"], check=False) == 0)
if not enabled and shutil.which("systemctl"):
enabled = (tools.helpers.run.user(args, ["systemctl", "is-active", "-q", "apparmor"], check=False) == 0)
try:
tools.helpers.run.user(args, command)
def shell(args):
- if status(args) != "RUNNING":
- logging.error("WayDroid container is {}".format(status(args)))
+ state = status(args)
+ if state == "FROZEN":
+ unfreeze(args)
+ elif state != "RUNNING":
+ logging.error("WayDroid container is {}".format(state))
return
command = ["lxc-attach", "-P", tools.config.defaults["lxc"],
"-n", "waydroid", "--"]
if args.COMMAND:
- command.append(args.COMMAND)
+ command.extend(args.COMMAND)
else:
command.append("/system/bin/sh")
subprocess.run(command, env={"PATH": os.environ['PATH'] + ":/system/bin:/vendor/bin"})
+ if state == "FROZEN":
+ freeze(args)
def logcat(args):
- if status(args) != "RUNNING":
- logging.error("WayDroid container is {}".format(status(args)))
+ state = status(args)
+ if state == "FROZEN":
+ unfreeze(args)
+ elif state != "RUNNING":
+ logging.error("WayDroid container is {}".format(state))
return
command = ["lxc-attach", "-P", tools.config.defaults["lxc"],
"-n", "waydroid", "--", "/system/bin/logcat"]
subprocess.run(command)
+ if state == "FROZEN":
+ freeze(args)