Move configuration files to vendor for build split

The following configuration files need to reside in vendor
partition to work with generic AOSP system image.

Move uevent.*.rc to /vendor
Move fstab.* to /vendor/etc
Move init.*.rc and init.wahoo.usb.rc to /vendor/etc/init.

Also the following two make file variables need to be set:
  - BOARD_PROPERTY_OVERRIDES_SPLIT_ENABLED := true
  - PRODUCT_ENFORCE_RRO_TARGETS := framework-res

Change path (to /vendor/bin) for init.*.sh, and add
path (to /vendor/etc) for fstab.* in init.hardware.rc.

Bug: 37927875
Test: These files are under /vendor instead of / or /system,
paths (in rc files) are changed to vendor accordingly,
and the resulted system/vendor images work on the device.

Change-Id: I64c8a899ab1c6837d51853e289160e35910b5b9a
This commit is contained in:
Isaac Chen
2017-05-10 19:01:06 +08:00
parent 98173c26b7
commit b635787205
4 changed files with 78 additions and 18 deletions

View File

@@ -147,3 +147,5 @@ BOARD_CHARGER_ENABLE_SUSPEND := true
# Vendor Interface Manifest
DEVICE_MANIFEST_FILE := device/google/wahoo/manifest.xml
DEVICE_MATRIX_FILE := device/google/wahoo/compatibility_matrix.xml
BOARD_PROPERTY_OVERRIDES_SPLIT_ENABLED := true

53
CleanSpec.mk Normal file
View File

@@ -0,0 +1,53 @@
# Copyright 2017 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.
#
# If you don't need to do a full clean build but would like to touch
# a file or delete some intermediate files, add a clean step to the end
# of the list. These steps will only be run once, if they haven't been
# run before.
#
# E.g.:
# $(call add-clean-step, touch -c external/sqlite/sqlite3.h)
# $(call add-clean-step, rm -rf $(PRODUCT_OUT)/obj/STATIC_LIBRARIES/libz_intermediates)
#
# Always use "touch -c" and "rm -f" or "rm -rf" to gracefully deal with
# files that are missing or have been moved.
#
# Use $(PRODUCT_OUT) to get to the "out/target/product/blah/" directory.
# Use $(OUT_DIR) to refer to the "out" directory.
#
# If you need to re-do something that's already mentioned, just copy
# the command and add it to the bottom of the list. E.g., if a change
# that you made last week required touching a file and a change you
# made today requires touching the same file, just copy the old
# touch step and add it to the end of the list.
#
# ************************************************
# NEWER CLEAN STEPS MUST BE AT THE END OF THE LIST
# ************************************************
# For example:
#$(call add-clean-step, rm -rf $(OUT_DIR)/target/common/obj/APPS/AndroidTests_intermediates)
#$(call add-clean-step, rm -rf $(OUT_DIR)/target/common/obj/JAVA_LIBRARIES/core_intermediates)
#$(call add-clean-step, find $(OUT_DIR) -type f -name "IGTalkSession*" -print0 | xargs -0 rm -f)
#$(call add-clean-step, rm -rf $(PRODUCT_OUT)/data/*)
$(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/bin/init.power.sh)
$(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/bin/init.radio.sh)
$(call add-clean-step, rm -rf $(PRODUCT_OUT)/root/init.$(PRODUCT_HARDWARE).rc)
$(call add-clean-step, rm -rf $(PRODUCT_OUT)/root/init.wahoo.usb.rc)
$(call add-clean-step, rm -rf $(PRODUCT_OUT)/root/init.$(PRODUCT_HARDWARE).diag.rc)
$(call add-clean-step, rm -rf $(PRODUCT_OUT)/root/ueventd.$(PRODUCT_HARDWARE).rc)

View File

@@ -55,10 +55,11 @@ DEVICE_PACKAGE_OVERLAYS += $(LOCAL_PATH)/overlay
PRODUCT_COPY_FILES += \
$(LOCAL_KERNEL):kernel \
$(LOCAL_PATH)/init.recovery.hardware.rc:root/init.recovery.$(PRODUCT_HARDWARE).rc \
$(LOCAL_PATH)/init.hardware.rc:root/init.$(PRODUCT_HARDWARE).rc \
$(LOCAL_PATH)/init.hardware.usb.rc:root/init.wahoo.usb.rc \
$(LOCAL_PATH)/ueventd.hardware.rc:root/ueventd.$(PRODUCT_HARDWARE).rc \
$(LOCAL_PATH)/init.radio.sh:system/bin/init.radio.sh \
$(LOCAL_PATH)/init.hardware.rc:$(TARGET_COPY_OUT_VENDOR)/etc/init/init.$(PRODUCT_HARDWARE).rc \
$(LOCAL_PATH)/init.hardware.usb.rc:$(TARGET_COPY_OUT_VENDOR)/etc/init/init.wahoo.usb.rc \
$(LOCAL_PATH)/ueventd.hardware.rc:$(TARGET_COPY_OUT_VENDOR)/ueventd.rc \
$(LOCAL_PATH)/init.power.sh:$(TARGET_COPY_OUT_VENDOR)/bin/init.power.sh \
$(LOCAL_PATH)/init.radio.sh:$(TARGET_COPY_OUT_VENDOR)/bin/init.radio.sh \
$(LOCAL_PATH)/uinput-fpc.kl:system/usr/keylayout/uinput-fpc.kl \
$(LOCAL_PATH)/uinput-fpc.idc:system/usr/idc/uinput-fpc.idc \
$(LOCAL_PATH)/init.qcom.devstart.sh:$(TARGET_COPY_OUT_VENDOR)/bin/init.qcom.devstart.sh \
@@ -67,10 +68,10 @@ PRODUCT_COPY_FILES += \
ifneq (,$(filter userdebug eng, $(TARGET_BUILD_VARIANT)))
PRODUCT_COPY_FILES += \
$(LOCAL_PATH)/init.hardware.diag.rc.userdebug:root/init.$(PRODUCT_HARDWARE).diag.rc
$(LOCAL_PATH)/init.hardware.diag.rc.userdebug:$(TARGET_COPY_OUT_VENDOR)/etc/init/init.$(PRODUCT_HARDWARE).diag.rc
else
PRODUCT_COPY_FILES += \
$(LOCAL_PATH)/init.hardware.diag.rc.user:root/init.$(PRODUCT_HARDWARE).diag.rc
$(LOCAL_PATH)/init.hardware.diag.rc.user:$(TARGET_COPY_OUT_VENDOR)/etc/init/init.$(PRODUCT_HARDWARE).diag.rc
endif
MSM_VIDC_TARGET_LIST := msm8998 # Get the color format from kernel headers
@@ -151,9 +152,6 @@ PRODUCT_COPY_FILES += \
frameworks/native/data/etc/android.hardware.vulkan.level-0.xml:system/etc/permissions/android.hardware.vulkan.level.xml \
frameworks/native/data/etc/android.hardware.vulkan.version-1_0_3.xml:system/etc/permissions/android.hardware.vulkan.version.xml \
PRODUCT_COPY_FILES += \
$(LOCAL_PATH)/init.power.sh:system/bin/init.power.sh \
# power HAL
PRODUCT_PACKAGES += \
android.hardware.power@1.1-service.wahoo
@@ -471,7 +469,7 @@ PRODUCT_PROPERTY_OVERRIDES += \
$(call inherit-product, frameworks/native/build/phone-xhdpi-2048-dalvik-heap.mk)
PRODUCT_COPY_FILES += \
device/google/wahoo/fstab.hardware:root/fstab.$(PRODUCT_HARDWARE)
device/google/wahoo/fstab.hardware:$(TARGET_COPY_OUT_VENDOR)/etc/fstab.$(PRODUCT_HARDWARE)
# Provide meaningful APN configuration
PRODUCT_COPY_FILES += \
@@ -524,6 +522,8 @@ PRODUCT_PACKAGES += \
libunwind.vndk-sp\
liblzma.vndk-sp\
PRODUCT_ENFORCE_RRO_TARGETS := framework-res
# Override heap growth limit due to high display density on device
PRODUCT_PROPERTY_OVERRIDES += \
dalvik.vm.heapgrowthlimit=256m

View File

@@ -14,9 +14,14 @@
# limitations under the License.
#
import init.${ro.hardware}.usb.rc
import init.${ro.hardware}.diag.rc
import init.${ro.hardware}.logging.rc
#
# Following imports have been moved to /vendor/etc/init and will be
# loaded by /init automatically, so are commented out to reduce the
# noise in the log.
#
#import init.${ro.hardware}.usb.rc
#import init.${ro.hardware}.diag.rc
#import init.${ro.hardware}.logging.rc
on charger
write /sys/devices/system/cpu/cpu2/online 0
@@ -142,8 +147,8 @@ on fs
wait /dev/block/platform/soc/${ro.boot.bootdevice}
symlink /dev/block/platform/soc/${ro.boot.bootdevice} /dev/block/bootdevice
mount_all fstab.${ro.hardware} --early
swapon_all fstab.${ro.hardware}
mount_all /vendor/etc/fstab.${ro.hardware} --early
swapon_all /vendor/etc/fstab.${ro.hardware}
# Keeping following partitions outside fstab file. As user may not have
# these partition flashed on the device. Failure to mount any partition in fstab file
@@ -173,7 +178,7 @@ on late-fs
start gralloc-2-0
# Mount RW partitions which need run fsck
mount_all fstab.${ro.hardware} --late
mount_all /vendor/etc/fstab.${ro.hardware} --late
on post-fs
# set RLIMIT_MEMLOCK to 64MB
@@ -397,7 +402,7 @@ on boot
mkdir /persist/time 0770 system system
mkdir /data/time/ 0700 system system
service init-radio-sh /system/bin/init.radio.sh
service init-radio-sh /vendor/bin/init.radio.sh
class late_start
user radio
group root radio
@@ -633,7 +638,7 @@ service chre /vendor/bin/chre
class late_start
socket chre seqpacket 0660 root system
service power_sh /system/bin/init.power.sh
service power_sh /vendor/bin/init.power.sh
class main
user root
group root system