Updated NanoAppBundleTest to work with Android Auto Embedded.

Bug: 145207407
Test: cts-tradefed run cts -m CtsSecurityTestCases -t
android.security.cts.NanoAppBundleTest#testPoc_cve_2018_9471

Change-Id: I7a3f7fa18c2424cf2be3d476641af425d624cfe3
diff --git a/tests/tests/security/src/android/security/cts/NanoAppBundleTest.java b/tests/tests/security/src/android/security/cts/NanoAppBundleTest.java
index 4f7dffc..b621491 100644
--- a/tests/tests/security/src/android/security/cts/NanoAppBundleTest.java
+++ b/tests/tests/security/src/android/security/cts/NanoAppBundleTest.java
@@ -20,12 +20,14 @@
 import android.platform.test.annotations.SecurityTest;
 import androidx.test.InstrumentationRegistry;
 
+import android.content.pm.ActivityInfo;
 import android.content.ComponentName;
 import android.content.Context;
 import android.content.ContextWrapper;
 import android.content.Intent;
 import android.content.IntentFilter;
 import android.content.pm.ApplicationInfo;
+import android.content.pm.PackageManager;
 
 import android.app.Activity;
 import android.app.ActivityManager;
@@ -114,17 +116,25 @@
         private void trigger() {
             Log.i(TAG, "start...");
 
+            String pkg = isCar(mContext) ? "com.android.car.settings" : "com.android.settings";
+            String cls = isCar(mContext)
+                    ? "com.android.car.settings.accounts.AddAccountActivity"
+                    : "com.android.settings.accounts.AddAccountSettings";
             Intent intent = new Intent();
-            intent.setComponent(new ComponentName(
-                    "com.android.settings",
-                    "com.android.settings.accounts.AddAccountSettings"));
+            intent.setComponent(new ComponentName(pkg, cls));
             intent.setAction(Intent.ACTION_RUN);
             intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
             String authTypes[] = { SECURITY_CTS_PACKAGE_NAME };
             intent.putExtra("account_types", authTypes);
 
-            mContext.startActivity(intent);
-
+            ActivityInfo info = intent.resolveActivityInfo(
+                    mContext.getPackageManager(), intent.getFlags());
+            // Will throw NullPointerException if activity not found.
+            if (info.exported) {
+                mContext.startActivity(intent);
+            } else {
+                Log.i(TAG, "Activity is not exported");
+            }
             Log.i(TAG, "finsihed.");
         }
 
@@ -356,4 +366,9 @@
             return data;
         }
     }
+
+    private static boolean isCar(Context context) {
+        PackageManager pm = context.getPackageManager();
+        return pm.hasSystemFeature(PackageManager.FEATURE_AUTOMOTIVE);
+    }
 }