--- /dev/null
+#!/bin/sh
+
+find_hal ()
+{
+HAL_PROP=
+for p in "ro.hardware.$1" "ro.hardware" "ro.product.board" "ro.arch" "ro.board.platform"; do
+ if [ "$(getprop $p)" != "" ]; then
+ for l in lib lib64; do
+ HAL_FILE=/vendor/$l/hw/$1.$(getprop $p).so
+ HAL_FILE_PATH=$(readlink -f $HAL_FILE)
+ if [ -f "$HAL_FILE_PATH" ]; then
+ HAL_PROP=$(echo $HAL_FILE_PATH |sed "s|.*$1.\(.*\).so|\1|")
+ if [ "$HAL_PROP" != "" ]; then
+ break
+ fi
+ fi
+ done
+ fi
+ if [ "$HAL_PROP" != "" ]; then
+ break
+ fi
+done
+
+echo $HAL_PROP
+}
+
+GRALLOC=$(find_hal gralloc)
+if [ -z $GRALLOC ]; then
+ GRALLOC="gbm"
+fi
+GRALLOC_PROP="ro.hardware.gralloc=${GRALLOC}"
+
+EGL=`getprop ro.hardware.egl`
+if [ ! -z $EGL ]; then
+ EGL_PROP="ro.hardware.egl=${EGL}"
+fi
+
+MEDIA_PROFILES=`getprop media.settings.xml`
+if [ ! -z $MEDIA_PROFILES ]; then
+ MEDIA_PROFILES_EXTRA=`echo ${MEDIA_PROFILES} | sed "s/vendor/vendor_extra/" | sed "s/odm/odm_extra/"`
+ MEDIA_PROFILES_PROP="media.settings.xml=${MEDIA_PROFILES_EXTRA}"
+fi
+
+CCODEC=`getprop debug.stagefright.ccodec`
+if [ ! -z $CCODEC ]; then
+ CCODEC_PROP="debug.stagefright.ccodec=${CCODEC}"
+fi
+
+EXT_LIB=`getprop ro.vendor.extension_library`
+if [ ! -z $EXT_LIB ]; then
+ EXT_LIB_EXTRA=`echo ${EXT_LIB} | sed 's/vendor/vendor_extra/g'`
+ EXT_LIB_PROP="ro.vendor.extension_library=${EXT_LIB_EXTRA}"
+fi
+
+#TODO: Add gbm vulkan or something
+VULKAN=$(find_hal vulkan)
+if [ ! -z $VULKAN ]; then
+ VULKAN_PROP="ro.hardware.vulkan=${VULKAN}"
+fi
+
+#TODO: Better dpi detection
+DPI=$(getprop ro.sf.lcd_density)
+if [ -z $DPI ]; then
+ if [ ! -z $GRID_UNIT_PX ]; then
+ DPI=`echo $GRID_UNIT_PX | awk '{$1=int($1*20);printf $1}'`
+ else
+ DPI="420"
+ fi
+fi
+DPI_PROP="ro.sf.lcd_density=${DPI}"
+
+GLES_VER=$(getprop ro.opengles.version)
+if [ -z $GLES_VER ]; then
+ GLES_VER="196608"
+fi
+GLES_VER_PROP="ro.opengles.version=${GLES_VER}"
+
+if [ ! -z $XDG_RUNTIME_DIR ]; then
+ XDG_PROP="anbox.xdg_runtime_dir=${XDG_RUNTIME_DIR}"
+fi
+
+#TODO: Do Not force wayland display 1
+WAYLAND_DISPLAY="wayland-1"
+if [ ! -z $WAYLAND_DISPLAY ]; then
+ WAYLAND_DISP_PROP="anbox.wayland_display=${WAYLAND_DISPLAY}"
+fi
+
+if [ ! -z $PULSE_RUNTIME_PATH ]; then
+ PULSE_PROP="anbox.pulse_runtime_path=${PULSE_RUNTIME_PATH}"
+else
+ if [ -d "${XDG_RUNTIME_DIR}/pulse" ]; then
+ PULSE_PROP="anbox.pulse_runtime_path=${XDG_RUNTIME_DIR}/pulse"
+ fi
+fi
#!/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
- fi
-fi
-EGL=`getprop ro.hardware.egl`
-if [ ! -z $EGL ]; then
- EGL_PROP="ro.hardware.egl=${EGL}"
-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}"
-fi
-CCODEC=`getprop debug.stagefright.ccodec`
-if [ ! -z $CCODEC ]; then
- CCODEC_PROP="debug.stagefright.ccodec=${CCODEC}"
-fi
+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
echo "NOTE: Edit /home/anbox/anbox.prop based on your device screen resolution"
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
echo "Geting latest lxc config"
mkdir /var/lib/lxc/anbox