Export *CLASSPATH variables after apexes are configured.
For now, export the exact same values, on `post-fs-data` instead of on `early-init` to soak the change. As a follow up, the actual values will be generated by a new oneshot service. See go/updatable-classpath for more details. Bug: 180105615 Test: manual - device boots Change-Id: I5f6826a0f87a5e01233e876d820e581feb555bca
This commit is contained in:
parent
500946b637
commit
c19f99781b
3 changed files with 21 additions and 6 deletions
|
@ -48,6 +48,7 @@ include $(CLEAR_VARS)
|
|||
LOCAL_MODULE_CLASS := ETC
|
||||
LOCAL_MODULE := init.environ.rc
|
||||
LOCAL_MODULE_PATH := $(TARGET_ROOT_OUT)
|
||||
LOCAL_REQUIRED_MODULES := etc_classpath
|
||||
|
||||
EXPORT_GLOBAL_ASAN_OPTIONS :=
|
||||
ifneq ($(filter address,$(SANITIZE_TARGET)),)
|
||||
|
@ -163,9 +164,7 @@ include $(BUILD_SYSTEM)/base_rules.mk
|
|||
$(LOCAL_BUILT_MODULE): $(LOCAL_PATH)/init.environ.rc.in
|
||||
@echo "Generate: $< -> $@"
|
||||
@mkdir -p $(dir $@)
|
||||
$(hide) sed -e 's?%BOOTCLASSPATH%?$(PRODUCT_BOOTCLASSPATH)?g' $< >$@
|
||||
$(hide) sed -i -e 's?%DEX2OATBOOTCLASSPATH%?$(PRODUCT_DEX2OAT_BOOTCLASSPATH)?g' $@
|
||||
$(hide) sed -i -e 's?%SYSTEMSERVERCLASSPATH%?$(PRODUCT_SYSTEM_SERVER_CLASSPATH)?g' $@
|
||||
$(hide) cp $< $@
|
||||
$(hide) sed -i -e 's?%EXPORT_GLOBAL_ASAN_OPTIONS%?$(EXPORT_GLOBAL_ASAN_OPTIONS)?g' $@
|
||||
$(hide) sed -i -e 's?%EXPORT_GLOBAL_GCOV_OPTIONS%?$(EXPORT_GLOBAL_GCOV_OPTIONS)?g' $@
|
||||
$(hide) sed -i -e 's?%EXPORT_GLOBAL_CLANG_COVERAGE_OPTIONS%?$(EXPORT_GLOBAL_CLANG_COVERAGE_OPTIONS)?g' $@
|
||||
|
@ -178,6 +177,21 @@ $(strip \
|
|||
)
|
||||
endef
|
||||
|
||||
#######################################
|
||||
# /etc/classpath
|
||||
include $(CLEAR_VARS)
|
||||
LOCAL_MODULE := etc_classpath
|
||||
LOCAL_MODULE_CLASS := ETC
|
||||
LOCAL_MODULE_PATH := $(TARGET_OUT_ETC)
|
||||
LOCAL_MODULE_STEM := classpath
|
||||
include $(BUILD_SYSTEM)/base_rules.mk
|
||||
$(LOCAL_BUILT_MODULE):
|
||||
@echo "Generate: $@"
|
||||
@mkdir -p $(dir $@)
|
||||
$(hide) echo "export BOOTCLASSPATH $(PRODUCT_BOOTCLASSPATH)" > $@
|
||||
$(hide) echo "export DEX2OATBOOTCLASSPATH $(PRODUCT_DEX2OAT_BOOTCLASSPATH)" >> $@
|
||||
$(hide) echo "export SYSTEMSERVERCLASSPATH $(PRODUCT_SYSTEM_SERVER_CLASSPATH)" >> $@
|
||||
|
||||
#######################################
|
||||
# sanitizer.libraries.txt
|
||||
include $(CLEAR_VARS)
|
||||
|
|
|
@ -10,9 +10,6 @@ on early-init
|
|||
export ANDROID_TZDATA_ROOT /apex/com.android.tzdata
|
||||
export EXTERNAL_STORAGE /sdcard
|
||||
export ASEC_MOUNTPOINT /mnt/asec
|
||||
export BOOTCLASSPATH %BOOTCLASSPATH%
|
||||
export DEX2OATBOOTCLASSPATH %DEX2OATBOOTCLASSPATH%
|
||||
export SYSTEMSERVERCLASSPATH %SYSTEMSERVERCLASSPATH%
|
||||
%EXPORT_GLOBAL_ASAN_OPTIONS%
|
||||
%EXPORT_GLOBAL_GCOV_OPTIONS%
|
||||
%EXPORT_GLOBAL_CLANG_COVERAGE_OPTIONS%
|
||||
|
|
|
@ -865,6 +865,10 @@ on post-fs-data
|
|||
wait_for_prop apexd.status activated
|
||||
perform_apex_config
|
||||
|
||||
# Export *CLASSPATH variables from /etc/classpath
|
||||
# TODO(b/180105615): export from the generated file instead.
|
||||
load_exports /etc/classpath
|
||||
|
||||
# Special-case /data/media/obb per b/64566063
|
||||
mkdir /data/media 0770 media_rw media_rw encryption=None
|
||||
exec - media_rw media_rw -- /system/bin/chattr +F /data/media
|
||||
|
|
Loading…
Reference in a new issue