Make change and version bump to AP4A.240919.001
Snap for 12385180 from bdf28aa7bb
to 24Q4-release
Change-Id: I38709f83280d24ee85c4f40ce449bcbcd07e17f9
This commit is contained in:
@@ -3511,6 +3511,8 @@ $(SYSTEM_LINKER_CONFIG): $(INTERNAL_SYSTEMIMAGE_FILES) $(SYSTEM_LINKER_CONFIG_SO
|
|||||||
--output $@ --value "$(STUB_LIBRARIES)" --system "$(TARGET_OUT)"
|
--output $@ --value "$(STUB_LIBRARIES)" --system "$(TARGET_OUT)"
|
||||||
$(HOST_OUT_EXECUTABLES)/conv_linker_config append --source $@ --output $@ --key requireLibs \
|
$(HOST_OUT_EXECUTABLES)/conv_linker_config append --source $@ --output $@ --key requireLibs \
|
||||||
--value "$(foreach lib,$(LLNDK_MOVED_TO_APEX_LIBRARIES), $(lib).so)"
|
--value "$(foreach lib,$(LLNDK_MOVED_TO_APEX_LIBRARIES), $(lib).so)"
|
||||||
|
$(HOST_OUT_EXECUTABLES)/conv_linker_config append --source $@ --output $@ --key provideLibs \
|
||||||
|
--value "$(foreach lib,$(PRODUCT_EXTRA_STUB_LIBRARIES), $(lib).so)"
|
||||||
|
|
||||||
$(call declare-1p-target,$(SYSTEM_LINKER_CONFIG),)
|
$(call declare-1p-target,$(SYSTEM_LINKER_CONFIG),)
|
||||||
$(call declare-license-deps,$(SYSTEM_LINKER_CONFIG),$(INTERNAL_SYSTEMIMAGE_FILES) $(SYSTEM_LINKER_CONFIG_SOURCE))
|
$(call declare-license-deps,$(SYSTEM_LINKER_CONFIG),$(INTERNAL_SYSTEMIMAGE_FILES) $(SYSTEM_LINKER_CONFIG_SOURCE))
|
||||||
|
@@ -175,6 +175,17 @@ endif
|
|||||||
# Required as platform_bootclasspath is using this namespace
|
# Required as platform_bootclasspath is using this namespace
|
||||||
$(call soong_config_set,bootclasspath,release_crashrecovery_module,$(RELEASE_CRASHRECOVERY_MODULE))
|
$(call soong_config_set,bootclasspath,release_crashrecovery_module,$(RELEASE_CRASHRECOVERY_MODULE))
|
||||||
|
|
||||||
|
# Add uprobestats build flag to soong
|
||||||
|
$(call soong_config_set,ANDROID,release_uprobestats_module,$(RELEASE_UPROBESTATS_MODULE))
|
||||||
|
# Add uprobestats file move flags to soong, for both platform and module
|
||||||
|
ifeq (true,$(RELEASE_UPROBESTATS_FILE_MOVE))
|
||||||
|
$(call soong_config_set,ANDROID,uprobestats_files_in_module,true)
|
||||||
|
$(call soong_config_set,ANDROID,uprobestats_files_in_platform,false)
|
||||||
|
else
|
||||||
|
$(call soong_config_set,ANDROID,uprobestats_files_in_module,false)
|
||||||
|
$(call soong_config_set,ANDROID,uprobestats_files_in_platform,true)
|
||||||
|
endif
|
||||||
|
|
||||||
# Enable Profiling module. Also used by platform_bootclasspath.
|
# Enable Profiling module. Also used by platform_bootclasspath.
|
||||||
$(call soong_config_set,ANDROID,release_package_profiling_module,$(RELEASE_PACKAGE_PROFILING_MODULE))
|
$(call soong_config_set,ANDROID,release_package_profiling_module,$(RELEASE_PACKAGE_PROFILING_MODULE))
|
||||||
$(call soong_config_set,bootclasspath,release_package_profiling_module,$(RELEASE_PACKAGE_PROFILING_MODULE))
|
$(call soong_config_set,bootclasspath,release_package_profiling_module,$(RELEASE_PACKAGE_PROFILING_MODULE))
|
||||||
|
@@ -18,4 +18,4 @@
|
|||||||
# (like "CRB01"). It must be a single word, and is
|
# (like "CRB01"). It must be a single word, and is
|
||||||
# capitalized by convention.
|
# capitalized by convention.
|
||||||
|
|
||||||
BUILD_ID=AP4A.240918.001
|
BUILD_ID=AP4A.240919.001
|
||||||
|
@@ -499,6 +499,10 @@ _product_single_value_vars += PRODUCT_BUILD_APPS_WITH_BUILD_NUMBER
|
|||||||
# If set, build would generate system image from Soong-defined module.
|
# If set, build would generate system image from Soong-defined module.
|
||||||
_product_single_value_vars += PRODUCT_SOONG_DEFINED_SYSTEM_IMAGE
|
_product_single_value_vars += PRODUCT_SOONG_DEFINED_SYSTEM_IMAGE
|
||||||
|
|
||||||
|
# List of stub libraries specific to the product that are already present in the system image and
|
||||||
|
# should be included in the system_linker_config.
|
||||||
|
_product_list_vars += PRODUCT_EXTRA_STUB_LIBRARIES
|
||||||
|
|
||||||
.KATI_READONLY := _product_single_value_vars _product_list_vars
|
.KATI_READONLY := _product_single_value_vars _product_list_vars
|
||||||
_product_var_list :=$= $(_product_single_value_vars) $(_product_list_vars)
|
_product_var_list :=$= $(_product_single_value_vars) $(_product_list_vars)
|
||||||
|
|
||||||
|
@@ -293,7 +293,6 @@ PRODUCT_PACKAGES += \
|
|||||||
uiautomator \
|
uiautomator \
|
||||||
uinput \
|
uinput \
|
||||||
uncrypt \
|
uncrypt \
|
||||||
uprobestats \
|
|
||||||
usbd \
|
usbd \
|
||||||
vdc \
|
vdc \
|
||||||
vintf \
|
vintf \
|
||||||
@@ -311,6 +310,17 @@ ifeq ($(RELEASE_CRASHRECOVERY_MODULE),true)
|
|||||||
|
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
# When we release uprobestats module
|
||||||
|
ifeq ($(RELEASE_UPROBESTATS_MODULE),true)
|
||||||
|
PRODUCT_PACKAGES += \
|
||||||
|
com.android.uprobestats \
|
||||||
|
|
||||||
|
else
|
||||||
|
PRODUCT_PACKAGES += \
|
||||||
|
uprobestats \
|
||||||
|
|
||||||
|
endif
|
||||||
|
|
||||||
# These packages are not used on Android TV
|
# These packages are not used on Android TV
|
||||||
ifneq ($(PRODUCT_IS_ATV),true)
|
ifneq ($(PRODUCT_IS_ATV),true)
|
||||||
PRODUCT_PACKAGES += \
|
PRODUCT_PACKAGES += \
|
||||||
|
@@ -6,7 +6,7 @@
|
|||||||
#include "aconfig_storage/aconfig_storage_read_api.hpp"
|
#include "aconfig_storage/aconfig_storage_read_api.hpp"
|
||||||
#include <android/log.h>
|
#include <android/log.h>
|
||||||
#define LOG_TAG "aconfig_cpp_codegen"
|
#define LOG_TAG "aconfig_cpp_codegen"
|
||||||
#define ALOGI(...) __android_log_print(ANDROID_LOG_INFO, LOG_TAG, __VA_ARGS__)
|
#define ALOGE(...) __android_log_print(ANDROID_LOG_ERROR, LOG_TAG, __VA_ARGS__)
|
||||||
{{ -endif }}
|
{{ -endif }}
|
||||||
{{ endif }}
|
{{ endif }}
|
||||||
|
|
||||||
@@ -76,13 +76,14 @@ namespace {cpp_namespace} \{
|
|||||||
: boolean_start_index_()
|
: boolean_start_index_()
|
||||||
{{ -endif }}
|
{{ -endif }}
|
||||||
, flag_value_file_(nullptr)
|
, flag_value_file_(nullptr)
|
||||||
, read_from_new_storage_(false)
|
, read_from_new_storage_(false) \{
|
||||||
, use_new_storage_value(false) \{
|
|
||||||
|
|
||||||
struct stat buffer;
|
struct stat buffer;
|
||||||
if (stat("/metadata/aconfig_test_missions/mission_1", &buffer) == 0) \{
|
if (stat("/metadata/aconfig/boot/enable_only_new_storage", &buffer) == 0) \{
|
||||||
read_from_new_storage_ = true;
|
read_from_new_storage_ = true;
|
||||||
} else \{
|
}
|
||||||
|
|
||||||
|
if (!read_from_new_storage_) \{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -90,15 +91,13 @@ namespace {cpp_namespace} \{
|
|||||||
"{container}",
|
"{container}",
|
||||||
aconfig_storage::StorageFileType::package_map);
|
aconfig_storage::StorageFileType::package_map);
|
||||||
if (!package_map_file.ok()) \{
|
if (!package_map_file.ok()) \{
|
||||||
ALOGI("error: failed to get package map file: %s", package_map_file.error().c_str());
|
ALOGE("error: failed to get package map file: %s", package_map_file.error().c_str());
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
auto context = aconfig_storage::get_package_read_context(
|
auto context = aconfig_storage::get_package_read_context(
|
||||||
**package_map_file, "{package}");
|
**package_map_file, "{package}");
|
||||||
if (!context.ok()) \{
|
if (!context.ok()) \{
|
||||||
ALOGI("error: failed to get package read context: %s", context.error().c_str());
|
ALOGE("error: failed to get package read context: %s", context.error().c_str());
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// cache package boolean flag start index
|
// cache package boolean flag start index
|
||||||
@@ -111,18 +110,13 @@ namespace {cpp_namespace} \{
|
|||||||
"{container}",
|
"{container}",
|
||||||
aconfig_storage::StorageFileType::flag_val);
|
aconfig_storage::StorageFileType::flag_val);
|
||||||
if (!flag_value_file.ok()) \{
|
if (!flag_value_file.ok()) \{
|
||||||
ALOGI("error: failed to get flag value file: %s", flag_value_file.error().c_str());
|
ALOGE("error: failed to get flag value file: %s", flag_value_file.error().c_str());
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// cache flag value file
|
// cache flag value file
|
||||||
flag_value_file_ = std::unique_ptr<aconfig_storage::MappedStorageFile>(
|
flag_value_file_ = std::unique_ptr<aconfig_storage::MappedStorageFile>(
|
||||||
*flag_value_file);
|
*flag_value_file);
|
||||||
|
|
||||||
use_new_storage_value = server_configurable_flags::GetServerConfigurableFlag(
|
|
||||||
"aconfig_flags.core_experiments_team_internal",
|
|
||||||
"com.android.providers.settings.use_new_storage_value",
|
|
||||||
"false") == "true";
|
|
||||||
}
|
}
|
||||||
{{ -endif }}
|
{{ -endif }}
|
||||||
{{ -endif }}
|
{{ -endif }}
|
||||||
@@ -131,44 +125,30 @@ namespace {cpp_namespace} \{
|
|||||||
virtual bool {item.flag_name}() override \{
|
virtual bool {item.flag_name}() override \{
|
||||||
{{ -if item.readwrite }}
|
{{ -if item.readwrite }}
|
||||||
if (cache_[{item.readwrite_idx}] == -1) \{
|
if (cache_[{item.readwrite_idx}] == -1) \{
|
||||||
cache_[{item.readwrite_idx}] = server_configurable_flags::GetServerConfigurableFlag(
|
|
||||||
"aconfig_flags.{item.device_config_namespace}",
|
|
||||||
"{item.device_config_flag}",
|
|
||||||
"{item.default_value}") == "true";
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
{{ if allow_instrumentation- }}
|
{{ if allow_instrumentation- }}
|
||||||
if (read_from_new_storage_) \{
|
if (read_from_new_storage_) \{
|
||||||
if (!flag_value_file_) \{
|
|
||||||
ALOGI("error: failed to get flag {item.flag_name}: flag value file is null");
|
|
||||||
return cache_[{item.readwrite_idx}];
|
|
||||||
}
|
|
||||||
|
|
||||||
auto value = aconfig_storage::get_boolean_flag_value(
|
auto value = aconfig_storage::get_boolean_flag_value(
|
||||||
*flag_value_file_,
|
*flag_value_file_,
|
||||||
boolean_start_index_ + {item.flag_offset});
|
boolean_start_index_ + {item.flag_offset});
|
||||||
|
|
||||||
if (!value.ok()) \{
|
if (!value.ok()) \{
|
||||||
ALOGI("error: failed to read flag value: %s", value.error().c_str());
|
ALOGE("error: failed to read flag value: %s", value.error().c_str());
|
||||||
return cache_[{item.readwrite_idx}];
|
|
||||||
}
|
}
|
||||||
|
|
||||||
bool expected_value = cache_[{item.readwrite_idx}];
|
cache_[{item.readwrite_idx}] = *value;
|
||||||
if (*value != expected_value) \{
|
|
||||||
ALOGI("error: {item.flag_name} value mismatch, new storage value is %s, old storage value is %s",
|
|
||||||
*value ? "true" : "false", expected_value ? "true" : "false");
|
|
||||||
}
|
|
||||||
|
|
||||||
if (use_new_storage_value) \{
|
|
||||||
return *value;
|
|
||||||
} else \{
|
} else \{
|
||||||
return expected_value;
|
cache_[{item.readwrite_idx}] = server_configurable_flags::GetServerConfigurableFlag(
|
||||||
}
|
"aconfig_flags.{item.device_config_namespace}",
|
||||||
|
"{item.device_config_flag}",
|
||||||
|
"{item.default_value}") == "true";
|
||||||
}
|
}
|
||||||
|
{{ -else- }}
|
||||||
|
cache_[{item.readwrite_idx}] = server_configurable_flags::GetServerConfigurableFlag(
|
||||||
|
"aconfig_flags.{item.device_config_namespace}",
|
||||||
|
"{item.device_config_flag}",
|
||||||
|
"{item.default_value}") == "true";
|
||||||
{{ -endif }}
|
{{ -endif }}
|
||||||
|
}
|
||||||
|
|
||||||
return cache_[{item.readwrite_idx}];
|
return cache_[{item.readwrite_idx}];
|
||||||
{{ -else }}
|
{{ -else }}
|
||||||
{{ -if item.is_fixed_read_only }}
|
{{ -if item.is_fixed_read_only }}
|
||||||
@@ -189,7 +169,6 @@ namespace {cpp_namespace} \{
|
|||||||
std::unique_ptr<aconfig_storage::MappedStorageFile> flag_value_file_;
|
std::unique_ptr<aconfig_storage::MappedStorageFile> flag_value_file_;
|
||||||
|
|
||||||
bool read_from_new_storage_;
|
bool read_from_new_storage_;
|
||||||
bool use_new_storage_value;
|
|
||||||
{{ -endif }}
|
{{ -endif }}
|
||||||
{{ -endif }}
|
{{ -endif }}
|
||||||
|
|
||||||
|
21
tools/edit_monitor/Android.bp
Normal file
21
tools/edit_monitor/Android.bp
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
// Copyright 2024 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.
|
||||||
|
|
||||||
|
// Set of error prone rules to ensure code quality
|
||||||
|
// PackageLocation check requires the androidCompatible=false otherwise it does not do anything.
|
||||||
|
|
||||||
|
package {
|
||||||
|
default_applicable_licenses: ["Android-Apache-2.0"],
|
||||||
|
default_team: "trendy_team_adte",
|
||||||
|
}
|
1
tools/edit_monitor/OWNERS
Normal file
1
tools/edit_monitor/OWNERS
Normal file
@@ -0,0 +1 @@
|
|||||||
|
include platform/tools/asuite:/OWNERS_ADTE_TEAM
|
Reference in New Issue
Block a user