Merge changes I9953dcec,I5bc7034e into rvc-dev

* changes:
  Handles invalid requests to open EVS display
  Add a command line option for the buffer format
diff --git a/evs/apps/default/Android.bp b/evs/apps/default/Android.bp
index 7fd60ef..df6fd0d 100644
--- a/evs/apps/default/Android.bp
+++ b/evs/apps/default/Android.bp
@@ -63,10 +63,6 @@
         "LabeledChecker.png",
     ],
 
-    strip: {
-        keep_symbols: true,
-    },
-
     init_rc: ["evs_app.rc"],
 
     cflags: ["-DLOG_TAG=\"EvsApp\""] + [
diff --git a/evs/apps/demo_app_evs_support_lib/Android.bp b/evs/apps/demo_app_evs_support_lib/Android.bp
index 5380a4a..ae0073a 100644
--- a/evs/apps/demo_app_evs_support_lib/Android.bp
+++ b/evs/apps/demo_app_evs_support_lib/Android.bp
@@ -30,10 +30,6 @@
 
     include_dirs: ["packages/services/Car/evs/support_library"],
 
-    strip: {
-        keep_symbols: true,
-    },
-
     init_rc: ["evs_app_support_lib.rc"],
 
     cflags: ["-DLOG_TAG=\"EvsAppSupportLib\""] + [
diff --git a/evs/manager/1.0/Android.bp b/evs/manager/1.0/Android.bp
index 260e0b7..82bcdd8 100644
--- a/evs/manager/1.0/Android.bp
+++ b/evs/manager/1.0/Android.bp
@@ -39,10 +39,6 @@
 
     init_rc: ["android.automotive.evs.manager@1.0.rc"],
 
-    strip: {
-        keep_symbols: true,
-    },
-
     cflags: ["-DLOG_TAG=\"EvsManagerV1_0\""] + [
         "-DGL_GLEXT_PROTOTYPES",
         "-DEGL_EGLEXT_PROTOTYPES",
diff --git a/evs/manager/1.1/Android.bp b/evs/manager/1.1/Android.bp
index 694aa06..86f77e5 100644
--- a/evs/manager/1.1/Android.bp
+++ b/evs/manager/1.1/Android.bp
@@ -45,10 +45,6 @@
 
     init_rc: ["android.automotive.evs.manager@1.1.rc"],
 
-    strip: {
-        keep_symbols: true,
-    },
-
     cflags: ["-DLOG_TAG=\"EvsManagerV1_1\""] + [
         "-DGL_GLEXT_PROTOTYPES",
         "-DEGL_EGLEXT_PROTOTYPES",
diff --git a/evs/sampleDriver/Android.bp b/evs/sampleDriver/Android.bp
index 1722200..1bee713 100644
--- a/evs/sampleDriver/Android.bp
+++ b/evs/sampleDriver/Android.bp
@@ -58,10 +58,6 @@
 
     init_rc: ["android.hardware.automotive.evs@1.1-sample.rc"],
 
-    strip: {
-        keep_symbols: true,
-    },
-
     cflags: ["-DLOG_TAG=\"EvsSampleDriver\""] + [
         "-DGL_GLEXT_PROTOTYPES",
         "-DEGL_EGLEXT_PROTOTYPES",
diff --git a/evs/support_library/Android.bp b/evs/support_library/Android.bp
index 6556404..8b77a5d 100644
--- a/evs/support_library/Android.bp
+++ b/evs/support_library/Android.bp
@@ -56,10 +56,6 @@
         "camera_config.json",
     ],
 
-    strip: {
-        keep_symbols: true,
-    },
-
     cflags: ["-DLOG_TAG=\"libevssupport\""] + [
         "-DGL_GLEXT_PROTOTYPES",
         "-DEGL_EGLEXT_PROTOTYPES",
diff --git a/service/src/com/android/car/vms/VmsBrokerService.java b/service/src/com/android/car/vms/VmsBrokerService.java
index aed7e69..b2dbaa1 100644
--- a/service/src/com/android/car/vms/VmsBrokerService.java
+++ b/service/src/com/android/car/vms/VmsBrokerService.java
@@ -53,6 +53,7 @@
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.Collections;
+import java.util.Comparator;
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
@@ -111,7 +112,17 @@
 
     @Override
     public void dump(PrintWriter writer) {
-        // TODO(b/149125079): Implement dumpsys
+        writer.println("*" + TAG + "*");
+        synchronized (mLock) {
+            writer.println("mAvailableLayers: " + mAvailableLayers.getAvailableLayers());
+            writer.println();
+            writer.println("mSubscriptionState: " + mSubscriptionState);
+            writer.println();
+            writer.println("mClientMap:");
+            mClientMap.values().stream()
+                    .sorted(Comparator.comparingInt(VmsClientInfo::getUid))
+                    .forEach(client -> client.dump(writer, "  "));
+        }
     }
 
     @Override
diff --git a/service/src/com/android/car/vms/VmsClientInfo.java b/service/src/com/android/car/vms/VmsClientInfo.java
index b1ad912..d64b6b7 100644
--- a/service/src/com/android/car/vms/VmsClientInfo.java
+++ b/service/src/com/android/car/vms/VmsClientInfo.java
@@ -28,6 +28,7 @@
 
 import com.android.internal.annotations.GuardedBy;
 
+import java.io.PrintWriter;
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.Collections;
@@ -180,6 +181,52 @@
         }
     }
 
+    void dump(PrintWriter writer, String indent) {
+        synchronized (mLock) {
+            String prefix = indent;
+            writer.println(prefix + "VmsClient [" + mPackageName + "]");
+
+            prefix = indent + "  ";
+            writer.println(prefix + "UID: " + mUid);
+            writer.println(prefix + "Legacy Client: " + mLegacyClient);
+            writer.println(prefix + "Monitoring: " + mMonitoringEnabled);
+
+            if (mProviderIds.size() > 0) {
+                writer.println(prefix + "Offerings:");
+                for (int i = 0; i < mProviderIds.size(); i++) {
+                    prefix = indent + "    ";
+                    int providerId = mProviderIds.keyAt(i);
+                    writer.println(prefix + "Provider [" + providerId + "]");
+
+                    for (VmsLayerDependency layerOffering : mOfferings.get(
+                            providerId, Collections.emptySet())) {
+                        prefix = indent + "      ";
+                        writer.println(prefix + layerOffering.getLayer());
+                        if (!layerOffering.getDependencies().isEmpty()) {
+                            prefix = indent + "        ";
+                            writer.println(prefix + "Dependencies: "
+                                    + layerOffering.getDependencies());
+                        }
+                    }
+                }
+            }
+
+            if (!mLayerSubscriptions.isEmpty() || !mLayerAndProviderSubscriptions.isEmpty()) {
+                prefix = indent + "  ";
+                writer.println(prefix + "Subscriptions:");
+
+                prefix = indent + "    ";
+                for (VmsLayer layer : mLayerSubscriptions) {
+                    writer.println(prefix + layer);
+                }
+                for (Map.Entry<VmsLayer, Set<Integer>> layerEntry :
+                        mLayerAndProviderSubscriptions.entrySet()) {
+                    writer.println(prefix + layerEntry.getKey() + ": " + layerEntry.getValue());
+                }
+            }
+        }
+    }
+
     private static <K, V> Map<K, Set<V>> deepCopy(Map<K, Set<V>> original) {
         return original.entrySet().stream().collect(Collectors.toMap(
                 Map.Entry::getKey,
diff --git a/tests/android_car_api_test/src/android/car/apitest/CarActivityViewDisplayIdTest.java b/tests/android_car_api_test/src/android/car/apitest/CarActivityViewDisplayIdTest.java
index 93f2530..ee6dbbb 100644
--- a/tests/android_car_api_test/src/android/car/apitest/CarActivityViewDisplayIdTest.java
+++ b/tests/android_car_api_test/src/android/car/apitest/CarActivityViewDisplayIdTest.java
@@ -24,7 +24,6 @@
 import static org.junit.Assume.assumeTrue;
 import static org.testng.Assert.assertThrows;
 
-import androidx.test.filters.FlakyTest;
 import androidx.test.filters.MediumTest;
 
 import org.junit.Test;
@@ -42,7 +41,6 @@
     private static final int NONEXISTENT_DISPLAY_ID = Integer.MAX_VALUE;
 
     @Test
-    @FlakyTest
     public void testSingleActivityView() throws Exception {
         ActivityViewTestActivity activity = startActivityViewTestActivity(DEFAULT_DISPLAY);
         activity.waitForActivityViewReady();
@@ -65,7 +63,6 @@
     }
 
     @Test
-    @FlakyTest
     public void testDoubleActivityView() throws Exception {
         ActivityViewTestActivity activity1 = startActivityViewTestActivity(DEFAULT_DISPLAY);
         activity1.waitForActivityViewReady();
@@ -100,7 +97,6 @@
     }
 
     @Test
-    @FlakyTest
     public void testThrowsExceptionOnReportingNonExistingDisplay() throws Exception {
         ActivityViewTestActivity activity = startActivityViewTestActivity(DEFAULT_DISPLAY);
         activity.waitForActivityViewReady();
@@ -125,7 +121,6 @@
 
     // TODO(b/143353546): Make the following tests not to rely on CarLauncher.
     @Test
-    @FlakyTest
     public void testThrowsExceptionOnReportingNonOwningDisplay() throws Exception {
         int displayIdOfCarLauncher = waitForActivityViewDisplayReady(CAR_LAUNCHER_PKG_NAME);
         assumeTrue(INVALID_DISPLAY != displayIdOfCarLauncher);