1#
2# Copyright (C) 2013 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# Base configuration for most consumer android devices.  Do not put
18# things that are specific to communication devices (phones, tables,
19# etc.) here -- for that, use core.mk.
20
21PRODUCT_BRAND := generic
22PRODUCT_DEVICE := generic
23PRODUCT_NAME := core
24
25PRODUCT_PACKAGES += \
26    BackupRestoreConfirmation \
27    CompanionDeviceManager \
28    CtsShimPrebuilt \
29    CtsShimPrivPrebuilt \
30    DownloadProvider \
31    ExtShared \
32    ExtServices \
33    HTMLViewer \
34    MediaProvider \
35    PackageInstaller \
36    SecureElement \
37    SettingsProvider \
38    Shell \
39    StatementService \
40    WallpaperBackup \
41    android.hidl.base-V1.0-java \
42    android.hidl.manager-V1.0-java \
43    bcc \
44    bu \
45    com.android.future.usb.accessory \
46    com.android.location.provider \
47    com.android.location.provider.xml \
48    com.android.media.remotedisplay \
49    com.android.media.remotedisplay.xml \
50    com.android.mediadrm.signer \
51    com.android.mediadrm.signer.xml \
52    drmserver \
53    ethernet-service \
54    framework-res \
55    idmap \
56    installd \
57    ims-common \
58    ip \
59    ip-up-vpn \
60    ip6tables \
61    iptables \
62    gatekeeperd \
63    keystore \
64    ld.config.txt \
65    ld.mc \
66    libaaudio \
67    libOpenMAXAL \
68    libOpenSLES \
69    libdownmix \
70    libdrmframework \
71    libdrmframework_jni \
72    libfilterfw \
73    libkeystore \
74    libgatekeeper \
75    libneuralnetworks \
76    libwebviewchromium_loader \
77    libwebviewchromium_plat_support \
78    libwilhelm \
79    logd \
80    mke2fs \
81    e2fsck \
82    resize2fs \
83    tune2fs \
84    screencap \
85    sensorservice \
86    telephony-common \
87    uiautomator \
88    uncrypt \
89    vndk_snapshot_package \
90    voip-common \
91    webview \
92    webview_zygote \
93
94# Wifi modules
95PRODUCT_PACKAGES += \
96    wifi-service \
97    wificond \
98
99PRODUCT_COPY_FILES += \
100    frameworks/native/data/etc/android.software.webview.xml:system/etc/permissions/android.software.webview.xml
101
102ifneq (REL,$(PLATFORM_VERSION_CODENAME))
103PRODUCT_COPY_FILES += \
104    frameworks/native/data/etc/android.software.preview_sdk.xml:system/etc/permissions/android.software.preview_sdk.xml
105endif
106
107ifeq ($(TARGET_CORE_JARS),)
108$(error TARGET_CORE_JARS is empty; cannot initialize PRODUCT_BOOT_JARS variable)
109endif
110
111# The order of PRODUCT_BOOT_JARS matters.
112PRODUCT_BOOT_JARS := \
113    $(TARGET_CORE_JARS) \
114    ext \
115    framework \
116    telephony-common \
117    voip-common \
118    ims-common \
119    android.hidl.base-V1.0-java \
120    android.hidl.manager-V1.0-java
121
122ifeq ($(REMOVE_OAHL_FROM_BCP),true)
123PRODUCT_BOOT_JARS += framework-oahl-backward-compatibility
124else
125PRODUCT_BOOT_JARS += org.apache.http.legacy.boot
126endif
127
128ifeq ($(REMOVE_ATB_FROM_BCP),true)
129PRODUCT_BOOT_JARS += framework-atb-backward-compatibility
130else
131PRODUCT_BOOT_JARS += android.test.base
132endif
133
134# The order of PRODUCT_SYSTEM_SERVER_JARS matters.
135PRODUCT_SYSTEM_SERVER_JARS := \
136    services \
137    ethernet-service \
138    wifi-service \
139    com.android.location.provider \
140
141# The set of packages whose code can be loaded by the system server.
142PRODUCT_SYSTEM_SERVER_APPS += \
143    SettingsProvider \
144    WallpaperBackup
145
146# Adoptable external storage supports both ext4 and f2fs
147PRODUCT_PACKAGES += \
148    e2fsck \
149    mke2fs \
150    fsck.f2fs \
151    make_f2fs \
152
153PRODUCT_DEFAULT_PROPERTY_OVERRIDES += \
154    ro.zygote=zygote32
155PRODUCT_COPY_FILES += \
156    system/core/rootdir/init.zygote32.rc:root/init.zygote32.rc
157
158PRODUCT_COPY_FILES += \
159    system/core/rootdir/etc/public.libraries.android.txt:system/etc/public.libraries.txt
160
161# Enable boot.oat filtering of compiled classes to reduce boot.oat size. b/28026683
162PRODUCT_COPY_FILES += $(call add-to-product-copy-files-if-exists,\
163    frameworks/base/config/compiled-classes-phone:system/etc/compiled-classes)
164
165# Enable dirty image object binning to reduce dirty pages in the image.
166PRODUCT_COPY_FILES += $(call add-to-product-copy-files-if-exists,\
167    frameworks/base/dirty-image-objects-phone:system/etc/dirty-image-objects)
168
169# On userdebug builds, collect more tombstones by default.
170ifneq (,$(filter userdebug eng,$(TARGET_BUILD_VARIANT)))
171PRODUCT_SYSTEM_DEFAULT_PROPERTIES += \
172    tombstoned.max_tombstone_count=50
173endif
174
175PRODUCT_DEFAULT_PROPERTY_OVERRIDES += \
176    ro.logd.size.stats=64K \
177    log.tag.stats_log=I
178
179$(call inherit-product, $(SRC_TARGET_DIR)/product/runtime_libart.mk)
180$(call inherit-product, $(SRC_TARGET_DIR)/product/base.mk)
181
182# Enable CFI for security-sensitive components
183$(call inherit-product, $(SRC_TARGET_DIR)/product/cfi-common.mk)
184$(call inherit-product-if-exists, vendor/google/products/cfi-vendor.mk)
185