]> glassweightruler.freedombox.rocks Git - waydroid.git/blobdiff - tools/helpers/lxc.py
app_manager: Don't rmdir /data/waydroid_tmp after install
[waydroid.git] / tools / helpers / lxc.py
index 9a3a77a968eefecea04c0e52c9bd73cf15ac9d8f..a099801de4667a47e167d6f8f1809511a9b45ddf 100644 (file)
@@ -7,6 +7,7 @@ import logging
 import glob
 import shutil
 import platform
 import glob
 import shutil
 import platform
+import gbinder
 import tools.config
 import tools.helpers.run
 
 import tools.config
 import tools.helpers.run
 
@@ -171,16 +172,30 @@ def make_base_props(args):
                         return prop
         return ""
 
                         return prop
         return ""
 
+    def find_hidl(intf):
+        if args.vendor_type == "MAINLINE":
+            return False
+
+        try:
+            sm = gbinder.ServiceManager("/dev/hwbinder")
+            return intf in sm.list_sync()
+        except:
+            return False
+
     props = []
 
     if not os.path.exists("/dev/ashmem"):
         props.append("sys.use_memfd=true")
 
     egl = tools.helpers.props.host_get(args, "ro.hardware.egl")
     props = []
 
     if not os.path.exists("/dev/ashmem"):
         props.append("sys.use_memfd=true")
 
     egl = tools.helpers.props.host_get(args, "ro.hardware.egl")
+    dri = tools.helpers.gpu.getDriNode(args)
 
     gralloc = find_hal("gralloc")
 
     gralloc = find_hal("gralloc")
-    if gralloc == "":
-        if tools.helpers.gpu.getDriNode(args):
+    if not gralloc:
+        if find_hidl("android.hardware.graphics.allocator@4.0::IAllocator/default"):
+            gralloc = "android"
+    if not gralloc:
+        if dri:
             gralloc = "gbm"
             egl = "mesa"
         else:
             gralloc = "gbm"
             egl = "mesa"
         else:
@@ -209,7 +224,9 @@ def make_base_props(args):
         props.append("ro.vendor.extension_library=" + ext_library)
 
     vulkan = find_hal("vulkan")
         props.append("ro.vendor.extension_library=" + ext_library)
 
     vulkan = find_hal("vulkan")
-    if vulkan != "":
+    if not vulkan and dri:
+        vulkan = tools.helpers.gpu.getVulkanDriver(args, os.path.basename(dri))
+    if vulkan:
         props.append("ro.hardware.vulkan=" + vulkan)
 
     treble = tools.helpers.props.host_get(args, "ro.treble.enabled")
         props.append("ro.hardware.vulkan=" + vulkan)
 
     treble = tools.helpers.props.host_get(args, "ro.treble.enabled")