diff options
author | Android Build Coastguard Worker <android-build-coastguard-worker@google.com> | 2024-05-10 15:33:58 +0000 |
---|---|---|
committer | Android Build Coastguard Worker <android-build-coastguard-worker@google.com> | 2024-05-10 15:33:58 +0000 |
commit | 5bced264452e90fb7a3e56a7ad606f1ed0dce27d (patch) | |
tree | 28efd79e5acb3ceb59200ebae95d03002ce1f363 | |
parent | e86f14ecd2311213a4181ac1dda12559b1fe35f2 (diff) | |
parent | 693173ec02fc116cafa699c9165eea8bb593a776 (diff) | |
download | dragonboard-busytown-mac-infra-release.tar.gz |
Snap for 11819167 from 693173ec02fc116cafa699c9165eea8bb593a776 to busytown-mac-infra-releasebusytown-mac-infra-release
Change-Id: I935c06000657f2239e0bf7dad0021f53077e6100
-rw-r--r-- | Android.bp | 9 | ||||
-rw-r--r-- | Android.mk | 3 | ||||
-rw-r--r-- | AndroidProducts.mk | 8 | ||||
-rw-r--r-- | BoardConfigCommon.mk | 22 | ||||
-rw-r--r-- | build/tasks/kernel.mk | 25 | ||||
-rw-r--r-- | db845c.mk | 22 | ||||
-rw-r--r-- | db845c/BoardConfig.mk | 64 | ||||
-rw-r--r-- | db845c/device.mk | 26 | ||||
-rw-r--r-- | db845c/eth_mac_addr.rc | 9 | ||||
-rw-r--r-- | db845c/eth_mac_addr.sh | 15 | ||||
-rw-r--r-- | device-common.mk | 53 | ||||
-rw-r--r-- | fstab.common | 14 | ||||
-rw-r--r-- | full.mk | 82 | ||||
-rw-r--r-- | init.common.rc | 12 | ||||
-rw-r--r-- | installer/rb5/README | 2 | ||||
-rwxr-xr-x | installer/rb5/flash-all-aosp.sh | 4 | ||||
-rwxr-xr-x | installer/rb5/recovery.sh | 2 | ||||
-rw-r--r-- | linaro_swr.mk | 16 | ||||
-rw-r--r-- | linaro_swr/Android.mk | 6 | ||||
-rw-r--r-- | linaro_swr/BoardConfig.mk | 50 | ||||
-rw-r--r-- | linaro_swr/device.mk | 69 | ||||
-rw-r--r-- | manifest.xml | 24 | ||||
-rw-r--r-- | mini.mk | 2 | ||||
-rw-r--r-- | product.prop | 16 | ||||
-rw-r--r-- | qcom/set_hw.sh | 12 | ||||
-rw-r--r-- | rb5.mk | 7 | ||||
-rw-r--r-- | rb5/BoardConfig.mk | 47 | ||||
-rw-r--r-- | rb5/device.mk | 54 | ||||
-rw-r--r-- | rb5/mixer_paths.xml | 5 | ||||
-rw-r--r-- | rb5_mini.mk | 7 | ||||
-rw-r--r-- | sepolicy/eth_mac_addr.te | 12 | ||||
-rw-r--r-- | sepolicy/file_contexts | 10 | ||||
-rw-r--r-- | sepolicy/genfs_contexts | 1 | ||||
-rw-r--r-- | sepolicy/rmtfs.te | 1 | ||||
-rw-r--r-- | sepolicy/set_bdaddr.te | 12 | ||||
-rw-r--r-- | sepolicy/set_ethaddr.te | 13 | ||||
-rw-r--r-- | sepolicy/tqftpserv.te | 2 | ||||
-rw-r--r-- | shared/graphics/drm_hwcomposer/BoardConfig.mk | 19 | ||||
-rw-r--r-- | shared/graphics/drm_hwcomposer/device.mk | 24 | ||||
-rw-r--r-- | shared/graphics/mesa/BoardConfig.mk | 24 | ||||
-rw-r--r-- | shared/graphics/mesa/device.mk | 56 | ||||
-rw-r--r-- | shared/graphics/minigbm_msm/device.mk | 28 | ||||
-rw-r--r-- | shared/graphics/minigbm_msm/sepolicy/file_contexts | 11 | ||||
-rw-r--r-- | shared/graphics/minigbm_msm/sepolicy/minigbm_debug.te | 33 | ||||
-rw-r--r-- | shared/graphics/minigbm_msm/sepolicy/property_contexts | 1 | ||||
-rw-r--r-- | shared/graphics/swangle/device.mk | 52 | ||||
-rw-r--r-- | shared/graphics/swangle/sepolicy/file_contexts | 5 | ||||
-rw-r--r-- | shared/graphics/swangle/sepolicy/sw_execmem.te | 5 | ||||
-rw-r--r-- | shared/utils/bdaddr/Android.bp | 28 | ||||
-rw-r--r-- | shared/utils/bdaddr/bdaddr.c | 215 | ||||
-rw-r--r-- | shared/utils/bdaddr/bdaddr.rc | 22 | ||||
-rw-r--r-- | shared/utils/bdaddr/set_bdaddr.sh | 40 | ||||
-rw-r--r-- | shared/utils/dlkm_loader/BoardConfig.mk | 7 | ||||
-rw-r--r-- | shared/utils/dlkm_loader/device.mk | 11 | ||||
-rw-r--r-- | shared/utils/dlkm_loader/dlkm_loader.rc | 17 | ||||
-rw-r--r-- | shared/utils/dlkm_loader/sepolicy/dlkm_loader.te | 36 | ||||
-rw-r--r-- | shared/utils/dlkm_loader/sepolicy/file_contexts | 1 | ||||
-rw-r--r-- | shared/utils/dlkm_loader/sepolicy/property.te | 1 | ||||
-rw-r--r-- | shared/utils/dlkm_loader/sepolicy/property_contexts | 1 | ||||
-rw-r--r-- | shared/utils/dlkm_loader/vendor.modules.list.mk | 231 | ||||
-rw-r--r-- | shared/utils/dlkm_loader/vendor_ramdisk.modules.blocklist | 4 | ||||
-rw-r--r-- | shared/utils/ethaddr/ethaddr.rc | 9 | ||||
-rw-r--r-- | shared/utils/ethaddr/set_ethaddr.sh | 25 | ||||
-rw-r--r-- | shared/utils/init.utils.rc (renamed from qcom/init.qcom.rc) | 2 | ||||
-rw-r--r-- | shared/utils/pd-mapper/Android.bp (renamed from qcom/pd-mapper/Android.bp) | 0 | ||||
-rw-r--r-- | shared/utils/pd-mapper/LICENSE (renamed from qcom/pd-mapper/LICENSE) | 0 | ||||
-rw-r--r-- | shared/utils/pd-mapper/Makefile (renamed from qcom/pd-mapper/Makefile) | 0 | ||||
-rw-r--r-- | shared/utils/pd-mapper/assoc.c (renamed from qcom/pd-mapper/assoc.c) | 0 | ||||
-rw-r--r-- | shared/utils/pd-mapper/assoc.h (renamed from qcom/pd-mapper/assoc.h) | 0 | ||||
-rw-r--r-- | shared/utils/pd-mapper/json.c (renamed from qcom/pd-mapper/json.c) | 0 | ||||
-rw-r--r-- | shared/utils/pd-mapper/json.h (renamed from qcom/pd-mapper/json.h) | 0 | ||||
-rw-r--r-- | shared/utils/pd-mapper/pd-mapper.c (renamed from qcom/pd-mapper/pd-mapper.c) | 0 | ||||
-rw-r--r-- | shared/utils/pd-mapper/pd-mapper.service.in (renamed from qcom/pd-mapper/pd-mapper.service.in) | 0 | ||||
-rw-r--r-- | shared/utils/pd-mapper/servreg_loc.c (renamed from qcom/pd-mapper/servreg_loc.c) | 0 | ||||
-rw-r--r-- | shared/utils/pd-mapper/servreg_loc.h (renamed from qcom/pd-mapper/servreg_loc.h) | 0 | ||||
-rw-r--r-- | shared/utils/pd-mapper/servreg_loc.qmi (renamed from qcom/pd-mapper/servreg_loc.qmi) | 0 | ||||
-rw-r--r-- | shared/utils/qrtr/Android.bp (renamed from qcom/qrtr/Android.bp) | 0 | ||||
-rw-r--r-- | shared/utils/qrtr/LICENSE (renamed from qcom/qrtr/LICENSE) | 0 | ||||
-rw-r--r-- | shared/utils/qrtr/Makefile (renamed from qcom/qrtr/Makefile) | 0 | ||||
-rw-r--r-- | shared/utils/qrtr/lib/libqrtr.h (renamed from qcom/qrtr/lib/libqrtr.h) | 0 | ||||
-rw-r--r-- | shared/utils/qrtr/lib/logging.c (renamed from qcom/qrtr/lib/logging.c) | 0 | ||||
-rw-r--r-- | shared/utils/qrtr/lib/logging.h (renamed from qcom/qrtr/lib/logging.h) | 0 | ||||
-rw-r--r-- | shared/utils/qrtr/lib/qmi.c (renamed from qcom/qrtr/lib/qmi.c) | 0 | ||||
-rw-r--r-- | shared/utils/qrtr/lib/qrtr.c (renamed from qcom/qrtr/lib/qrtr.c) | 0 | ||||
-rw-r--r-- | shared/utils/qrtr/qrtr-ns.service.in (renamed from qcom/qrtr/qrtr-ns.service.in) | 0 | ||||
-rwxr-xr-x | shared/utils/qrtr/qrtr.py (renamed from qcom/qrtr/qrtr.py) | 0 | ||||
-rw-r--r-- | shared/utils/qrtr/src/addr.c (renamed from qcom/qrtr/src/addr.c) | 0 | ||||
-rw-r--r-- | shared/utils/qrtr/src/addr.h (renamed from qcom/qrtr/src/addr.h) | 0 | ||||
-rw-r--r-- | shared/utils/qrtr/src/cfg.c (renamed from qcom/qrtr/src/cfg.c) | 0 | ||||
-rw-r--r-- | shared/utils/qrtr/src/hash.c (renamed from qcom/qrtr/src/hash.c) | 0 | ||||
-rw-r--r-- | shared/utils/qrtr/src/hash.h (renamed from qcom/qrtr/src/hash.h) | 0 | ||||
-rw-r--r-- | shared/utils/qrtr/src/list.h (renamed from qcom/qrtr/src/list.h) | 0 | ||||
-rw-r--r-- | shared/utils/qrtr/src/lookup.c (renamed from qcom/qrtr/src/lookup.c) | 0 | ||||
-rw-r--r-- | shared/utils/qrtr/src/map.c (renamed from qcom/qrtr/src/map.c) | 0 | ||||
-rw-r--r-- | shared/utils/qrtr/src/map.h (renamed from qcom/qrtr/src/map.h) | 0 | ||||
-rw-r--r-- | shared/utils/qrtr/src/ns.c (renamed from qcom/qrtr/src/ns.c) | 0 | ||||
-rw-r--r-- | shared/utils/qrtr/src/ns.h (renamed from qcom/qrtr/src/ns.h) | 0 | ||||
-rw-r--r-- | shared/utils/qrtr/src/util.c (renamed from qcom/qrtr/src/util.c) | 0 | ||||
-rw-r--r-- | shared/utils/qrtr/src/util.h (renamed from qcom/qrtr/src/util.h) | 0 | ||||
-rw-r--r-- | shared/utils/qrtr/src/waiter.c (renamed from qcom/qrtr/src/waiter.c) | 0 | ||||
-rw-r--r-- | shared/utils/qrtr/src/waiter.h (renamed from qcom/qrtr/src/waiter.h) | 0 | ||||
-rw-r--r-- | shared/utils/rmtfs/Android.bp (renamed from qcom/rmtfs/Android.bp) | 0 | ||||
-rw-r--r-- | shared/utils/rmtfs/LICENSE (renamed from qcom/rmtfs/LICENSE) | 0 | ||||
-rw-r--r-- | shared/utils/rmtfs/Makefile (renamed from qcom/rmtfs/Makefile) | 0 | ||||
-rw-r--r-- | shared/utils/rmtfs/qmi_rmtfs.c (renamed from qcom/rmtfs/qmi_rmtfs.c) | 0 | ||||
-rw-r--r-- | shared/utils/rmtfs/qmi_rmtfs.h (renamed from qcom/rmtfs/qmi_rmtfs.h) | 0 | ||||
-rw-r--r-- | shared/utils/rmtfs/qmi_rmtfs.qmi (renamed from qcom/rmtfs/qmi_rmtfs.qmi) | 0 | ||||
-rw-r--r-- | shared/utils/rmtfs/qmi_tlv.c (renamed from qcom/rmtfs/qmi_tlv.c) | 0 | ||||
-rw-r--r-- | shared/utils/rmtfs/rmtfs.c (renamed from qcom/rmtfs/rmtfs.c) | 0 | ||||
-rw-r--r-- | shared/utils/rmtfs/rmtfs.h (renamed from qcom/rmtfs/rmtfs.h) | 0 | ||||
-rw-r--r-- | shared/utils/rmtfs/rmtfs.service.in (renamed from qcom/rmtfs/rmtfs.service.in) | 0 | ||||
-rw-r--r-- | shared/utils/rmtfs/rproc.c (renamed from qcom/rmtfs/rproc.c) | 0 | ||||
-rw-r--r-- | shared/utils/rmtfs/sharedmem.c (renamed from qcom/rmtfs/sharedmem.c) | 0 | ||||
-rw-r--r-- | shared/utils/rmtfs/storage.c (renamed from qcom/rmtfs/storage.c) | 0 | ||||
-rw-r--r-- | shared/utils/rmtfs/util.c (renamed from qcom/rmtfs/util.c) | 0 | ||||
-rw-r--r-- | shared/utils/rmtfs/util.h (renamed from qcom/rmtfs/util.h) | 0 | ||||
-rw-r--r-- | shared/utils/sdcard-boot/fstab.mmc | 11 | ||||
-rw-r--r-- | shared/utils/sdcard-boot/fstab.sdhci | 11 | ||||
-rw-r--r-- | shared/utils/sdcard-boot/sepolicy/file_contexts | 15 | ||||
-rw-r--r-- | shared/utils/set_hw.sh | 34 | ||||
-rwxr-xr-x | shared/utils/set_udc.sh (renamed from qcom/set_udc.sh) | 0 | ||||
-rw-r--r-- | shared/utils/tqftpserv/Android.bp (renamed from qcom/tqftpserv/Android.bp) | 0 | ||||
-rw-r--r-- | shared/utils/tqftpserv/LICENSE (renamed from qcom/tqftpserv/LICENSE) | 0 | ||||
-rw-r--r-- | shared/utils/tqftpserv/Makefile (renamed from qcom/tqftpserv/Makefile) | 0 | ||||
-rw-r--r-- | shared/utils/tqftpserv/list.h (renamed from qcom/tqftpserv/list.h) | 0 | ||||
-rw-r--r-- | shared/utils/tqftpserv/tqftpserv.c (renamed from qcom/tqftpserv/tqftpserv.c) | 0 | ||||
-rw-r--r-- | shared/utils/tqftpserv/tqftpserv.service.in (renamed from qcom/tqftpserv/tqftpserv.service.in) | 0 | ||||
-rw-r--r-- | shared/utils/tqftpserv/translate.c (renamed from qcom/tqftpserv/translate.c) | 0 | ||||
-rw-r--r-- | shared/utils/tqftpserv/translate.h (renamed from qcom/tqftpserv/translate.h) | 0 | ||||
-rw-r--r-- | sm8x50/BoardConfig.mk | 56 | ||||
-rw-r--r-- | sm8x50/device.mk | 75 | ||||
-rw-r--r-- | sm8x50/dtb-overlays/sm8550-hdk.dts | 7 | ||||
-rw-r--r-- | sm8x50/dtb-overlays/sm8550-qrd.dts | 7 | ||||
-rw-r--r-- | sm8x50/dtb-overlays/sm8650-qrd.dts | 7 | ||||
-rw-r--r-- | sm8x50/fstab | 11 | ||||
-rw-r--r-- | sm8x50/init.environ.rc | 3 | ||||
-rw-r--r-- | sm8x50/sepolicy/file_contexts | 17 | ||||
-rw-r--r-- | sm8x50/sepolicy/genfs_contexts | 9 | ||||
-rw-r--r-- | sm8x50/sm8x50.mk | 23 | ||||
-rwxr-xr-x | vendor-package-ver.sh | 6 |
140 files changed, 1590 insertions, 348 deletions
@@ -49,8 +49,9 @@ license { } subdirs = [ - "qcom/pd-mapper", - "qcom/qrtr", - "qcom/rmtfs", - "qcom/tqftpserv", + "shared/utils/bdaddr", + "shared/utils/pd-mapper", + "shared/utils/qrtr", + "shared/utils/rmtfs", + "shared/utils/tqftpserv", ] @@ -20,7 +20,7 @@ # to only building on ARM if they include assembly. Individual makefiles # are responsible for having their own logic, for fine-grained control. -ifneq ($(filter db845c rb5, $(TARGET_BOARD_PLATFORM)),) +ifneq ($(filter db845c linaro_swr sm8x50, $(TARGET_BOARD_PLATFORM)),) LOCAL_PATH := $(call my-dir) @@ -31,7 +31,6 @@ $(eval $(call declare-1p-copy-files,device/linaro/dragonboard,.rc)) $(eval $(call declare-1p-copy-files,device/linaro/dragonboard,.sh)) $(eval $(call declare-1p-copy-files,device/linaro/dragonboard,.xml)) $(eval $(call declare-1p-copy-files,device/linaro/dragonboard,fstab.db845c)) -$(eval $(call declare-1p-copy-files,device/linaro/dragonboard,fstab.rb5)) # If some modules are built directly from this directory (not subdirectories), # their rules should be written here. diff --git a/AndroidProducts.mk b/AndroidProducts.mk index 3492246..f121e04 100644 --- a/AndroidProducts.mk +++ b/AndroidProducts.mk @@ -12,11 +12,9 @@ PRODUCT_MAKEFILES := \ $(LOCAL_DIR)/db845c.mk \ $(LOCAL_DIR)/db845c_mini.mk \ - $(LOCAL_DIR)/rb5.mk \ - $(LOCAL_DIR)/rb5_mini.mk \ $(LOCAL_DIR)/sm8450_mini.mk \ + $(LOCAL_DIR)/linaro_swr.mk \ + $(LOCAL_DIR)/sm8x50/sm8x50.mk COMMON_LUNCH_CHOICES := \ - db845c-userdebug \ - rb5-userdebug \ - + db845c-trunk_staging-userdebug diff --git a/BoardConfigCommon.mk b/BoardConfigCommon.mk index 87cde99..08c5c57 100644 --- a/BoardConfigCommon.mk +++ b/BoardConfigCommon.mk @@ -13,20 +13,19 @@ # limitations under the License. # -TARGET_USES_64_BIT_BINDER := true TARGET_NO_BOOTLOADER := true TARGET_NO_KERNEL := true TARGET_NO_RECOVERY := true -BOARD_SYSTEMIMAGE_FILE_SYSTEM_TYPE := ext4 +BOARD_SYSTEMIMAGE_FILE_SYSTEM_TYPE := erofs TARGET_USERIMAGES_USE_EXT4 := true TARGET_COPY_OUT_VENDOR := vendor -BOARD_VENDORIMAGE_FILE_SYSTEM_TYPE := ext4 +BOARD_VENDORIMAGE_FILE_SYSTEM_TYPE := erofs TARGET_COPY_OUT_SYSTEM_EXT := system_ext -BOARD_SYSTEM_EXTIMAGE_FILE_SYSTEM_TYPE := ext4 +BOARD_SYSTEM_EXTIMAGE_FILE_SYSTEM_TYPE := erofs TARGET_COPY_OUT_PRODUCT := product -BOARD_PRODUCTIMAGE_FILE_SYSTEM_TYPE := ext4 +BOARD_PRODUCTIMAGE_FILE_SYSTEM_TYPE := erofs BOARD_USES_METADATA_PARTITION := true # Super partition TARGET_USE_DYNAMIC_PARTITIONS := true @@ -38,19 +37,6 @@ BOARD_DB_DYNAMIC_PARTITIONS_PARTITION_LIST := system vendor system_ext product PRODUCT_FULL_TREBLE := true BOARD_VNDK_VERSION := current -# Mesa DRM hwcomposer -BOARD_USES_DRM_HWCOMPOSER := true -BOARD_GPU_DRIVERS := freedreno -TARGET_USES_HWC2 := true - -ifeq ($(TARGET_BUILD_MESA),true) -BOARD_MESA3D_USES_MESON_BUILD := true -BOARD_MESA3D_GALLIUM_DRIVERS := freedreno -BOARD_MESA3D_VULKAN_DRIVERS := freedreno -else -BOARD_USE_CUSTOMIZED_MESA := true -endif - # WiFi WPA_SUPPLICANT_VERSION := VER_0_8_X BOARD_WPA_SUPPLICANT_DRIVER := NL80211 diff --git a/build/tasks/kernel.mk b/build/tasks/kernel.mk index 7723dc3..1478753 100644 --- a/build/tasks/kernel.mk +++ b/build/tasks/kernel.mk @@ -1,7 +1,26 @@ -ifneq ($(filter db845c db845c_mini, $(TARGET_DEVICE)),) +ifneq ($(filter db845c db845c_mini linaro_swr sm8x50, $(TARGET_DEVICE)),) -$(PRODUCT_OUT)/dtb.img: $(TARGET_KERNEL_DIR)/sdm845-db845c.dtb $(wildcard $(TARGET_KERNEL_DIR)/qrb5165-rb5.dtb) - cat $^ > $@ +DTC := $(HOST_OUT)/bin/dtc +FDTOVERLAY := $(HOST_OUT)/bin/fdtoverlay +SM8550HDK_DTS_OVERLAY := device/linaro/dragonboard/sm8x50/dtb-overlays/sm8550-hdk.dts +SM8550QRD_DTS_OVERLAY := device/linaro/dragonboard/sm8x50/dtb-overlays/sm8550-qrd.dts +SM8650QRD_DTS_OVERLAY := device/linaro/dragonboard/sm8x50/dtb-overlays/sm8650-qrd.dts + +DB845C_DTB := $(TARGET_KERNEL_DIR)/sdm845-db845c.dtb +RB5_DTB := $(wildcard $(TARGET_KERNEL_DIR)/qrb5165-rb5.dtb) +SM8550HDK_DTB := $(wildcard $(TARGET_KERNEL_DIR)/sm8550-hdk.dtb) +SM8550QRD_DTB := $(wildcard $(TARGET_KERNEL_DIR)/sm8550-qrd.dtb) +SM8650QRD_DTB := $(wildcard $(TARGET_KERNEL_DIR)/sm8650-qrd.dtb) + +$(PRODUCT_OUT)/dtb.img: $(DTC) $(FDTOVERLAY) + -$(DTC) -@ -I dts -O dtb -o $(PRODUCT_OUT)/sm8550-hdk.dtbo $(SM8550HDK_DTS_OVERLAY) + -$(FDTOVERLAY) -i $(SM8550HDK_DTB) -o $(PRODUCT_OUT)/sm8550-hdk.dtb $(PRODUCT_OUT)/sm8550-hdk.dtbo + -$(DTC) -@ -I dts -O dtb -o $(PRODUCT_OUT)/sm8550-qrd.dtbo $(SM8550QRD_DTS_OVERLAY) + -$(FDTOVERLAY) -i $(SM8550QRD_DTB) -o $(PRODUCT_OUT)/sm8550-qrd.dtb $(PRODUCT_OUT)/sm8550-qrd.dtbo + -$(DTC) -@ -I dts -O dtb -o $(PRODUCT_OUT)/sm8650-qrd.dtbo $(SM8650QRD_DTS_OVERLAY) + -$(FDTOVERLAY) -i $(SM8650QRD_DTB) -o $(PRODUCT_OUT)/sm8650-qrd.dtb $(PRODUCT_OUT)/sm8650-qrd.dtbo + -cat $(DB845C_DTB) $(RB5_DTB) $(PRODUCT_OUT)/sm8550-hdk.dtb $(PRODUCT_OUT)/sm8550-qrd.dtb $(PRODUCT_OUT)/sm8650-qrd.dtbo > $@ + -rm $(PRODUCT_OUT)/sm8*dtb* droidcore: $(PRODUCT_OUT)/dtb.img @@ -1,7 +1,27 @@ $(call inherit-product, device/linaro/dragonboard/full.mk) +$(call inherit-product, $(SRC_TARGET_DIR)/product/core_64_bit.mk) +$(call inherit-product, $(SRC_TARGET_DIR)/product/full_base.mk) +$(call inherit-product, device/linaro/dragonboard/shared/graphics/drm_hwcomposer/device.mk) +$(call inherit-product, device/linaro/dragonboard/shared/graphics/mesa/device.mk) +$(call inherit-product, device/linaro/dragonboard/shared/graphics/minigbm_msm/device.mk) $(call inherit-product, device/linaro/dragonboard/db845c/device.mk) -TARGET_USES_BOOT_HDR_V3 ?= true +#Boot with Android boot image header v3 +ifeq ($(TARGET_KERNEL_USE),5.4) + TARGET_USES_BOOT_HDR_V3 := true +else + TARGET_USES_BOOT_HDR_V3 ?= false +endif + +#Boot from mmc-sdcard +TARGET_SDCARD_BOOT ?= false + +#Load kernel modules in parallel +ifneq ($(filter 5.15 6.1 6.6, $(TARGET_KERNEL_USE)),) + TARGET_USES_LMP ?= false +else + TARGET_USES_LMP := false +endif # Product overrides PRODUCT_NAME := db845c diff --git a/db845c/BoardConfig.mk b/db845c/BoardConfig.mk index 644f9a8..ed9264c 100644 --- a/db845c/BoardConfig.mk +++ b/db845c/BoardConfig.mk @@ -19,14 +19,33 @@ TARGET_BOARD_PLATFORM := db845c TARGET_NO_KERNEL := false BOARD_INCLUDE_DTB_IN_BOOTIMG := true -ifeq ($(TARGET_USES_BOOT_HDR_V3), true) - BOARD_BOOT_HEADER_VERSION := 3 - BOARD_KERNEL_CMDLINE += androidboot.hardware=db845c androidboot.boot_devices=soc@0/1d84000.ufshc - BOARD_KERNEL_CMDLINE += androidboot.verifiedbootstate=orange -else - BOARD_BOOT_HEADER_VERSION := 4 - BOARD_BOOTCONFIG += androidboot.hardware=db845c androidboot.boot_devices=soc@0/1d84000.ufshc - BOARD_BOOTCONFIG += androidboot.verifiedbootstate=orange +ifeq ($(TARGET_SDCARD_BOOT), true) + BOARD_BOOT_HEADER_VERSION := 2 + # Older kernel versions define mmc@ nodes as sdhci@ nodes in their device tree + ifneq ($(filter 5.4 5.10 5.15, $(TARGET_KERNEL_USE)),) + BOARD_KERNEL_CMDLINE += androidboot.boot_devices=soc@0/8804000.sdhci + else + BOARD_KERNEL_CMDLINE += androidboot.boot_devices=soc@0/8804000.mmc + endif + BOARD_KERNEL_CMDLINE += androidboot.hardware=db845c + BOARD_KERNEL_CMDLINE += androidboot.verifiedbootstate=orange + # In case we are booting from U-Boot directly and androidboot.slot_suffix + # is not set. Otherwise we run into the following error: + # "init: [libfstab] Error updating for slotselect" + BOARD_KERNEL_CMDLINE += androidboot.slot_suffix=_a +else ifeq ($(TARGET_USES_BOOT_HDR_V3), true) + BOARD_BOOT_HEADER_VERSION := 3 + BOARD_KERNEL_CMDLINE += androidboot.boot_devices=soc@0/1d84000.ufshc + BOARD_KERNEL_CMDLINE += androidboot.hardware=db845c + BOARD_KERNEL_CMDLINE += androidboot.verifiedbootstate=orange + else + BOARD_BOOT_HEADER_VERSION := 4 + BOARD_BOOTCONFIG += androidboot.boot_devices=soc@0/1d84000.ufshc + BOARD_BOOTCONFIG += androidboot.hardware=db845c + BOARD_BOOTCONFIG += androidboot.verifiedbootstate=orange + ifeq ($(TARGET_USES_LMP), true) + BOARD_BOOTCONFIG += androidboot.load_modules_parallel=true + endif endif BOARD_MKBOOTIMG_ARGS := --header_version $(BOARD_BOOT_HEADER_VERSION) BOARD_KERNEL_BASE := 0x80000000 @@ -39,12 +58,29 @@ BOARD_KERNEL_CMDLINE += qcom_geni_serial.con_enabled=1 BOARD_KERNEL_CMDLINE += console=ttyMSM0,115200n8 # Image Configuration -BOARD_BOOTIMAGE_PARTITION_SIZE := 103079215104 #96M -BOARD_VENDOR_BOOTIMAGE_PARTITION_SIZE := 103079215104 #96M -BOARD_USERDATAIMAGE_PARTITION_SIZE := 21474836480 #20G +BOARD_BOOTIMAGE_PARTITION_SIZE := 100663296 #96M BOARD_FLASH_BLOCK_SIZE := 4096 -# Super partition -BOARD_SUPER_PARTITION_SIZE := 12437225472 -BOARD_DB_DYNAMIC_PARTITIONS_SIZE := 12433031168 # Reserve 4M for DAP metadata +ifeq ($(TARGET_SDCARD_BOOT), true) + BOARD_USERDATAIMAGE_PARTITION_SIZE := 8589934592 #8G + BOARD_SUPER_PARTITION_SIZE := 4294967296 #4G + BOARD_DB_DYNAMIC_PARTITIONS_SIZE := 4290772992 # Reserve 4M for DAP metadata + BOARD_SEPOLICY_DIRS += device/linaro/dragonboard/shared/utils/sdcard-boot/sepolicy/ +else + BOARD_VENDOR_BOOTIMAGE_PARTITION_SIZE := 100663296 #96M + BOARD_USERDATAIMAGE_PARTITION_SIZE := 21474836480 #20G + BOARD_SUPER_PARTITION_SIZE := 12437225472 + BOARD_DB_DYNAMIC_PARTITIONS_SIZE := 12433031168 # Reserve 4M for DAP metadata +endif BOARD_SUPER_PARTITION_METADATA_DEVICE := super BOARD_SUPER_IMAGE_IN_UPDATE_PACKAGE := true +BOARD_DB_DYNAMIC_PARTITIONS_PARTITION_LIST := system vendor system_ext product + +# dlkm partitions +include device/linaro/dragonboard/shared/utils/dlkm_loader/BoardConfig.mk +BOARD_DB_DYNAMIC_PARTITIONS_PARTITION_LIST += system_dlkm vendor_dlkm +BOARD_SEPOLICY_DIRS += device/linaro/dragonboard/shared/utils/dlkm_loader/sepolicy/ + +# Graphics +include device/linaro/dragonboard/shared/graphics/drm_hwcomposer/BoardConfig.mk +include device/linaro/dragonboard/shared/graphics/mesa/BoardConfig.mk +BOARD_SEPOLICY_DIRS += device/linaro/dragonboard/shared/graphics/minigbm_msm/sepolicy/ diff --git a/db845c/device.mk b/db845c/device.mk index ef754c1..fb1b719 100644 --- a/db845c/device.mk +++ b/db845c/device.mk @@ -24,6 +24,11 @@ else $(call inherit-product, $(SRC_TARGET_DIR)/product/virtual_ab_ota.mk) endif +# dlkm_loader +include device/linaro/dragonboard/shared/utils/dlkm_loader/device.mk +PRODUCT_COPY_FILES += \ + device/linaro/dragonboard/shared/utils/dlkm_loader/dlkm_loader.rc:$(TARGET_COPY_OUT_VENDOR)/etc/init/dlkm_loader.rc + # Build generic Audio HAL PRODUCT_PACKAGES += audio.primary.db845c @@ -33,26 +38,35 @@ PRODUCT_PACKAGES += \ android.hardware.boot@1.2-impl.recovery \ android.hardware.boot@1.2-service +# Set BT address +PRODUCT_PACKAGES += bdaddr + +# Install bdaddr script +PRODUCT_COPY_FILES += \ + device/linaro/dragonboard/shared/utils/bdaddr/set_bdaddr.sh:$(TARGET_COPY_OUT_VENDOR)/bin/set_bdaddr.sh + # Install scripts to set vendor.* properties PRODUCT_COPY_FILES += \ - device/linaro/dragonboard/qcom/set_hw.sh:$(TARGET_COPY_OUT_VENDOR)/bin/set_hw.sh \ - device/linaro/dragonboard/qcom/set_udc.sh:$(TARGET_COPY_OUT_VENDOR)/bin/set_udc.sh + device/linaro/dragonboard/shared/utils/set_hw.sh:$(TARGET_COPY_OUT_VENDOR)/bin/set_hw.sh \ + device/linaro/dragonboard/shared/utils/set_udc.sh:$(TARGET_COPY_OUT_VENDOR)/bin/set_udc.sh # Install scripts to set Ethernet MAC address PRODUCT_COPY_FILES += \ - $(LOCAL_PATH)/eth_mac_addr.rc:/system/etc/init/eth_mac_addr.rc \ - $(LOCAL_PATH)/eth_mac_addr.sh:/system/bin/eth_mac_addr.sh + device/linaro/dragonboard/shared/utils/ethaddr/ethaddr.rc:$(TARGET_COPY_OUT_VENDOR)/etc/init/ethaddr.rc \ + device/linaro/dragonboard/shared/utils/ethaddr/set_ethaddr.sh:$(TARGET_COPY_OUT_VENDOR)/bin/set_ethaddr.sh PRODUCT_VENDOR_PROPERTIES += ro.soc.manufacturer=Qualcomm PRODUCT_VENDOR_PROPERTIES += ro.soc.model=SDM845 -PRODUCT_PROPERTY_OVERRIDES += ro.sf.lcd_density=160 +PRODUCT_SOONG_NAMESPACES += \ + vendor/linaro/db845c/$(EXPECTED_LINARO_VENDOR_VERSION) \ + vendor/linaro/rb5/$(EXPECTED_LINARO_VENDOR_VERSION) # Copy firmware files $(call inherit-product-if-exists, vendor/linaro/db845c/$(EXPECTED_LINARO_VENDOR_VERSION)/device.mk) $(call inherit-product-if-exists, vendor/linaro/rb5/$(EXPECTED_LINARO_VENDOR_VERSION)/device.mk) TARGET_HARDWARE := db845c -TARGET_KERNEL_USE ?= 5.15 +TARGET_KERNEL_USE ?= 6.6 include device/linaro/dragonboard/device-common.mk diff --git a/db845c/eth_mac_addr.rc b/db845c/eth_mac_addr.rc deleted file mode 100644 index a30c0a5..0000000 --- a/db845c/eth_mac_addr.rc +++ /dev/null @@ -1,9 +0,0 @@ -service eth_mac_addr /system/bin/eth_mac_addr.sh - class core - user root - group system - disabled - oneshot - -on post-fs-data && property:vendor.hw=db45c - start eth_mac_addr diff --git a/db845c/eth_mac_addr.sh b/db845c/eth_mac_addr.sh deleted file mode 100644 index bdc1ba7..0000000 --- a/db845c/eth_mac_addr.sh +++ /dev/null @@ -1,15 +0,0 @@ -#! /system/bin/sh -# Set eth0 mac address. -# -# Get the unique board serial number from /proc/cmdline, -# prepend '0's to the serial number to fill 5 LSBs of the -# MAC address and prepend "02" as MSB to prepare a 6 byte -# locally administered unicast MAC address. -# Format the output in xx:xx:xx:xx:xx:xx format for the -# "ip" set address command to work. - -SERIALNO=`cat /proc/cmdline | grep -o serialno.* | cut -f2 -d'=' | awk '{printf("02%010s\n", $1)}' | sed 's/\(..\)/\1:/g' | sed '$s/:$//'` - -/system/bin/ip link set dev eth0 down -/system/bin/ip link set dev eth0 address "${SERIALNO}" -/system/bin/ip link set dev eth0 up diff --git a/device-common.mk b/device-common.mk index d2d2036..960c2ae 100644 --- a/device-common.mk +++ b/device-common.mk @@ -15,18 +15,24 @@ # TARGET_KERNEL_DIR ?= device/linaro/dragonboard-kernel/android-$(TARGET_KERNEL_USE) +TARGET_MODS := $(wildcard $(TARGET_KERNEL_DIR)/*.ko) -TARGET_USES_GKI ?= true - -ifeq ($(TARGET_USES_GKI), true) - TARGET_MODS := $(wildcard $(TARGET_KERNEL_DIR)/*.ko) - ifneq ($(TARGET_MODS),) - BOARD_DO_NOT_STRIP_VENDOR_RAMDISK_MODULES := true - BOARD_VENDOR_RAMDISK_KERNEL_MODULES := $(TARGET_MODS) - endif +BOARD_DO_NOT_STRIP_VENDOR_RAMDISK_MODULES := true +BOARD_DO_NOT_STRIP_GENERIC_RAMDISK_MODULES := true +ifeq ($(TARGET_SDCARD_BOOT), true) + # UFS module filename varies from ufs_qcom.ko to ufs-qcom.ko across different kernel versions + BOARD_VENDOR_KERNEL_MODULES := $(wildcard $(TARGET_KERNEL_DIR)/ufs*qcom.ko) + BOARD_GENERIC_RAMDISK_KERNEL_MODULES := $(filter-out $(BOARD_VENDOR_KERNEL_MODULES),$(TARGET_MODS)) +else ifeq ($(TARGET_USES_LMP), true) + include device/linaro/dragonboard/shared/utils/dlkm_loader/vendor.modules.list.mk + BOARD_VENDOR_KERNEL_MODULES := $(patsubst %,$(TARGET_KERNEL_DIR)/%,$(VENDOR_DLKM_KERNEL_MODULES_LIST)) + BOARD_VENDOR_RAMDISK_KERNEL_MODULES := $(patsubst %,$(TARGET_KERNEL_DIR)/%,$(VENDOR_RAMDISK_KERNEL_MODULES_LIST)) + BOARD_SYSTEM_KERNEL_MODULES := $(filter-out $(BOARD_VENDOR_KERNEL_MODULES) $(BOARD_VENDOR_RAMDISK_KERNEL_MODULES), $(wildcard $(TARGET_KERNEL_DIR)/*.ko)) +else + BOARD_VENDOR_RAMDISK_KERNEL_MODULES := $(TARGET_MODS) endif -PRODUCT_SHIPPING_API_LEVEL := 31 +PRODUCT_SHIPPING_API_LEVEL := 33 # Check vendor package version # If you need to make changes to the vendor partition, @@ -52,9 +58,7 @@ endif PRODUCT_SOONG_NAMESPACES += \ device/linaro/dragonboard \ - vendor/linaro/linux-firmware/$(EXPECTED_LINARO_VENDOR_VERSION) \ - vendor/linaro/db845c/$(EXPECTED_LINARO_VENDOR_VERSION) \ - vendor/linaro/rb5/$(EXPECTED_LINARO_VENDOR_VERSION) + vendor/linaro/shared/$(EXPECTED_LINARO_VENDOR_VERSION)/linux-firmware # Dynamic partitions PRODUCT_BUILD_SUPER_PARTITION := true @@ -69,10 +73,31 @@ AB_OTA_PARTITIONS += \ system_ext \ vendor +ifeq ($(TARGET_SDCARD_BOOT), true) + ifneq ($(filter 5.4 5.10 5.15, $(TARGET_KERNEL_USE)),) + PRODUCT_COPY_FILES += \ + device/linaro/dragonboard/shared/utils/sdcard-boot/fstab.sdhci:$(TARGET_COPY_OUT_RAMDISK)/first_stage_ramdisk/fstab.$(TARGET_HARDWARE) \ + device/linaro/dragonboard/shared/utils/sdcard-boot/fstab.sdhci:$(TARGET_COPY_OUT_VENDOR)/etc/fstab.$(TARGET_HARDWARE) + else + PRODUCT_COPY_FILES += \ + device/linaro/dragonboard/shared/utils/sdcard-boot/fstab.mmc:$(TARGET_COPY_OUT_RAMDISK)/first_stage_ramdisk/fstab.$(TARGET_HARDWARE) \ + device/linaro/dragonboard/shared/utils/sdcard-boot/fstab.mmc:$(TARGET_COPY_OUT_VENDOR)/etc/fstab.$(TARGET_HARDWARE) + endif +else + PRODUCT_COPY_FILES += \ + device/linaro/dragonboard/fstab.common:$(TARGET_COPY_OUT_RAMDISK)/first_stage_ramdisk/fstab.$(TARGET_HARDWARE) \ + device/linaro/dragonboard/fstab.common:$(TARGET_COPY_OUT_VENDOR)/etc/fstab.$(TARGET_HARDWARE) +endif + +PRODUCT_VENDOR_PROPERTIES += \ + persist.sys.zram_enabled=1 + PRODUCT_COPY_FILES += \ $(TARGET_KERNEL_DIR)/Image.gz:kernel \ - device/linaro/dragonboard/fstab.common:$(TARGET_COPY_OUT_RAMDISK)/first_stage_ramdisk/fstab.$(TARGET_HARDWARE) \ - device/linaro/dragonboard/fstab.common:$(TARGET_COPY_OUT_VENDOR)/etc/fstab.$(TARGET_HARDWARE) \ device/linaro/dragonboard/init.common.rc:$(TARGET_COPY_OUT_VENDOR)/etc/init/init.$(TARGET_HARDWARE).rc \ device/linaro/dragonboard/init.common.usb.rc:$(TARGET_COPY_OUT_VENDOR)/etc/init/init.$(TARGET_HARDWARE).usb.rc \ frameworks/base/data/keyboards/Generic.kl:$(TARGET_COPY_OUT_VENDOR)/usr/keylayout/$(TARGET_HARDWARE).kl + +# Workaround for the drop of OMX service +PRODUCT_VENDOR_PROPERTIES += \ + debug.stagefright.c2inputsurface=-1 diff --git a/fstab.common b/fstab.common index f1bd034..c618b7a 100644 --- a/fstab.common +++ b/fstab.common @@ -1,8 +1,14 @@ -system /system ext4 noatime,ro,errors=panic wait,logical,first_stage_mount,slotselect +system /system erofs ro wait,logical,first_stage_mount,slotselect /dev/block/platform/soc@0/1d84000.ufshc/by-name/userdata /data ext4 discard,noatime,noauto_da_alloc,data=ordered,user_xattr,barrier=1,inlinecrypt latemount,wait,formattable,fileencryption=aes-256-xts:aes-256-cts:v2+inlinecrypt_optimized,keydirectory=/metadata/vold/metadata_encryption,quota /dev/block/platform/soc@0/1d84000.ufshc/by-name/metadata /metadata ext4 noatime,nosuid,nodev,discard wait,formattable,first_stage_mount,check /dev/block/platform/soc@0/1d84000.ufshc/by-name/misc /misc emmc defaults defaults /devices/platform/soc@0/8804000.sdhci/mmc_host/mmc* auto auto defaults voldmanaged=sdcard1:auto -vendor /vendor ext4 noatime,ro,errors=panic wait,logical,first_stage_mount,slotselect -system_ext /system_ext ext4 noatime,ro,errors=panic wait,logical,first_stage_mount,slotselect -product /product ext4 noatime,ro,errors=panic wait,logical,first_stage_mount,slotselect +/devices/platform/soc@0/8804000.mmc/mmc_host/mmc* auto auto defaults voldmanaged=sdcard1:auto +/devices/platform/soc@0/a8f8800.usb/*/usb* auto auto defaults voldmanaged=usb1:auto +/devices/platform/soc@0/1c00000.pci/*/usb* auto auto defaults voldmanaged=usb2:auto +vendor /vendor erofs ro wait,logical,first_stage_mount,slotselect +system_ext /system_ext erofs ro wait,logical,first_stage_mount,slotselect +product /product erofs ro wait,logical,first_stage_mount,slotselect +system_dlkm /system_dlkm erofs ro wait,logical,first_stage_mount,slotselect +vendor_dlkm /vendor_dlkm erofs ro wait,logical,first_stage_mount,slotselect +/dev/block/zram0 none swap defaults zramsize=75% @@ -41,59 +41,6 @@ PRODUCT_PACKAGES += \ android.hardware.drm-service.clearkey \ android.hardware.drm-service.widevine -# Mesa -PRODUCT_PACKAGES += \ - libGLES_mesa \ - libEGL_mesa \ - libGLESv1_CM_mesa \ - libGLESv2_mesa \ - libgallium_dri \ - libglapi - -TARGET_BUILD_MESA ?= false -ifeq ($(TARGET_BUILD_MESA), true) - PRODUCT_SOONG_NAMESPACES += \ - external/mesa3d -endif - -PRODUCT_PROPERTY_OVERRIDES += \ - ro.hardware.gralloc=minigbm_msm \ - ro.hardware.hwcomposer=drm \ - ro.opengles.version=196608 \ - persist.demo.rotationlock=1 - -# Vulkan -PRODUCT_PACKAGES += \ - vulkan.freedreno - -PRODUCT_COPY_FILES += \ - frameworks/native/data/etc/android.hardware.vulkan.level-1.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.vulkan.level.xml \ - frameworks/native/data/etc/android.hardware.vulkan.version-1_1.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.vulkan.version.xml \ - frameworks/native/data/etc/android.software.vulkan.deqp.level-2021-03-01.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.software.vulkan.deqp.level.xml \ - -PRODUCT_VENDOR_PROPERTIES += \ - ro.hardware.vulkan=freedreno - -# Will need to enable this after ANDROID_external_memory_android_hardware_buffer lands in mesa -#TARGET_USES_VULKAN = true - -# -# Hardware Composer HAL -# -PRODUCT_PACKAGES += \ - hwcomposer.drm \ - android.hardware.graphics.composer@2.3-impl \ - android.hardware.graphics.composer@2.3-service - -# -# Gralloc HAL -# -PRODUCT_PACKAGES += \ - gralloc.minigbm_msm \ - android.hardware.graphics.allocator@4.0-service.minigbm_msm \ - android.hardware.graphics.mapper@4.0-impl.minigbm_msm - - # Use Launcher3QuickStep PRODUCT_PACKAGES += Launcher3QuickStep @@ -117,7 +64,7 @@ PRODUCT_COPY_FILES += \ # Enable BT PRODUCT_PACKAGES += \ - android.hardware.bluetooth@1.1-service.btlinux + android.hardware.bluetooth-service.default PRODUCT_COPY_FILES += \ frameworks/native/data/etc/android.hardware.bluetooth.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.bluetooth.xml \ @@ -150,6 +97,12 @@ PRODUCT_PACKAGES += \ audio.usb.default \ audio.r_submix.default +# Bluetooth Audio AIDL HAL +PRODUCT_PACKAGES += \ + android.hardware.bluetooth.audio-impl \ +PRODUCT_COPY_FILES += \ + frameworks/av/services/audiopolicy/config/bluetooth_audio_policy_configuration_7_0.xml:$(TARGET_COPY_OUT_VENDOR)/etc/bluetooth_audio_policy_configuration_7_0.xml \ + # Build tinyalsa cli tools for debugging PRODUCT_PACKAGES += \ tinyplay \ @@ -157,12 +110,12 @@ PRODUCT_PACKAGES += \ tinymix \ tinypcminfo + # audio policy configuration USE_XML_AUDIO_POLICY_CONF := 1 PRODUCT_COPY_FILES += \ $(LOCAL_PATH)/etc/mixer_paths.xml:$(TARGET_COPY_OUT_VENDOR)/etc/mixer_paths.xml \ $(LOCAL_PATH)/etc/audio_policy_configuration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_policy_configuration.xml \ - $(LOCAL_PATH)/etc/audio_policy_configuration_bluetooth_legacy_hal.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_policy_configuration_bluetooth_legacy_hal.xml \ frameworks/av/services/audiopolicy/config/a2dp_audio_policy_configuration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/a2dp_audio_policy_configuration.xml \ frameworks/av/services/audiopolicy/config/a2dp_in_audio_policy_configuration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/a2dp_in_audio_policy_configuration.xml \ frameworks/av/services/audiopolicy/config/primary_audio_policy_configuration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/primary_audio_policy_configuration.xml \ @@ -207,17 +160,21 @@ PRODUCT_PACKAGES += \ PRODUCT_PACKAGES += \ android.hardware.gatekeeper@1.0-service.software -# Health -PRODUCT_PACKAGES += \ - android.hardware.health@2.1-impl-cuttlefish \ - android.hardware.health@2.1-service +# Health HAL +PRODUCT_PACKAGES += com.google.cf.health + +# Thermal HAL +PRODUCT_PACKAGES += com.android.hardware.thermal # TODO: disable this service once we implement system suspend PRODUCT_PACKAGES += \ suspend_blocker +# dtc and fdtoverlay tools to apply dt overlays # mkbootimg host tool to build boot.img separately PRODUCT_HOST_PACKAGES := \ + dtc \ + fdtoverlay \ mkbootimg # Userspace vendor services for WiFi/Audio to work @@ -230,11 +187,11 @@ PRODUCT_PACKAGES += \ tqftpserv PRODUCT_COPY_FILES += \ - $(LOCAL_PATH)/qcom/init.qcom.rc:$(TARGET_COPY_OUT_VENDOR)/etc/init/init.qcom.rc + $(LOCAL_PATH)/shared/utils/init.utils.rc:$(TARGET_COPY_OUT_VENDOR)/etc/init/init.utils.rc # Copy standard platform config files PRODUCT_COPY_FILES += \ - $(LOCAL_PATH)/ueventd.common.rc:$(TARGET_COPY_OUT_VENDOR)/ueventd.rc \ + $(LOCAL_PATH)/ueventd.common.rc:$(TARGET_COPY_OUT_VENDOR)/etc/ueventd.rc \ frameworks/native/data/etc/android.software.cts.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.software.cts.xml \ frameworks/native/data/etc/android.software.app_widgets.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.software.app_widgets.xml \ frameworks/native/data/etc/android.software.backup.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.software.backup.xml \ @@ -250,6 +207,3 @@ TARGET_PRODUCT_PROP := $(LOCAL_PATH)/product.prop DEVICE_MANIFEST_FILE := device/linaro/dragonboard/manifest.xml DEVICE_MATRIX_FILE := device/linaro/dragonboard/compatibility_matrix.xml - -$(call inherit-product, $(SRC_TARGET_DIR)/product/core_64_bit.mk) -$(call inherit-product, $(SRC_TARGET_DIR)/product/full_base.mk) diff --git a/init.common.rc b/init.common.rc index 51a42c6..42a582f 100644 --- a/init.common.rc +++ b/init.common.rc @@ -16,6 +16,9 @@ on late-fs mount_all /vendor/etc/fstab.${ro.hardware} --late on init + # ZRAM setup + write /sys/block/zram0/comp_algorithm lz4 + # For legacy support # See storage config details at http://source.android.com/tech/storage/ # since /storage is mounted on post-fs in init.rc @@ -59,6 +62,15 @@ on property:sys.boot_completed=1 # little cores, not on bigs to be used only by init write /dev/cpuset/system-background/cpus 0-3 + trigger sys-boot-completed-set + +# We want one opportunity per boot to enable zram, so we +# use a trigger we fire from the above stanza. If +# persist.sys.zram_enabled becomes true after boot, +# we don't want to run swapon_all at that time. +on sys-boot-completed-set && property:persist.sys.zram_enabled=1 + swapon_all + service wpa_supplicant /vendor/bin/hw/wpa_supplicant \ -Dnl80211 -g@android:wpa_wlan0 interface aidl android.hardware.wifi.supplicant.ISupplicant/default diff --git a/installer/rb5/README b/installer/rb5/README index ee59bdb..fc9ae1d 100644 --- a/installer/rb5/README +++ b/installer/rb5/README @@ -2,7 +2,7 @@ These instructions will help you flashing the prebuilt bootloader and AOSP images(built from sources) on rb5. First, make sure you have built the AOSP images for RB5 by -running the rb5-userdebug lunch target. +running the db845c-trunk_staging-userdebug lunch target. Boot the board into fastboot mode: diff --git a/installer/rb5/flash-all-aosp.sh b/installer/rb5/flash-all-aosp.sh index 28eb0e4..d3063c7 100755 --- a/installer/rb5/flash-all-aosp.sh +++ b/installer/rb5/flash-all-aosp.sh @@ -2,10 +2,10 @@ INSTALLER_DIR="`dirname ${0}`" -# for cases that don't run "lunch rb5-userdebug" +# for cases that don't run "lunch db845c-trunk_staging-userdebug" if [ -z "${ANDROID_BUILD_TOP}" ]; then ANDROID_BUILD_TOP="`readlink -f ${INSTALLER_DIR}/../../../../../`" - ANDROID_PRODUCT_OUT="${ANDROID_BUILD_TOP}/out/target/product/rb5" + ANDROID_PRODUCT_OUT="${ANDROID_BUILD_TOP}/out/target/product/db845c" fi if [ ! -d "${ANDROID_PRODUCT_OUT}" ]; then diff --git a/installer/rb5/recovery.sh b/installer/rb5/recovery.sh index 156a16d..626b9a6 100755 --- a/installer/rb5/recovery.sh +++ b/installer/rb5/recovery.sh @@ -2,7 +2,7 @@ INSTALLER_DIR="`dirname ${0}`" -# for cases that don't run "lunch rb5-userdebug" +# for cases that don't run "lunch db845c-trunk_staging-userdebug" if [ -z "${ANDROID_BUILD_TOP}" ]; then ANDROID_BUILD_TOP="`readlink -f ${INSTALLER_DIR}/../../../../../`" fi diff --git a/linaro_swr.mk b/linaro_swr.mk new file mode 100644 index 0000000..2a31395 --- /dev/null +++ b/linaro_swr.mk @@ -0,0 +1,16 @@ +$(call inherit-product, device/linaro/dragonboard/full.mk) +$(call inherit-product, $(SRC_TARGET_DIR)/product/core_64_bit_only.mk) +$(call inherit-product, $(SRC_TARGET_DIR)/product/full_base.mk) + +# Target is using software rendering +TARGET_USES_SWR := true +$(call inherit-product, device/linaro/dragonboard/shared/graphics/drm_hwcomposer/device.mk) +$(call inherit-product, device/linaro/dragonboard/shared/graphics/minigbm_msm/device.mk) +$(call inherit-product, device/linaro/dragonboard/shared/graphics/swangle/device.mk) + +$(call inherit-product, device/linaro/dragonboard/linaro_swr/device.mk) + +# Product overrides +PRODUCT_NAME := linaro_swr +PRODUCT_DEVICE := linaro_swr +PRODUCT_BRAND := Android diff --git a/linaro_swr/Android.mk b/linaro_swr/Android.mk new file mode 100644 index 0000000..6f725c0 --- /dev/null +++ b/linaro_swr/Android.mk @@ -0,0 +1,6 @@ +LOCAL_PATH := $(call my-dir) + +# If some modules are built directly from this directory (not subdirectories), +# their rules should be written here. + +include $(call all-makefiles-under,$(LOCAL_PATH)) diff --git a/linaro_swr/BoardConfig.mk b/linaro_swr/BoardConfig.mk new file mode 100644 index 0000000..9676554 --- /dev/null +++ b/linaro_swr/BoardConfig.mk @@ -0,0 +1,50 @@ +include device/linaro/dragonboard/BoardConfigCommon.mk + +# Primary Arch +TARGET_ARCH := arm64 +TARGET_ARCH_VARIANT := armv8-2a +TARGET_CPU_VARIANT := kryo385 +TARGET_CPU_ABI := arm64-v8a + +# Board Information +TARGET_BOOTLOADER_BOARD_NAME := linaro_swr +TARGET_BOARD_PLATFORM := linaro_swr + +TARGET_NO_KERNEL := false +BOARD_INCLUDE_DTB_IN_BOOTIMG := true +BOARD_BOOT_HEADER_VERSION := 4 +BOARD_MKBOOTIMG_ARGS := --header_version $(BOARD_BOOT_HEADER_VERSION) + +BOARD_KERNEL_BASE := 0x80000000 +BOARD_KERNEL_PAGESIZE := 4096 +BOARD_KERNEL_CMDLINE += earlycon firmware_class.path=/vendor/firmware/ +BOARD_KERNEL_CMDLINE += init=/init printk.devkmsg=on +BOARD_KERNEL_CMDLINE += deferred_probe_timeout=30 +BOARD_KERNEL_CMDLINE += pcie_pme=nomsi #For WiFi to work on rb5 +BOARD_KERNEL_CMDLINE += qcom_geni_serial.con_enabled=1 +BOARD_KERNEL_CMDLINE += console=ttyMSM0,115200n8 +BOARD_BOOTCONFIG := androidboot.hardware=linaro_swr androidboot.boot_devices=soc@0/1d84000.ufshc +BOARD_BOOTCONFIG += androidboot.verifiedbootstate=orange + +# Image Configuration +BOARD_BOOTIMAGE_PARTITION_SIZE := 100663296 #96M +BOARD_VENDOR_BOOTIMAGE_PARTITION_SIZE := 100663296 #96M +BOARD_USERDATAIMAGE_PARTITION_SIZE := 21474836480 #20G +BOARD_FLASH_BLOCK_SIZE := 4096 +# Super partition +BOARD_SUPER_PARTITION_SIZE := 12437225472 +BOARD_DB_DYNAMIC_PARTITIONS_SIZE := 12433031168 # Reserve 4M for DAP metadata +BOARD_SUPER_PARTITION_METADATA_DEVICE := super +BOARD_SUPER_IMAGE_IN_UPDATE_PACKAGE := true +BOARD_DB_DYNAMIC_PARTITIONS_PARTITION_LIST := system vendor system_ext product + +# dlkm partitions +include device/linaro/dragonboard/shared/utils/dlkm_loader/BoardConfig.mk +BOARD_DB_DYNAMIC_PARTITIONS_PARTITION_LIST += system_dlkm vendor_dlkm +BOARD_SEPOLICY_DIRS += device/linaro/dragonboard/shared/utils/dlkm_loader/sepolicy/ + +# Graphics +include device/linaro/dragonboard/shared/graphics/drm_hwcomposer/BoardConfig.mk +BOARD_SEPOLICY_DIRS += \ + device/linaro/dragonboard/shared/graphics/minigbm_msm/sepolicy \ + device/linaro/dragonboard/shared/graphics/swangle/sepolicy diff --git a/linaro_swr/device.mk b/linaro_swr/device.mk new file mode 100644 index 0000000..8219bfb --- /dev/null +++ b/linaro_swr/device.mk @@ -0,0 +1,69 @@ +# +# 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. +# + +# setup dalvik vm configs +$(call inherit-product, frameworks/native/build/tablet-10in-xhdpi-2048-dalvik-heap.mk) + +include $(LOCAL_PATH)/../vendor-package-ver.mk +$(call inherit-product, $(SRC_TARGET_DIR)/product/virtual_ab_ota.mk) + +# dlkm_loader +include device/linaro/dragonboard/shared/utils/dlkm_loader/device.mk +PRODUCT_COPY_FILES += \ + device/linaro/dragonboard/shared/utils/dlkm_loader/dlkm_loader.rc:$(TARGET_COPY_OUT_VENDOR)/etc/init/dlkm_loader.rc + +# Build generic Audio HAL +PRODUCT_PACKAGES += audio.primary.linaro_swr + +# BootControl HAL +PRODUCT_PACKAGES += \ + android.hardware.boot@1.2-impl \ + android.hardware.boot@1.2-impl.recovery \ + android.hardware.boot@1.2-service + +# Set BT address +PRODUCT_PACKAGES += bdaddr + +# Install bdaddr script +PRODUCT_COPY_FILES += \ + device/linaro/dragonboard/shared/utils/bdaddr/set_bdaddr.sh:$(TARGET_COPY_OUT_VENDOR)/bin/set_bdaddr.sh + +# Install scripts to set vendor.* properties +PRODUCT_COPY_FILES += \ + device/linaro/dragonboard/shared/utils/set_hw.sh:$(TARGET_COPY_OUT_VENDOR)/bin/set_hw.sh \ + device/linaro/dragonboard/shared/utils/set_udc.sh:$(TARGET_COPY_OUT_VENDOR)/bin/set_udc.sh + +# Install scripts to set Ethernet MAC address +PRODUCT_COPY_FILES += \ + device/linaro/dragonboard/shared/utils/ethaddr/ethaddr.rc:$(TARGET_COPY_OUT_VENDOR)/etc/init/ethaddr.rc \ + device/linaro/dragonboard/shared/utils/ethaddr/set_ethaddr.sh:$(TARGET_COPY_OUT_VENDOR)/bin/set_ethaddr.sh + +PRODUCT_VENDOR_PROPERTIES += \ + ro.soc.manufacturer=Generic Qcom arm64 arch \ + ro.soc.model=linaro_swr + +PRODUCT_SOONG_NAMESPACES += \ + vendor/linaro/db845c/$(EXPECTED_LINARO_VENDOR_VERSION) \ + vendor/linaro/rb5/$(EXPECTED_LINARO_VENDOR_VERSION) + +# Copy firmware files +$(call inherit-product-if-exists, vendor/linaro/db845c/$(EXPECTED_LINARO_VENDOR_VERSION)/device.mk) +$(call inherit-product-if-exists, vendor/linaro/rb5/$(EXPECTED_LINARO_VENDOR_VERSION)/device.mk) + +TARGET_HARDWARE := linaro_swr +TARGET_KERNEL_USE ?= 6.6 + +include device/linaro/dragonboard/device-common.mk diff --git a/manifest.xml b/manifest.xml index d0a07a3..8643532 100644 --- a/manifest.xml +++ b/manifest.xml @@ -1,4 +1,4 @@ -<manifest version="1.0" type="device" target-level="6"> +<manifest version="1.0" type="device" target-level="7"> <hal format="hidl"> <name>android.hardware.audio</name> <transport>hwbinder</transport> @@ -27,15 +27,6 @@ </interface> </hal> <hal format="hidl"> - <name>android.hardware.bluetooth.audio</name> - <transport>hwbinder</transport> - <version>2.0</version> - <interface> - <name>IBluetoothAudioProvidersFactory</name> - <instance>default</instance> - </interface> - </hal> - <hal format="hidl"> <name>android.hardware.camera.provider</name> <transport>hwbinder</transport> <impl level="generic"></impl> @@ -64,19 +55,6 @@ </interface> </hal> <hal format="hidl"> - <name>android.hardware.media.omx</name> - <transport>hwbinder</transport> - <version>1.0</version> - <interface> - <name>IOmx</name> - <instance>default</instance> - </interface> - <interface> - <name>IOmxStore</name> - <instance>default</instance> - </interface> - </hal> - <hal format="hidl"> <name>android.hardware.soundtrigger</name> <transport>hwbinder</transport> <version>2.3</version> @@ -15,7 +15,7 @@ # $(call inherit-product, $(SRC_TARGET_DIR)/product/core_no_zygote.mk) -$(call inherit-product, device/generic/goldfish/minimal_system.mk) +$(call inherit-product, device/generic/goldfish/fvpbase/minimal_system.mk) $(call inherit-product, $(SRC_TARGET_DIR)/product/runtime_libart.mk) $(call inherit-product, $(SRC_TARGET_DIR)/product/updatable_apex.mk) diff --git a/product.prop b/product.prop index d703af9..19b8fd5 100644 --- a/product.prop +++ b/product.prop @@ -15,12 +15,7 @@ bluetooth.device.class_of_device=90,2,12 bluetooth.profile.asha.central.enabled?=true bluetooth.profile.a2dp.source.enabled?=true bluetooth.profile.avrcp.target.enabled?=true -bluetooth.profile.bap.broadcast.assist.enabled?=true -bluetooth.profile.bap.unicast.client.enabled?=true -bluetooth.profile.bas.client.enabled?=true -bluetooth.profile.csip.set_coordinator.enabled?=true bluetooth.profile.gatt.enabled?=true -bluetooth.profile.hap.client.enabled?=true bluetooth.profile.hfp.ag.enabled?=true bluetooth.profile.hid.device.enabled?=true bluetooth.profile.hid.host.enabled?=true @@ -31,5 +26,12 @@ bluetooth.profile.pan.nap.enabled?=true bluetooth.profile.pan.panu.enabled?=true bluetooth.profile.pbap.server.enabled?=true bluetooth.profile.sap.server.enabled?=true -bluetooth.profile.ccp.server.enabled?=true -bluetooth.profile.vcp.controller.enabled?=true + +# Disable LeAudio related profile as there is no support for it +bluetooth.profile.bap.broadcast.assist.enabled=false +bluetooth.profile.bap.unicast.client.enabled=false +bluetooth.profile.bas.client.enabled=false +bluetooth.profile.ccp.server.enabled=false +bluetooth.profile.csip.set_coordinator.enabled=false +bluetooth.profile.hap.client.enabled=false +bluetooth.profile.vcp.controller.enabled=false diff --git a/qcom/set_hw.sh b/qcom/set_hw.sh deleted file mode 100644 index 98f76c3..0000000 --- a/qcom/set_hw.sh +++ /dev/null @@ -1,12 +0,0 @@ -#! /vendor/bin/sh -# Set vendor.hw property to run device specific services -# -# grep the device name from /proc/device-tree/compatible - -HW=`/vendor/bin/cat /proc/device-tree/compatible | /vendor/bin/grep rb5` - -if [ -z "${HW}" ]; then - setprop vendor.hw db845c -else - setprop vendor.hw rb5 -fi @@ -1,7 +0,0 @@ -$(call inherit-product, device/linaro/dragonboard/full.mk) -$(call inherit-product, device/linaro/dragonboard/rb5/device.mk) - -# Product overrides -PRODUCT_NAME := rb5 -PRODUCT_DEVICE := rb5 -PRODUCT_BRAND := Android diff --git a/rb5/BoardConfig.mk b/rb5/BoardConfig.mk deleted file mode 100644 index 92f536b..0000000 --- a/rb5/BoardConfig.mk +++ /dev/null @@ -1,47 +0,0 @@ -include device/linaro/dragonboard/BoardConfigCommon.mk - -# Primary Arch -TARGET_ARCH := arm64 -TARGET_ARCH_VARIANT := armv8-2a -TARGET_CPU_VARIANT := kryo385 -TARGET_CPU_ABI := arm64-v8a - -# Secondary Arch -TARGET_2ND_ARCH := arm -TARGET_2ND_ARCH_VARIANT := armv8-2a -TARGET_2ND_CPU_VARIANT := kryo385 -TARGET_2ND_CPU_ABI := armeabi-v7a -TARGET_2ND_CPU_ABI2 := armeabi - -# Board Information -TARGET_BOOTLOADER_BOARD_NAME := rb5 -TARGET_BOARD_PLATFORM := rb5 - -TARGET_NO_KERNEL := false -BOARD_KERNEL_BASE := 0x80000000 -BOARD_KERNEL_PAGESIZE := 4096 - -BOARD_INCLUDE_DTB_IN_BOOTIMG := true -BOARD_BOOT_HEADER_VERSION := 4 -BOARD_MKBOOTIMG_ARGS := --header_version $(BOARD_BOOT_HEADER_VERSION) - -BOARD_KERNEL_CMDLINE := earlycon firmware_class.path=/vendor/firmware/ -BOARD_KERNEL_CMDLINE += init=/init printk.devkmsg=on -BOARD_KERNEL_CMDLINE += pcie_pme=nomsi #For WiFi to work -BOARD_KERNEL_CMDLINE += deferred_probe_timeout=30 -BOARD_KERNEL_CMDLINE += qcom_geni_serial.con_enabled=1 -BOARD_KERNEL_CMDLINE += console=ttyMSM0 -BOARD_BOOTCONFIG += androidboot.hardware=rb5 androidboot.boot_devices=soc@0/1d84000.ufshc -BOARD_BOOTCONFIG += androidboot.verifiedbootstate=orange - -# Image Configuration -BOARD_BOOTIMAGE_PARTITION_SIZE := 103079215104 #96M -BOARD_VENDOR_BOOTIMAGE_PARTITION_SIZE := 103079215104 #96M -BOARD_USERDATAIMAGE_PARTITION_SIZE := 21474836480 -BOARD_FLASH_BLOCK_SIZE := 131072 - -# Super/Dynamic partition -BOARD_SUPER_PARTITION_SIZE := 12437225472 -BOARD_DB_DYNAMIC_PARTITIONS_SIZE := 12433031168 # Reserve 4M for DAP metadata -BOARD_SUPER_PARTITION_METADATA_DEVICE := super -BOARD_SUPER_IMAGE_IN_UPDATE_PACKAGE := true diff --git a/rb5/device.mk b/rb5/device.mk deleted file mode 100644 index 6f4f75a..0000000 --- a/rb5/device.mk +++ /dev/null @@ -1,54 +0,0 @@ -# -# 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. -# - -# setup dalvik vm configs -$(call inherit-product, frameworks/native/build/tablet-10in-xhdpi-2048-dalvik-heap.mk) - -include $(LOCAL_PATH)/../vendor-package-ver.mk - -$(call inherit-product, $(SRC_TARGET_DIR)/product/virtual_ab_ota/launch_with_vendor_ramdisk.mk) - -PRODUCT_COPY_FILES := \ - $(LOCAL_PATH)/mixer_paths.xml:$(TARGET_COPY_OUT_VENDOR)/etc/mixer_paths.xml \ - -# Build generic Audio HAL -PRODUCT_PACKAGES += audio.primary.rb5 - -# BootControl HAL -PRODUCT_PACKAGES += \ - android.hardware.boot@1.2-impl \ - android.hardware.boot@1.2-impl.recovery \ - android.hardware.boot@1.2-service - -# Install scripts to set vendor.* properties -PRODUCT_COPY_FILES += \ - device/linaro/dragonboard/qcom/set_hw.sh:$(TARGET_COPY_OUT_VENDOR)/bin/set_hw.sh - -PRODUCT_VENDOR_PROPERTIES += ro.soc.manufacturer=Qualcomm -PRODUCT_VENDOR_PROPERTIES += ro.soc.model=QRB5165 - -PRODUCT_PROPERTY_OVERRIDES += ro.sf.lcd_density=160 - -# Copy firmware files -$(call inherit-product-if-exists, vendor/linaro/rb5/$(EXPECTED_LINARO_VENDOR_VERSION)/device.mk) - -TARGET_DTB := qrb5165-rb5.dtb -TARGET_HARDWARE := rb5 -TARGET_KERNEL_USE ?= 5.15 - -include device/linaro/dragonboard/device-common.mk - -PRODUCT_COPY_FILES += $(TARGET_KERNEL_DIR)/qrb5165-rb5.dtb:dtb.img diff --git a/rb5/mixer_paths.xml b/rb5/mixer_paths.xml deleted file mode 100644 index 86e67fc..0000000 --- a/rb5/mixer_paths.xml +++ /dev/null @@ -1,5 +0,0 @@ -<?xml version="1.0" encoding="ISO-8859-1"?> -<mixer> - <!-- Enable HDMI out --> - <ctl name="TERT_MI2S_RX Audio Mixer MultiMedia1" value="1" /> -</mixer> diff --git a/rb5_mini.mk b/rb5_mini.mk deleted file mode 100644 index 302e217..0000000 --- a/rb5_mini.mk +++ /dev/null @@ -1,7 +0,0 @@ -$(call inherit-product, device/linaro/dragonboard/mini.mk) -$(call inherit-product, device/linaro/dragonboard/rb5/device.mk) - -# Product overrides -PRODUCT_NAME := rb5_mini -PRODUCT_DEVICE := rb5 -PRODUCT_BRAND := Android diff --git a/sepolicy/eth_mac_addr.te b/sepolicy/eth_mac_addr.te deleted file mode 100644 index d2e4e1a..0000000 --- a/sepolicy/eth_mac_addr.te +++ /dev/null @@ -1,12 +0,0 @@ -type eth_mac_addr, domain, coredomain; -type eth_mac_addr_exec, exec_type, system_file_type, file_type; -init_daemon_domain(eth_mac_addr); - -allow eth_mac_addr proc_cmdline:file { open read }; -allow eth_mac_addr rootfs:dir { open read }; -allow eth_mac_addr self:capability net_admin; -allow eth_mac_addr self:netlink_route_socket { bind create getattr nlmsg_readpriv nlmsg_write read setopt write }; -allow eth_mac_addr self:udp_socket { create ioctl }; -allow eth_mac_addr shell_exec:file { execute getattr map read }; -allow eth_mac_addr system_file:file execute_no_trans; -allow eth_mac_addr toolbox_exec:file { execute execute_no_trans getattr map open read }; diff --git a/sepolicy/file_contexts b/sepolicy/file_contexts index d7419dc..660539c 100644 --- a/sepolicy/file_contexts +++ b/sepolicy/file_contexts @@ -5,6 +5,7 @@ /dev/block/platform/soc@0/1d84000\.ufshc/by-name/super u:object_r:super_block_device:s0 /dev/block/platform/soc@0/1d84000\.ufshc/by-name/userdata u:object_r:userdata_block_device:s0 /dev/block/platform/soc@0/1d84000\.ufshc/by-name/misc u:object_r:misc_block_device:s0 +/dev/block/zram0 u:object_r:swap_block_device:s0 /dev/dri u:object_r:dri_device:s0 /dev/dri/card0 u:object_r:graphics_device:s0 @@ -20,6 +21,7 @@ /sys/devices/platform/soc@0/8300000.remoteproc u:object_r:sysfs_remoteproc:s0 /sys/devices/platform/soc@0/17300000.remoteproc u:object_r:sysfs_remoteproc:s0 /sys/devices/platform/soc@0/ae00000.mdss u:object_r:sysfs_gpu:s0 +/sys/devices/platform/soc@0/ae00000.display-subsystem u:object_r:sysfs_gpu:s0 #wakeups on db845c /sys/devices/platform/soc@0/1c00000.pci/pci0000:00/0000:00:00.0/0000:01:00.0/wakeup/wakeup1 u:object_r:sysfs_wakeup:s0 @@ -48,30 +50,28 @@ /data/vendor/readwrite(/.*)? u:object_r:tqftpserv_vendor_data_file:s0 /data/vendor/readonly(/.*)? u:object_r:tqftpserv_vendor_data_file:s0 -/system/bin/eth_mac_addr\.sh u:object_r:eth_mac_addr_exec:s0 /system/bin/tinymix u:object_r:tinymix_exec:s0 /vendor/bin/grep u:object_r:vendor_toolbox_exec:s0 +/vendor/bin/ifconfig u:object_r:vendor_toolbox_exec:s0 /vendor/bin/hw/android\.hardware\.gatekeeper@1\.0-service\.software u:object_r:hal_gatekeeper_default_exec:s0 -/vendor/bin/hw/android\.hardware\.graphics\.allocator@4\.0-service\.minigbm_msm u:object_r:hal_graphics_allocator_default_exec:s0 /vendor/bin/pd-mapper u:object_r:pd_mapper_exec:s0 /vendor/bin/qrtr-cfg u:object_r:qrtr_exec:s0 /vendor/bin/qrtr-ns u:object_r:qrtr_exec:s0 /vendor/bin/rmtfs u:object_r:rmtfs_exec:s0 /vendor/bin/tqftpserv u:object_r:tqftpserv_exec:s0 /vendor/bin/suspend_blocker u:object_r:suspend_blocker_exec:s0 +/vendor/bin/set_bdaddr\.sh u:object_r:set_bdaddr_exec:s0 +/vendor/bin/set_ethaddr\.sh u:object_r:set_ethaddr_exec:s0 /vendor/bin/set_hw\.sh u:object_r:set_hw_exec:s0 /vendor/bin/set_udc\.sh u:object_r:set_udc_exec:s0 /vendor/lib(64)?/dri/.* u:object_r:same_process_hal_file:s0 /vendor/lib(64)?/hw/gralloc\.gbm\.so u:object_r:same_process_hal_file:s0 /vendor/lib(64)?/hw/android\.hardware\.health@2\.0-impl-2\.1-cuttlefish\.so u:object_r:same_process_hal_file:s0 -/vendor/lib(64)?/hw/gralloc\.minigbm_msm\.so u:object_r:same_process_hal_file:s0 -/vendor/lib(64)?/hw/android\.hardware\.graphics\.mapper@4\.0-impl\.minigbm_msm\.so u:object_r:same_process_hal_file:s0 /vendor/lib(64)?/hw/vulkan\.freedreno\.so u:object_r:same_process_hal_file:s0 /vendor/lib(64)?/libdrm\.so u:object_r:same_process_hal_file:s0 /vendor/lib(64)?/libdrm_freedreno\.so u:object_r:same_process_hal_file:s0 /vendor/lib(64)?/libgbm_mesa\.so u:object_r:same_process_hal_file:s0 /vendor/lib(64)?/libglapi\.so u:object_r:same_process_hal_file:s0 -/vendor/lib(64)?/libminigbm_gralloc_msm\.so u:object_r:same_process_hal_file:s0 /vendor/lib(64)?/libqrtr\.so u:object_r:same_process_hal_file:s0 diff --git a/sepolicy/genfs_contexts b/sepolicy/genfs_contexts index 2a50d9c..4d7f4ea 100644 --- a/sepolicy/genfs_contexts +++ b/sepolicy/genfs_contexts @@ -6,6 +6,7 @@ genfscon sysfs /devices/platform/soc@0/4080000.remoteproc u:object_r:sysfs genfscon sysfs /devices/platform/soc@0/8300000.remoteproc u:object_r:sysfs_remoteproc:s0 genfscon sysfs /devices/platform/soc@0/17300000.remoteproc u:object_r:sysfs_remoteproc:s0 genfscon sysfs /devices/platform/soc@0/ae00000.mdss u:object_r:sysfs_gpu:s0 +genfscon sysfs /devices/platform/soc@0/ae00000.display-subsystem u:object_r:sysfs_gpu:s0 genfscon sysfs /class/udc u:object_r:sysfs_udc:s0 genfscon sysfs /firmware/devicetree/base/compatible u:object_r:sysfs_dt_compatible:s0 diff --git a/sepolicy/rmtfs.te b/sepolicy/rmtfs.te index 7cef38f..91f8d33 100644 --- a/sepolicy/rmtfs.te +++ b/sepolicy/rmtfs.te @@ -11,5 +11,6 @@ allow rmtfs self:qipcrtr_socket { bind create getattr read setopt write }; allow rmtfs sysfs_mss:dir { open read search }; allow rmtfs sysfs_remoteproc:dir { open read search }; allow rmtfs sysfs_remoteproc:file { open write }; +allow rmtfs sysfs_remoteproc:file read; allow rmtfs sysfs_rmtfs:dir search; allow rmtfs sysfs_rmtfs:file { open read }; diff --git a/sepolicy/set_bdaddr.te b/sepolicy/set_bdaddr.te new file mode 100644 index 0000000..c7fa166 --- /dev/null +++ b/sepolicy/set_bdaddr.te @@ -0,0 +1,12 @@ +type set_bdaddr, domain; +type set_bdaddr_exec, exec_type, vendor_file_type, file_type; +init_daemon_domain(set_bdaddr); + +# audit2allow +allow set_bdaddr proc_cmdline:file { open read }; +allow set_bdaddr proc_bootconfig:file { open read }; +allow set_bdaddr rootfs:dir { open read }; +allow set_bdaddr self:bluetooth_socket { bind create read write }; +allow set_bdaddr self:capability net_admin; +allow set_bdaddr vendor_file:file execute_no_trans; +allow set_bdaddr vendor_toolbox_exec:file execute_no_trans; diff --git a/sepolicy/set_ethaddr.te b/sepolicy/set_ethaddr.te new file mode 100644 index 0000000..2f92368 --- /dev/null +++ b/sepolicy/set_ethaddr.te @@ -0,0 +1,13 @@ +type set_ethaddr, domain; +type set_ethaddr_exec, exec_type, vendor_file_type, file_type; +init_daemon_domain(set_ethaddr); + +allow set_ethaddr proc_cmdline:file { open read }; +allow set_ethaddr proc_bootconfig:file { open read }; +allow set_ethaddr rootfs:dir { open read }; +allow set_ethaddr self:capability net_admin; +allow set_ethaddr self:capability sys_module; +allow set_ethaddr self:udp_socket create_socket_perms; +allow set_ethaddr vendor_file:file execute_no_trans; +allow set_ethaddr vendor_toolbox_exec:file execute_no_trans; +allowxperm set_ethaddr self:udp_socket ioctl { SIOCSIFFLAGS SIOCSIFHWADDR }; diff --git a/sepolicy/tqftpserv.te b/sepolicy/tqftpserv.te index d437c0d..6838c12 100644 --- a/sepolicy/tqftpserv.te +++ b/sepolicy/tqftpserv.te @@ -7,4 +7,4 @@ allow tqftpserv self:qipcrtr_socket { connect create getattr read setopt write } allow tqftpserv sysfs_remoteproc:dir { open read search }; allow tqftpserv sysfs_remoteproc:file { open read }; allow tqftpserv tqftpserv_vendor_data_file:dir { add_name create open read search write }; -allow tqftpserv tqftpserv_vendor_data_file:file { create open write }; +allow tqftpserv tqftpserv_vendor_data_file:file { create getattr open read write }; diff --git a/shared/graphics/drm_hwcomposer/BoardConfig.mk b/shared/graphics/drm_hwcomposer/BoardConfig.mk new file mode 100644 index 0000000..8c35fbf --- /dev/null +++ b/shared/graphics/drm_hwcomposer/BoardConfig.mk @@ -0,0 +1,19 @@ +# +# 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. +# + +# DRM hwcomposer +BOARD_USES_DRM_HWCOMPOSER := true +TARGET_USES_HWC2 := true diff --git a/shared/graphics/drm_hwcomposer/device.mk b/shared/graphics/drm_hwcomposer/device.mk new file mode 100644 index 0000000..7e3c75e --- /dev/null +++ b/shared/graphics/drm_hwcomposer/device.mk @@ -0,0 +1,24 @@ +# +# Copyright (C) 2014 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. +# + +# Hardware Composer HAL +PRODUCT_PACKAGES := \ + hwcomposer.drm \ + android.hardware.graphics.composer@2.3-impl \ + android.hardware.graphics.composer@2.3-service + +PRODUCT_PROPERTY_OVERRIDES := \ + ro.hardware.hwcomposer=drm diff --git a/shared/graphics/mesa/BoardConfig.mk b/shared/graphics/mesa/BoardConfig.mk new file mode 100644 index 0000000..e05a372 --- /dev/null +++ b/shared/graphics/mesa/BoardConfig.mk @@ -0,0 +1,24 @@ +# +# 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. +# + +BOARD_GPU_DRIVERS := freedreno +ifeq ($(TARGET_BUILD_MESA),true) +BOARD_MESA3D_USES_MESON_BUILD := true +BOARD_MESA3D_GALLIUM_DRIVERS := freedreno zink +BOARD_MESA3D_VULKAN_DRIVERS := freedreno +else +BOARD_USE_CUSTOMIZED_MESA := true +endif diff --git a/shared/graphics/mesa/device.mk b/shared/graphics/mesa/device.mk new file mode 100644 index 0000000..027a42a --- /dev/null +++ b/shared/graphics/mesa/device.mk @@ -0,0 +1,56 @@ +# +# Copyright (C) 2014 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. +# + +# GLES +PRODUCT_PACKAGES := \ + libGLES_mesa \ + libEGL_mesa \ + libGLESv1_CM_mesa \ + libGLESv2_mesa \ + libgallium_dri \ + libglapi + +TARGET_BUILD_MESA ?= false +ifeq ($(TARGET_BUILD_MESA), true) + PRODUCT_SOONG_NAMESPACES += \ + external/mesa3d +endif + +PRODUCT_PROPERTY_OVERRIDES := \ + ro.sf.lcd_density=160 \ + ro.hardware.egl=mesa \ + ro.opengles.version=196608 \ + persist.demo.rotationlock=1 + +PRODUCT_COPY_FILES += \ + frameworks/native/data/etc/android.hardware.opengles.aep.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.opengles.aep.xml \ + frameworks/native/data/etc/android.software.opengles.deqp.level-2022-03-01.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.software.opengles.deqp.level.xml + +# Vulkan +PRODUCT_PACKAGES += \ + vulkan.freedreno + +PRODUCT_COPY_FILES += \ + frameworks/native/data/etc/android.hardware.vulkan.compute-0.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.vulkan.compute.xml \ + frameworks/native/data/etc/android.hardware.vulkan.level-1.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.vulkan.level.xml \ + frameworks/native/data/etc/android.hardware.vulkan.version-1_1.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.vulkan.version.xml \ + frameworks/native/data/etc/android.software.vulkan.deqp.level-2021-03-01.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.software.vulkan.deqp.level.xml + +PRODUCT_VENDOR_PROPERTIES += \ + ro.hardware.vulkan=freedreno + +# Will need to enable this after ANDROID_external_memory_android_hardware_buffer lands in Freedreno +#TARGET_USES_VULKAN = true diff --git a/shared/graphics/minigbm_msm/device.mk b/shared/graphics/minigbm_msm/device.mk new file mode 100644 index 0000000..b7c1caa --- /dev/null +++ b/shared/graphics/minigbm_msm/device.mk @@ -0,0 +1,28 @@ +# +# Copyright (C) 2014 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_PACKAGES := \ + gralloc.minigbm_msm \ + android.hardware.graphics.allocator@4.0-service.minigbm_msm \ + android.hardware.graphics.mapper@4.0-impl.minigbm_msm + +PRODUCT_PROPERTY_OVERRIDES := \ + ro.hardware.gralloc=minigbm_msm + +ifeq ($(TARGET_USES_SWR), true) +PRODUCT_VENDOR_PROPERTIES := \ + vendor.minigbm.debug=nocompression +endif diff --git a/shared/graphics/minigbm_msm/sepolicy/file_contexts b/shared/graphics/minigbm_msm/sepolicy/file_contexts new file mode 100644 index 0000000..3cd05e9 --- /dev/null +++ b/shared/graphics/minigbm_msm/sepolicy/file_contexts @@ -0,0 +1,11 @@ +/vendor/bin/hw/android\.hardware\.graphics\.allocator-service\.minigbm u:object_r:hal_graphics_allocator_default_exec:s0 +/vendor/bin/hw/android\.hardware\.graphics\.allocator@4\.0-service\.minigbm u:object_r:hal_graphics_allocator_default_exec:s0 +/vendor/bin/hw/android\.hardware\.graphics\.allocator@4\.0-service\.minigbm_msm u:object_r:hal_graphics_allocator_default_exec:s0 + +/vendor/lib(64)?/libminigbm_gralloc.so u:object_r:same_process_hal_file:s0 +/vendor/lib(64)?/libminigbm_gralloc4_utils.so u:object_r:same_process_hal_file:s0 +/vendor/lib(64)?/libminigbm_gralloc_msm\.so u:object_r:same_process_hal_file:s0 +/vendor/lib(64)?/hw/android\.hardware\.graphics\.mapper@4\.0-impl\.minigbm\.so u:object_r:same_process_hal_file:s0 +/vendor/lib(64)?/hw/android\.hardware\.graphics\.mapper@4\.0-impl\.minigbm_msm\.so u:object_r:same_process_hal_file:s0 +/vendor/lib(64)?/hw/gralloc\.minigbm_msm\.so u:object_r:same_process_hal_file:s0 +/vendor/lib(64)?/hw/mapper\.minigbm\.so u:object_r:same_process_hal_file:s0 diff --git a/shared/graphics/minigbm_msm/sepolicy/minigbm_debug.te b/shared/graphics/minigbm_msm/sepolicy/minigbm_debug.te new file mode 100644 index 0000000..fef3164 --- /dev/null +++ b/shared/graphics/minigbm_msm/sepolicy/minigbm_debug.te @@ -0,0 +1,33 @@ +vendor_public_prop(vendor_minigbm_debug_prop) +set_prop(vendor_init, vendor_minigbm_debug_prop) + +# +# audit2allow +# + +#============= bootanim ============== +allow bootanim vendor_minigbm_debug_prop:file { getattr map open read }; + +#============= hal_graphics_allocator_default ============== +allow hal_graphics_allocator_default vendor_minigbm_debug_prop:file { getattr map open read }; + +#============= hal_graphics_composer_default ============== +allow hal_graphics_composer_default vendor_minigbm_debug_prop:file { getattr map open read }; + +#============= platform_app ============== +allow platform_app vendor_minigbm_debug_prop:file { getattr map open read }; + +#============= priv_app ============== +allow priv_app vendor_minigbm_debug_prop:file { getattr map open read }; + +#============= surfaceflinger ============== +allow surfaceflinger vendor_minigbm_debug_prop:file { getattr map open read }; + +#============= system_app ============== +allow system_app vendor_minigbm_debug_prop:file { getattr map open read }; + +#============= system_server ============== +allow system_server vendor_minigbm_debug_prop:file { getattr map open read }; + +#============= untrusted_app_xx ============== +allow appdomain -isolated_app_all vendor_minigbm_debug_prop:file { getattr map open read }; diff --git a/shared/graphics/minigbm_msm/sepolicy/property_contexts b/shared/graphics/minigbm_msm/sepolicy/property_contexts new file mode 100644 index 0000000..f6a7d01 --- /dev/null +++ b/shared/graphics/minigbm_msm/sepolicy/property_contexts @@ -0,0 +1 @@ +vendor.minigbm.debug u:object_r:vendor_minigbm_debug_prop:s0 diff --git a/shared/graphics/swangle/device.mk b/shared/graphics/swangle/device.mk new file mode 100644 index 0000000..6f85a0e --- /dev/null +++ b/shared/graphics/swangle/device.mk @@ -0,0 +1,52 @@ +# +# Copyright (C) 2014 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. +# + +# TODO(b/65201432): Swiftshader needs to create executable memory. +PRODUCT_REQUIRES_INSECURE_EXECMEM_FOR_SWIFTSHADER := true + +# ANGLE provides an OpenGL implementation built on top of Vulkan. +PRODUCT_PACKAGES := \ + libEGL_angle \ + libGLESv1_CM_angle \ + libGLESv2_angle + +PRODUCT_VENDOR_PROPERTIES := \ + ro.hardware.egl=angle \ + +PRODUCT_PROPERTY_OVERRIDES := \ + ro.sf.lcd_density=160 \ + ro.opengles.version=196608 \ + persist.demo.rotationlock=1 + +PRODUCT_COPY_FILES := \ + frameworks/native/data/etc/android.hardware.opengles.aep.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.opengles.aep.xml \ + frameworks/native/data/etc/android.software.opengles.deqp.level-2022-03-01.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.software.opengles.deqp.level.xml + +# Vulkan +TARGET_VULKAN_SUPPORT := true +TARGET_USES_VULKAN := true + +PRODUCT_PACKAGES += vulkan.pastel + +PRODUCT_COPY_FILES += \ + frameworks/native/data/etc/android.hardware.vulkan.compute-0.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.vulkan.compute.xml \ + frameworks/native/data/etc/android.hardware.vulkan.level-1.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.vulkan.level.xml \ + frameworks/native/data/etc/android.hardware.vulkan.version-1_1.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.vulkan.version.xml \ + frameworks/native/data/etc/android.software.vulkan.deqp.level-2021-03-01.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.software.vulkan.deqp.level.xml + +PRODUCT_VENDOR_PROPERTIES += \ + debug.hwui.renderer=skiagl \ + ro.hardware.vulkan=pastel diff --git a/shared/graphics/swangle/sepolicy/file_contexts b/shared/graphics/swangle/sepolicy/file_contexts new file mode 100644 index 0000000..472f013 --- /dev/null +++ b/shared/graphics/swangle/sepolicy/file_contexts @@ -0,0 +1,5 @@ +/vendor/lib(64)?/hw/vulkan.pastel.so u:object_r:same_process_hal_file:s0 +/vendor/lib(64)?/libEGL_angle\.so u:object_r:same_process_hal_file:s0 +/vendor/lib(64)?/libGLESv1_CM_angle\.so u:object_r:same_process_hal_file:s0 +/vendor/lib(64)?/libGLESv2_angle\.so u:object_r:same_process_hal_file:s0 +/vendor/lib(64)?/libfeature_support_angle\.so u:object_r:same_process_hal_file:s0 diff --git a/shared/graphics/swangle/sepolicy/sw_execmem.te b/shared/graphics/swangle/sepolicy/sw_execmem.te new file mode 100644 index 0000000..0844c3c --- /dev/null +++ b/shared/graphics/swangle/sepolicy/sw_execmem.te @@ -0,0 +1,5 @@ +# TODO(b/65201432): Swiftshader needs to create executable memory. +allow bootanim self:process execmem; +allow surfaceflinger self:process execmem; +allow system_server self:process execmem; +allow zygote self:process execmem; diff --git a/shared/utils/bdaddr/Android.bp b/shared/utils/bdaddr/Android.bp new file mode 100644 index 0000000..fe1eb29 --- /dev/null +++ b/shared/utils/bdaddr/Android.bp @@ -0,0 +1,28 @@ +// +// Copyright (C) 2023 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. + +package { + default_applicable_licenses: ["Android-Apache-2.0"], +} + +cc_binary { + name: "bdaddr", + relative_install_path: "hw", + vendor: true, + + srcs: ["bdaddr.c"], + shared_libs: ["liblog"], + init_rc: ["bdaddr.rc"], +} diff --git a/shared/utils/bdaddr/bdaddr.c b/shared/utils/bdaddr/bdaddr.c new file mode 100644 index 0000000..d71fcfc --- /dev/null +++ b/shared/utils/bdaddr/bdaddr.c @@ -0,0 +1,215 @@ +/* + * Copyright 2023 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. + */ + +#define LOG_TAG "bdaddr" + +#include <stdint.h> +#include <errno.h> +#include <string.h> +#include <stdio.h> +#include <sys/socket.h> +#include <log/log.h> + +#define HCI_DEV_NONE 0xffff +#define HCI_CHANNEL_CONTROL 3 +#define BTPROTO_HCI 1 + +struct sockaddr_hci { + sa_family_t hci_family; + uint16_t hci_dev; + uint16_t hci_channel; +}; + +#define BTMGMT_CMD_READ_CONFIG_INFO 0x0037 +#define BTMGMT_CMD_SET_PUBLIC_ADDR 0x0039 +#define BTMGMT_EV_CMD_COMPLETE 0x0001 +#define BTMGMT_EV_CMD_STATUS 0x0002 +#define BTMGMT_EV_UNCONF_INDEX_ADDED 0x001d +#define BTMGMT_OPT_PUBLIC_ADDRESS (1 << 1) +#define BTMGMT_ERR_INVALID_INDEX 0x11 + +struct btmgmt_hdr { + uint16_t cmd; + uint16_t id; + uint16_t len; +} __attribute__((packed)); + +struct btmgmt_cmd_set_public_addr { + struct btmgmt_hdr hdr; + uint8_t addr[6]; +} __attribute__((packed)); + +struct btmgmt_ev_cmd_status { + struct btmgmt_hdr hdr; + uint16_t cmd; + uint8_t status; +} __attribute__((packed)); + +struct btmgmt_ev_cc_config_info { + struct btmgmt_ev_cmd_status ev; + uint16_t manufacturer; + uint32_t supported_options; + uint32_t missing_options; +} __attribute__((packed)); + +// TODO: Make this configurable +#define HCI_CONTROLLER 0 + +#define MAC_ADDRESS_SIZE 6 +#define MAC_ADDRESS_LENGTH (MAC_ADDRESS_SIZE*2 + MAC_ADDRESS_SIZE-1) +#define MAC_ADDRESS_FORMAT "%02hhx:%02hhx:%02hhx:%02hhx:%02hhx:%02hhx" +#define MAC_ADDRESS_ARGS(addr) \ + (addr)[5], (addr)[4], (addr)[3], (addr)[2], (addr)[1], (addr)[0] + +#define MESSAGE_BUFFER 512 + +static int btmgmt_connect() { + int s = socket(PF_BLUETOOTH, SOCK_RAW | SOCK_CLOEXEC, BTPROTO_HCI); + if (s < 0) + return -1; + + struct sockaddr_hci addr = { + .hci_family = AF_BLUETOOTH, + .hci_dev = HCI_DEV_NONE, + .hci_channel = HCI_CHANNEL_CONTROL, + }; + if (bind(s, (struct sockaddr*) &addr, sizeof(addr)) < 0) { + close(s); + return -1; + } + + return s; +} + +static void btmgmt_request_config_info(int s) { + struct btmgmt_hdr cmd = { + .cmd = BTMGMT_CMD_READ_CONFIG_INFO, + .id = HCI_CONTROLLER, + .len = 0, + }; + + if (write(s, &cmd, sizeof(cmd)) < 0) { + ALOGE("Failed to request controller configuration information: %s", + strerror(errno)); + } +} + +static void btmgmt_set_public_addr(int s, const uint8_t bdaddr[MAC_ADDRESS_SIZE]) { + struct btmgmt_cmd_set_public_addr cmd = { + .hdr = { + .cmd = BTMGMT_CMD_SET_PUBLIC_ADDR, + .id = HCI_CONTROLLER, + .len = sizeof(cmd) - sizeof(cmd.hdr), + }, + }; + memcpy(cmd.addr, bdaddr, sizeof(cmd.addr)); + + if (write(s, &cmd, sizeof(cmd)) != sizeof(cmd)) { + ALOGE("Failed to write set public address command: %s", strerror(errno)); + } +} + +static void btmgmt_complete_set_public_addr(struct btmgmt_ev_cmd_status* ev, + const uint8_t bdaddr[MAC_ADDRESS_SIZE]) { + if (ev->status == 0) { + ALOGI("Updated public address to " MAC_ADDRESS_FORMAT, + MAC_ADDRESS_ARGS(bdaddr)); + } else { + ALOGE("Failed to update public address to " MAC_ADDRESS_FORMAT + ": error 0x%x", MAC_ADDRESS_ARGS(bdaddr), ev->status); + } +} + +static bool btmgmt_config_needs_public_addr(struct btmgmt_ev_cmd_status* ev) { + struct btmgmt_ev_cc_config_info* info = (struct btmgmt_ev_cc_config_info*) ev; + if (info->ev.status) { + if (info->ev.status != BTMGMT_ERR_INVALID_INDEX) + ALOGE("Failed to read controller configuration information: 0x%x", + info->ev.status); + return false; + } + + if (info->ev.hdr.cmd != BTMGMT_EV_CMD_COMPLETE + || info->ev.hdr.len < sizeof(*info) - sizeof(info->ev.hdr)) + return false; + + if (info->missing_options & BTMGMT_OPT_PUBLIC_ADDRESS) { + return true; + } else { + ALOGD("Controller is already configured with a public address"); + return false; + } +} + +int main(int argc, char* argv[]) { + if (argc < 2) { + ALOGE("Usage: bdaddr <bdaddr>"); + return 1; + } + + uint8_t bdaddr[MAC_ADDRESS_SIZE]; + if (strlen(argv[1]) != MAC_ADDRESS_LENGTH + || sscanf(argv[1], MAC_ADDRESS_FORMAT, + &bdaddr[5], &bdaddr[4], &bdaddr[3], + &bdaddr[2], &bdaddr[1], &bdaddr[0]) != MAC_ADDRESS_SIZE) { + ALOGE("Invalid MAC address: %s", argv[1]); + return 1; + } + + int s = btmgmt_connect(); + if (s < 0) { + ALOGE("Failed to create Bluetooth management socket: %s", strerror(errno)); + return 1; + } + + btmgmt_request_config_info(s); + + char buf[MESSAGE_BUFFER]; + struct btmgmt_hdr* hdr = (struct btmgmt_hdr*) buf; + struct btmgmt_ev_cmd_status* ev = (struct btmgmt_ev_cmd_status*) hdr; + + while (true) { + ssize_t len = read(s, buf, sizeof(buf)); + if (len < (ssize_t) sizeof(struct btmgmt_hdr)) + continue; + if (len < (ssize_t) sizeof(struct btmgmt_hdr) + hdr->len) + continue; + if (hdr->id != HCI_CONTROLLER) + continue; + + switch (hdr->cmd) { + case BTMGMT_EV_CMD_COMPLETE: + case BTMGMT_EV_CMD_STATUS: + if (hdr->len < sizeof(*ev) - sizeof(hdr)) + continue; + + switch (ev->cmd) { + case BTMGMT_CMD_READ_CONFIG_INFO: + if (btmgmt_config_needs_public_addr(ev)) + btmgmt_set_public_addr(s, bdaddr); + break; + case BTMGMT_CMD_SET_PUBLIC_ADDR: + btmgmt_complete_set_public_addr(ev, bdaddr); + break; + } + + break; + case BTMGMT_EV_UNCONF_INDEX_ADDED: + btmgmt_request_config_info(s); + break; + } + } +} diff --git a/shared/utils/bdaddr/bdaddr.rc b/shared/utils/bdaddr/bdaddr.rc new file mode 100644 index 0000000..d6edb64 --- /dev/null +++ b/shared/utils/bdaddr/bdaddr.rc @@ -0,0 +1,22 @@ +# +# Copyright (C) 2023 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. +# + +service set_bdaddr /vendor/bin/set_bdaddr.sh + class core + user root + group system + capabilities NET_ADMIN + oneshot diff --git a/shared/utils/bdaddr/set_bdaddr.sh b/shared/utils/bdaddr/set_bdaddr.sh new file mode 100644 index 0000000..e59fa39 --- /dev/null +++ b/shared/utils/bdaddr/set_bdaddr.sh @@ -0,0 +1,40 @@ +#! /vendor/bin/sh +# Set Bluetooth address (BT_ADDR). + +# +# Copyright (C) 2023 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. +# + +# Get the unique board serial number from /proc/cmdline or +# /proc/bootconfig, prepend '0's to the serial number to +# fill 5 LSBs of the BT address and prepend "C0" as MSB to +# prepare a 6 byte Bluetooth Random Static Address. Reference: +# https://www.bluetooth.com/wp-content/uploads/2022/05/Bluetooth_LE_Primer_Paper.pdf [Page 23] +# +# Format the output in xx:xx:xx:xx:xx:xx format for the +# "bdaddr" command to work. + +BTADDR=`/vendor/bin/cat /proc/cmdline | /vendor/bin/grep -o serialno.* |\ + /vendor/bin/cut -f2 -d'=' | /vendor/bin/awk '{printf("c0%010s\n", $1)}' |\ + /vendor/bin/sed 's/\(..\)/\1:/g' | /vendor/bin/sed '$s/:$//'` +if [ -z "${BTADDR}" ] +then + BTADDR=`/vendor/bin/cat /proc/bootconfig | /vendor/bin/grep -o serialno.* |\ + /vendor/bin/cut -f2 -d'=' | /vendor/bin/cut -c 3-10 |\ + /vendor/bin/awk '{printf("c0%010s\n", $1)}' |\ + /vendor/bin/sed 's/\(..\)/\1:/g' | /vendor/bin/sed '$s/:$//'` +fi + +/vendor/bin/hw/bdaddr "${BTADDR}" diff --git a/shared/utils/dlkm_loader/BoardConfig.mk b/shared/utils/dlkm_loader/BoardConfig.mk new file mode 100644 index 0000000..3028b37 --- /dev/null +++ b/shared/utils/dlkm_loader/BoardConfig.mk @@ -0,0 +1,7 @@ +# system_dlkm partition +BOARD_USES_SYSTEM_DLKMIMAGE := true +BOARD_SYSTEM_DLKMIMAGE_FILE_SYSTEM_TYPE := erofs +TARGET_COPY_OUT_SYSTEM_DLKM := system_dlkm +BOARD_USES_VENDOR_DLKMIMAGE := true +BOARD_VENDOR_DLKMIMAGE_FILE_SYSTEM_TYPE := erofs +TARGET_COPY_OUT_VENDOR_DLKM := vendor_dlkm diff --git a/shared/utils/dlkm_loader/device.mk b/shared/utils/dlkm_loader/device.mk new file mode 100644 index 0000000..d4df84c --- /dev/null +++ b/shared/utils/dlkm_loader/device.mk @@ -0,0 +1,11 @@ +AB_OTA_PARTITIONS += system_dlkm vendor_dlkm +PRODUCT_PACKAGES += dlkm_loader + +# List of modules that should not load automatically +ifeq ($(TARGET_SDCARD_BOOT), true) +PRODUCT_COPY_FILES += \ + device/linaro/dragonboard/shared/utils/dlkm_loader/vendor_ramdisk.modules.blocklist:$(TARGET_COPY_OUT_RAMDISK)/lib/modules/modules.blocklist +else +PRODUCT_COPY_FILES += \ + device/linaro/dragonboard/shared/utils/dlkm_loader/vendor_ramdisk.modules.blocklist:$(TARGET_COPY_OUT_VENDOR_RAMDISK)/lib/modules/modules.blocklist +endif diff --git a/shared/utils/dlkm_loader/dlkm_loader.rc b/shared/utils/dlkm_loader/dlkm_loader.rc new file mode 100644 index 0000000..b1e2c41 --- /dev/null +++ b/shared/utils/dlkm_loader/dlkm_loader.rc @@ -0,0 +1,17 @@ +on early-init + # start module load in the background + start vendor.dlkm_loader + # load "leaf" GKI modules + exec u:r:modprobe:s0 -- /system/bin/modprobe -a -d /system/lib/modules zram.ko + exec u:r:modprobe:s0 -- /system/bin/modprobe -a -d /system/lib/modules hci_uart.ko + # led-class-multicolor.ko as found in android14-5.15 but missing in android13-5.15 + exec u:r:modprobe:s0 -- /system/bin/modprobe -a -d /system/lib/modules led-class-multicolor.ko + # regmap-spmi.ko as found in android13-5.15 but missing in android14-5.15 + exec u:r:modprobe:s0 -- /system/bin/modprobe -a -d /system/lib/modules regmap-spmi.ko + +service vendor.dlkm_loader /vendor/bin/dlkm_loader + class main + user root + group root system + disabled + oneshot diff --git a/shared/utils/dlkm_loader/sepolicy/dlkm_loader.te b/shared/utils/dlkm_loader/sepolicy/dlkm_loader.te new file mode 100644 index 0000000..e6fd7c3 --- /dev/null +++ b/shared/utils/dlkm_loader/sepolicy/dlkm_loader.te @@ -0,0 +1,36 @@ +type dlkm_loader, domain; +type dlkm_loader_exec, exec_type, vendor_file_type, file_type; +init_daemon_domain(dlkm_loader) + +# Allow insmod on vendor, system and system_dlkm partitions +allow dlkm_loader self:capability net_admin; +allow dlkm_loader self:capability sys_module; +allow dlkm_loader system_dlkm_file:dir r_dir_perms; +allow dlkm_loader system_dlkm_file:file r_file_perms; +allow dlkm_loader system_dlkm_file:system module_load; +allow dlkm_loader system_file:system module_load; +allow dlkm_loader vendor_file:system module_load; + +# needed for libmodprobe to read kernel commandline +allow dlkm_loader proc_bootconfig:file r_file_perms; +allow dlkm_loader proc_cmdline:file r_file_perms; + +# Needed because CONFIG_USB_DUMMY_HCD adds some additional logic to +# finit_module() syscall, causing that syscall to create/update keyrings. +# Once we remove CONFIG_USB_DUMMY_HCD config, self:key write permission can be +# removed. +allow dlkm_loader self:key write; + +# Needed because CONFIG_DMABUF_HEAPS_DEFERRED_FREE calls sched_set_normal() +# in its module_init() function, which is attributed to dlkm_loader. +allow dlkm_loader kernel:process setsched; +allow dlkm_loader self:capability sys_nice; + +# Allow writing to kernel log +allow dlkm_loader kmsg_device:chr_file rw_file_perms; + +# dlkm_loader searches tracefs while looking for modules +dontaudit dlkm_loader debugfs_bootreceiver_tracing:dir search; +dontaudit dlkm_loader debugfs_mm_events_tracing:dir search; + +set_prop(dlkm_loader, vendor_device_prop) diff --git a/shared/utils/dlkm_loader/sepolicy/file_contexts b/shared/utils/dlkm_loader/sepolicy/file_contexts new file mode 100644 index 0000000..a345de9 --- /dev/null +++ b/shared/utils/dlkm_loader/sepolicy/file_contexts @@ -0,0 +1 @@ +/vendor/bin/dlkm_loader u:object_r:dlkm_loader_exec:s0 diff --git a/shared/utils/dlkm_loader/sepolicy/property.te b/shared/utils/dlkm_loader/sepolicy/property.te new file mode 100644 index 0000000..50f7b34 --- /dev/null +++ b/shared/utils/dlkm_loader/sepolicy/property.te @@ -0,0 +1 @@ +vendor_internal_prop(vendor_device_prop) diff --git a/shared/utils/dlkm_loader/sepolicy/property_contexts b/shared/utils/dlkm_loader/sepolicy/property_contexts new file mode 100644 index 0000000..2a347b3 --- /dev/null +++ b/shared/utils/dlkm_loader/sepolicy/property_contexts @@ -0,0 +1 @@ +vendor.dlkm.modules.ready u:object_r:vendor_device_prop:s0 exact bool diff --git a/shared/utils/dlkm_loader/vendor.modules.list.mk b/shared/utils/dlkm_loader/vendor.modules.list.mk new file mode 100644 index 0000000..f28f618 --- /dev/null +++ b/shared/utils/dlkm_loader/vendor.modules.list.mk @@ -0,0 +1,231 @@ +VENDOR_DLKM_KERNEL_MODULES_LIST := \ + ath10k_core.ko \ + ath10k_pci.ko \ + ath10k_snoc.ko \ + ath11k_ahb.ko \ + ath11k.ko \ + ath11k_pci.ko \ + ath.ko \ + clk-spmi-pmic-div.ko \ + cqhci.ko \ + gpu-sched.ko \ + lmh.ko \ + lontium-lt9611.ko \ + lontium-lt9611uxc.ko \ + mcp251xfd.ko \ + michael_mic.ko \ + msm.ko \ + nvmem_qfprom.ko \ + qcom-pon.ko \ + qcom_q6v5_mss.ko \ + qcom_q6v5_pas.ko \ + qcom_q6v5_wcss.ko \ + qcom-spmi-adc5.ko \ + qcom-spmi-adc-tm5.ko \ + qcom-spmi-pmic.ko \ + qcom_spmi-regulator.ko \ + qcom-spmi-temp-alarm.ko \ + qcom_tsens.ko \ + reboot-mode.ko \ + sdhci-msm.ko \ + syscon-reboot-mode.ko \ + system_heap.ko \ + videocc-sdm845.ko \ + videocc-sm8250.ko + +VENDOR_RAMDISK_KERNEL_MODULES_LIST := \ + apr.ko \ + arm_smmu.ko \ + bam_dma.ko \ + clk-qcom.ko \ + clk-rpmh.ko \ + cmd-db.ko \ + dispcc-sdm845.ko \ + dispcc-sm8250.ko \ + display-connector.ko \ + extcon-usb-gpio.ko \ + fastrpc.ko \ + gcc-sdm845.ko \ + gcc-sm8250.ko \ + gpio-regulator.ko \ + gpio-wcd934x.ko \ + gpucc-sdm845.ko \ + gpucc-sm8250.ko \ + i2c-designware-core.ko \ + i2c-designware-platform.ko \ + i2c-dev.ko \ + i2c-mux.ko \ + i2c-mux-pca954x.ko \ + i2c-qcom-geni.ko \ + i2c-qup.ko \ + i2c-rk3x.ko \ + icc-bcm-voter.ko \ + icc-osm-l3.ko \ + icc-rpmh.ko \ + llcc-qcom.ko \ + lpass-gfm-sm8250.ko \ + mdt_loader.ko \ + mhi.ko \ + msm_serial.ko \ + ohci-hcd.ko \ + ohci-pci.ko \ + ohci-platform.ko \ + pdr_interface.ko \ + phy-qcom-qusb2.ko \ + phy-qcom-snps-femto-v2.ko \ + phy-qcom-usb-hs.ko \ + pinctrl-lpass-lpi.ko \ + pinctrl-msm.ko \ + pinctrl-sdm845.ko \ + pinctrl-sm8250.ko \ + pinctrl-spmi-gpio.ko \ + pinctrl-spmi-mpp.ko \ + pm8916_wdt.ko \ + pm8941-pwrkey.ko \ + q6adm.ko \ + q6afe-clocks.ko \ + q6afe-dai.ko \ + q6afe.ko \ + q6asm-dai.ko \ + q6asm.ko \ + q6core.ko \ + q6routing.ko \ + qcom_aoss.ko \ + qcom-apcs-ipc-mailbox.ko \ + qcom_common.ko \ + qcom-cpufreq-hw.ko \ + qcom_glink.ko \ + qcom_glink_rpm.ko \ + qcom_glink_smem.ko \ + qcom_hwspinlock.ko \ + qcom-ipcc.ko \ + qcom-pdc.ko \ + qcom_pil_info.ko \ + qcom_q6v5_adsp.ko \ + qcom_q6v5.ko \ + qcom_rpmh.ko \ + qcom-rpmh-regulator.ko \ + qcom-scm.ko \ + qcom_smd.ko \ + qcom_sysmon.ko \ + qcom_usb_vbus-regulator.ko \ + qcom-vadc-common.ko \ + qcom-wdt.ko \ + qmi_helpers.ko \ + qnoc-sdm845.ko \ + qnoc-sm8250.ko \ + qrtr.ko \ + qrtr-mhi.ko \ + qrtr-smd.ko \ + qrtr-tun.ko \ + regmap-sdw.ko \ + regmap-slimbus.ko \ + reset-qcom-aoss.ko \ + reset-qcom-pdc.ko \ + rmtfs_mem.ko \ + rpmhpd.ko \ + rpmsg_ns.ko \ + rtc-pm8xxx.ko \ + slim-qcom-ngd-ctrl.ko \ + slimbus.ko \ + smem.ko \ + smp2p.ko \ + smsm.ko \ + snd-soc-dmic.ko \ + snd-soc-hdmi-codec.ko \ + snd-soc-lpass-va-macro.ko \ + snd-soc-lpass-wsa-macro.ko \ + snd-soc-max98927.ko \ + snd-soc-qcom-common.ko \ + snd-soc-rl6231.ko \ + snd-soc-rt5663.ko \ + snd-soc-sdm845.ko \ + snd-soc-sm8250.ko \ + snd-soc-wcd9335.ko \ + snd-soc-wcd934x.ko \ + snd-soc-wcd-mbhc.ko \ + snd-soc-wsa881x.ko \ + socinfo.ko \ + soundwire-bus.ko \ + soundwire-qcom.ko \ + spmi-pmic-arb.ko \ + spi-geni-qcom.ko \ + spi-pl022.ko \ + spi-qcom-qspi.ko \ + spi-qup.ko \ + ulpi.ko \ + wcd934x.ko + +ifeq ($(TARGET_KERNEL_USE),5.15) +VENDOR_DLKM_KERNEL_MODULES_LIST += \ + qcom-pmic-typec.ko + +VENDOR_RAMDISK_KERNEL_MODULES_LIST += \ + phy-qcom-qmp.ko \ + q6dsp-common.ko \ + ufs_qcom.ko +endif + +ifeq ($(TARGET_KERNEL_USE),6.1) +VENDOR_DLKM_KERNEL_MODULES_LIST += \ + leds-qcom-lpg.ko \ + qcom-pmic-typec.ko \ + qnoc-sm8450.ko + +VENDOR_RAMDISK_KERNEL_MODULES_LIST += \ + cpr.ko \ + drm_display_helper.ko \ + drm_dp_aux_bus.ko \ + gcc-sm8450.ko \ + gpi.ko \ + phy-qcom-qmp-combo.ko \ + phy-qcom-qmp-pcie.ko \ + phy-qcom-qmp-pcie-msm8996.ko \ + phy-qcom-qmp-ufs.ko \ + phy-qcom-qmp-usb.ko \ + pinctrl-sm8250-lpass-lpi.ko \ + pinctrl-sm8450.ko \ + q6apm-dai.ko \ + q6apm-lpass-dais.ko \ + q6prm-clocks.ko \ + q6prm.ko \ + snd-q6apm.ko \ + snd-q6dsp-common.ko \ + snd-soc-lpass-macro-common.ko \ + snd-soc-qcom-sdw.ko \ + spm.ko \ + ufs_qcom.ko +endif + +ifeq ($(TARGET_KERNEL_USE),6.6) +VENDOR_DLKM_KERNEL_MODULES_LIST += \ + leds-qcom-lpg.ko \ + qcom_pmic_tcpm.ko \ + qnoc-sm8450.ko + +VENDOR_RAMDISK_KERNEL_MODULES_LIST += \ + cpr.ko \ + drm_display_helper.ko \ + drm_dp_aux_bus.ko \ + gcc-sm8450.ko \ + gpi.ko \ + phy-qcom-qmp-combo.ko \ + phy-qcom-qmp-pcie.ko \ + phy-qcom-qmp-pcie-msm8996.ko \ + phy-qcom-qmp-ufs.ko \ + phy-qcom-qmp-usb.ko \ + pinctrl-sm8250-lpass-lpi.ko \ + pinctrl-sm8450.ko \ + q6apm-dai.ko \ + q6apm-lpass-dais.ko \ + q6prm-clocks.ko \ + q6prm.ko \ + qcom_ice.ko \ + snd-q6apm.ko \ + snd-q6dsp-common.ko \ + snd-soc-lpass-macro-common.ko \ + snd-soc-qcom-sdw.ko \ + snd-soc-wcd-classh.ko \ + spm.ko \ + ufs-qcom.ko +endif diff --git a/shared/utils/dlkm_loader/vendor_ramdisk.modules.blocklist b/shared/utils/dlkm_loader/vendor_ramdisk.modules.blocklist new file mode 100644 index 0000000..2099643 --- /dev/null +++ b/shared/utils/dlkm_loader/vendor_ramdisk.modules.blocklist @@ -0,0 +1,4 @@ +# List of kernel modules that should not load automatically + +# ptp_kvm.ko should only load when the kvm hypervisor is available on the target +blocklist ptp_kvm.ko diff --git a/shared/utils/ethaddr/ethaddr.rc b/shared/utils/ethaddr/ethaddr.rc new file mode 100644 index 0000000..f8fe430 --- /dev/null +++ b/shared/utils/ethaddr/ethaddr.rc @@ -0,0 +1,9 @@ +service set_ethaddr /vendor/bin/set_ethaddr.sh + class core + user root + group system + disabled + oneshot + +on post-fs-data + start set_ethaddr diff --git a/shared/utils/ethaddr/set_ethaddr.sh b/shared/utils/ethaddr/set_ethaddr.sh new file mode 100644 index 0000000..93cd08a --- /dev/null +++ b/shared/utils/ethaddr/set_ethaddr.sh @@ -0,0 +1,25 @@ +#! /vendor/bin/sh +# Set eth0 mac address. +# +# Get the unique board serial number from /proc/cmdline or +# /proc/bootconfig, prepend '0's to the serial number to +# fill 5 LSBs of the MAC address and prepend "02" as MSB to +# prepare a 6 byte locally administered unicast MAC address. +# +# Format the output in xx:xx:xx:xx:xx:xx format for the "ip" +# set address command to work. + +ETHADDR=`/vendor/bin/cat /proc/cmdline | /vendor/bin/grep -o serialno.* |\ + /vendor/bin/cut -f2 -d'=' | /vendor/bin/awk '{printf("02%010s\n", $1)}' |\ + /vendor/bin/sed 's/\(..\)/\1:/g' | /vendor/bin/sed '$s/:$//'` +if [ -z "${ETHADDR}" ] +then + ETHADDR=`/vendor/bin/cat /proc/bootconfig | /vendor/bin/grep -o serialno.* |\ + /vendor/bin/cut -f2 -d'=' | /vendor/bin/cut -c 3-10 |\ + /vendor/bin/awk '{printf("02%010s\n", $1)}' |\ + /vendor/bin/sed 's/\(..\)/\1:/g' | /vendor/bin/sed '$s/:$//'` +fi + +/vendor/bin/ifconfig eth0 down +/vendor/bin/ifconfig eth0 hw ether "${ETHADDR}" +/vendor/bin/ifconfig eth0 up diff --git a/qcom/init.qcom.rc b/shared/utils/init.utils.rc index 38d8d00..a17edfd 100644 --- a/qcom/init.qcom.rc +++ b/shared/utils/init.utils.rc @@ -26,7 +26,7 @@ service tqftpserv /vendor/bin/tqftpserv disabled oneshot -service rmtfs /vendor/bin/rmtfs -o /dev/block/platform/soc@0/1d84000.ufshc/by-name -P -r -s +service rmtfs /vendor/bin/rmtfs -o /dev/block/by-name -P -r -s class core user root group system diff --git a/qcom/pd-mapper/Android.bp b/shared/utils/pd-mapper/Android.bp index 7e86231..7e86231 100644 --- a/qcom/pd-mapper/Android.bp +++ b/shared/utils/pd-mapper/Android.bp diff --git a/qcom/pd-mapper/LICENSE b/shared/utils/pd-mapper/LICENSE index aa8cb35..aa8cb35 100644 --- a/qcom/pd-mapper/LICENSE +++ b/shared/utils/pd-mapper/LICENSE diff --git a/qcom/pd-mapper/Makefile b/shared/utils/pd-mapper/Makefile index 908dbfd..908dbfd 100644 --- a/qcom/pd-mapper/Makefile +++ b/shared/utils/pd-mapper/Makefile diff --git a/qcom/pd-mapper/assoc.c b/shared/utils/pd-mapper/assoc.c index 460f0d0..460f0d0 100644 --- a/qcom/pd-mapper/assoc.c +++ b/shared/utils/pd-mapper/assoc.c diff --git a/qcom/pd-mapper/assoc.h b/shared/utils/pd-mapper/assoc.h index 25d00fa..25d00fa 100644 --- a/qcom/pd-mapper/assoc.h +++ b/shared/utils/pd-mapper/assoc.h diff --git a/qcom/pd-mapper/json.c b/shared/utils/pd-mapper/json.c index e08afa4..e08afa4 100644 --- a/qcom/pd-mapper/json.c +++ b/shared/utils/pd-mapper/json.c diff --git a/qcom/pd-mapper/json.h b/shared/utils/pd-mapper/json.h index 91790a0..91790a0 100644 --- a/qcom/pd-mapper/json.h +++ b/shared/utils/pd-mapper/json.h diff --git a/qcom/pd-mapper/pd-mapper.c b/shared/utils/pd-mapper/pd-mapper.c index 376d9fe..376d9fe 100644 --- a/qcom/pd-mapper/pd-mapper.c +++ b/shared/utils/pd-mapper/pd-mapper.c diff --git a/qcom/pd-mapper/pd-mapper.service.in b/shared/utils/pd-mapper/pd-mapper.service.in index 09b594b..09b594b 100644 --- a/qcom/pd-mapper/pd-mapper.service.in +++ b/shared/utils/pd-mapper/pd-mapper.service.in diff --git a/qcom/pd-mapper/servreg_loc.c b/shared/utils/pd-mapper/servreg_loc.c index 6309498..6309498 100644 --- a/qcom/pd-mapper/servreg_loc.c +++ b/shared/utils/pd-mapper/servreg_loc.c diff --git a/qcom/pd-mapper/servreg_loc.h b/shared/utils/pd-mapper/servreg_loc.h index 2ac5faa..2ac5faa 100644 --- a/qcom/pd-mapper/servreg_loc.h +++ b/shared/utils/pd-mapper/servreg_loc.h diff --git a/qcom/pd-mapper/servreg_loc.qmi b/shared/utils/pd-mapper/servreg_loc.qmi index 4dc04e6..4dc04e6 100644 --- a/qcom/pd-mapper/servreg_loc.qmi +++ b/shared/utils/pd-mapper/servreg_loc.qmi diff --git a/qcom/qrtr/Android.bp b/shared/utils/qrtr/Android.bp index 8103bb6..8103bb6 100644 --- a/qcom/qrtr/Android.bp +++ b/shared/utils/qrtr/Android.bp diff --git a/qcom/qrtr/LICENSE b/shared/utils/qrtr/LICENSE index afbafbe..afbafbe 100644 --- a/qcom/qrtr/LICENSE +++ b/shared/utils/qrtr/LICENSE diff --git a/qcom/qrtr/Makefile b/shared/utils/qrtr/Makefile index 036691c..036691c 100644 --- a/qcom/qrtr/Makefile +++ b/shared/utils/qrtr/Makefile diff --git a/qcom/qrtr/lib/libqrtr.h b/shared/utils/qrtr/lib/libqrtr.h index 93254df..93254df 100644 --- a/qcom/qrtr/lib/libqrtr.h +++ b/shared/utils/qrtr/lib/libqrtr.h diff --git a/qcom/qrtr/lib/logging.c b/shared/utils/qrtr/lib/logging.c index 0b0f103..0b0f103 100644 --- a/qcom/qrtr/lib/logging.c +++ b/shared/utils/qrtr/lib/logging.c diff --git a/qcom/qrtr/lib/logging.h b/shared/utils/qrtr/lib/logging.h index 8372a8f..8372a8f 100644 --- a/qcom/qrtr/lib/logging.h +++ b/shared/utils/qrtr/lib/logging.h diff --git a/qcom/qrtr/lib/qmi.c b/shared/utils/qrtr/lib/qmi.c index d217a2d..d217a2d 100644 --- a/qcom/qrtr/lib/qmi.c +++ b/shared/utils/qrtr/lib/qmi.c diff --git a/qcom/qrtr/lib/qrtr.c b/shared/utils/qrtr/lib/qrtr.c index 96756ba..96756ba 100644 --- a/qcom/qrtr/lib/qrtr.c +++ b/shared/utils/qrtr/lib/qrtr.c diff --git a/qcom/qrtr/qrtr-ns.service.in b/shared/utils/qrtr/qrtr-ns.service.in index eaa791a..eaa791a 100644 --- a/qcom/qrtr/qrtr-ns.service.in +++ b/shared/utils/qrtr/qrtr-ns.service.in diff --git a/qcom/qrtr/qrtr.py b/shared/utils/qrtr/qrtr.py index ab6189a..ab6189a 100755 --- a/qcom/qrtr/qrtr.py +++ b/shared/utils/qrtr/qrtr.py diff --git a/qcom/qrtr/src/addr.c b/shared/utils/qrtr/src/addr.c index 61417dd..61417dd 100644 --- a/qcom/qrtr/src/addr.c +++ b/shared/utils/qrtr/src/addr.c diff --git a/qcom/qrtr/src/addr.h b/shared/utils/qrtr/src/addr.h index 524e335..524e335 100644 --- a/qcom/qrtr/src/addr.h +++ b/shared/utils/qrtr/src/addr.h diff --git a/qcom/qrtr/src/cfg.c b/shared/utils/qrtr/src/cfg.c index 97a8352..97a8352 100644 --- a/qcom/qrtr/src/cfg.c +++ b/shared/utils/qrtr/src/cfg.c diff --git a/qcom/qrtr/src/hash.c b/shared/utils/qrtr/src/hash.c index ecfbc0a..ecfbc0a 100644 --- a/qcom/qrtr/src/hash.c +++ b/shared/utils/qrtr/src/hash.c diff --git a/qcom/qrtr/src/hash.h b/shared/utils/qrtr/src/hash.h index 5b004b5..5b004b5 100644 --- a/qcom/qrtr/src/hash.h +++ b/shared/utils/qrtr/src/hash.h diff --git a/qcom/qrtr/src/list.h b/shared/utils/qrtr/src/list.h index 1d1c8e6..1d1c8e6 100644 --- a/qcom/qrtr/src/list.h +++ b/shared/utils/qrtr/src/list.h diff --git a/qcom/qrtr/src/lookup.c b/shared/utils/qrtr/src/lookup.c index 80cf984..80cf984 100644 --- a/qcom/qrtr/src/lookup.c +++ b/shared/utils/qrtr/src/lookup.c diff --git a/qcom/qrtr/src/map.c b/shared/utils/qrtr/src/map.c index eed3488..eed3488 100644 --- a/qcom/qrtr/src/map.c +++ b/shared/utils/qrtr/src/map.c diff --git a/qcom/qrtr/src/map.h b/shared/utils/qrtr/src/map.h index de68e19..de68e19 100644 --- a/qcom/qrtr/src/map.h +++ b/shared/utils/qrtr/src/map.h diff --git a/qcom/qrtr/src/ns.c b/shared/utils/qrtr/src/ns.c index 393cc68..393cc68 100644 --- a/qcom/qrtr/src/ns.c +++ b/shared/utils/qrtr/src/ns.c diff --git a/qcom/qrtr/src/ns.h b/shared/utils/qrtr/src/ns.h index d661ac8..d661ac8 100644 --- a/qcom/qrtr/src/ns.h +++ b/shared/utils/qrtr/src/ns.h diff --git a/qcom/qrtr/src/util.c b/shared/utils/qrtr/src/util.c index 48d9d27..48d9d27 100644 --- a/qcom/qrtr/src/util.c +++ b/shared/utils/qrtr/src/util.c diff --git a/qcom/qrtr/src/util.h b/shared/utils/qrtr/src/util.h index 3f371cd..3f371cd 100644 --- a/qcom/qrtr/src/util.h +++ b/shared/utils/qrtr/src/util.h diff --git a/qcom/qrtr/src/waiter.c b/shared/utils/qrtr/src/waiter.c index f21896f..f21896f 100644 --- a/qcom/qrtr/src/waiter.c +++ b/shared/utils/qrtr/src/waiter.c diff --git a/qcom/qrtr/src/waiter.h b/shared/utils/qrtr/src/waiter.h index e311453..e311453 100644 --- a/qcom/qrtr/src/waiter.h +++ b/shared/utils/qrtr/src/waiter.h diff --git a/qcom/rmtfs/Android.bp b/shared/utils/rmtfs/Android.bp index 82cf7e1..82cf7e1 100644 --- a/qcom/rmtfs/Android.bp +++ b/shared/utils/rmtfs/Android.bp diff --git a/qcom/rmtfs/LICENSE b/shared/utils/rmtfs/LICENSE index 42c13e9..42c13e9 100644 --- a/qcom/rmtfs/LICENSE +++ b/shared/utils/rmtfs/LICENSE diff --git a/qcom/rmtfs/Makefile b/shared/utils/rmtfs/Makefile index 54ae35f..54ae35f 100644 --- a/qcom/rmtfs/Makefile +++ b/shared/utils/rmtfs/Makefile diff --git a/qcom/rmtfs/qmi_rmtfs.c b/shared/utils/rmtfs/qmi_rmtfs.c index bda2b78..bda2b78 100644 --- a/qcom/rmtfs/qmi_rmtfs.c +++ b/shared/utils/rmtfs/qmi_rmtfs.c diff --git a/qcom/rmtfs/qmi_rmtfs.h b/shared/utils/rmtfs/qmi_rmtfs.h index 03cbc8f..03cbc8f 100644 --- a/qcom/rmtfs/qmi_rmtfs.h +++ b/shared/utils/rmtfs/qmi_rmtfs.h diff --git a/qcom/rmtfs/qmi_rmtfs.qmi b/shared/utils/rmtfs/qmi_rmtfs.qmi index ca350d7..ca350d7 100644 --- a/qcom/rmtfs/qmi_rmtfs.qmi +++ b/shared/utils/rmtfs/qmi_rmtfs.qmi diff --git a/qcom/rmtfs/qmi_tlv.c b/shared/utils/rmtfs/qmi_tlv.c index c6d8207..c6d8207 100644 --- a/qcom/rmtfs/qmi_tlv.c +++ b/shared/utils/rmtfs/qmi_tlv.c diff --git a/qcom/rmtfs/rmtfs.c b/shared/utils/rmtfs/rmtfs.c index b3ed289..b3ed289 100644 --- a/qcom/rmtfs/rmtfs.c +++ b/shared/utils/rmtfs/rmtfs.c diff --git a/qcom/rmtfs/rmtfs.h b/shared/utils/rmtfs/rmtfs.h index fa4b806..fa4b806 100644 --- a/qcom/rmtfs/rmtfs.h +++ b/shared/utils/rmtfs/rmtfs.h diff --git a/qcom/rmtfs/rmtfs.service.in b/shared/utils/rmtfs/rmtfs.service.in index 8384043..8384043 100644 --- a/qcom/rmtfs/rmtfs.service.in +++ b/shared/utils/rmtfs/rmtfs.service.in diff --git a/qcom/rmtfs/rproc.c b/shared/utils/rmtfs/rproc.c index 68dc3c9..68dc3c9 100644 --- a/qcom/rmtfs/rproc.c +++ b/shared/utils/rmtfs/rproc.c diff --git a/qcom/rmtfs/sharedmem.c b/shared/utils/rmtfs/sharedmem.c index b6d3279..b6d3279 100644 --- a/qcom/rmtfs/sharedmem.c +++ b/shared/utils/rmtfs/sharedmem.c diff --git a/qcom/rmtfs/storage.c b/shared/utils/rmtfs/storage.c index 107b296..107b296 100644 --- a/qcom/rmtfs/storage.c +++ b/shared/utils/rmtfs/storage.c diff --git a/qcom/rmtfs/util.c b/shared/utils/rmtfs/util.c index 5ca5bba..5ca5bba 100644 --- a/qcom/rmtfs/util.c +++ b/shared/utils/rmtfs/util.c diff --git a/qcom/rmtfs/util.h b/shared/utils/rmtfs/util.h index 3a9ec3e..3a9ec3e 100644 --- a/qcom/rmtfs/util.h +++ b/shared/utils/rmtfs/util.h diff --git a/shared/utils/sdcard-boot/fstab.mmc b/shared/utils/sdcard-boot/fstab.mmc new file mode 100644 index 0000000..387a0cd --- /dev/null +++ b/shared/utils/sdcard-boot/fstab.mmc @@ -0,0 +1,11 @@ +system /system erofs ro wait,logical,first_stage_mount,slotselect +/dev/block/platform/soc@0/8804000.mmc/by-name/userdata /data ext4 discard,noatime,noauto_da_alloc,data=ordered,user_xattr,barrier=1,inlinecrypt latemount,wait,formattable,fileencryption=aes-256-xts:aes-256-cts:v2+inlinecrypt_optimized,keydirectory=/metadata/vold/metadata_encryption,quota +/dev/block/platform/soc@0/8804000.mmc/by-name/metadata /metadata ext4 noatime,nosuid,nodev,discard wait,formattable,first_stage_mount,check +/dev/block/platform/soc@0/8804000.mmc/by-name/misc /misc emmc defaults defaults +/devices/platform/soc@0/a8f8800.usb/*/usb* auto auto defaults voldmanaged=usb1:auto +/devices/platform/soc@0/1c00000.pci/*/usb* auto auto defaults voldmanaged=usb2:auto +vendor /vendor erofs ro wait,logical,first_stage_mount,slotselect +system_ext /system_ext erofs ro wait,logical,first_stage_mount,slotselect +product /product erofs ro wait,logical,first_stage_mount,slotselect +system_dlkm /system_dlkm erofs ro wait,logical,first_stage_mount,slotselect +vendor_dlkm /vendor_dlkm erofs ro wait,logical,first_stage_mount,slotselect diff --git a/shared/utils/sdcard-boot/fstab.sdhci b/shared/utils/sdcard-boot/fstab.sdhci new file mode 100644 index 0000000..c385ba6 --- /dev/null +++ b/shared/utils/sdcard-boot/fstab.sdhci @@ -0,0 +1,11 @@ +system /system erofs ro wait,logical,first_stage_mount,slotselect +/dev/block/platform/soc@0/8804000.sdhci/by-name/userdata /data ext4 discard,noatime,noauto_da_alloc,data=ordered,user_xattr,barrier=1,inlinecrypt latemount,wait,formattable,fileencryption=aes-256-xts:aes-256-cts:v2+inlinecrypt_optimized,keydirectory=/metadata/vold/metadata_encryption,quota +/dev/block/platform/soc@0/8804000.sdhci/by-name/metadata /metadata ext4 noatime,nosuid,nodev,discard wait,formattable,first_stage_mount,check +/dev/block/platform/soc@0/8804000.sdhci/by-name/misc /misc emmc defaults defaults +/devices/platform/soc@0/a8f8800.usb/*/usb* auto auto defaults voldmanaged=usb1:auto +/devices/platform/soc@0/1c00000.pci/*/usb* auto auto defaults voldmanaged=usb2:auto +vendor /vendor erofs ro wait,logical,first_stage_mount,slotselect +system_ext /system_ext erofs ro wait,logical,first_stage_mount,slotselect +product /product erofs ro wait,logical,first_stage_mount,slotselect +system_dlkm /system_dlkm erofs ro wait,logical,first_stage_mount,slotselect +vendor_dlkm /vendor_dlkm erofs ro wait,logical,first_stage_mount,slotselect diff --git a/shared/utils/sdcard-boot/sepolicy/file_contexts b/shared/utils/sdcard-boot/sepolicy/file_contexts new file mode 100644 index 0000000..79d5de8 --- /dev/null +++ b/shared/utils/sdcard-boot/sepolicy/file_contexts @@ -0,0 +1,15 @@ +/dev/block/platform/soc@0/8804000\.mmc/by-name/fsc u:object_r:modem_block_device:s0 +/dev/block/platform/soc@0/8804000\.mmc/by-name/fsg u:object_r:modem_block_device:s0 +/dev/block/platform/soc@0/8804000\.mmc/by-name/modemst[12] u:object_r:modem_block_device:s0 +/dev/block/platform/soc@0/8804000\.mmc/by-name/metadata u:object_r:metadata_block_device:s0 +/dev/block/platform/soc@0/8804000\.mmc/by-name/super u:object_r:super_block_device:s0 +/dev/block/platform/soc@0/8804000\.mmc/by-name/userdata u:object_r:userdata_block_device:s0 +/dev/block/platform/soc@0/8804000\.mmc/by-name/misc u:object_r:misc_block_device:s0 + +/dev/block/platform/soc@0/8804000\.sdhci/by-name/fsc u:object_r:modem_block_device:s0 +/dev/block/platform/soc@0/8804000\.sdhci/by-name/fsg u:object_r:modem_block_device:s0 +/dev/block/platform/soc@0/8804000\.sdhci/by-name/modemst[12] u:object_r:modem_block_device:s0 +/dev/block/platform/soc@0/8804000\.sdhci/by-name/metadata u:object_r:metadata_block_device:s0 +/dev/block/platform/soc@0/8804000\.sdhci/by-name/super u:object_r:super_block_device:s0 +/dev/block/platform/soc@0/8804000\.sdhci/by-name/userdata u:object_r:userdata_block_device:s0 +/dev/block/platform/soc@0/8804000\.sdhci/by-name/misc u:object_r:misc_block_device:s0 diff --git a/shared/utils/set_hw.sh b/shared/utils/set_hw.sh new file mode 100644 index 0000000..305a345 --- /dev/null +++ b/shared/utils/set_hw.sh @@ -0,0 +1,34 @@ +#! /vendor/bin/sh +# Set vendor.hw property to run device specific services +# +# grep the device name from /proc/device-tree/compatible + +HW=`/vendor/bin/cat /proc/device-tree/compatible | /vendor/bin/grep db845c` +if [ -n "${HW}" ]; then + setprop vendor.hw db845c + exit 0 +fi + +HW=`/vendor/bin/cat /proc/device-tree/compatible | /vendor/bin/grep rb5` +if [ -n "${HW}" ]; then + setprop vendor.hw rb5 + exit 0 +fi + +HW=`/vendor/bin/cat /proc/device-tree/compatible | /vendor/bin/grep sm8550-hdk` +if [ -n "${HW}" ]; then + setprop vendor.hw sm8550hdk + exit 0 +fi + +HW=`/vendor/bin/cat /proc/device-tree/compatible | /vendor/bin/grep sm8550-qrd` +if [ -n "${HW}" ]; then + setprop vendor.hw sm8550qrd + exit 0 +fi + +HW=`/vendor/bin/cat /proc/device-tree/compatible | /vendor/bin/grep sm8650-qrd` +if [ -n "${HW}" ]; then + setprop vendor.hw sm8650qrd + exit 0 +fi diff --git a/qcom/set_udc.sh b/shared/utils/set_udc.sh index 571c25d..571c25d 100755 --- a/qcom/set_udc.sh +++ b/shared/utils/set_udc.sh diff --git a/qcom/tqftpserv/Android.bp b/shared/utils/tqftpserv/Android.bp index 248c323..248c323 100644 --- a/qcom/tqftpserv/Android.bp +++ b/shared/utils/tqftpserv/Android.bp diff --git a/qcom/tqftpserv/LICENSE b/shared/utils/tqftpserv/LICENSE index cd92517..cd92517 100644 --- a/qcom/tqftpserv/LICENSE +++ b/shared/utils/tqftpserv/LICENSE diff --git a/qcom/tqftpserv/Makefile b/shared/utils/tqftpserv/Makefile index 60ad687..60ad687 100644 --- a/qcom/tqftpserv/Makefile +++ b/shared/utils/tqftpserv/Makefile diff --git a/qcom/tqftpserv/list.h b/shared/utils/tqftpserv/list.h index c3488e3..c3488e3 100644 --- a/qcom/tqftpserv/list.h +++ b/shared/utils/tqftpserv/list.h diff --git a/qcom/tqftpserv/tqftpserv.c b/shared/utils/tqftpserv/tqftpserv.c index fa6e3c9..fa6e3c9 100644 --- a/qcom/tqftpserv/tqftpserv.c +++ b/shared/utils/tqftpserv/tqftpserv.c diff --git a/qcom/tqftpserv/tqftpserv.service.in b/shared/utils/tqftpserv/tqftpserv.service.in index 2cf828c..2cf828c 100644 --- a/qcom/tqftpserv/tqftpserv.service.in +++ b/shared/utils/tqftpserv/tqftpserv.service.in diff --git a/qcom/tqftpserv/translate.c b/shared/utils/tqftpserv/translate.c index 63161a0..63161a0 100644 --- a/qcom/tqftpserv/translate.c +++ b/shared/utils/tqftpserv/translate.c diff --git a/qcom/tqftpserv/translate.h b/shared/utils/tqftpserv/translate.h index ade2d09..ade2d09 100644 --- a/qcom/tqftpserv/translate.h +++ b/shared/utils/tqftpserv/translate.h diff --git a/sm8x50/BoardConfig.mk b/sm8x50/BoardConfig.mk new file mode 100644 index 0000000..4995b75 --- /dev/null +++ b/sm8x50/BoardConfig.mk @@ -0,0 +1,56 @@ +include device/linaro/dragonboard/BoardConfigCommon.mk + +# Primary Arch +TARGET_ARCH := arm64 +TARGET_ARCH_VARIANT := armv9-a +TARGET_CPU_VARIANT := kryo385 +TARGET_CPU_ABI := arm64-v8a + +# Board Information +TARGET_BOOTLOADER_BOARD_NAME := sm8x50 +TARGET_BOARD_PLATFORM := sm8x50 + +TARGET_NO_KERNEL := false +BOARD_INCLUDE_DTB_IN_BOOTIMG := true +BOARD_BOOT_HEADER_VERSION := 2 # XXX v4 is WIP +BOARD_MKBOOTIMG_ARGS := --header_version $(BOARD_BOOT_HEADER_VERSION) + +BOARD_KERNEL_BASE := 0x80000000 +BOARD_KERNEL_PAGESIZE := 4096 +BOARD_KERNEL_CMDLINE += earlycon firmware_class.path=/vendor/firmware/ +BOARD_KERNEL_CMDLINE += init=/init printk.devkmsg=on +BOARD_KERNEL_CMDLINE += deferred_probe_timeout=30 +BOARD_KERNEL_CMDLINE += qcom_geni_serial.con_enabled=1 +BOARD_KERNEL_CMDLINE += console=ttyMSM0,115200n8 +BOARD_KERNEL_CMDLINE += allow_mismatched_32bit_el0 clk_ignore_unused pd_ignore_unused +BOARD_KERNEL_CMDLINE += androidboot.boot_devices=soc@0/1d84000.ufs +BOARD_KERNEL_CMDLINE += androidboot.hardware=sm8x50 +BOARD_KERNEL_CMDLINE += androidboot.verifiedbootstate=orange + +# Image Configuration +BOARD_BOOTIMAGE_PARTITION_SIZE := 67108864 #64M +BOARD_USERDATAIMAGE_PARTITION_SIZE := 223226966016 #200+G +BOARD_FLASH_BLOCK_SIZE := 131072 +# Super partition +BOARD_SUPER_PARTITION_SIZE := 6442450944 #6GB +BOARD_DB_DYNAMIC_PARTITIONS_SIZE := 6438256640 # Reserve 4M for DAP metadata +BOARD_SUPER_PARTITION_METADATA_DEVICE := super +BOARD_SUPER_IMAGE_IN_UPDATE_PACKAGE := true +BOARD_DB_DYNAMIC_PARTITIONS_PARTITION_LIST := system vendor system_ext product + +# Platform specific sepolicies +BOARD_SEPOLICY_DIRS += device/linaro/dragonboard/sm8x50/sepolicy/ + +# dlkm partitions +include device/linaro/dragonboard/shared/utils/dlkm_loader/BoardConfig.mk +BOARD_DB_DYNAMIC_PARTITIONS_PARTITION_LIST += system_dlkm vendor_dlkm +BOARD_SEPOLICY_DIRS += device/linaro/dragonboard/shared/utils/dlkm_loader/sepolicy/ + +# Graphics +include device/linaro/dragonboard/shared/graphics/drm_hwcomposer/BoardConfig.mk +ifeq ($(TARGET_USES_SWR), true) +BOARD_SEPOLICY_DIRS += device/linaro/dragonboard/shared/graphics/swangle/sepolicy +else +include device/linaro/dragonboard/shared/graphics/mesa/BoardConfig.mk +endif +BOARD_SEPOLICY_DIRS += device/linaro/dragonboard/shared/graphics/minigbm_msm/sepolicy diff --git a/sm8x50/device.mk b/sm8x50/device.mk new file mode 100644 index 0000000..1613a5f --- /dev/null +++ b/sm8x50/device.mk @@ -0,0 +1,75 @@ +# +# Copyright (C) 2024 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. +# + +# setup dalvik vm configs +$(call inherit-product, frameworks/native/build/tablet-10in-xhdpi-2048-dalvik-heap.mk) + +include $(LOCAL_PATH)/../vendor-package-ver.mk +$(call inherit-product, $(SRC_TARGET_DIR)/product/virtual_ab_ota.mk) + +# dlkm_loader +include device/linaro/dragonboard/shared/utils/dlkm_loader/device.mk +PRODUCT_COPY_FILES += \ + device/linaro/dragonboard/shared/utils/dlkm_loader/dlkm_loader.rc:$(TARGET_COPY_OUT_VENDOR)/etc/init/dlkm_loader.rc + +# Build generic Audio HAL +PRODUCT_PACKAGES += audio.primary.sm8x50 + +# BootControl HAL +PRODUCT_PACKAGES += \ + android.hardware.boot@1.2-impl \ + android.hardware.boot@1.2-impl.recovery \ + android.hardware.boot@1.2-service + +# Set BT address +PRODUCT_PACKAGES += bdaddr + +# Install bdaddr script +PRODUCT_COPY_FILES += \ + device/linaro/dragonboard/shared/utils/bdaddr/set_bdaddr.sh:$(TARGET_COPY_OUT_VENDOR)/bin/set_bdaddr.sh + +# Install scripts to set vendor.* properties +PRODUCT_COPY_FILES += \ + device/linaro/dragonboard/shared/utils/set_hw.sh:$(TARGET_COPY_OUT_VENDOR)/bin/set_hw.sh \ + device/linaro/dragonboard/shared/utils/set_udc.sh:$(TARGET_COPY_OUT_VENDOR)/bin/set_udc.sh + +# Install scripts to set Ethernet MAC address +PRODUCT_COPY_FILES += \ + device/linaro/dragonboard/shared/utils/ethaddr/ethaddr.rc:$(TARGET_COPY_OUT_VENDOR)/etc/init/ethaddr.rc \ + device/linaro/dragonboard/shared/utils/ethaddr/set_ethaddr.sh:$(TARGET_COPY_OUT_VENDOR)/bin/set_ethaddr.sh + +PRODUCT_COPY_FILES += \ + $(LOCAL_PATH)/fstab:$(TARGET_COPY_OUT_RAMDISK)/first_stage_ramdisk/fstab.sm8x50 \ + $(LOCAL_PATH)/fstab:$(TARGET_COPY_OUT_VENDOR)/etc/fstab.sm8x50 + +PRODUCT_VENDOR_PROPERTIES += \ + ro.soc.manufacturer=Snapdragon 8 Gen Devboard \ + ro.soc.model=SM8x50 + +PRODUCT_SOONG_NAMESPACES += \ + vendor/linaro/sm8x50/$(EXPECTED_LINARO_VENDOR_VERSION) + +# XXX until v4 support +PRODUCT_COPY_FILES += \ + device/linaro/dragonboard/shared/utils/dlkm_loader/vendor_ramdisk.modules.blocklist:$(TARGET_COPY_OUT_RAMDISK)/lib/modules/modules.blocklist + +# Copy firmware files +$(call inherit-product-if-exists, vendor/linaro/sm8x50/$(EXPECTED_LINARO_VENDOR_VERSION)/device.mk) + +TARGET_HARDWARE := sm8x50 +TARGET_KERNEL_USE ?= mainline + +include device/linaro/dragonboard/device-common.mk diff --git a/sm8x50/dtb-overlays/sm8550-hdk.dts b/sm8x50/dtb-overlays/sm8550-hdk.dts new file mode 100644 index 0000000..caf4dc1 --- /dev/null +++ b/sm8x50/dtb-overlays/sm8550-hdk.dts @@ -0,0 +1,7 @@ +/dts-v1/; +/plugin/; + +&{/} { + qcom,msm-id = <536 0x10000>, <536 0x20000>, <601 0x20000>; + qcom,board-id = <0x1001f 0>; +}; diff --git a/sm8x50/dtb-overlays/sm8550-qrd.dts b/sm8x50/dtb-overlays/sm8550-qrd.dts new file mode 100644 index 0000000..1f1d059 --- /dev/null +++ b/sm8x50/dtb-overlays/sm8550-qrd.dts @@ -0,0 +1,7 @@ +/dts-v1/; +/plugin/; + +&{/} { + qcom,msm-id = <0x207 0x20000 0x218 0x20000>; + qcom,board-id = <0x1000b 0x00>; +}; diff --git a/sm8x50/dtb-overlays/sm8650-qrd.dts b/sm8x50/dtb-overlays/sm8650-qrd.dts new file mode 100644 index 0000000..7903ae2 --- /dev/null +++ b/sm8x50/dtb-overlays/sm8650-qrd.dts @@ -0,0 +1,7 @@ +/dts-v1/; +/plugin/; + +&{/} { + qcom,msm-id = <0x22d 0x10000>; + qcom,board-id = <0x0b 0x00>; +}; diff --git a/sm8x50/fstab b/sm8x50/fstab new file mode 100644 index 0000000..6483e3e --- /dev/null +++ b/sm8x50/fstab @@ -0,0 +1,11 @@ +system /system erofs ro wait,logical,first_stage_mount,slotselect +/dev/block/platform/soc@0/1d84000.ufs/by-name/userdata /data ext4 discard,noatime,noauto_da_alloc,data=ordered,user_xattr,barrier=1,inlinecrypt latemount,wait,formattable,fileencryption=aes-256-xts:aes-256-cts:v2+inlinecrypt_optimized,keydirectory=/metadata/vold/metadata_encryption,quota +/dev/block/platform/soc@0/1d84000.ufs/by-name/metadata /metadata ext4 noatime,nosuid,nodev,discard wait,formattable,first_stage_mount,check +/dev/block/platform/soc@0/1d84000.ufs/by-name/misc /misc emmc defaults defaults +/devices/platform/soc@0/8804000.mmc/mmc_host/mmc* auto auto defaults voldmanaged=sdcard1:auto +vendor /vendor erofs ro wait,logical,first_stage_mount,slotselect +system_ext /system_ext erofs ro wait,logical,first_stage_mount,slotselect +product /product erofs ro wait,logical,first_stage_mount,slotselect +system_dlkm /system_dlkm erofs ro wait,logical,first_stage_mount,slotselect +vendor_dlkm /vendor_dlkm erofs ro wait,logical,first_stage_mount,slotselect +/dev/block/zram0 none swap defaults zramsize=75% diff --git a/sm8x50/init.environ.rc b/sm8x50/init.environ.rc new file mode 100644 index 0000000..bd44494 --- /dev/null +++ b/sm8x50/init.environ.rc @@ -0,0 +1,3 @@ +# set up the global environment +on early-init + export MESA_LOADER_DRIVER_OVERRIDE zink diff --git a/sm8x50/sepolicy/file_contexts b/sm8x50/sepolicy/file_contexts new file mode 100644 index 0000000..2010957 --- /dev/null +++ b/sm8x50/sepolicy/file_contexts @@ -0,0 +1,17 @@ +/dev/block/platform/soc@0/1d84000\.ufs/by-name/fsc u:object_r:modem_block_device:s0 +/dev/block/platform/soc@0/1d84000\.ufs/by-name/fsg u:object_r:modem_block_device:s0 +/dev/block/platform/soc@0/1d84000\.ufs/by-name/modemst[12] u:object_r:modem_block_device:s0 +/dev/block/platform/soc@0/1d84000\.ufs/by-name/metadata u:object_r:metadata_block_device:s0 +/dev/block/platform/soc@0/1d84000\.ufs/by-name/super u:object_r:super_block_device:s0 +/dev/block/platform/soc@0/1d84000\.ufs/by-name/userdata u:object_r:userdata_block_device:s0 +/dev/block/platform/soc@0/1d84000\.ufs/by-name/misc u:object_r:misc_block_device:s0 + +/sys/devices/platform/d4a80000.memory/rmtfs u:object_r:sysfs_rmtfs:s0 +/sys/devices/platform/d4a80000.rmtfs-region/rmtfs u:object_r:sysfs_rmtfs:s0 + +/sys/devices/platform/soc@0/30000000.remoteproc u:object_r:sysfs_remoteproc:s0 +/sys/devices/platform/soc@0/32300000.remoteproc u:object_r:sysfs_remoteproc:s0 + +#wakeups +/sys/devices/platform/soc@0/4080000.remoteproc/wakeup/wakeup3 u:object_r:sysfs_wakeup:s0 +/sys/devices/platform/soc@0/30000000.remoteproc/wakeup/wakeup4 u:object_r:sysfs_wakeup:s0 diff --git a/sm8x50/sepolicy/genfs_contexts b/sm8x50/sepolicy/genfs_contexts new file mode 100644 index 0000000..447edb3 --- /dev/null +++ b/sm8x50/sepolicy/genfs_contexts @@ -0,0 +1,9 @@ +genfscon sysfs /devices/platform/d4a80000.memory/rmtfs u:object_r:sysfs_rmtfs:s0 +genfscon sysfs /devices/platform/d4a80000.rmtfs-region/rmtfs u:object_r:sysfs_rmtfs:s0 + +genfscon sysfs /devices/platform/soc@0/30000000.remoteproc u:object_r:sysfs_remoteproc:s0 +genfscon sysfs /devices/platform/soc@0/32300000.remoteproc u:object_r:sysfs_remoteproc:s0 + +#wakeups +genfscon sysfs /devices/platform/soc@0/4080000.remoteproc/wakeup/wakeup3 u:object_r:sysfs_wakeup:s0 +genfscon sysfs /devices/platform/soc@0/30000000.remoteproc/wakeup/wakeup4 u:object_r:sysfs_wakeup:s0 diff --git a/sm8x50/sm8x50.mk b/sm8x50/sm8x50.mk new file mode 100644 index 0000000..55f8476 --- /dev/null +++ b/sm8x50/sm8x50.mk @@ -0,0 +1,23 @@ +$(call inherit-product, device/linaro/dragonboard/full.mk) +$(call inherit-product, $(SRC_TARGET_DIR)/product/core_64_bit_only.mk) +$(call inherit-product, $(SRC_TARGET_DIR)/product/full_base.mk) + +# Target boots with software rendering by default +TARGET_USES_SWR ?= true +$(call inherit-product, device/linaro/dragonboard/shared/graphics/drm_hwcomposer/device.mk) +ifeq ($(TARGET_USES_SWR), true) + $(call inherit-product, device/linaro/dragonboard/shared/graphics/swangle/device.mk) +else + $(call inherit-product, device/linaro/dragonboard/shared/graphics/mesa/device.mk) + TARGET_USES_VULKAN := true + PRODUCT_VENDOR_PROPERTIES += debug.hwui.renderer=skiagl + PRODUCT_COPY_FILES += $(LOCAL_PATH)/init.environ.rc:$(TARGET_COPY_OUT_VENDOR)/etc/init/init.environ.rc +endif +$(call inherit-product, device/linaro/dragonboard/shared/graphics/minigbm_msm/device.mk) + +$(call inherit-product, device/linaro/dragonboard/sm8x50/device.mk) + +# Product overrides +PRODUCT_NAME := sm8x50 +PRODUCT_DEVICE := sm8x50 +PRODUCT_BRAND := Android diff --git a/vendor-package-ver.sh b/vendor-package-ver.sh index 690f87e..127a208 100755 --- a/vendor-package-ver.sh +++ b/vendor-package-ver.sh @@ -1,9 +1,9 @@ #!/bin/bash -export EXPECTED_LINARO_VENDOR_VERSION=20221126 +export EXPECTED_LINARO_VENDOR_VERSION=20240405 #make sure to use sha512sum here -export EXPECTED_LINARO_VENDOR_SHA=b87346f0612809458f556d0770f32a542ffd200418fe89bf1bf11b250f8c9197cd7c3624c87d141837c315a308d166129f711cf8c7b0a31eafcc1c2b87556199 -export VND_PKG_URL=https://releases.linaro.org/android/aosp-linaro-vendor-package/extract-linaro_devices-20221126.tgz +export EXPECTED_LINARO_VENDOR_SHA=b287858201bb3d3eaac4f2fa2626e2a594b5ea4364ad9fff8910c572e4c1b1a81283c48d342c1dc86984990fbd13720cdf4469e180a70624a739ccd168b50837 +export VND_PKG_URL=https://releases.devboardsforandroid.linaro.org/vendor-packages/20240405/extract-linaro_devices-20240405.tgz if [ "$1" = "url" ]; then echo $VND_PKG_URL |