From 4ba4ed038b80b858939cae1f6f504d583373ea99 Mon Sep 17 00:00:00 2001 From: Ziyang Zhou Date: Sat, 8 May 2021 13:34:05 +0000 Subject: [PATCH] add Android 8.1 support --- AndroidProducts.mk | 28 ++++++ init.redroid.rc | 42 +++++++++ manifest.xml | 91 +++++++++++++++++++ .../base/core/res/res/values/config.xml | 39 ++++++++ .../SettingsProvider/res/values/defaults.xml | 26 ++++++ redroid.mk | 90 ++++++++++++++++++ redroid_arm64.mk | 30 ++++++ redroid_arm64/BoardConfig.mk | 18 ++++ redroid_x86_64.mk | 29 ++++++ redroid_x86_64/BoardConfig.mk | 16 ++++ vendorsetup.sh | 9 ++ 11 files changed, 418 insertions(+) create mode 100644 AndroidProducts.mk create mode 100644 init.redroid.rc create mode 100644 manifest.xml create mode 100644 overlay/frameworks/base/core/res/res/values/config.xml create mode 100755 overlay/frameworks/base/packages/SettingsProvider/res/values/defaults.xml create mode 100644 redroid.mk create mode 100644 redroid_arm64.mk create mode 100644 redroid_arm64/BoardConfig.mk create mode 100644 redroid_x86_64.mk create mode 100755 redroid_x86_64/BoardConfig.mk create mode 100755 vendorsetup.sh diff --git a/AndroidProducts.mk b/AndroidProducts.mk new file mode 100644 index 0000000..400797a --- /dev/null +++ b/AndroidProducts.mk @@ -0,0 +1,28 @@ +# +# Copyright (C) 2011 The Android Open-Source Project +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +PRODUCT_MAKEFILES := \ + $(LOCAL_DIR)/redroid_x86_64.mk \ + $(LOCAL_DIR)/redroid_arm64.mk \ + +COMMON_LUNCH_CHOICES := \ + redroid_x86_64-eng \ + redroid_x86_64-userdebug \ + redroid_x86_64-user \ + redroid_arm64-eng \ + redroid_arm64-userdebug \ + redroid_arm64-user + diff --git a/init.redroid.rc b/init.redroid.rc new file mode 100644 index 0000000..3d48e35 --- /dev/null +++ b/init.redroid.rc @@ -0,0 +1,42 @@ +on early-init + mount none /system/etc /etc bind rec # docker fix + mount sysfs sysfs /sys rw remount # ueventd fix + + write /data/.empty 0 + mount none /data/.empty /proc/vmallocinfo bind # lxcfs? + + symlink /system/bin /bin + + # Mount binderfs + mkdir /dev/binderfs + mount binder binder /dev/binderfs stats=global + chmod 0755 /dev/binderfs + + symlink /dev/binderfs/binder /dev/binder + symlink /dev/binderfs/hwbinder /dev/hwbinder + symlink /dev/binderfs/vndbinder /dev/vndbinder + + chmod 0666 /dev/binderfs/hwbinder + chmod 0666 /dev/binderfs/binder + chmod 0666 /dev/binderfs/vndbinder + + # fix for WSL2 + mkdir /dev/input + + setprop gralloc.gbm.device /dev/dri/renderD128 + +on init + # use updated swiftshader, disable gpu pixel buffer first + # reenable if use mesa + setprop debug.hwui.use_gpu_pixel_buffers false + +on post-fs-data + # fix for static IP, must after post-fs-data and before netd + exec - system system -- /vendor/bin/ipconfigstore v2 + + # no need to mount, and encryption not supported yet + trigger nonencrypted + +on boot && property:qemu.gles.vendor=mesa + setprop debug.hwui.use_gpu_pixel_buffers true + diff --git a/manifest.xml b/manifest.xml new file mode 100644 index 0000000..2950a31 --- /dev/null +++ b/manifest.xml @@ -0,0 +1,91 @@ + + + android.hardware.audio + hwbinder + 2.0 + + IDevicesFactory + default + + + + android.hardware.audio.effect + hwbinder + 2.0 + + IEffectsFactory + default + + + + android.hardware.configstore + hwbinder + 1.1 + + ISurfaceFlingerConfigs + default + + + + android.hardware.drm + hwbinder + 1.0 + + ICryptoFactory + default + + + IDrmFactory + default + + + + android.hardware.graphics.allocator + hwbinder + 2.0 + + IAllocator + default + + + + android.hardware.graphics.mapper + passthrough + 2.0 + + IMapper + default + + + + android.hardware.graphics.composer + hwbinder + 2.1 + + IComposer + default + + + + android.hardware.keymaster + hwbinder + 3.0 + + IKeymasterDevice + default + + + + android.hardware.media.omx + hwbinder + 1.0 + + IOmx + default + + + IOmxStore + default + + + diff --git a/overlay/frameworks/base/core/res/res/values/config.xml b/overlay/frameworks/base/core/res/res/values/config.xml new file mode 100644 index 0000000..1065bee --- /dev/null +++ b/overlay/frameworks/base/core/res/res/values/config.xml @@ -0,0 +1,39 @@ + + + + + + + + + true + + + true + + + true + + diff --git a/overlay/frameworks/base/packages/SettingsProvider/res/values/defaults.xml b/overlay/frameworks/base/packages/SettingsProvider/res/values/defaults.xml new file mode 100755 index 0000000..fdff1e5 --- /dev/null +++ b/overlay/frameworks/base/packages/SettingsProvider/res/values/defaults.xml @@ -0,0 +1,26 @@ + + + + + false + + true + + false + diff --git a/redroid.mk b/redroid.mk new file mode 100644 index 0000000..adc5f67 --- /dev/null +++ b/redroid.mk @@ -0,0 +1,90 @@ +# Copyright (C) 2013 The Android Open Source Project +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +AUDIOSERVER_MULTILIB := first + +# ? +PRODUCT_PROPERTY_OVERRIDES += \ + ro.radio.noril=yes + +PRODUCT_PROPERTY_OVERRIDES += \ + debug.sf.nobootanimation=1 + +# required by sync.sh script +PRODUCT_PACKAGES += \ + fs_config + +PRODUCT_PACKAGES += \ + vncserver \ + hwcomposer.redroid \ + gralloc.gbm \ + gralloc.redroid \ + gatekeeper.ranchu \ + libEGL_swiftshader \ + libGLESv1_CM_swiftshader \ + libGLESv2_swiftshader \ + libGLES_mesa \ + ipconfigstore \ + +PRODUCT_PROPERTY_OVERRIDES += \ + ro.kernel.qemu=1 \ + ro.hardware=redroid \ + ro.hardware.gatekeeper=ranchu \ + ro.sf.lcd_density=320 \ + +# Phone App required +PRODUCT_PACKAGES += \ + rild + +# WiFi required by SystemUI +PRODUCT_PACKAGES += \ + android.hardware.wifi@1.0-service + +PRODUCT_COPY_FILES += \ + frameworks/native/data/etc/android.hardware.wifi.xml:system/etc/permissions/android.hardware.wifi.xml \ + + +# required HIDL +PRODUCT_PACKAGES += \ + android.hardware.audio@2.0-service \ + android.hardware.audio@2.0-impl \ + android.hardware.audio.effect@2.0-impl \ + android.hardware.configstore@1.1-service \ + android.hardware.drm@1.0-service \ + android.hardware.drm@1.0-impl \ + android.hardware.gatekeeper@1.0-service \ + android.hardware.gatekeeper@1.0-impl \ + android.hardware.graphics.allocator@2.0-service \ + android.hardware.graphics.allocator@2.0-impl \ + android.hardware.graphics.composer@2.1-service \ + android.hardware.graphics.composer@2.1-impl \ + android.hardware.graphics.mapper@2.0-impl \ + android.hardware.keymaster@3.0-service \ + android.hardware.keymaster@3.0-impl \ + + +PRODUCT_COPY_FILES += \ + device/generic/goldfish/camera/media_profiles.xml:system/etc/media_profiles.xml \ + device/generic/goldfish/camera/media_codecs.xml:system/etc/media_codecs.xml \ + frameworks/av/media/libstagefright/data/media_codecs_google_audio.xml:system/etc/media_codecs_google_audio.xml \ + frameworks/av/media/libstagefright/data/media_codecs_google_telephony.xml:system/etc/media_codecs_google_telephony.xml \ + frameworks/av/media/libstagefright/data/media_codecs_google_video.xml:system/etc/media_codecs_google_video.xml \ + frameworks/av/media/libeffects/data/audio_effects.conf:system/etc/audio_effects.conf \ + frameworks/native/data/etc/android.hardware.ethernet.xml:/system/etc/permissions/android.hardware.ethernet.xml \ + device/generic/goldfish/audio_policy.conf:system/etc/audio_policy.conf + + +# Extend heap size we use for dalvik/art runtime +$(call inherit-product, frameworks/native/build/tablet-7in-hdpi-1024-dalvik-heap.mk) + diff --git a/redroid_arm64.mk b/redroid_arm64.mk new file mode 100644 index 0000000..cedd888 --- /dev/null +++ b/redroid_arm64.mk @@ -0,0 +1,30 @@ +# Copyright (C) 2012 The Android Open Source Project +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +$(call inherit-product, $(SRC_TARGET_DIR)/product/core_64_bit.mk) +$(call inherit-product, $(SRC_TARGET_DIR)/product/aosp_base.mk) + +$(call inherit-product, $(LOCAL_PATH)/redroid.mk) + +# overrides +PRODUCT_NAME := redroid_arm64 +PRODUCT_DEVICE := redroid_arm64 +PRODUCT_BRAND := ReDroid +PRODUCT_MODEL := ReDroid + +PRODUCT_PACKAGE_OVERLAYS := $(LOCAL_PATH)/overlay + +PRODUCT_COPY_FILES += \ + $(LOCAL_PATH)/init.redroid.rc:$(TARGET_COPY_OUT_VENDOR)/etc/init/hw/init.redroid.rc \ + diff --git a/redroid_arm64/BoardConfig.mk b/redroid_arm64/BoardConfig.mk new file mode 100644 index 0000000..dc16c38 --- /dev/null +++ b/redroid_arm64/BoardConfig.mk @@ -0,0 +1,18 @@ +include device/generic/arm64/BoardConfig.mk + +TARGET_USES_HWC2 := true + +# want all fonts +SMALLER_FONT_FOOTPRINT := false +MINIMAL_FONT_FOOTPRINT := false + +# use seperate vendor partition +TARGET_COPY_OUT_VENDOR := vendor + +BOARD_GPU_DRIVERS := freedreno lima virgl radeonsi + +DEVICE_MANIFEST_FILE := device/redroid/manifest.xml +PRODUCT_ENFORCE_VINTF_MANIFEST := true + +# ~ 1.3G +BOARD_SYSTEMIMAGE_PARTITION_SIZE := 1388314624 diff --git a/redroid_x86_64.mk b/redroid_x86_64.mk new file mode 100644 index 0000000..aca6751 --- /dev/null +++ b/redroid_x86_64.mk @@ -0,0 +1,29 @@ +# Copyright (C) 2012 The Android Open Source Project +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +$(call inherit-product, $(SRC_TARGET_DIR)/product/core_64_bit.mk) +$(call inherit-product, $(SRC_TARGET_DIR)/product/aosp_base.mk) + +$(call inherit-product, $(LOCAL_PATH)/redroid.mk) + +PRODUCT_NAME := redroid_x86_64 +PRODUCT_DEVICE := redroid_x86_64 +PRODUCT_BRAND := ReDroid +PRODUCT_MODEL := ReDroid + +PRODUCT_PACKAGE_OVERLAYS := $(LOCAL_PATH)/overlay + +PRODUCT_COPY_FILES += \ + $(LOCAL_PATH)/init.redroid.rc:$(TARGET_COPY_OUT_VENDOR)/etc/init/hw/init.redroid.rc \ + diff --git a/redroid_x86_64/BoardConfig.mk b/redroid_x86_64/BoardConfig.mk new file mode 100755 index 0000000..5404ed1 --- /dev/null +++ b/redroid_x86_64/BoardConfig.mk @@ -0,0 +1,16 @@ +include device/generic/x86_64/BoardConfig.mk + +TARGET_USES_HWC2 := true + +# want all fonts +SMALLER_FONT_FOOTPRINT := false +MINIMAL_FONT_FOOTPRINT := false + +# use seperate vendor partition +TARGET_COPY_OUT_VENDOR := vendor + +BOARD_GPU_DRIVERS := i915 i965 nouveau kmsro r300g r600g virgl vmwgfx etnaviv iris tegra radeonsi + +DEVICE_MANIFEST_FILE := device/redroid/manifest.xml +PRODUCT_ENFORCE_VINTF_MANIFEST := true + diff --git a/vendorsetup.sh b/vendorsetup.sh new file mode 100755 index 0000000..f1c16d9 --- /dev/null +++ b/vendorsetup.sh @@ -0,0 +1,9 @@ +# This file is executed by build/envsetup.sh, and can use anything +# defined in envsetup.sh. + +add_lunch_combo redroid_x86_64-eng +add_lunch_combo redroid_x86_64-userdebug +add_lunch_combo redroid_x86_64-user +add_lunch_combo redroid_arm64-eng +add_lunch_combo redroid_arm64-userdebug +add_lunch_combo redroid_arm64-user