Revert "Remove workarounds for running on 32-bit CF"

This reverts commit edf06db82dd15964be2e9045c8476eca105a8a4f.

Reason for revert: Potentially breaks coverage tests

Bug: 149618660
Change-Id: I0391df36fbc5dabed9fdfde95265e1e406c5a071
diff --git a/Android.bp b/Android.bp
index ab7e8e3..9fd2d23 100644
--- a/Android.bp
+++ b/Android.bp
@@ -21,6 +21,10 @@
     name: "com.android.sdkext",
     defaults: ["com.android.sdkext-defaults"],
     bootclasspath_fragments: ["com.android.sdkext-bootclasspath-fragment"],
+    binaries: [
+        "derive_classpath",
+        "derive_sdk",
+    ],
     prebuilts: [
         "cur_sdkinfo",
         "extensions_db",
@@ -33,10 +37,6 @@
     name: "com.android.sdkext-defaults",
     updatable: true,
     min_sdk_version: "30",
-    binaries: [
-        "derive_classpath",
-        "derive_sdk",
-    ],
     prebuilts: [
         "derive_classpath.rc",
         "derive_sdk.rc",
diff --git a/derive_classpath/Android.bp b/derive_classpath/Android.bp
index b89eec4..9ebabe5 100644
--- a/derive_classpath/Android.bp
+++ b/derive_classpath/Android.bp
@@ -50,6 +50,17 @@
     apex_available: ["com.android.sdkext"],
 }
 
+// Work around testing using a 64-bit test suite on 32-bit test device by
+// using a prefer32 version of derive_sdk in testing.
+cc_binary {
+    name: "derive_classpath_prefer32",
+    defaults: ["derive_classpath_binary-defaults"],
+    compile_multilib: "prefer32",
+    stem: "derive_classpath",
+    apex_available: ["test_com.android.sdkext"],
+    installable: false,
+}
+
 cc_test {
     name: "derive_classpath_test",
     defaults: ["derive_classpath-defaults"],
diff --git a/derive_sdk/Android.bp b/derive_sdk/Android.bp
index 55e43bf..66ba7bc 100644
--- a/derive_sdk/Android.bp
+++ b/derive_sdk/Android.bp
@@ -51,6 +51,17 @@
     apex_available: ["com.android.sdkext"],
 }
 
+// Work around testing using a 64-bit test suite on 32-bit test device by
+// using a prefer32 version of derive_sdk in testing.
+cc_binary {
+    name: "derive_sdk_prefer32",
+    defaults: ["derive_sdk_binary-defaults"],
+    compile_multilib: "prefer32",
+    stem: "derive_sdk",
+    apex_available: ["test_com.android.sdkext"],
+    installable: false,
+}
+
 cc_test {
     name: "derive_sdk_test",
     defaults: ["derive_sdk-defaults"],
diff --git a/testing/Android.bp b/testing/Android.bp
index 41c428c..fedd3f7 100644
--- a/testing/Android.bp
+++ b/testing/Android.bp
@@ -27,6 +27,18 @@
     ],
     file_contexts: ":com.android.sdkext-file_contexts",
     installable: false, // Should never be installed on the systemimage
+    multilib: {
+        prefer32: {
+            binaries: [
+                "derive_classpath_prefer32",
+                "derive_sdk_prefer32",
+            ],
+        },
+    },
+    // The automated test infra ends up building this apex for 64+32-bit and
+    // then installs it on a 32-bit-only device. Work around this weirdness
+    // by preferring 32-bit.
+    compile_multilib: "prefer32",
 }
 
 genrule {