SF: add a server writable flag (non boot stable)
Bug: 297389311
Test: presubmit
Change-Id: I35cd5b7dd6160bcc45873eafae35c7497539fe56
diff --git a/services/surfaceflinger/SurfaceFlinger.cpp b/services/surfaceflinger/SurfaceFlinger.cpp
index 517dc96..4b0839d 100644
--- a/services/surfaceflinger/SurfaceFlinger.cpp
+++ b/services/surfaceflinger/SurfaceFlinger.cpp
@@ -497,6 +497,7 @@
// Trunk-Stable flags
mMiscFlagValue = flags::misc1();
mConnectedDisplayFlagValue = flags::connected_display();
+ mMisc2FlagEarlyBootValue = flags::late_boot_misc2();
}
LatchUnsignaledConfig SurfaceFlinger::getLatchUnsignaledConfig() {
@@ -740,6 +741,8 @@
}));
LOG_ALWAYS_FATAL_IF(flags::misc1() != mMiscFlagValue, "misc1 flag is not boot stable!");
+
+ mMisc2FlagLateBootValue = flags::late_boot_misc2();
}
static std::optional<renderengine::RenderEngine::RenderEngineType>
@@ -6346,6 +6349,9 @@
StringAppendF(&result, "MiscFlagValue: %s\n", mMiscFlagValue ? "true" : "false");
StringAppendF(&result, "ConnectedDisplayFlagValue: %s\n",
mConnectedDisplayFlagValue ? "true" : "false");
+ StringAppendF(&result, "Misc2FlagValue: %s (%s after boot)\n",
+ mMisc2FlagLateBootValue ? "true" : "false",
+ mMisc2FlagEarlyBootValue == mMisc2FlagLateBootValue ? "stable" : "modified");
getRenderEngine().dump(result);
diff --git a/services/surfaceflinger/SurfaceFlinger.h b/services/surfaceflinger/SurfaceFlinger.h
index 59b1172..0f98cb1 100644
--- a/services/surfaceflinger/SurfaceFlinger.h
+++ b/services/surfaceflinger/SurfaceFlinger.h
@@ -1454,6 +1454,8 @@
// Trunk-Stable flags
bool mMiscFlagValue;
bool mConnectedDisplayFlagValue;
+ bool mMisc2FlagEarlyBootValue;
+ bool mMisc2FlagLateBootValue;
};
class SurfaceComposerAIDL : public gui::BnSurfaceComposer {
diff --git a/services/surfaceflinger/surfaceflinger_flags.aconfig b/services/surfaceflinger/surfaceflinger_flags.aconfig
index f47ed45..6519d3a 100644
--- a/services/surfaceflinger/surfaceflinger_flags.aconfig
+++ b/services/surfaceflinger/surfaceflinger_flags.aconfig
@@ -15,3 +15,10 @@
bug: "278199093"
is_fixed_read_only: true
}
+
+flag{
+ name: "late_boot_misc2"
+ namespace: "core_graphics"
+ description: "This flag controls minor miscellaneous SurfaceFlinger changes. Cannot be read before boot finished!"
+ bug: "297389311"
+}