aboutsummaryrefslogtreecommitdiff
path: root/tools/aconfig/aconfig_device_paths/src
diff options
context:
space:
mode:
Diffstat (limited to 'tools/aconfig/aconfig_device_paths/src')
-rw-r--r--tools/aconfig/aconfig_device_paths/src/DeviceProtosTemplate.java2
-rw-r--r--tools/aconfig/aconfig_device_paths/src/DeviceProtosTestUtilTemplate.java40
2 files changed, 40 insertions, 2 deletions
diff --git a/tools/aconfig/aconfig_device_paths/src/DeviceProtosTemplate.java b/tools/aconfig/aconfig_device_paths/src/DeviceProtosTemplate.java
index 4d4119947f..bad5fcc1f0 100644
--- a/tools/aconfig/aconfig_device_paths/src/DeviceProtosTemplate.java
+++ b/tools/aconfig/aconfig_device_paths/src/DeviceProtosTemplate.java
@@ -27,6 +27,8 @@ import java.util.List;
/**
* @hide
+ *
+ * Note this class does _not_ work on Ravenwood (yet). Contact g/ravenwood if you need it.
*/
public class DeviceProtos {
public static final String[] PATHS = {
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;