huangcm
2025-07-01 676035278781360996553c427a12bf358249ebf7
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
# inherit common.mk
$(call inherit-product-if-exists, device/softwinner/common/common.mk)
 
$(call inherit-product-if-exists, vendor/aw/homlet/homlet.mk)
 
PRODUCT_CPU_TYPE ?= A100
 
DEVICE_PACKAGE_OVERLAYS := \
    device/softwinner/ceres-common/overlay \
    $(DEVICE_PACKAGE_OVERLAYS)
 
PRODUCT_COPY_FILES += \
    device/softwinner/ceres-common/init.sun50iw10p1.rc:$(TARGET_COPY_OUT_VENDOR)/etc/init/hw/init.sun50iw10p1.rc \
    device/softwinner/ceres-common/init.sun50iw10p1.usb.rc:$(TARGET_COPY_OUT_VENDOR)/etc/init/hw/init.sun50iw10p1.usb.rc \
    device/softwinner/ceres-common/ueventd.sun50iw10p1.rc:$(TARGET_COPY_OUT_VENDOR)/ueventd.rc
 
# display
PRODUCT_COPY_FILES += \
    device/softwinner/ceres-common/init.display.rc:$(TARGET_COPY_OUT_VENDOR)/etc/init/init.display.rc
 
# video
PRODUCT_COPY_FILES += \
    device/softwinner/ceres-common/configs/media_codecs_google_audio.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs_google_audio.xml \
    device/softwinner/ceres-common/configs/media_codecs_google_video.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs_google_video.xml \
    device/softwinner/ceres-common/configs/mediacodec-arm.policy:$(TARGET_COPY_OUT_VENDOR)/etc/seccomp_policy/mediacodec.policy
 
ifeq ($(CONFIG_LOW_RAM_DEVICE),true)
    PRODUCT_COPY_FILES += \
        device/softwinner/ceres-common/configs/media_codecs_go.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs.xml
else
    PRODUCT_COPY_FILES += \
        device/softwinner/ceres-common/configs/media_codecs.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs.xml
endif
 
USE_XML_AUDIO_POLICY_CONF := 1
PRODUCT_COPY_FILES += \
    frameworks/av/services/audiopolicy/config/usb_audio_policy_configuration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/usb_audio_policy_configuration.xml \
    device/softwinner/ceres-common/configs/audio_policy_configuration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_policy_configuration.xml \
    device/softwinner/ceres-common/configs/audio_policy_volumes_drc.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_policy_volumes_drc.xml \
    device/softwinner/ceres-common/configs/ceres_volume_tables.xml:$(TARGET_COPY_OUT_VENDOR)/etc/ceres_volume_tables.xml \
    device/softwinner/ceres-common/configs/audio_platform_info.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_platform_info.xml \
    hardware/libhardware_legacy/audio/audio_policy.conf:$(TARGET_COPY_OUT_VENDOR)/etc/audio_policy.conf \
    device/softwinner/ceres-common/configs/audio_effects.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_effects.xml \
    device/softwinner/ceres-common/configs/cfg-videoplayer.xml:system/etc/cfg-videoplayer.xml
 
# audio default output standby_ms
#PRODUCT_SYSTEM_DEFAULT_PROPERTIES += \
#    ro.audio.flinger_standbytime_ms=50
 
 
#usb and backup permissions file
PRODUCT_COPY_FILES += \
    frameworks/native/data/etc/android.software.midi.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.software.midi.xml \
    frameworks/native/data/etc/android.hardware.usb.host.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.usb.host.xml \
    frameworks/native/data/etc/android.hardware.usb.accessory.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.usb.accessory.xml \
    frameworks/native/data/etc/android.software.backup.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.software.backup.xml
 
PRODUCT_SYSTEM_DEFAULT_PROPERTIES += \
    persist.sys.zygote.opt=disable
 
PRODUCT_SYSTEM_DEFAULT_PROPERTIES += \
    ro.kernel.android.checkjni=0
 
PRODUCT_SYSTEM_DEFAULT_PROPERTIES += \
    ro.sys.cputype=QuadCore-$(PRODUCT_CPU_TYPE)
 
PRODUCT_SYSTEM_DEFAULT_PROPERTIES += \
    ro.lmk.use_psi=true
 
PRODUCT_SYSTEM_DEFAULT_PROPERTIES += \
    ro.config.per_app_memcg=false
 
# Enabling type-precise GC results in larger optimized DEX files.  The
# additional storage requirements for ".odex" files can cause /system
# to overflow on some devices, so this is configured separately for
# each product.
PRODUCT_TAGS += dalvik.gc.type-precise
 
PRODUCT_SYSTEM_DEFAULT_PROPERTIES += \
    ro.product.firmware=$(PRODUCT_CPU_TYPE)-q-v2.2
 
# if DISPLAY_BUILD_NUMBER := true then
# BUILD_DISPLAY_ID := $(BUILD_ID).$(BUILD_NUMBER)
# required by gms.
#DISPLAY_BUILD_NUMBER := true
#HAS_BUILD_NUMBER := true
#BUILD_NUMBER := $(shell date +%Y%m%d-%H%M%S)
 
PRODUCT_PROPERTY_OVERRIDES += \
    drm.service.enabled=true \
   debug.sf.latch_unsignaled=1
 
PRODUCT_PACKAGES += \
    WallpaperPicker2 \
    GooglePackageInstallerOverlay
 
PRODUCT_PACKAGES += \
    gpu-package \
    libwvhidl \
    libwvdrmengine \
    libvtswidevine \
    aw_thermal
 
ifeq ($(BOARD_HAS_SECURE_OS), true)
SECURE_OS_OPTEE := yes
PRODUCT_PACKAGES += \
    libteec \
    tee_supplicant
 
# keymaster version (0 or 2 or 4)
BOARD_KEYMASTER_VERSION := 4
SECURE_OS_SIGN_KEY_VER := 2
 
ifeq ($(SECURE_OS_SIGN_KEY_VER), 2)
TA_COPY_SUB_DIR = sign_key_v2/
else
TA_COPY_SUB_DIR = ./
endif
 
# keymaster ta
ifeq ($(BOARD_KEYMASTER_VERSION), 0)
PRODUCT_COPY_FILES += \
    device/softwinner/common/optee_ta/$(TA_COPY_SUB_DIR)/d6bebe60-be3e-4046-b239891e0a594860.ta:$(TARGET_COPY_OUT_VENDOR)/lib/optee_armtz/d6bebe60-be3e-4046-b239891e0a594860.ta
else ifeq ($(BOARD_KEYMASTER_VERSION), 4)
PRODUCT_COPY_FILES += \
    device/softwinner/common/optee_ta/$(TA_COPY_SUB_DIR)/663d017b-102d-4fe0-c086523e1c754846.ta:$(TARGET_COPY_OUT_VENDOR)/lib/optee_armtz/663d017b-102d-4fe0-c086523e1c754846.ta
 
# keystore algorithm info
PRODUCT_PROPERTY_OVERRIDES += ro.hardware.keystore_desede=true
else
PRODUCT_COPY_FILES += \
    device/softwinner/common/optee_ta/$(TA_COPY_SUB_DIR)/f5f7b549-ba64-44fe-9b74f3fc357c7c61.ta:$(TARGET_COPY_OUT_VENDOR)/lib/optee_armtz/f5f7b549-ba64-44fe-9b74f3fc357c7c61.ta
 
# hardware keymaster hal
PRODUCT_PACKAGES += \
    keystore.ceres
 
endif
 
# gatekeeper ta
PRODUCT_COPY_FILES += \
    device/softwinner/common/optee_ta/$(TA_COPY_SUB_DIR)/2233b43b-cec6-449a-9509469f5023e425.ta:$(TARGET_COPY_OUT_VENDOR)/lib/optee_armtz/2233b43b-cec6-449a-9509469f5023e425.ta
 
ifeq ($(BOARD_WIDEVINE_OEMCRYPTO_LEVEL), 1)
PRODUCT_PACKAGES += \
    liboemcrypto
PRODUCT_COPY_FILES += \
    device/softwinner/common/optee_ta/$(TA_COPY_SUB_DIR)/a98befed-d679-ce4a-a3c827dcd51d21ed.ta:$(TARGET_COPY_OUT_VENDOR)/lib/optee_armtz/a98befed-d679-ce4a-a3c827dcd51d21ed.ta \
    device/softwinner/common/optee_ta/$(TA_COPY_SUB_DIR)/4d78d2ea-a631-70fb-aaa787c2b5773052.ta:$(TARGET_COPY_OUT_VENDOR)/lib/optee_armtz/4d78d2ea-a631-70fb-aaa787c2b5773052.ta \
    device/softwinner/common/optee_ta/$(TA_COPY_SUB_DIR)/e41f7029-c73c-344a-8c5bae90c7439a47.ta:$(TARGET_COPY_OUT_VENDOR)/lib/optee_armtz/e41f7029-c73c-344a-8c5bae90c7439a47.ta
endif # ifeq ($(BOARD_WIDEVINE_OEMCRYPTO_LEVEL), 1)
 
else # ifeq ($(BOARD_HAS_SECURE_OS), true)
SECURE_OS_OPTEE := no
# if has no secure os, widevine level must set to 3
BOARD_WIDEVINE_OEMCRYPTO_LEVEL := 3
endif # ifeq ($(BOARD_HAS_SECURE_OS), true)