]> glassweightruler.freedombox.rocks Git - waydroid.git/blobdiff - scripts/install.sh
anbox: Get socket paths from generated props
[waydroid.git] / scripts / install.sh
index bbf35ac54edb289dd16c8198937b31ee6d909823..916df1bb5e5cfa4a36802b13e6dbb1f0fca9d049 100644 (file)
@@ -1,33 +1,39 @@
 #!/bin/bash
 
-echo "Generating device properties"
-GRALLOC=`getprop ro.hardware.gralloc`
-if [ -z $GRALLOC ] || [ ! -f /vendor/lib/hw/gralloc.$GRALLOC.so ]; then
-    GRALLOC=`getprop ro.hardware`
-    if [ -z $GRALLOC ] || [ ! -f /vendor/lib/hw/gralloc.$GRALLOC.so ]; then
-        GRALLOC=`getprop ro.product.board`
-        if [ -z $GRALLOC ] || [ ! -f /vendor/lib/hw/gralloc.$GRALLOC.so ]; then
-            GRALLOC=`getprop ro.board.platform`
-            if [ -z $GRALLOC ] || [ ! -f /vendor/lib/hw/gralloc.$GRALLOC.so ]; then
-                GRALLOC=`getprop ro.arch`
-                if [ -z $GRALLOC ] || [ ! -f /vendor/lib/hw/gralloc.$GRALLOC.so ]; then
-                    GRALLOC="gbm"
-                fi
-            fi
-        fi
+SUPPORTED_ARCHS="x86_64 aarch64 armv8l"
+UNAME_ARCH=`uname -m`
+
+for a in $SUPPORTED_ARCHS; do
+    if [ $UNAME_ARCH == $a ]; then
+        ARCH=$a
     fi
+done
+if [ -z ${ARCH} ]; then
+    echo "ERROR: Your system with arch $UNAME_ARCH is not supported"
+    exit
 fi
-EGL=`getprop ro.hardware.egl`
-if [ ! -z $EGL ]; then
-    EGL_PROP="ro.hardware.egl=${EGL}"
+if [ $UNAME_ARCH == "aarch64" ]; then
+    ARCH="arm64"
 fi
-
-MEDIA_PROFILES=`getprop media.settings.xml`
-if [ ! -z $MEDIA_PROFILES ]; then
-    MEDIA_PROFILES_EXTRA=`getprop media.settings.xml | sed "s/vendor/vendor_extra/" | sed "s/odm/odm_extra/"`
-    MEDIA_PROFILES_PROP="media.settings.xml=${MEDIA_PROFILES_EXTRA}"
+if [ $UNAME_ARCH == "armv8l" ]; then
+    ARCH="arm64"
+fi
+if [ $UNAME_ARCH == "armv7l" ]; then
+    ARCH="arm"
+fi
+if [ $UNAME_ARCH == "i386" ]; then
+    ARCH="x86"
+fi
+if [ $UNAME_ARCH == "i686" ]; then
+    ARCH="x86"
 fi
 
+echo "Generating device properties"
+rm -f generate-props.sh
+wget https://github.com/Anbox-halium/anbox-halium/raw/lineage-17.1/scripts/generate-props.sh
+chmod +x generate-props.sh
+. generate-props.sh
+
 echo "Asking for root access"
 sudo -s <<EOF
 mount -o remount,rw /
@@ -42,49 +48,79 @@ fi
 
 echo "Installing packages"
 apt update
-apt install -y qtwayland5 qml-module-qtwayland-compositor
-rm anbox-sensors_0.1.0_arm64.deb
-wget https://github.com/Anbox-halium/anbox-sensors/releases/download/v0.1.0/anbox-sensors_0.1.0_arm64.deb
-dpkg -i anbox-sensors_0.1.0_arm64.deb
+apt install -y lxc1
+apt install -y libgbinder sensorfw-qt5 libsensorfw-qt5-plugins || touch NO_SENSORS
+if [ ! -f NO_SENSORS ]; then
+    rm anbox-sensors_0.1.0_${ARCH}.deb
+    wget https://github.com/Anbox-halium/anbox-sensors/releases/download/v0.1.0/anbox-sensors_0.1.0_${ARCH}.deb
+    dpkg -i anbox-sensors_0.1.0_${ARCH}.deb || touch NO_SENSORS
+fi
 
 echo "Geting anbox images"
-if [ -f anbox_arm64_system.img ]; then
-    mv anbox_arm64_system.img anbox_arm64_system.img.bak
-    mv anbox_arm64_vendor.img anbox_arm64_vendor.img.bak
+if [ -f anbox_${ARCH}_system.img ]; then
+    mv anbox_${ARCH}_system.img anbox_${ARCH}_system.img.bak
+    mv anbox_${ARCH}_vendor.img anbox_${ARCH}_vendor.img.bak
 fi
 rm -f latest-raw-images.zip
-wget https://build.lolinet.com/file/lineage/anbox_arm64/latest-raw-images.zip
+wget https://build.lolinet.com/file/lineage/anbox_${ARCH}/latest-raw-images.zip
 unzip latest-raw-images.zip
+mkdir -p /home/anbox/rootfs
+mkdir -p /home/anbox/data
 
 echo "Geting latest runner script"
 rm -f run-container.sh
 wget https://github.com/Anbox-halium/anbox-halium/raw/lineage-17.1/scripts/run-container.sh
 chmod +x run-container.sh
+rm -f stop-container.sh
+wget https://github.com/Anbox-halium/anbox-halium/raw/lineage-17.1/scripts/stop-container.sh
+chmod +x stop-container.sh
+rm -f anbox-net.sh
+wget https://github.com/Anbox-halium/anbox-halium/raw/lineage-17.1/scripts/anbox-net.sh
+chmod +x anbox-net.sh
 
 if [ -f anbox.prop ]; then
     mv anbox.prop anbox.prop.bak
 fi
-if grep -q "spurv.display_height" anbox.prop.bak; then
-    grep "spurv.display_height" anbox.prop.bak >> anbox.prop
+if grep -q "anbox.display_height" anbox.prop.bak; then
+    grep "anbox.display_height" anbox.prop.bak >> anbox.prop
 else
     echo "NOTE: Edit /home/anbox/anbox.prop based on your device screen resolution"
-    echo "spurv.display_height=1920" >> anbox.prop
+    echo "anbox.display_height=1920" >> anbox.prop
 fi
-if grep -q "spurv.display_width" anbox.prop.bak; then
-    grep "spurv.display_width" anbox.prop.bak >> anbox.prop
+if grep -q "anbox.display_width" anbox.prop.bak; then
+    grep "anbox.display_width" anbox.prop.bak >> anbox.prop
 else
     echo "NOTE: Edit /home/anbox/anbox.prop based on your device screen resolution"
-    echo "spurv.display_width=1080" >> anbox.prop
+    echo "anbox.display_width=1080" >> anbox.prop
 fi
-echo "ro.hardware.gralloc=${GRALLOC}" >> anbox.prop
+echo "${GRALLOC_PROP}" >> anbox.prop
 echo "${EGL_PROP}" >> anbox.prop
 echo "${MEDIA_PROFILES_PROP}" >> anbox.prop
+echo "${CCODEC_PROP}" >> anbox.prop
+echo "${EXT_LIB_PROP}" >> anbox.prop
+echo "${VULKAN_PROP}" >> anbox.prop
+echo "${DPI_PROP}" >> anbox.prop
+echo "${GLES_VER_PROP}" >> anbox.prop
+echo "${XDG_PROP}" >> anbox.prop
+echo "${WAYLAND_DISP_PROP}" >> anbox.prop
+echo "${PULSE_PROP}" >> anbox.prop
+if [ -f NO_SENSORS ]; then
+       echo "anbox.stub_sensors_hal=1" >> anbox.prop
+       rm NO_SENSORS
+fi
+
+# TODO: Get rid of this
+rm -f vendor-fixup.sh
+wget https://github.com/Anbox-halium/anbox-halium/raw/lineage-17.1/scripts/vendor-fixup.sh
+chmod +x vendor-fixup.sh
+./vendor-fixup.sh $ARCH
 
 echo "Geting latest lxc config"
 mkdir /var/lib/lxc/anbox
 cd /var/lib/lxc/anbox
 rm -f config
 wget https://github.com/Anbox-halium/anbox-halium/raw/lineage-17.1/lxc-configs/config
+sed -i "s/LXCARCH/$UNAME_ARCH/" config
 
 if ! grep -q "module-native-protocol-unix auth-anonymous=1" /etc/pulse/touch-android9.pa; then
     echo "Pulseaudio config patching"
@@ -104,14 +140,10 @@ echo "Going back to phablet user"
 EOF
 cd /home/phablet
 
-echo "Installing anbox launcher"
-rm anbox.rudiimmer_1.0_all.click
-wget https://build.lolinet.com/file/lineage/anbox_arm64/anbox.rudiimmer_1.0_all.click
-pkcon install-local anbox.rudiimmer_1.0_all.click --allow-untrusted
-
 echo "Restarting Pulseaudio service"
 initctl --user stop pulseaudio
 initctl --user start pulseaudio
 
 echo "Installing Finished!"
-echo "Run anbox container with /home/anbox/run-container.sh on terminal"
+echo "Run anbox container with \"sudo /home/anbox/run-container.sh\" on terminal"
+echo "Stop anbox container with \"sudo /home/anbox/stop-container.sh\" on terminal"