]> glassweightruler.freedombox.rocks Git - waydroid.git/commitdiff
anbox: Add multiarch support to installer
authorErfan Abdi <erfangplus@gmail.com>
Wed, 16 Jun 2021 16:18:37 +0000 (20:48 +0430)
committerErfan Abdi <erfangplus@gmail.com>
Wed, 16 Jun 2021 20:50:08 +0000 (01:20 +0430)
lxc-configs/config
scripts/install.sh
scripts/run-container.sh
scripts/vendor-fixup.sh

index 64703bc40a8031bdf12b84d76f72fbb3642f1f96..69da84ad9fc12e02c1c78b5fcc54598b5d8d8bbf 100644 (file)
@@ -2,7 +2,7 @@
 
 lxc.rootfs.path = /home/anbox/rootfs
 lxc.utsname = anbox
 
 lxc.rootfs.path = /home/anbox/rootfs
 lxc.utsname = anbox
-lxc.arch = aarch64
+lxc.arch = LXCARCH
 lxc.autodev = 0
 # lxc.autodev.tmpfs.size = 25000000
 lxc.aa_profile = unconfined
 lxc.autodev = 0
 # lxc.autodev.tmpfs.size = 25000000
 lxc.aa_profile = unconfined
index 952fa432e95621288b107ec779cd3193170177d0..f7fa9815c0de2a58c70fa7d0ca97426c1647f0cf 100644 (file)
@@ -1,5 +1,33 @@
 #!/bin/bash
 
 #!/bin/bash
 
+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
+if [ $UNAME_ARCH == "aarch64" ]; then
+    ARCH="arm64"
+fi
+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
 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
@@ -23,18 +51,18 @@ apt update
 apt install -y lxc1 qtwayland5 qml-module-qtwayland-compositor
 apt install -y libgbinder sensorfw-qt5 libsensorfw-qt5-plugins || touch NO_SENSORS
 if [ ! -f NO_SENSORS ]; then
 apt install -y lxc1 qtwayland5 qml-module-qtwayland-compositor
 apt install -y libgbinder sensorfw-qt5 libsensorfw-qt5-plugins || touch NO_SENSORS
 if [ ! -f NO_SENSORS ]; then
-    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 || touch NO_SENSORS
+    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"
 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
 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
 unzip latest-raw-images.zip
 mkdir -p /home/anbox/rootfs
 mkdir -p /home/anbox/data
@@ -85,13 +113,14 @@ fi
 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
 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
+./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
 
 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"
 
 if ! grep -q "module-native-protocol-unix auth-anonymous=1" /etc/pulse/touch-android9.pa; then
     echo "Pulseaudio config patching"
@@ -113,7 +142,7 @@ cd /home/phablet
 
 echo "Installing anbox launcher"
 rm anbox.rudiimmer_1.0_all.click
 
 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
+wget https://build.lolinet.com/file/lineage/anbox_${ARCH}/anbox.rudiimmer_1.0_all.click
 pkcon install-local anbox.rudiimmer_1.0_all.click --allow-untrusted
 
 echo "Restarting Pulseaudio service"
 pkcon install-local anbox.rudiimmer_1.0_all.click --allow-untrusted
 
 echo "Restarting Pulseaudio service"
index 43345eeb561ea25835954986e47cd30c0b6cdb80..05f1a08514e62967ac08a70a9478269352bcb09c 100644 (file)
@@ -32,9 +32,9 @@ stop nfcd
 # umount rootfs if it was mounted
 umount -l rootfs || true
 
 # umount rootfs if it was mounted
 umount -l rootfs || true
 
-mount anbox_arm64_system.img rootfs
+mount anbox_*_system.img rootfs
 mount -o remount,ro 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
 
 mount -o remount,ro rootfs/vendor
 mount -o bind anbox.prop rootfs/vendor/anbox.prop
 
index 042f183ab73f59c5d1c0bd99280e5b2124896ac9..c15661e3c37de88c0b43d2020a900f78debeb031 100644 (file)
@@ -1,7 +1,7 @@
 #!/bin/bash
 
 mkdir /home/anbox/tmp_vendor
 #!/bin/bash
 
 mkdir /home/anbox/tmp_vendor
-mount /home/anbox/anbox_arm64_vendor.img /home/anbox/tmp_vendor
+mount /home/anbox/anbox_${1}_vendor.img /home/anbox/tmp_vendor
 
 SKU=`getprop ro.boot.product.hardware.sku`
 cp -p /vendor/etc/permissions/android.hardware.nfc.* /home/anbox/tmp_vendor/etc/permissions/
 
 SKU=`getprop ro.boot.product.hardware.sku`
 cp -p /vendor/etc/permissions/android.hardware.nfc.* /home/anbox/tmp_vendor/etc/permissions/