aboutsummaryrefslogtreecommitdiff
path: root/tools/aconfig/aconfig_device_paths/src/DeviceProtosTestUtilTemplate.java
diff options
context:
space:
mode:
authormosimchah <mosimchah@gmail.com>2025-12-02 09:26:21 -0500
committermosimchah <mosimchah@gmail.com>2025-12-02 09:26:21 -0500
commit278dd9b39c5a3de6320e17d3dd1d10bf447bcc49 (patch)
tree333c700c958401ad1ef3446d93eee54dac639cfa /tools/aconfig/aconfig_device_paths/src/DeviceProtosTestUtilTemplate.java
parent9b9f43f3305e3304678676813d1fd5945a5f40bf (diff)
parent00fcf469ba572bbce3f7c81fb346cccdbfa04219 (diff)
Merge branch 'lineage-23.1' of https://github.com/LineageOS/android_build into HEADw16.1
* 'lineage-23.1' of https://github.com/LineageOS/android_build: (415 commits) Exclude perf-setup-sh from userdebug builds Reapply "Drop legacy vboot support." Revert "build: Enable super image build rules depending on single super block device" Version bump to BP3A.250905.014 [core/build_id.mk] Version bump to BP3A.250905.013 [core/build_id.mk] Version bump to BP3A.250905.012 [core/build_id.mk] Version bump to BP3A.250905.011 [core/build_id.mk] Version bump to BP3A.250905.007.W1 [core/build_id.mk] Version bump to BP3A.250905.005.X5 [core/build_id.mk] Add apexd.mainline_patch_level_2 to PRODUCT_PACKAGES Version bump to BP3A.250905.009 [core/build_id.mk] Version bump to BP3A.250905.008 [core/build_id.mk] Version bump to BP3A.250905.005.X4 [core/build_id.mk] Version bump to BP3A.250905.005.Y1 [core/build_id.mk] Version bump to BP3A.250905.007 [core/build_id.mk] Version bump to BP3A.250905.005.X3 [core/build_id.mk] Version bump to BP3A.250905.005.X2 [core/build_id.mk] Version bump to BP3A.250905.005.X1 [core/build_id.mk] Version bump to BP3A.250905.006 [core/build_id.mk] Version bump to BP3A.250905.005 [core/build_id.mk] ... Change-Id: I84161b0f013eb40002a433053b9383240274e9ea
Diffstat (limited to 'tools/aconfig/aconfig_device_paths/src/DeviceProtosTestUtilTemplate.java')
-rw-r--r--tools/aconfig/aconfig_device_paths/src/DeviceProtosTestUtilTemplate.java40
1 files changed, 38 insertions, 2 deletions
diff --git a/tools/aconfig/aconfig_device_paths/src/DeviceProtosTestUtilTemplate.java b/tools/aconfig/aconfig_device_paths/src/DeviceProtosTestUtilTemplate.java
index 45d67663ef..e34593568a 100644
--- a/tools/aconfig/aconfig_device_paths/src/DeviceProtosTestUtilTemplate.java
+++ b/tools/aconfig/aconfig_device_paths/src/DeviceProtosTestUtilTemplate.java
@@ -25,12 +25,44 @@ import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
-/** @hide */
+/**
+ * Utility class to load protobuf storage files.
+ *
+ * This class _does_ support Ravenwood.
+ *
+ * In order to avoid adding extra dependencies, this class doesn't use Ravenwood annotations
+ * or RavenwoodHelper.java. Instead, we just hardcode relevant logic.
+ *
+ * @hide
+ */
public class DeviceProtosTestUtil {
- public static final String[] PATHS = {
+ private static final String[] PATHS_DEVICE = {
TEMPLATE
};
+ /** Path to ravenwood runtime, or null on non-ravenwood environment. */
+ private static final String RAVENWOOD_RUNTIME_PATH
+ = System.getProperty("android.ravenwood.runtime_path");
+
+ /** True if on ravenwood */
+ private static final boolean ON_RAVENWOOD = RAVENWOOD_RUNTIME_PATH != null;
+
+ private static String[] getPaths() {
+ if (!ON_RAVENWOOD) {
+ return PATHS_DEVICE;
+ }
+ return new String[] {
+ RAVENWOOD_RUNTIME_PATH + "/aconfig/metadata/aconfig/etc/all_aconfig_declarations.pb"
+ };
+ }
+
+ /**
+ * Protobuf storage files. On the device side, this array contains multiple files, one
+ * from each partition. On Ravenwood, this contains a single protobuf file containing all the
+ * flags.
+ */
+ public static final String[] PATHS = getPaths();
+
private static final String APEX_DIR = "/apex/";
private static final String APEX_ACONFIG_PATH_SUFFIX = "/etc/aconfig_flags.pb";
private static final String SYSTEM_APEX_DIR = "/system/apex";
@@ -67,6 +99,10 @@ public class DeviceProtosTestUtil {
public static List<String> parsedFlagsProtoPaths() {
ArrayList<String> paths = new ArrayList(Arrays.asList(PATHS));
+ if (ON_RAVENWOOD) {
+ return paths; // No apexes on Ravenwood.
+ }
+
File apexDirectory = new File(SYSTEM_APEX_DIR);
if (!apexDirectory.isDirectory()) {
return paths;