Tradefed: Attempt to use list -a for getPackagesToSet

Return all packages, including hidden ones, as the invariants apply
to all.

Bug: 80284247
Test: forrest --tf_binary_path=$ANDROID_HOST_OUT/bin test --context='{"build":{"branch":"git_master","build_id":"4424619"}}' ab::4424619:marlin-userdebug:git_master /google/src/files/head/depot/google3/wireless/android/test_tools/atp/config/test/asit/dexoptota/self_full.gcl
Merged-In: I5883513f74c6631cda8abf1459d4b5dd8bf4f4c5
Change-Id: I5883513f74c6631cda8abf1459d4b5dd8bf4f4c5
diff --git a/src/com/android/tradefed/targetprep/SetPackagesRecentlyUsed.java b/src/com/android/tradefed/targetprep/SetPackagesRecentlyUsed.java
index d3d3b98..b2ebb52 100644
--- a/src/com/android/tradefed/targetprep/SetPackagesRecentlyUsed.java
+++ b/src/com/android/tradefed/targetprep/SetPackagesRecentlyUsed.java
@@ -69,7 +69,17 @@
 
     private List<String> getPackagesToSet(ITestDevice device) throws DeviceNotAvailableException {
         if (mPackages.isEmpty()) {
-            String[] packages = device.executeShellCommand("cmd package list package").split("\n");
+            String packageString;
+            try {
+                String res = device.executeShellCommand("cmd package list package -a");
+                if (res == null || res.contains("Error: Unknown option: -a")) {
+                    throw new RuntimeException();
+                }
+                packageString = res;
+            } catch (RuntimeException e) {
+                packageString = device.executeShellCommand("cmd package list package");
+            }
+            String[] packages = packageString.split("\n");
             return Arrays.asList(packages);
         } else {
             return mPackages;