diff options
-rw-r--r-- | adb/Android.bp | 51 | ||||
-rw-r--r-- | adb/Android.mk | 5 | ||||
-rw-r--r-- | init/property_service.cpp | 34 | ||||
-rw-r--r-- | libcutils/fs_config.cpp | 15 | ||||
-rw-r--r-- | libion/Android.bp | 1 | ||||
-rw-r--r-- | liblog/tests/log_read_test.cpp | 10 | ||||
-rw-r--r-- | libmemunreachable/Android.bp | 1 | ||||
-rw-r--r-- | libmetricslogger/Android.bp | 1 | ||||
-rw-r--r-- | libnetutils/Android.bp | 1 | ||||
-rw-r--r-- | libprocinfo/Android.bp | 1 | ||||
-rw-r--r-- | libsuspend/Android.bp | 2 | ||||
-rw-r--r-- | libsysutils/Android.bp | 2 | ||||
-rw-r--r-- | libziparchive/Android.bp | 2 |
13 files changed, 106 insertions, 20 deletions
diff --git a/adb/Android.bp b/adb/Android.bp new file mode 100644 index 000000000..41f7b8952 --- /dev/null +++ b/adb/Android.bp @@ -0,0 +1,51 @@ +// Copyright (C) 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. + +python_binary_host { + name: "adb_integration_test_adb", + main: "test_adb.py", + srcs: [ + "test_adb.py", + ], + libs: [ + "adb_py", + ], + version: { + py2: { + enabled: true, + }, + py3: { + enabled: false, + }, + }, +} + +python_binary_host { + name: "adb_integration_test_device", + main: "test_device.py", + srcs: [ + "test_device.py", + ], + libs: [ + "adb_py", + ], + version: { + py2: { + enabled: true, + }, + py3: { + enabled: false, + }, + }, +} diff --git a/adb/Android.mk b/adb/Android.mk index 382c8cb78..1f6f19434 100644 --- a/adb/Android.mk +++ b/adb/Android.mk @@ -387,4 +387,9 @@ LOCAL_STATIC_LIBRARIES := \ include $(BUILD_EXECUTABLE) +# adb integration test +# ========================================================= +$(call dist-for-goals,sdk,$(ALL_MODULES.adb_integration_test_adb.BUILT)) +$(call dist-for-goals,sdk,$(ALL_MODULES.adb_integration_test_device.BUILT)) + include $(call first-makefiles-under,$(LOCAL_PATH)) diff --git a/init/property_service.cpp b/init/property_service.cpp index 18e47e3df..7fa37c8a9 100644 --- a/init/property_service.cpp +++ b/init/property_service.cpp @@ -443,7 +443,7 @@ static void handle_property_set_fd() { } } -static void load_properties_from_file(const char *, const char *); +static bool load_properties_from_file(const char *, const char *); /* * Filter is used to decide which properties to load: NULL loads all keys, @@ -507,17 +507,18 @@ static void load_properties(char *data, const char *filter) // Filter is used to decide which properties to load: NULL loads all keys, // "ro.foo.*" is a prefix match, and "ro.foo.bar" is an exact match. -static void load_properties_from_file(const char* filename, const char* filter) { +static bool load_properties_from_file(const char* filename, const char* filter) { Timer t; std::string data; std::string err; if (!ReadFile(filename, &data, &err)) { - PLOG(WARNING) << "Couldn't load property file: " << err; - return; + PLOG(WARNING) << "Couldn't load property file: " << filename << ": " << err; + return false; } data.push_back('\n'); load_properties(&data[0], filter); LOG(VERBOSE) << "(Loading properties from " << filename << " took " << t << ".)"; + return true; } static void load_persistent_properties() { @@ -592,16 +593,21 @@ static void update_sys_usb_config() { } void property_load_boot_defaults() { - load_properties_from_file("/default.prop", NULL); - load_properties_from_file("/odm/default.prop", NULL); - load_properties_from_file("/vendor/default.prop", NULL); + if (!load_properties_from_file("/system/etc/prop.default", nullptr)) { + // for legacy devices + if (!load_properties_from_file("/default.prop", nullptr)) { + PLOG(ERROR) << "Failed to load default prop"; + } + } + load_properties_from_file("/odm/etc/prop.default", nullptr); + load_properties_from_file("/vendor/etc/prop.default", nullptr); update_sys_usb_config(); } static void load_override_properties() { if (ALLOW_LOCAL_PROP_OVERRIDE) { - load_properties_from_file("/data/local.prop", NULL); + load_properties_from_file("/data/local.prop", nullptr); } } @@ -649,9 +655,15 @@ void load_recovery_id_prop() { } void load_system_props() { - load_properties_from_file("/system/build.prop", NULL); - load_properties_from_file("/odm/build.prop", NULL); - load_properties_from_file("/vendor/build.prop", NULL); + if (!load_properties_from_file("/system/etc/prop.build", nullptr)) { + // for legacy devices + load_properties_from_file("/system/build.prop", nullptr); + } + load_properties_from_file("/odm/etc/prop.build", nullptr); + if (!load_properties_from_file("/vendor/etc/prop.build", nullptr)) { + // for legacy devices + load_properties_from_file("/vendor/build.prop", nullptr); + } load_properties_from_file("/factory/factory.prop", "ro.*"); load_recovery_id_prop(); } diff --git a/libcutils/fs_config.cpp b/libcutils/fs_config.cpp index 919b65bc3..dd1ad3a38 100644 --- a/libcutils/fs_config.cpp +++ b/libcutils/fs_config.cpp @@ -134,9 +134,10 @@ static const struct fs_path_config android_files[] = { { 00640, AID_ROOT, AID_SHELL, 0, "data/nativetest64/tests.txt" }, { 00750, AID_ROOT, AID_SHELL, 0, "data/nativetest/*" }, { 00750, AID_ROOT, AID_SHELL, 0, "data/nativetest64/*" }, - { 00600, AID_ROOT, AID_ROOT, 0, "default.prop" }, - { 00600, AID_ROOT, AID_ROOT, 0, "odm/build.prop" }, - { 00600, AID_ROOT, AID_ROOT, 0, "odm/default.prop" }, + { 00600, AID_ROOT, AID_ROOT, 0, "default.prop" }, // legacy + { 00600, AID_ROOT, AID_ROOT, 0, "system/etc/prop.default" }, + { 00600, AID_ROOT, AID_ROOT, 0, "odm/etc/prop.build" }, + { 00600, AID_ROOT, AID_ROOT, 0, "odm/etc/prop.default" }, { 00444, AID_ROOT, AID_ROOT, 0, odm_conf_dir + 1 }, { 00444, AID_ROOT, AID_ROOT, 0, odm_conf_file + 1 }, { 00444, AID_ROOT, AID_ROOT, 0, oem_conf_dir + 1 }, @@ -148,7 +149,8 @@ static const struct fs_path_config android_files[] = { { 00750, AID_ROOT, AID_ROOT, 0, "system/bin/install-recovery.sh" }, { 00700, AID_ROOT, AID_ROOT, 0, "system/bin/secilc" }, { 00750, AID_ROOT, AID_ROOT, 0, "system/bin/uncrypt" }, - { 00600, AID_ROOT, AID_ROOT, 0, "system/build.prop" }, + { 00600, AID_ROOT, AID_ROOT, 0, "system/build.prop" }, // legacy + { 00600, AID_ROOT, AID_ROOT, 0, "system/etc/prop.build" }, { 00444, AID_ROOT, AID_ROOT, 0, sys_conf_dir + 1 }, { 00444, AID_ROOT, AID_ROOT, 0, sys_conf_file + 1 }, { 00440, AID_ROOT, AID_SHELL, 0, "system/etc/init.goldfish.rc" }, @@ -157,8 +159,9 @@ static const struct fs_path_config android_files[] = { { 00555, AID_ROOT, AID_ROOT, 0, "system/etc/ppp/*" }, { 00555, AID_ROOT, AID_ROOT, 0, "system/etc/rc.*" }, { 00440, AID_ROOT, AID_ROOT, 0, "system/etc/recovery.img" }, - { 00600, AID_ROOT, AID_ROOT, 0, "vendor/build.prop" }, - { 00600, AID_ROOT, AID_ROOT, 0, "vendor/default.prop" }, + { 00600, AID_ROOT, AID_ROOT, 0, "vendor/build.prop" }, // legacy + { 00600, AID_ROOT, AID_ROOT, 0, "vendor/etc/prop.build" }, + { 00600, AID_ROOT, AID_ROOT, 0, "vendor/etc/prop.default" }, { 00444, AID_ROOT, AID_ROOT, 0, ven_conf_dir + 1 }, { 00444, AID_ROOT, AID_ROOT, 0, ven_conf_file + 1 }, diff --git a/libion/Android.bp b/libion/Android.bp index da98111fc..6f267e4c7 100644 --- a/libion/Android.bp +++ b/libion/Android.bp @@ -1,6 +1,7 @@ cc_library { name: "libion", + vendor_available: true, srcs: ["ion.c"], shared_libs: ["liblog"], local_include_dirs: [ diff --git a/liblog/tests/log_read_test.cpp b/liblog/tests/log_read_test.cpp index a63ab8e88..6ed568aa4 100644 --- a/liblog/tests/log_read_test.cpp +++ b/liblog/tests/log_read_test.cpp @@ -23,6 +23,7 @@ #include <android-base/stringprintf.h> #include <android/log.h> // minimal logging API #include <gtest/gtest.h> +#include <log/log_properties.h> // Test the APIs in this standalone include file #include <log/log_read.h> // Do not use anything in log/log_time.h despite side effects of the above. @@ -97,9 +98,12 @@ TEST(liblog, android_logger_get_) { /* security buffer is allowed to be denied */ if (strcmp("security", name)) { EXPECT_LT(0, get_log_size); - /* crash buffer is allowed to be empty, that is actually healthy! */ - EXPECT_LE((strcmp("crash", name)) != 0, - android_logger_get_log_readable_size(logger)); + // crash buffer is allowed to be empty, that is actually healthy! + // kernel buffer is allowed to be empty on "user" builds + EXPECT_LE( // boolean 1 or 0 depending on expected content or empty + !!((strcmp("crash", name) != 0) && + ((strcmp("kernel", name) != 0) || __android_log_is_debuggable())), + android_logger_get_log_readable_size(logger)); } else { EXPECT_NE(0, get_log_size); if (get_log_size < 0) { diff --git a/libmemunreachable/Android.bp b/libmemunreachable/Android.bp index cdac76bab..4269eaa0a 100644 --- a/libmemunreachable/Android.bp +++ b/libmemunreachable/Android.bp @@ -23,6 +23,7 @@ cc_defaults { cc_library_shared { name: "libmemunreachable", + vendor_available: true, defaults: ["libmemunreachable_defaults"], srcs: [ "Allocator.cpp", diff --git a/libmetricslogger/Android.bp b/libmetricslogger/Android.bp index 26a041abd..38859d18e 100644 --- a/libmetricslogger/Android.bp +++ b/libmetricslogger/Android.bp @@ -31,6 +31,7 @@ cc_defaults { // ----------------------------------------------------------------------------- cc_library_shared { name: "libmetricslogger", + vendor_available: true, srcs: metricslogger_lib_src_files, defaults: ["metricslogger_defaults"], } diff --git a/libnetutils/Android.bp b/libnetutils/Android.bp index 0caf14535..9967ef886 100644 --- a/libnetutils/Android.bp +++ b/libnetutils/Android.bp @@ -1,5 +1,6 @@ cc_library_shared { name: "libnetutils", + vendor_available: true, srcs: [ "dhcpclient.c", diff --git a/libprocinfo/Android.bp b/libprocinfo/Android.bp index c13ffe9d3..aedaa3867 100644 --- a/libprocinfo/Android.bp +++ b/libprocinfo/Android.bp @@ -22,6 +22,7 @@ libprocinfo_cppflags = [ cc_library { name: "libprocinfo", + vendor_available: true, host_supported: true, srcs: [ "process.cpp", diff --git a/libsuspend/Android.bp b/libsuspend/Android.bp index d27ceea68..78831510a 100644 --- a/libsuspend/Android.bp +++ b/libsuspend/Android.bp @@ -2,6 +2,8 @@ cc_library { name: "libsuspend", + vendor_available: true, + srcs: [ "autosuspend.c", "autosuspend_autosleep.c", diff --git a/libsysutils/Android.bp b/libsysutils/Android.bp index 296bd26d5..550ef4233 100644 --- a/libsysutils/Android.bp +++ b/libsysutils/Android.bp @@ -1,5 +1,7 @@ cc_library_shared { name: "libsysutils", + vendor_available: true, + srcs: [ "src/SocketListener.cpp", "src/FrameworkListener.cpp", diff --git a/libziparchive/Android.bp b/libziparchive/Android.bp index 44daf3610..0a4f08891 100644 --- a/libziparchive/Android.bp +++ b/libziparchive/Android.bp @@ -56,6 +56,8 @@ cc_defaults { cc_library { name: "libziparchive", host_supported: true, + vendor_available:true, + defaults: ["libziparchive_defaults", "libziparchive_flags"], shared_libs: ["liblog", "libbase"], target: { |