Merge "Add test discovery agent skeleton" into main
diff --git a/core/android_soong_config_vars.mk b/core/android_soong_config_vars.mk
index 19d9c22..fccc2a5 100644
--- a/core/android_soong_config_vars.mk
+++ b/core/android_soong_config_vars.mk
@@ -211,3 +211,11 @@
# Export board_uses_scaler_m2m1shot and board_uses_align_restriction to soong for hardware/google/graphics/common/libscaler:libexynosscaler
$(call soong_config_set_bool,google_graphics,board_uses_scaler_m2m1shot,$(if $(filter true,$(BOARD_USES_SCALER_M2M1SHOT)),true,false))
$(call soong_config_set_bool,google_graphics,board_uses_align_restriction,$(if $(filter true,$(BOARD_USES_ALIGN_RESTRICTION)),true,false))
+
+# Export video_codec variables to soong for exynos modules
+$(call soong_config_set,video_codec,target_soc_name,$(TARGET_SOC_NAME))
+$(call soong_config_set_bool,video_codec,board_use_codec2_hidl_1_2,$(if $(filter true,$(BOARD_USE_CODEC2_HIDL_1_2)),true,false))
+$(call soong_config_set_bool,video_codec,board_support_mfc_enc_bt2020,$(if $(filter true,$(BOARD_SUPPORT_MFC_ENC_BT2020)),true,false))
+$(call soong_config_set_bool,video_codec,board_support_flexible_p010,$(if $(filter true,$(BOARD_SUPPORT_FLEXIBLE_P010)),true,false))
+$(call soong_config_set,video_codec,board_support_mfc_version,$(BOARD_SUPPORT_MFC_VERSION))
+$(call soong_config_set_bool,video_codec,board_use_codec2_aidl,$(if $(BOARD_USE_CODEC2_AIDL),true,false))
diff --git a/shell_utils.sh b/shell_utils.sh
index c4a6756..9053c42 100644
--- a/shell_utils.sh
+++ b/shell_utils.sh
@@ -178,11 +178,11 @@
echo -n "${color_failed}#### failed to build some targets "
fi
if [ $hours -gt 0 ] ; then
- printf "(%02g:%02g:%02g (hh:mm:ss))" $hours $mins $secs
+ printf "(%02d:%02d:%02d (hh:mm:ss))" $hours $mins $secs
elif [ $mins -gt 0 ] ; then
- printf "(%02g:%02g (mm:ss))" $mins $secs
+ printf "(%02d:%02d (mm:ss))" $mins $secs
elif [ $secs -gt 0 ] ; then
- printf "(%s seconds)" $secs
+ printf "(%d seconds)" $secs
fi
echo " ####${color_reset}"
echo
diff --git a/target/product/generic/Android.bp b/target/product/generic/Android.bp
index c14fa17..f86774b 100644
--- a/target/product/generic/Android.bp
+++ b/target/product/generic/Android.bp
@@ -76,6 +76,49 @@
target: "/product/etc/security/adb_keys",
name: "adb_keys",
},
+ // For Treble Generic System Image (GSI), system-as-root GSI needs to work on both devices with
+ // and without /odm partition. Those symlinks are for devices without /odm partition. For
+ // devices with /odm partition, mount odm.img under /odm will hide those symlinks.
+ {
+ target: "/vendor/odm/app",
+ name: "odm/app",
+ },
+ {
+ target: "/vendor/odm/bin",
+ name: "odm/bin",
+ },
+ {
+ target: "/vendor/odm/etc",
+ name: "odm/etc",
+ },
+ {
+ target: "/vendor/odm/firmware",
+ name: "odm/firmware",
+ },
+ {
+ target: "/vendor/odm/framework",
+ name: "odm/framework",
+ },
+ {
+ target: "/vendor/odm/lib",
+ name: "odm/lib",
+ },
+ {
+ target: "/vendor/odm/lib64",
+ name: "odm/lib64",
+ },
+ {
+ target: "/vendor/odm/overlay",
+ name: "odm/overlay",
+ },
+ {
+ target: "/vendor/odm/priv-app",
+ name: "odm/priv-app",
+ },
+ {
+ target: "/vendor/odm/usr",
+ name: "odm/usr",
+ },
]
filegroup {
@@ -318,6 +361,11 @@
],
libs: [":framework-res{.export-package.apk}"],
},
+ type: "erofs",
+ erofs: {
+ compressor: "lz4hc,9",
+ compress_hints: "erofs_compress_hints.txt",
+ },
build_logtags: true,
gen_aconfig_flags_pb: true,
@@ -405,7 +453,6 @@
"init.zygote32.rc",
"init.zygote64.rc",
"init.zygote64_32.rc",
- "init_first_stage", // for boot partition
"initial-package-stopped-states.xml",
"input",
"installd",
@@ -419,7 +466,6 @@
"ld.mc",
"llkd", // base_system
"lmkd", // base_system
- "local_time.default", // handheld_vendo
"locksettings", // base_system
"logcat", // base_system
"logd", // base_system
@@ -481,7 +527,6 @@
"sm", // base_system
"snapshotctl", // base_system
"snapuserd", // base_system
- "snapuserd_ramdisk", // ramdisk
"storaged", // base_system
"surfaceflinger", // base_system
"svc", // base_system
@@ -581,6 +626,7 @@
"ContactsProvider", // base_system
"CredentialManager", // handheld_system
"DeviceAsWebcam", // handheld_system
+ "DeviceDiagnostics", // handheld_system - internal
"DocumentsUI", // handheld_system
"DownloadProvider", // base_system
"DownloadProviderUi", // handheld_system
@@ -606,7 +652,6 @@
"PacProcessor", // handheld_system
"PackageInstaller", // base_system
"PartnerBookmarksProvider", // generic_system
- "PhotoTable", // full_base
"PrintRecommendationService", // handheld_system
"PrintSpooler", // handheld_system
"ProxyHandler", // handheld_system
diff --git a/target/product/generic/erofs_compress_hints.txt b/target/product/generic/erofs_compress_hints.txt
new file mode 100644
index 0000000..8b2a711
--- /dev/null
+++ b/target/product/generic/erofs_compress_hints.txt
@@ -0,0 +1 @@
+0 .*\.apex$
\ No newline at end of file
diff --git a/teams/Android.bp b/teams/Android.bp
index 96d241b..cbad858 100644
--- a/teams/Android.bp
+++ b/teams/Android.bp
@@ -4454,3 +4454,17 @@
// go/trendy/manage/engineers/5121440647577600
trendy_team_id: "5121440647577600",
}
+
+team {
+ name: "trendy_team_ravenwood",
+
+ // go/trendy/manage/engineers/6027181500497920
+ trendy_team_id: "6027181500497920",
+}
+
+team {
+ name: "trendy_team_automotive_cast",
+
+ // go/trendy/manage/engineers/5293683026264064
+ trendy_team_id: "5293683026264064",
+}
diff --git a/tools/aconfig/OWNERS b/tools/aconfig/OWNERS
index 9a76279..c92fc7c 100644
--- a/tools/aconfig/OWNERS
+++ b/tools/aconfig/OWNERS
@@ -1,7 +1,8 @@
-amhk@google.com
dzshen@google.com
-jham@google.com
-joeo@google.com
opg@google.com
tedbauer@google.com
zhidou@google.com
+
+amhk@google.com #{LAST_RESORT_SUGGESTION}
+jham@google.com #{LAST_RESORT_SUGGESTION}
+joeo@google.com #{LAST_RESORT_SUGGESTION}
diff --git a/tools/aconfig/aconfig/src/codegen/java.rs b/tools/aconfig/aconfig/src/codegen/java.rs
index a34166d..47d4042 100644
--- a/tools/aconfig/aconfig/src/codegen/java.rs
+++ b/tools/aconfig/aconfig/src/codegen/java.rs
@@ -531,15 +531,16 @@
private static boolean enabledRw = true;
private void init() {
StorageInternalReader reader = null;
+ boolean foundPackage = true;
try {
reader = new StorageInternalReader("system", "com.android.aconfig.test");
- disabledRw = reader.getBooleanFlagValue(1);
- disabledRwExported = reader.getBooleanFlagValue(2);
- enabledRw = reader.getBooleanFlagValue(8);
- disabledRwInOtherNamespace = reader.getBooleanFlagValue(3);
} catch (Exception e) {
- throw new RuntimeException("Cannot read flag in codegen", e);
+ foundPackage = false;
}
+ disabledRw = foundPackage ? reader.getBooleanFlagValue(1) : false;
+ disabledRwExported = foundPackage ? reader.getBooleanFlagValue(2) : false;
+ enabledRw = foundPackage ? reader.getBooleanFlagValue(8) : true;
+ disabledRwInOtherNamespace = foundPackage ? reader.getBooleanFlagValue(3) : false;
isCached = true;
}
private void load_overrides_aconfig_test() {
diff --git a/tools/aconfig/aconfig/templates/FeatureFlags.java.template b/tools/aconfig/aconfig/templates/FeatureFlags.java.template
index 38c8f13..d2799b2 100644
--- a/tools/aconfig/aconfig/templates/FeatureFlags.java.template
+++ b/tools/aconfig/aconfig/templates/FeatureFlags.java.template
@@ -19,4 +19,4 @@
{{ -endif }}
boolean {item.method_name}();
{{ -endfor }}
-}
\ No newline at end of file
+}
diff --git a/tools/aconfig/aconfig/templates/FeatureFlagsImpl.java.template b/tools/aconfig/aconfig/templates/FeatureFlagsImpl.java.template
index d1cf191..26d3069 100644
--- a/tools/aconfig/aconfig/templates/FeatureFlagsImpl.java.template
+++ b/tools/aconfig/aconfig/templates/FeatureFlagsImpl.java.template
@@ -36,18 +36,19 @@
{{ if not library_exported }}
private void init() \{
StorageInternalReader reader = null;
+ boolean foundPackage = true;
try \{
reader = new StorageInternalReader("{container}", "{package_name}");
-{{ for namespace_with_flags in namespace_flags }}
-{{ -for flag in namespace_with_flags.flags }}
-{{ if flag.is_read_write }}
- {flag.method_name} = reader.getBooleanFlagValue({flag.flag_offset});
-{{ endif }}
-{{ -endfor }}
-{{ -endfor }}
} catch (Exception e) \{
- throw new RuntimeException("Cannot read flag in codegen", e);
+ foundPackage = false;
}
+ {{ for namespace_with_flags in namespace_flags }}
+ {{ -for flag in namespace_with_flags.flags }}
+ {{ if flag.is_read_write }}
+ {flag.method_name} = foundPackage ? reader.getBooleanFlagValue({flag.flag_offset}) : {flag.default_value};
+ {{ endif }}
+ {{ -endfor }}
+ {{ -endfor }}
isCached = true;
}
{{ endif }}
diff --git a/tools/compliance/go.work b/tools/compliance/go.work
index a24d2ea..506e619 100644
--- a/tools/compliance/go.work
+++ b/tools/compliance/go.work
@@ -1,4 +1,4 @@
-go 1.22
+go 1.23
use (
.
diff --git a/tools/edit_monitor/daemon_manager.py b/tools/edit_monitor/daemon_manager.py
index 445d849..892c292 100644
--- a/tools/edit_monitor/daemon_manager.py
+++ b/tools/edit_monitor/daemon_manager.py
@@ -70,6 +70,10 @@
logging.warning("Block sign found, exiting...")
return
+ if self.binary_path.startswith('/google/cog/'):
+ logging.warning("Edit monitor for cog is not supported, exiting...")
+ return
+
self._stop_any_existing_instance()
self._write_pid_to_pidfile()
self._start_daemon_process()
diff --git a/tools/edit_monitor/daemon_manager_test.py b/tools/edit_monitor/daemon_manager_test.py
index d62eade..72442c6 100644
--- a/tools/edit_monitor/daemon_manager_test.py
+++ b/tools/edit_monitor/daemon_manager_test.py
@@ -131,6 +131,13 @@
# Verify no daemon process is started.
self.assertIsNone(dm.daemon_process)
+ def test_start_return_directly_if_in_cog_env(self):
+ dm = daemon_manager.DaemonManager(
+ '/google/cog/cloud/user/workspace/edit_monitor')
+ dm.start()
+ # Verify no daemon process is started.
+ self.assertIsNone(dm.daemon_process)
+
@mock.patch('os.kill')
def test_start_failed_to_kill_existing_instance(self, mock_kill):
mock_kill.side_effect = OSError('Unknown OSError')