#
# Copyright 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.
#
KERNEL_SRC_DIR ?= linux/kernel-fugu
KERNEL_CFG_NAME ?= fugu
TARGET_KERNEL_ARCH ?= x86_64
# Check for availability of kernel source
ifneq ($(wildcard $(KERNEL_SRC_DIR)/Makefile),)
# Give precedence to TARGET_PREBUILT_KERNEL
ifeq ($(TARGET_PREBUILT_KERNEL),)
TARGET_KERNEL_BUILT_FROM_SOURCE := true
endif
endif
ifneq ($(TARGET_KERNEL_BUILT_FROM_SOURCE), true)
# Use prebuilt kernel
ifeq ($(TARGET_PREBUILT_KERNEL),)
LOCAL_KERNEL := device/asus/fugu-kernel/bzImage
else
LOCAL_KERNEL := $(TARGET_PREBUILT_KERNEL)
endif
PRODUCT_COPY_FILES += \
$(LOCAL_KERNEL):kernel
endif #TARGET_KERNEL_BUILT_FROM_SOURCE
# Need AppWidget permission to prevent from Launcher's crash.
# TODO(pattjin): Remove this when the TV Launcher is used, which does not support AppWidget.
PRODUCT_COPY_FILES += \
frameworks/native/data/etc/android.software.app_widgets.xml:system/etc/permissions/android.software.app_widgets.xml
PRODUCT_AAPT_CONFIG := normal large xlarge hdpi xhdpi
PRODUCT_AAPT_PREF_CONFIG := xhdpi
# xhdpi, while we are hardcoding the 1080 resolution.
# when we start doing 720 as well, will need to stop hardcoding this.
PRODUCT_PROPERTY_OVERRIDES += \
ro.sf.lcd_density=320
# There may be a cleaner way to do this.
PRODUCT_PROPERTY_OVERRIDES += \
dalvik.vm.heapstartsize=8m \
dalvik.vm.heapgrowthlimit=128m \
dalvik.vm.heapsize=174m
$(call inherit-product-if-exists, frameworks/native/build/tablet-10in-xhdpi-2048-dalvik-heap.mk)
PRODUCT_CHARACTERISTICS := nosdcard,tv
DEVICE_PACKAGE_OVERLAYS := \
device/asus/fugu/overlay
PRODUCT_COPY_FILES += \
device/asus/fugu/fstab.fugu:root/fstab.fugu \
device/asus/fugu/init.fugu.rc:root/init.fugu.rc \
device/asus/fugu/init.fugu.usb.rc:root/init.fugu.usb.rc \
device/asus/fugu/ueventd.fugu.rc:root/ueventd.fugu.rc \
device/asus/fugu/init.recovery.fugu.rc:root/init.recovery.fugu.rc
# Audio
PRODUCT_PACKAGES += \
libtinyalsa \
audio.primary.fugu \
audio.stub.default \
audio.usb.default \
audio.a2dp.default \
audio.r_submix.default \
libaudio-resampler
# http://b/15193147
# TODO(danalbert): Remove this once stlport is dead and gone.
PRODUCT_PACKAGES += libstlport
USE_CUSTOM_AUDIO_POLICY := 1
# specific management of audio_policy.conf
PRODUCT_COPY_FILES += \
device/asus/fugu/audio_policy.conf:system/etc/audio_policy.conf
# Hdmi CEC: Fugu works as a playback device (4).
PRODUCT_PROPERTY_OVERRIDES += ro.hdmi.device_type=4
# Hdmi CEC: Disable 'Set Menu Language' feature.
PRODUCT_PROPERTY_OVERRIDES += ro.hdmi.set_menu_language=false
# Keep secure decoders in mediaserver process
PRODUCT_PROPERTY_OVERRIDES += media.stagefright.less-secure=true
# Boot Animation
PRODUCT_COPY_FILES += \
device/asus/fugu/bootanimation-580-256col.zip:system/media/bootanimation.zip
# Bluetooth
PRODUCT_PACKAGES += \
bt_bcm4354
PRODUCT_COPY_FILES += \
device/asus/fugu/bt_vendor.conf:system/etc/bluetooth/bt_vendor.conf
# IMG graphics
PRODUCT_PACKAGES += \
IMG_graphics \
hwcomposer.moorefield
#Video
PRODUCT_COPY_FILES += \
device/asus/fugu/media_profiles.xml:system/etc/media_profiles.xml \
device/asus/fugu/wrs_omxil_components.list:system/etc/wrs_omxil_components.list \
frameworks/av/media/libstagefright/data/media_codecs_google_audio.xml:system/etc/media_codecs_google_audio.xml \
frameworks/av/media/libstagefright/data/media_codecs_google_tv.xml:system/etc/media_codecs_google_tv.xml \
frameworks/av/media/libstagefright/data/media_codecs_google_video.xml:system/etc/media_codecs_google_video.xml \
device/asus/fugu/media_codecs.xml:system/etc/media_codecs.xml \
device/asus/fugu/media_codecs_performance.xml:system/etc/media_codecs_performance.xml \
device/asus/fugu/mfx_omxil_core.conf:system/etc/mfx_omxil_core.conf \
device/asus/fugu/video_isv_profile.xml:system/etc/video_isv_profile.xml \
device/asus/fugu/codec_resources_limitation.xml:system/etc/codec_resources_limitation.xml
# psb video
PRODUCT_PACKAGES += \
pvr_drv_video
# Media SDK and OMX IL components
PRODUCT_PACKAGES += \
libmfxsw32 \
libmfx_omx_core \
libmfx_omx_components_sw \
libgabi++-mfx \
libstlport-mfx
#video firmware
PRODUCT_PACKAGES += \
msvdx.bin.0008.0000.0000 \
msvdx.bin.0008.0000.0001 \
msvdx.bin.0008.0002.0001 \
msvdx.bin.0008.0000.0002 \
msvdx.bin.000c.0001.0001 \
topaz.bin.0008.0000.0000 \
topaz.bin.0008.0000.0001 \
topaz.bin.0008.0000.0002 \
topaz.bin.0008.0002.0001 \
topaz.bin.000c.0001.0001 \
vsp.bin.0008.0000.0000 \
vsp.bin.0008.0000.0001 \
vsp.bin.0008.0000.0002 \
vsp.bin.0008.0002.0001 \
vsp.bin.000c.0001.0001
# libva
PRODUCT_PACKAGES += \
libva \
libva-android \
libva-tpi \
vainfo
#libstagefrighthw
PRODUCT_PACKAGES += \
libstagefrighthw
# libmix
PRODUCT_PACKAGES += \
libmixvbp_mpeg4 \
libmixvbp_h264 \
libmixvbp_h264secure \
libmixvbp_vc1 \
libmixvbp_vp8 \
libmixvbp_mpeg2 \
libmixvbp \
libva_videodecoder \
libva_videoencoder
PRODUCT_PACKAGES += \
libwrs_omxil_common \
libwrs_omxil_core_pvwrapped \
libOMXVideoDecoderAVC \
libOMXVideoDecoderH263 \
libOMXVideoDecoderMPEG4 \
libOMXVideoDecoderWMV \
libOMXVideoDecoderVP8 \
libOMXVideoDecoderMPEG2 \
libOMXVideoDecoderVP9HWR \
libOMXVideoDecoderVP9Hybrid \
libOMXVideoEncoderAVC \
libOMXVideoEncoderH263 \
libOMXVideoEncoderMPEG4 \
libOMXVideoEncoderVP8
#libISV
PRODUCT_PACKAGES += libisv_omx_core
# pvr
PRODUCT_PACKAGES += \
libpvr2d
# libdrm
PRODUCT_PACKAGES += \
libdrm \
dristat \
drmstat
# Wifi
PRODUCT_PACKAGES += \
libwpa_client \
lib_driver_cmd_bcmdhd \
hostapd \
wpa_supplicant \
bcmdhd.cal \
bcmdhd_sr2.cal
PRODUCT_COPY_FILES += \
device/asus/fugu/wpa_supplicant.conf:/system/etc/wifi/wpa_supplicant.conf
PRODUCT_COPY_FILES += \
frameworks/native/data/etc/android.hardware.wifi.xml:system/etc/permissions/android.hardware.wifi.xml \
frameworks/native/data/etc/android.hardware.wifi.direct.xml:system/etc/permissions/android.hardware.wifi.direct.xml \
frameworks/native/data/etc/android.hardware.bluetooth_le.xml:system/etc/permissions/android.hardware.bluetooth_le.xml \
frameworks/native/data/etc/android.hardware.bluetooth.xml:system/etc/permissions/android.hardware.bluetooth.xml \
frameworks/native/data/etc/android.hardware.usb.host.xml:system/etc/permissions/android.hardware.usb.host.xml \
frameworks/native/data/etc/android.hardware.hdmi.cec.xml:system/etc/permissions/android.hardware.hdmi.cec.xml \
frameworks/native/data/etc/android.software.midi.xml:system/etc/permissions/android.software.midi.xml
# Key layout files
PRODUCT_COPY_FILES += \
device/asus/fugu/Nexus_Remote.idc:system/usr/idc/Nexus_Remote.idc \
device/asus/fugu/gpio-keys.idc:system/usr/idc/gpio-keys.idc \
device/asus/fugu/gpio-keys.kl:system/usr/keylayout/gpio-keys.kl \
device/asus/fugu/gpio-keys.kcm:system/usr/keychars/gpio-keys.kcm \
device/asus/fugu/Spike.kl:system/usr/keylayout/Spike.kl \
device/asus/fugu/Nexus_Remote.kl:system/usr/keylayout/Nexus_Remote.kl
#GFX Config
PRODUCT_COPY_FILES += \
device/asus/fugu/powervr.ini:system/etc/powervr.ini \
frameworks/native/data/etc/android.hardware.vulkan.level-0.xml:system/etc/permissions/android.hardware.vulkan.level-0.xml \
frameworks/native/data/etc/android.hardware.vulkan.version-1_0_3.xml:system/etc/permissions/android.hardware.vulkan.version-1_0_3.xml
# Thermal itux
ENABLE_ITUXD := true
PRODUCT_PACKAGES += \
ituxd
# Power HAL
PRODUCT_PACKAGES += \
power.fugu
# Debug rc files
ifneq (,$(filter userdebug eng, $(TARGET_BUILD_VARIANT)))
PRODUCT_COPY_FILES += \
device/asus/fugu/init.fugu.diag.rc.userdebug:root/init.fugu.diag.rc
endif
# In userdebug, add minidebug info the the boot image and the system server to support
# diagnosing native crashes.
ifneq (,$(filter userdebug, $(TARGET_BUILD_VARIANT)))
# Boot image.
PRODUCT_DEX_PREOPT_BOOT_FLAGS += --generate-mini-debug-info
# System server and some of its services. This is just here for completeness and consistency,
# as we currently only compile the boot image.
# Note: we cannot use PRODUCT_SYSTEM_SERVER_JARS, as it has not been expanded at this point.
$(call add-product-dex-preopt-module-config,services,--generate-mini-debug-info)
$(call add-product-dex-preopt-module-config,wifi-service,--generate-mini-debug-info)
endif
$(call inherit-product-if-exists, vendor/asus/fugu/device-vendor.mk)
$(call inherit-product-if-exists, vendor/intel/PRIVATE/fugu/device-vendor.mk)
$(call inherit-product-if-exists, vendor/intel/moorefield/prebuilts/houdini/houdini.mk)
# Add WiFi Firmware
$(call inherit-product-if-exists, hardware/broadcom/wlan/bcmdhd/firmware/bcm4354/device-bcm.mk)
# specific management of sep_policy.conf
PRODUCT_COPY_FILES += \
device/asus/fugu/sep_policy.conf:system/etc/security/sep_policy.conf
#PRODUCT_CHARACTERISTICS := tablet
# Wifi country code
PRODUCT_COPY_FILES += \
device/asus/fugu/init.fugu.countrycode.sh:system/bin/init.fugu.countrycode.sh
# Get rid of dex preoptimization to save space for the system.img
# Sorted by *.odex size
FUGU_DONT_DEXPREOPT_MODULES := \
NoTouchAuthDelegate \
ConfigUpdater \
SecondScreenSetup \
SecondScreenSetupAuthBridge \
TvSettings \
SetupWraith \
GooglePackageInstaller \
GoogleContactsSyncAdapter \
BugReportSender \
ContactsProvider \
PrintSpooler \
CalendarProvider \
CanvasPackageInstaller \
SettingsProvider \
ituxd \
StatementService \
ExternalStorageProvider \
FrameworkPackageStubs \
CertInstaller \
KeyChain \
UserDictionaryProvider
# l10n builds are larger so trim further
ifneq (,$(filter fugu_l10n, $(TARGET_PRODUCT)))
FUGU_DONT_DEXPREOPT_MODULES += \
Shell \
Overscan \
RemoteControlService
endif
$(call add-product-dex-preopt-module-config,$(FUGU_DONT_DEXPREOPT_MODULES),disable)
# Some CTS tests will be skipped based on what the initial API level that
# shipped on device was.
PRODUCT_PROPERTY_OVERRIDES += \
ro.product.first_api_level=21