• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1#
2# Copyright (C) 2023 The Android Open Source Project
3#
4# Licensed under the Apache License, Version 2.0 (the "License");
5# you may not use this file except in compliance with the License.
6# You may obtain a copy of the License at
7#
8#      http://www.apache.org/licenses/LICENSE-2.0
9#
10# Unless required by applicable law or agreed to in writing, software
11# distributed under the License is distributed on an "AS IS" BASIS,
12# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13# See the License for the specific language governing permissions and
14# limitations under the License.
15
16#
17# This file is to configure vendor/data partitions of emulator-related products
18#
19$(call inherit-product-if-exists, frameworks/native/build/phone-xhdpi-2048-dalvik-heap.mk)
20
21# Enable Scoped Storage related
22$(call inherit-product, $(SRC_TARGET_DIR)/product/emulated_storage.mk)
23
24PRODUCT_SHIPPING_API_LEVEL := 35
25PRODUCT_FULL_TREBLE_OVERRIDE := true
26DEVICE_MANIFEST_FILE += device/generic/goldfish/manifest.xml
27
28PRODUCT_SOONG_NAMESPACES += \
29    device/generic/goldfish \
30    device/generic/goldfish-opengl
31
32TARGET_USES_MKE2FS := true
33
34# Set Vendor SPL to match platform
35VENDOR_SECURITY_PATCH = $(PLATFORM_SECURITY_PATCH)
36
37# RKPD
38PRODUCT_PRODUCT_PROPERTIES += \
39    remote_provisioning.enable_rkpd=true \
40    remote_provisioning.hostname=remoteprovisioning.googleapis.com
41
42PRODUCT_PACKAGES += \
43    hwservicemanager \
44    android.hidl.allocator@1.0-service
45
46
47PRODUCT_VENDOR_PROPERTIES += \
48    ro.control_privapp_permissions=enforce \
49    ro.crypto.dm_default_key.options_format.version=2 \
50    ro.crypto.volume.filenames_mode=aes-256-cts \
51    ro.hardware.audio.tinyalsa.period_count=4 \
52    ro.hardware.audio.tinyalsa.period_size_multiplier=2 \
53    ro.hardware.audio.tinyalsa.host_latency_ms=80 \
54    ro.hardware.power=ranchu \
55    ro.incremental.enable=yes \
56    ro.logd.size=1M \
57    ro.kernel.qemu=1 \
58    ro.soc.manufacturer=AOSP \
59    ro.soc.model=ranchu \
60    ro.surface_flinger.has_HDR_display=false \
61    ro.surface_flinger.has_wide_color_display=false \
62    ro.surface_flinger.protected_contents=false \
63    ro.surface_flinger.supports_background_blur=1 \
64    ro.surface_flinger.use_color_management=false \
65    ro.zygote.disable_gl_preload=1 \
66    debug.renderengine.backend=skiaglthreaded \
67    debug.sf.vsync_reactor_ignore_present_fences=true \
68    debug.stagefright.c2inputsurface=-1 \
69    debug.stagefright.ccodec=4 \
70    graphics.gpu.profiler.support=true \
71    persist.sys.usb.config="" \
72    persist.sys.zram_enabled=1 \
73    wifi.direct.interface=p2p-dev-wlan0 \
74    wifi.interface=wlan0 \
75
76# Device modules
77PRODUCT_PACKAGES += \
78    android.hardware.drm-service-lazy.clearkey \
79    android.hardware.gatekeeper@1.0-service.software \
80    android.hardware.usb-service.example \
81    vulkan.ranchu \
82    libandroidemu \
83    libOpenglCodecCommon \
84    libOpenglSystemCommon \
85    qemu-props \
86    stagefright \
87    android.hardware.graphics.composer3-service.ranchu \
88    toybox_vendor \
89    android.hardware.wifi-service \
90    android.hardware.media.c2@1.0-service-goldfish \
91    libcodec2_goldfish_vp8dec \
92    libcodec2_goldfish_vp9dec \
93    libcodec2_goldfish_avcdec \
94    libcodec2_goldfish_hevcdec \
95    sh_vendor \
96    local_time.default \
97    SdkSetup \
98    goldfish_overlay_connectivity_gsi \
99    RanchuCommonOverlay \
100    libGoldfishProfiler \
101    dlkm_loader
102
103ifneq ($(filter %_minigbm, $(TARGET_PRODUCT)),)
104PRODUCT_VENDOR_PROPERTIES += ro.hardware.gralloc=minigbm
105PRODUCT_PACKAGES += \
106    android.hardware.graphics.allocator-service.minigbm \
107    android.hardware.graphics.mapper@4.0-impl.minigbm \
108    mapper.minigbm
109else
110PRODUCT_VENDOR_PROPERTIES += ro.hardware.gralloc=ranchu
111PRODUCT_PACKAGES += \
112    android.hardware.graphics.allocator@3.0-service.ranchu \
113    android.hardware.graphics.mapper@3.0-impl-ranchu
114endif
115
116ifneq ($(EMULATOR_DISABLE_RADIO),true)
117PRODUCT_PACKAGES += \
118    libcuttlefish-ril-2 \
119    libgoldfish-rild \
120    EmulatorRadioConfig \
121    EmulatorTetheringConfigOverlay
122
123DEVICE_MANIFEST_FILE += device/generic/goldfish/radio/manifest.radio.xml
124DISABLE_RILD_OEM_HOOK := true
125endif
126
127ifneq ($(EMULATOR_VENDOR_NO_BIOMETRICS), true)
128PRODUCT_PACKAGES += \
129    android.hardware.biometrics.fingerprint-service.ranchu \
130    android.hardware.biometrics.face-service.example \
131
132PRODUCT_COPY_FILES += \
133    frameworks/native/data/etc/android.hardware.fingerprint.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.fingerprint.xml \
134    frameworks/native/data/etc/android.hardware.biometrics.face.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.biometrics.face.xml \
135
136endif
137
138ifneq ($(BUILD_EMULATOR_OPENGL),false)
139PRODUCT_PACKAGES += \
140    libGLESv1_CM_emulation \
141    lib_renderControl_enc \
142    libEGL_emulation \
143    libGLESv2_enc \
144    libvulkan_enc \
145    libGLESv2_emulation \
146    libGLESv1_enc \
147    libEGL_angle \
148    libGLESv1_CM_angle \
149    libGLESv2_angle
150endif
151
152# Enable bluetooth
153PRODUCT_PACKAGES += \
154    android.hardware.bluetooth-service.default \
155    android.hardware.bluetooth.audio-impl \
156    bt_vhci_forwarder \
157
158# Bluetooth hardware properties.
159ifeq ($(TARGET_PRODUCT_PROP),)
160TARGET_PRODUCT_PROP := $(LOCAL_PATH)/bluetooth.prop
161endif
162
163PRODUCT_PACKAGES += \
164    android.hardware.security.keymint-service
165PRODUCT_COPY_FILES += \
166    frameworks/native/data/etc/android.hardware.keystore.app_attest_key.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.keystore.app_attest_key.xml
167
168PRODUCT_PACKAGES += \
169    DisplayCutoutEmulationEmu01Overlay \
170    EmulationPixelFoldOverlay \
171    SystemUIEmulationPixelFoldOverlay \
172    EmulationPixel8ProOverlay \
173    SystemUIEmulationPixel8ProOverlay \
174    EmulationPixel8aOverlay \
175    SystemUIEmulationPixel8aOverlay \
176    EmulationPixel8Overlay \
177    SystemUIEmulationPixel8Overlay \
178    EmulationPixel7ProOverlay \
179    SystemUIEmulationPixel7ProOverlay \
180    EmulationPixel7Overlay \
181    SystemUIEmulationPixel7Overlay \
182    EmulationPixel7aOverlay \
183    SystemUIEmulationPixel7aOverlay \
184    EmulationPixel6ProOverlay \
185    SystemUIEmulationPixel6ProOverlay \
186    EmulationPixel6Overlay \
187    SystemUIEmulationPixel6Overlay \
188    EmulationPixel6aOverlay \
189    SystemUIEmulationPixel6aOverlay \
190    EmulationPixel5Overlay \
191    SystemUIEmulationPixel5Overlay \
192    EmulationPixel4XLOverlay \
193    SystemUIEmulationPixel4XLOverlay \
194    EmulationPixel4Overlay \
195    SystemUIEmulationPixel4Overlay \
196    EmulationPixel4aOverlay \
197    SystemUIEmulationPixel4aOverlay \
198    EmulationPixel3XLOverlay \
199    SystemUIEmulationPixel3XLOverlay \
200    EmulationPixel3Overlay \
201    SystemUIEmulationPixel3Overlay \
202    EmulationPixel3aOverlay \
203    SystemUIEmulationPixel3aOverlay \
204    EmulationPixel3aXLOverlay \
205    SystemUIEmulationPixel3aXLOverlay \
206    EmulationPixel2XLOverlay \
207    NavigationBarMode2ButtonOverlay \
208
209ifneq ($(EMULATOR_VENDOR_NO_GNSS),true)
210PRODUCT_PACKAGES += android.hardware.gnss-service.ranchu
211endif
212
213ifneq ($(EMULATOR_VENDOR_NO_SENSORS),true)
214PRODUCT_PACKAGES += \
215    android.hardware.sensors-service.multihal \
216    android.hardware.sensors@2.1-impl.ranchu
217# TODO(rkir):
218# add a soong namespace and move this into a.h.sensors@2.1-impl.ranchu
219# as prebuilt_etc. For now soong_namespace causes a build break because the fw
220# refers to our wifi HAL in random places.
221PRODUCT_COPY_FILES += \
222    device/generic/goldfish/sensors/hals.conf:$(TARGET_COPY_OUT_VENDOR)/etc/sensors/hals.conf
223endif
224
225ifneq ($(EMULATOR_VENDOR_NO_CAMERA),true)
226PRODUCT_SOONG_NAMESPACES += \
227    hardware/google/camera \
228    hardware/google/camera/devices/EmulatedCamera \
229
230PRODUCT_PACKAGES += \
231    android.hardware.camera.provider.ranchu \
232    android.hardware.camera.provider@2.7-service-google \
233    libgooglecamerahwl_impl \
234
235PRODUCT_COPY_FILES += \
236    device/generic/goldfish/camera/media/profiles.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_profiles_V1_0.xml \
237    device/generic/goldfish/camera/media/codecs_google_video_default.xml:${TARGET_COPY_OUT_VENDOR}/etc/media_codecs_google_video.xml \
238    device/generic/goldfish/camera/media/codecs.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs.xml \
239    device/generic/goldfish/camera/media/codecs_performance.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs_performance.xml \
240    device/generic/goldfish/camera/media/codecs_performance_c2.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs_performance_c2.xml \
241    frameworks/native/data/etc/android.hardware.camera.flash-autofocus.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.camera.flash-autofocus.xml \
242    frameworks/native/data/etc/android.hardware.camera.concurrent.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.camera.concurrent.xml \
243    frameworks/native/data/etc/android.hardware.camera.front.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.camera.front.xml \
244    frameworks/native/data/etc/android.hardware.camera.full.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.camera.full.xml \
245    frameworks/native/data/etc/android.hardware.camera.raw.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.camera.raw.xml \
246    hardware/google/camera/devices/EmulatedCamera/hwl/configs/emu_camera_back.json:$(TARGET_COPY_OUT_VENDOR)/etc/config/emu_camera_back.json \
247    hardware/google/camera/devices/EmulatedCamera/hwl/configs/emu_camera_front.json:$(TARGET_COPY_OUT_VENDOR)/etc/config/emu_camera_front.json \
248    hardware/google/camera/devices/EmulatedCamera/hwl/configs/emu_camera_depth.json:$(TARGET_COPY_OUT_VENDOR)/etc/config/emu_camera_depth.json \
249
250endif
251
252ifneq ($(EMULATOR_VENDOR_NO_SOUND),true)
253PRODUCT_PACKAGES += \
254    android.hardware.audio.service \
255    android.hardware.audio@7.1-impl.ranchu \
256    android.hardware.audio.effect@7.0-impl \
257
258DEVICE_MANIFEST_FILE += device/generic/goldfish/audio/android.hardware.audio.effects@7.0.xml
259
260PRODUCT_COPY_FILES += \
261    device/generic/goldfish/audio/policy/audio_policy_configuration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_policy_configuration.xml \
262    device/generic/goldfish/audio/policy/primary_audio_policy_configuration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/primary_audio_policy_configuration.xml \
263    frameworks/av/services/audiopolicy/config/bluetooth_audio_policy_configuration_7_0.xml:$(TARGET_COPY_OUT_VENDOR)/etc/bluetooth_audio_policy_configuration_7_0.xml \
264    frameworks/av/services/audiopolicy/config/r_submix_audio_policy_configuration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/r_submix_audio_policy_configuration.xml \
265    frameworks/av/services/audiopolicy/config/audio_policy_volumes.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_policy_volumes.xml \
266    frameworks/av/services/audiopolicy/config/default_volume_tables.xml:$(TARGET_COPY_OUT_VENDOR)/etc/default_volume_tables.xml \
267    frameworks/av/media/libeffects/data/audio_effects.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_effects.xml \
268
269endif
270
271# WiFi: vendor side
272PRODUCT_PACKAGES += \
273    mac80211_create_radios \
274    dhcpclient \
275    hostapd \
276    wpa_supplicant \
277
278# Window Extensions
279$(call inherit-product, $(SRC_TARGET_DIR)/product/window_extensions.mk)
280
281# "Hello, world!" HAL implementations, mostly for compliance
282PRODUCT_PACKAGES += \
283    android.hardware.atrace@1.0-service \
284    com.android.hardware.authsecret \
285    android.hardware.contexthub-service.example \
286    android.hardware.dumpstate-service.example \
287    android.hardware.health-service.example \
288    android.hardware.health.storage-service.default \
289    android.hardware.lights-service.example \
290    com.android.hardware.neuralnetworks \
291    android.hardware.power-service.example \
292    android.hardware.power.stats-service.example \
293    com.android.hardware.rebootescrow \
294    android.hardware.thermal@2.0-service.mock \
295    android.hardware.vibrator-service.example
296
297# TVs don't use a hardware identity service.
298ifneq ($(PRODUCT_IS_ATV_SDK),true)
299    PRODUCT_PACKAGES += \
300        android.hardware.identity-service.example
301endif
302
303PRODUCT_COPY_FILES += \
304    device/generic/goldfish/data/empty_data_disk:data/empty_data_disk \
305    device/generic/goldfish/data/etc/dtb.img:dtb.img \
306    device/generic/goldfish/data/etc/encryptionkey.img:encryptionkey.img \
307    device/generic/goldfish/emulator-info.txt:data/misc/emulator/version.txt \
308    device/generic/goldfish/data/etc/apns-conf.xml:data/misc/apns/apns-conf.xml \
309    device/generic/goldfish/radio/RadioConfig/radioconfig.xml:data/misc/emulator/config/radioconfig.xml \
310    device/generic/goldfish/data/etc/iccprofile_for_sim0.xml:data/misc/modem_simulator/iccprofile_for_sim0.xml \
311    device/google/cuttlefish/host/commands/modem_simulator/files/iccprofile_for_sim0_for_CtsCarrierApiTestCases.xml:data/misc/modem_simulator/iccprofile_for_carrierapitests.xml \
312    device/generic/goldfish/data/etc/numeric_operator.xml:data/misc/modem_simulator/etc/modem_simulator/files/numeric_operator.xml \
313    device/generic/goldfish/data/etc/local.prop:data/local.prop \
314    device/generic/goldfish/init.ranchu.adb.setup.sh:$(TARGET_COPY_OUT_SYSTEM_EXT)/bin/init.ranchu.adb.setup.sh \
315    device/generic/goldfish/init_ranchu_device_state.sh:$(TARGET_COPY_OUT_VENDOR)/bin/init_ranchu_device_state.sh \
316    device/generic/goldfish/init.ranchu-core.sh:$(TARGET_COPY_OUT_VENDOR)/bin/init.ranchu-core.sh \
317    device/generic/goldfish/init.ranchu-net.sh:$(TARGET_COPY_OUT_VENDOR)/bin/init.ranchu-net.sh \
318    device/generic/goldfish/init.ranchu.rc:$(TARGET_COPY_OUT_VENDOR)/etc/init/hw/init.ranchu.rc \
319    device/generic/goldfish/init.system_ext.rc:$(TARGET_COPY_OUT_SYSTEM_EXT)/etc/init/init.system_ext.rc \
320    device/generic/goldfish/ueventd.ranchu.rc:$(TARGET_COPY_OUT_VENDOR)/etc/ueventd.rc \
321    device/generic/goldfish/input/virtio_input_rotary.idc:$(TARGET_COPY_OUT_VENDOR)/usr/idc/virtio_input_rotary.idc \
322    device/generic/goldfish/input/qwerty2.idc:$(TARGET_COPY_OUT_VENDOR)/usr/idc/qwerty2.idc \
323    device/generic/goldfish/input/qwerty2.kcm:$(TARGET_COPY_OUT_VENDOR)/usr/keychars/qwerty2.kcm \
324    device/generic/goldfish/input/qwerty2.kl:$(TARGET_COPY_OUT_VENDOR)/usr/keylayout/qwerty2.kl \
325    device/generic/goldfish/input/virtio_input_multi_touch_1.idc:$(TARGET_COPY_OUT_VENDOR)/usr/idc/virtio_input_multi_touch_1.idc \
326    device/generic/goldfish/input/virtio_input_multi_touch_2.idc:$(TARGET_COPY_OUT_VENDOR)/usr/idc/virtio_input_multi_touch_2.idc \
327    device/generic/goldfish/input/virtio_input_multi_touch_3.idc:$(TARGET_COPY_OUT_VENDOR)/usr/idc/virtio_input_multi_touch_3.idc \
328    device/generic/goldfish/input/virtio_input_multi_touch_4.idc:$(TARGET_COPY_OUT_VENDOR)/usr/idc/virtio_input_multi_touch_4.idc \
329    device/generic/goldfish/input/virtio_input_multi_touch_5.idc:$(TARGET_COPY_OUT_VENDOR)/usr/idc/virtio_input_multi_touch_5.idc \
330    device/generic/goldfish/input/virtio_input_multi_touch_6.idc:$(TARGET_COPY_OUT_VENDOR)/usr/idc/virtio_input_multi_touch_6.idc \
331    device/generic/goldfish/input/virtio_input_multi_touch_7.idc:$(TARGET_COPY_OUT_VENDOR)/usr/idc/virtio_input_multi_touch_7.idc \
332    device/generic/goldfish/input/virtio_input_multi_touch_8.idc:$(TARGET_COPY_OUT_VENDOR)/usr/idc/virtio_input_multi_touch_8.idc \
333    device/generic/goldfish/input/virtio_input_multi_touch_9.idc:$(TARGET_COPY_OUT_VENDOR)/usr/idc/virtio_input_multi_touch_9.idc \
334    device/generic/goldfish/input/virtio_input_multi_touch_10.idc:$(TARGET_COPY_OUT_VENDOR)/usr/idc/virtio_input_multi_touch_10.idc \
335    device/generic/goldfish/input/virtio_input_multi_touch_11.idc:$(TARGET_COPY_OUT_VENDOR)/usr/idc/virtio_input_multi_touch_11.idc \
336    device/generic/goldfish/display_settings_app_compat.xml:$(TARGET_COPY_OUT_VENDOR)/etc/display_settings_app_compat.xml \
337    device/generic/goldfish/display_settings_freeform.xml:$(TARGET_COPY_OUT_VENDOR)/etc/display_settings_freeform.xml \
338    device/generic/goldfish/display_settings.xml:$(TARGET_COPY_OUT_VENDOR)/etc/display_settings.xml \
339    device/generic/goldfish/pixel_fold/device_state_configuration.xml:/data/misc/pixel_fold/devicestate/device_state_configuration.xml \
340    device/generic/goldfish/pixel_fold/display_layout_configuration.xml:/data/misc/pixel_fold/displayconfig/display_layout_configuration.xml \
341    device/generic/goldfish/pixel_fold/display_settings.xml:/data/misc/pixel_fold/display_settings.xml \
342    device/generic/goldfish/pixel_fold/sensor_hinge_angle.xml:/data/misc/pixel_fold/extra_feature.xml \
343    device/generic/goldfish/data/etc/config.ini:config.ini \
344    device/generic/goldfish/wifi/wpa_supplicant.conf:$(TARGET_COPY_OUT_VENDOR)/etc/wifi/wpa_supplicant.conf \
345    frameworks/native/data/etc/android.hardware.bluetooth_le.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.bluetooth_le.xml \
346    frameworks/native/data/etc/android.hardware.bluetooth.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.bluetooth.xml \
347    frameworks/native/data/etc/android.hardware.wifi.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.wifi.xml \
348    frameworks/native/data/etc/android.hardware.wifi.passpoint.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.wifi.passpoint.xml \
349    frameworks/native/data/etc/android.hardware.wifi.direct.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.wifi.direct.xml \
350    frameworks/av/media/libstagefright/data/media_codecs_google_audio.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs_google_audio.xml \
351    frameworks/av/media/libstagefright/data/media_codecs_google_telephony.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs_google_telephony.xml \
352    frameworks/native/data/etc/android.hardware.touchscreen.multitouch.jazzhand.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.touchscreen.multitouch.jazzhand.xml \
353    frameworks/native/data/etc/android.hardware.vulkan.level-1.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.vulkan.level.xml \
354    frameworks/native/data/etc/android.hardware.vulkan.compute-0.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.vulkan.compute.xml \
355    frameworks/native/data/etc/android.hardware.vulkan.version-1_3.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.vulkan.version.xml \
356    frameworks/native/data/etc/android.software.vulkan.deqp.level-latest.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.software.vulkan.deqp.level.xml \
357    frameworks/native/data/etc/android.software.opengles.deqp.level-latest.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.software.opengles.deqp.level.xml \
358    frameworks/native/data/etc/android.software.autofill.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.software.autofill.xml \
359    frameworks/native/data/etc/android.software.verified_boot.xml:${TARGET_COPY_OUT_PRODUCT}/etc/permissions/android.software.verified_boot.xml \
360    device/generic/goldfish/data/etc/permissions/privapp-permissions-goldfish.xml:$(TARGET_COPY_OUT_PRODUCT)/etc/permissions/privapp-permissions-goldfish.xml \
361
362ifneq ($(EMULATOR_DISABLE_RADIO),true)
363# Android TV ingests this file, but declares its own set of hardware permissions.
364ifneq ($(PRODUCT_IS_ATV_SDK),true)
365    PRODUCT_COPY_FILES+= \
366        device/generic/goldfish/data/etc/handheld_core_hardware.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/handheld_core_hardware.xml
367endif
368endif
369
370# Goldfish uses 6.X kernels.
371PRODUCT_ENABLE_UFFD_GC := true
372