From: Erfan Abdi Date: Fri, 28 May 2021 01:48:22 +0000 (+0430) Subject: anbox: Update props generation X-Git-Url: https://glassweightruler.freedombox.rocks/gitweb/waydroid.git/commitdiff_plain/ea66b35cb3eb37d445397d35c0d1a68395cf13e5 anbox: Update props generation --- diff --git a/scripts/generate-props.sh b/scripts/generate-props.sh new file mode 100755 index 0000000..6cc0f4c --- /dev/null +++ b/scripts/generate-props.sh @@ -0,0 +1,94 @@ +#!/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 diff --git a/scripts/install.sh b/scripts/install.sh index f295514..941a3aa 100644 --- a/scripts/install.sh +++ b/scripts/install.sh @@ -1,36 +1,10 @@ #!/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 <> 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