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);
+ }
}