]> glassweightruler.freedombox.rocks Git - waydroid.git/blobdiff - scripts/run-container.sh
anbox: Get socket paths from generated props
[waydroid.git] / scripts / run-container.sh
index d982f0756d6a28ff5e0d821a1a3f8e024c8878b2..051b4295d6292bdd8d5c97c2e72acb2015b48b96 100644 (file)
@@ -1,17 +1,30 @@
 #!/bin/bash
 cd /home/anbox
 
+if [ ! -e /dev/anbox-hwbinder ] || [ ! -e /dev/ashmem ]; then
+    modprobe binder_linux devices="anbox-binder,anbox-hwbinder,anbox-vndbinder"
+    modprobe ashmem_linux
+    mkdir /dev/binderfs
+    mount -t binder binder /dev/binderfs
+    ln -s /dev/binderfs/* /dev/
+fi
+if [ ! -e /dev/anbox-hwbinder ] || [ ! -e /dev/ashmem ]; then
+    echo "ERROR: Binder and ashmem nodes not found!"
+    exit
+fi
+
 # just in case, stop Anbox 7
 stop anbox-container || true
 
 # start cgroup-lite, else container may fail to start.
 start cgroup-lite
+umount -l /sys/fs/cgroup/schedtune
 
 # start sensors hal
 start anbox-sensors
 
-# start lxc-net, that sets up lxc bridge
-start lxc-net
+# start anbox-net, that sets up lxc bridge
+/home/anbox/anbox-net.sh start
 
 # stop nfcd to not conflict with anbox
 stop nfcd
@@ -19,11 +32,9 @@ stop nfcd
 # umount rootfs if it was mounted
 umount -l rootfs || true
 
-mkdir -p /home/anbox/rootfs
-mkdir -p /home/anbox/data
-mount anbox_arm64_system.img rootfs
+mount anbox_*_system.img rootfs
 mount -o remount,ro rootfs
-mount anbox_arm64_vendor.img rootfs/vendor
+mount anbox_*_vendor.img rootfs/vendor
 mount -o remount,ro rootfs/vendor
 mount -o bind anbox.prop rootfs/vendor/anbox.prop
 
@@ -35,24 +46,15 @@ else
     fi
 fi
 
-# TODO: Move this to installer script
-SKU=`getprop ro.boot.product.hardware.sku`
-mount -o remount,rw rootfs/vendor
-cp -p /vendor/etc/permissions/android.hardware.nfc.* rootfs/vendor/etc/permissions/
-cp -p /vendor/etc/permissions/android.hardware.consumerir.xml rootfs/vendor/etc/permissions/
-cp -p /odm/etc/permissions/android.hardware.nfc.* rootfs/vendor/etc/permissions/
-cp -p /odm/etc/permissions/android.hardware.consumerir.xml rootfs/vendor/etc/permissions/
-if [ ! -z $SKU ]; then
-    cp -p /odm/etc/permissions/sku_${SKU}/android.hardware.nfc.* rootfs/vendor/etc/permissions/
-    cp -p /odm/etc/permissions/sku_${SKU}/android.hardware.consumerir.xml rootfs/vendor/etc/permissions/
-fi
-mount -o remount,ro rootfs/vendor
-
 # Anbox binder permissions
 chmod 666 /dev/anbox-*binder
+chmod 777 /dev/ashmem
 
-# Wayland socket permissions
-chmod 777 -R /run/user/32011
+# Wayland and pulse socket permissions
+XDG_PATH=`cat anbox.prop | grep anbox.xdg_runtime_dir | cut -f 2- -d "="`
+PULSE_PATH=`cat anbox.prop | grep anbox.pulse_runtime_path | cut -f 2- -d "="`
+chmod 777 -R $PULSE_PATH
+chmod 777 -R $XDG_PATH
 
 # Set sw_sync permissions
 chmod 777 /dev/sw_sync
@@ -66,4 +68,9 @@ chmod 777 /dev/mtk_cmdq
 chmod 777 /dev/video32
 chmod 777 /dev/video33
 
+# Graphics nodes permissions
+chmod 777 -R /dev/dri/*
+chmod 777 -R /dev/graphics/*
+chmod 777 -R /dev/fb*
+
 lxc-start -n anbox -F -- /init