Snap for 8730993 from dfb77726364ac6f389f02f5aaa62de294634a3d0 to mainline-tzdata3-release

Change-Id: Ia8ad2d3ac586b6cee5f6263f8306ba1a1fc12997
diff --git a/derive_classpath/derive_classpath.cpp b/derive_classpath/derive_classpath.cpp
index fba63f7..493aa42 100644
--- a/derive_classpath/derive_classpath.cpp
+++ b/derive_classpath/derive_classpath.cpp
@@ -14,8 +14,6 @@
  * limitations under the License.
  */
 
-#define LOG_TAG "derive_classpath"
-
 #include "derive_classpath.h"
 #include <android-base/file.h>
 #include <android-base/logging.h>
diff --git a/derive_sdk/derive_sdk.cpp b/derive_sdk/derive_sdk.cpp
index a4a1251..44ac7d1 100644
--- a/derive_sdk/derive_sdk.cpp
+++ b/derive_sdk/derive_sdk.cpp
@@ -35,14 +35,11 @@
 namespace derivesdk {
 
 static const std::unordered_map<std::string, SdkModule> kApexNameToModule = {
-    {"com.android.adservices", SdkModule::AD_SERVICES},
-    {"com.android.appsearch", SdkModule::APPSEARCH},
     {"com.android.art", SdkModule::ART},
     {"com.android.conscrypt", SdkModule::CONSCRYPT},
     {"com.android.ipsec", SdkModule::IPSEC},
     {"com.android.media", SdkModule::MEDIA},
     {"com.android.mediaprovider", SdkModule::MEDIA_PROVIDER},
-    {"com.android.ondevicepersonalization", SdkModule::ON_DEVICE_PERSONALIZATION},
     {"com.android.permission", SdkModule::PERMISSIONS},
     {"com.android.scheduling", SdkModule::SCHEDULING},
     {"com.android.sdkext", SdkModule::SDK_EXTENSIONS},
@@ -57,9 +54,6 @@
 
 static const std::unordered_set<SdkModule> kSModules = {SdkModule::ART, SdkModule::SCHEDULING};
 
-static const std::unordered_set<SdkModule> kTModules = {
-    SdkModule::AD_SERVICES, SdkModule::APPSEARCH, SdkModule::ON_DEVICE_PERSONALIZATION};
-
 bool ReadDatabase(const std::string& db_path, ExtensionDatabase& db) {
   std::string contents;
   if (!android::base::ReadFileToString(db_path, &contents, true)) {
@@ -113,20 +107,6 @@
   return max;
 }
 
-bool SetExtension(const std::string& extension_name, const ExtensionDatabase& db,
-                  const std::unordered_set<SdkModule>& relevant_modules,
-                  const std::unordered_map<SdkModule, int>& module_versions) {
-  int version = GetSdkLevel(db, relevant_modules, module_versions);
-  LOG(INFO) << "extension " << extension_name << " version is " << version;
-
-  const std::string property_name = "build.version.extensions." + extension_name;
-  if (!android::base::SetProperty(property_name, std::to_string(version))) {
-    LOG(ERROR) << "failed to set sdk_info prop " << property_name;
-    return false;
-  }
-  return true;
-}
-
 bool SetSdkLevels(const std::string& mountpath) {
   ExtensionDatabase db;
   if (!ReadDatabase(mountpath + "/com.android.sdkext/etc/extensions_db.pb", db)) {
@@ -174,20 +154,22 @@
 
   std::unordered_set<SdkModule> relevant_modules;
   relevant_modules.insert(kRModules.begin(), kRModules.end());
-  if (!SetExtension("r", db, relevant_modules, versions)) {
+
+  int version_R = GetSdkLevel(db, relevant_modules, versions);
+  LOG(INFO) << "R extension version is " << version_R;
+
+  if (!android::base::SetProperty("build.version.extensions.r",
+                                  std::to_string(version_R))) {
+    LOG(ERROR) << "failed to set r sdk_info prop";
     return false;
   }
-
   relevant_modules.insert(kSModules.begin(), kSModules.end());
   if (android::modules::sdklevel::IsAtLeastS()) {
-    if (!SetExtension("s", db, relevant_modules, versions)) {
-      return false;
-    }
-  }
-
-  relevant_modules.insert(kTModules.begin(), kTModules.end());
-  if (android::modules::sdklevel::IsAtLeastT()) {
-    if (!SetExtension("t", db, relevant_modules, versions)) {
+    int version_S = GetSdkLevel(db, relevant_modules, versions);
+    LOG(INFO) << "S extension version is " << version_S;
+    if (!android::base::SetProperty("build.version.extensions.s",
+                                    std::to_string(version_S))) {
+      LOG(ERROR) << "failed to set s sdk_info prop";
       return false;
     }
   }
diff --git a/derive_sdk/derive_sdk_test.cpp b/derive_sdk/derive_sdk_test.cpp
index 51e703e..d5222d6 100644
--- a/derive_sdk/derive_sdk_test.cpp
+++ b/derive_sdk/derive_sdk_test.cpp
@@ -85,22 +85,19 @@
     EXPECT_EQ(S, android::modules::sdklevel::IsAtLeastS() ? n : -1);
   }
 
-  void EXPECT_T(int n) {
-    int T = android::base::GetIntProperty("build.version.extensions.t", -1);
-    // Only expect the T extension level to be set on T+ devices.
-    EXPECT_EQ(T, android::modules::sdklevel::IsAtLeastT() ? n : -1);
-  }
-
   void EXPECT_ALL(int n) {
     EXPECT_R(n);
     EXPECT_S(n);
-    EXPECT_T(n);
   }
 
   ExtensionDatabase db_;
   TemporaryDir dir_;
 };
 
+TEST_F(DeriveSdkTest, CurrentSystemImageValue) {
+  EXPECT_ALL(2);
+}
+
 TEST_F(DeriveSdkTest, OneDessert_OneVersion_OneApex) {
   AddExtensionVersion(3, {{SdkModule::SDK_EXTENSIONS, 2}});
   EXPECT_ALL(0);
diff --git a/gen_sdk/bump_sdk.sh b/gen_sdk/bump_sdk.sh
deleted file mode 100755
index 4015324..0000000
--- a/gen_sdk/bump_sdk.sh
+++ /dev/null
@@ -1,39 +0,0 @@
-#!/bin/bash
-if ! [ -e build/soong ]; then
-  echo "This script must be run from the top of the tree"
-  exit 1
-fi
-
-sdk="$1"
-if [[ -z "$sdk" ]]; then
-  echo "usage: $0 <new-sdk-int> [bug-id]"
-  exit 1
-fi
-
-bug_text=$(test -n "$2" && echo "\nBug: $2")
-
-SDKEXT="packages/modules/SdkExtensions/"
-
-TARGET_PRODUCT=aosp_arm64 build/soong/soong_ui.bash --make-mode --soong-only gen_sdk
-out/soong/host/linux-x86/bin/gen_sdk \
-    --database ${SDKEXT}/gen_sdk/extensions_db.textpb \
-    --action new_sdk \
-    --sdk "$sdk"
-sed -E -i -e "/CurrentSystemImageValue/{n;s/[0-9]+/${sdk}/}" \
-    ${SDKEXT}/derive_sdk/derive_sdk_test.cpp
-sed -E -i -e "/public static final int V = /{s/\S+;/${sdk};/}" \
-    ${SDKEXT}/java/com/android/os/ext/testing/CurrentVersion.java
-repo start bump-ext ${SDKEXT}
-
-message="Bump SDK Extension version to ${sdk}
-
-Generated with:
-$ $0 $@
-
-Database update generated with:
-$ gen_sdk --action new_sdk --sdk $sdk
-"
-message+=$(test -n "$2" && echo -e "\nBug: $2")
-message+=$(echo -e "\nTest: presubmit")
-
-git -C ${SDKEXT} commit -a -m "$message"
\ No newline at end of file
diff --git a/gen_sdk/extensions_db.textpb b/gen_sdk/extensions_db.textpb
index 3c060c9..423a221 100644
--- a/gen_sdk/extensions_db.textpb
+++ b/gen_sdk/extensions_db.textpb
@@ -124,84 +124,3 @@
     }
   }
 }
-versions {
-  version: 3
-  requirements {
-    module: ART
-    version {
-      version: 3
-    }
-  }
-  requirements {
-    module: CONSCRYPT
-    version {
-      version: 3
-    }
-  }
-  requirements {
-    module: IPSEC
-    version {
-      version: 3
-    }
-  }
-  requirements {
-    module: MEDIA
-    version {
-      version: 3
-    }
-  }
-  requirements {
-    module: MEDIA_PROVIDER
-    version {
-      version: 3
-    }
-  }
-  requirements {
-    module: PERMISSIONS
-    version {
-      version: 3
-    }
-  }
-  requirements {
-    module: SCHEDULING
-    version {
-      version: 3
-    }
-  }
-  requirements {
-    module: SDK_EXTENSIONS
-    version {
-      version: 3
-    }
-  }
-  requirements {
-    module: STATSD
-    version {
-      version: 3
-    }
-  }
-  requirements {
-    module: TETHERING
-    version {
-      version: 3
-    }
-  }
-  requirements {
-    module: AD_SERVICES
-    version {
-      version: 3
-    }
-  }
-  requirements {
-    module: APPSEARCH
-    version {
-      version: 3
-    }
-  }
-  requirements {
-    module: ON_DEVICE_PERSONALIZATION
-    version {
-      version: 3
-    }
-  }
-}
diff --git a/java/android/os/ext/SdkExtensions.java b/java/android/os/ext/SdkExtensions.java
index 3ce6a5a..cb4c541 100644
--- a/java/android/os/ext/SdkExtensions.java
+++ b/java/android/os/ext/SdkExtensions.java
@@ -44,20 +44,15 @@
 
     private static final int R_EXTENSION_INT;
     private static final int S_EXTENSION_INT;
-    private static final int T_EXTENSION_INT;
     private static final Map<Integer, Integer> ALL_EXTENSION_INTS;
     static {
         R_EXTENSION_INT = SystemProperties.getInt("build.version.extensions.r", 0);
         S_EXTENSION_INT = SystemProperties.getInt("build.version.extensions.s", 0);
-        T_EXTENSION_INT = SystemProperties.getInt("build.version.extensions.t", 0);
         Map<Integer, Integer> extensions = new HashMap<Integer, Integer>();
         extensions.put(VERSION_CODES.R, R_EXTENSION_INT);
         if (SdkLevel.isAtLeastS()) {
             extensions.put(VERSION_CODES.S, S_EXTENSION_INT);
         }
-        if (SdkLevel.isAtLeastT()) {
-            extensions.put(VERSION_CODES.TIRAMISU, T_EXTENSION_INT);
-        }
         ALL_EXTENSION_INTS = Collections.unmodifiableMap(extensions);
     }
 
@@ -65,7 +60,7 @@
      * Values suitable as parameters for {@link #getExtensionVersion(int)}.
      * @hide
      */
-    @IntDef(value = { VERSION_CODES.R, VERSION_CODES.S, VERSION_CODES.TIRAMISU })
+    @IntDef(value = { VERSION_CODES.R, VERSION_CODES.S })
     @Retention(RetentionPolicy.SOURCE)
     public @interface Extension {}
 
@@ -96,9 +91,6 @@
         if (extension == VERSION_CODES.S) {
             return S_EXTENSION_INT;
         }
-        if (extension == VERSION_CODES.TIRAMISU) {
-            return T_EXTENSION_INT;
-        }
         return 0;
     }
 
diff --git a/java/com/android/os/ext/testing/CurrentVersion.java b/java/com/android/os/ext/testing/CurrentVersion.java
index e0dbfb7..7086ebe 100644
--- a/java/com/android/os/ext/testing/CurrentVersion.java
+++ b/java/com/android/os/ext/testing/CurrentVersion.java
@@ -15,6 +15,7 @@
  */
 package com.android.os.ext.testing;
 
+import java.util.Collections;
 import java.util.Set;
 
 /**
@@ -23,20 +24,8 @@
  */
 public class CurrentVersion {
 
-    /** The latest train's version */
-    public static final int CURRENT_TRAIN_VERSION = 3;
-
-    /** The version R shipped with (0) */
-    public static final int R_BASE_VERSION = 0;
-
-    /** The version S shipped with (1) */
-    public static final int S_BASE_VERSION = 1;
-
-    /** The version T shipped with (3) */
-    public static final int T_BASE_VERSION = 3;
-
-    /** The current platform's version */
-    public static final int CURRENT_BASE_VERSION = CURRENT_TRAIN_VERSION;
+    /** The current extension version */
+    public static final int V = 2;
 
     /**
      * The current SDK Extension versions to expect / allow in CTS.
@@ -47,8 +36,8 @@
      * When a new extension version is defined, this Set must therefore be extended to include the
      * new version.
      */
-    public static final Set<Integer> ALLOWED_VERSIONS_CTS =
-        CURRENT_BASE_VERSION == CURRENT_TRAIN_VERSION ? Set.of(CURRENT_BASE_VERSION)
-            : Set.of(CURRENT_BASE_VERSION, CURRENT_TRAIN_VERSION);
+    public static final Set<Integer> ALLOWED_VERSIONS = Collections.unmodifiableSet(Set.of(
+        V
+    ));
 
 }
diff --git a/javatests/com/android/os/ext/Android.bp b/javatests/com/android/os/ext/Android.bp
index 27d065c..89e22af 100644
--- a/javatests/com/android/os/ext/Android.bp
+++ b/javatests/com/android/os/ext/Android.bp
@@ -24,7 +24,6 @@
         "ctstestrunner-axt",
         "modules-utils-build",
         "test_util_current_version",
-        "truth-prebuilt",
     ],
     srcs: ["*.java"],
     test_config: "CtsSdkExtensionsTestCases.xml",
diff --git a/javatests/com/android/os/ext/SdkExtensionsTest.java b/javatests/com/android/os/ext/SdkExtensionsTest.java
index 29f570b..84ed2a0 100644
--- a/javatests/com/android/os/ext/SdkExtensionsTest.java
+++ b/javatests/com/android/os/ext/SdkExtensionsTest.java
@@ -17,8 +17,7 @@
 package com.android.os.ext;
 
 import static android.os.Build.VERSION_CODES;
-import static com.android.os.ext.testing.CurrentVersion.ALLOWED_VERSIONS_CTS;
-import static com.google.common.truth.Truth.assertThat;
+import static com.android.os.ext.testing.CurrentVersion.ALLOWED_VERSIONS;
 
 import android.os.SystemProperties;
 import android.os.ext.SdkExtensions;
@@ -30,7 +29,7 @@
 public class SdkExtensionsTest extends TestCase {
 
     private static void assertCorrectVersion(int version) throws Exception {
-        assertThat(ALLOWED_VERSIONS_CTS).contains(version);
+        assertTrue(ALLOWED_VERSIONS.contains(version));
     }
 
     private static void assertCorrectVersion(boolean expected, int version) throws Exception {
@@ -66,10 +65,8 @@
         assertCorrectVersion(true, SdkExtensions.getExtensionVersion(VERSION_CODES.R));
         assertCorrectVersion(
             SdkLevel.isAtLeastS(), SdkExtensions.getExtensionVersion(VERSION_CODES.S));
-        assertCorrectVersion(
-            SdkLevel.isAtLeastT(), SdkExtensions.getExtensionVersion(VERSION_CODES.TIRAMISU));
 
-        int firstUnassigned = VERSION_CODES.TIRAMISU + 1;
+        int firstUnassigned = VERSION_CODES.S + 1;
         for (int sdk = firstUnassigned; sdk <= 1_000_000; sdk++) {
             // No extension SDKs yet.
             assertEquals(0, SdkExtensions.getExtensionVersion(sdk));
@@ -81,8 +78,6 @@
         assertCorrectVersion(true, SystemProperties.get("build.version.extensions.r"));
         assertCorrectVersion(
             SdkLevel.isAtLeastS(), SystemProperties.get("build.version.extensions.s"));
-        assertCorrectVersion(
-            SdkLevel.isAtLeastT(), SystemProperties.get("build.version.extensions.t"));
     }
 
     public void testExtensionVersions() throws Exception {
@@ -94,10 +89,6 @@
             assertCorrectVersion(versions.get(VERSION_CODES.S));
             expectedSize++;
         }
-        if (SdkLevel.isAtLeastT()) {
-            assertCorrectVersion(versions.get(VERSION_CODES.TIRAMISU));
-            expectedSize++;
-        }
         assertEquals(expectedSize, versions.size());
     }
 
diff --git a/javatests/com/android/sdkext/extensions/SdkExtensionsHostTest.java b/javatests/com/android/sdkext/extensions/SdkExtensionsHostTest.java
index 083f3a4..707e6d3 100644
--- a/javatests/com/android/sdkext/extensions/SdkExtensionsHostTest.java
+++ b/javatests/com/android/sdkext/extensions/SdkExtensionsHostTest.java
@@ -16,6 +16,8 @@
 
 package com.android.sdkext.extensions;
 
+import static com.android.os.ext.testing.CurrentVersion.V;
+
 import static com.google.common.truth.Truth.assertWithMessage;
 
 import static org.junit.Assert.assertEquals;
@@ -26,7 +28,6 @@
 
 import android.cts.install.lib.host.InstallUtilsHost;
 
-import com.android.os.ext.testing.CurrentVersion;
 import com.android.tests.rollback.host.AbandonSessionsRule;
 import com.android.tradefed.device.ITestDevice.ApexInfo;
 import com.android.tradefed.testtype.DeviceJUnit4ClassRunner;
@@ -50,23 +51,22 @@
 
     private static final String APP_FILENAME = "sdkextensions_e2e_test_app.apk";
     private static final String APP_PACKAGE = "com.android.sdkext.extensions.apps";
+    private static final String APP_R12_FILENAME = "sdkextensions_e2e_test_app_req_r12.apk";
+    private static final String APP_R12_PACKAGE = "com.android.sdkext.extensions.apps.r12";
+    private static final String APP_S12_FILENAME = "sdkextensions_e2e_test_app_req_s12.apk";
+    private static final String APP_S12_PACKAGE = "com.android.sdkext.extensions.apps.s12";
+    private static final String APP_R45_FILENAME = "sdkextensions_e2e_test_app_req_r45.apk";
+    private static final String APP_R45_PACKAGE = "com.android.sdkext.extensions.apps.r45";
+    private static final String APP_S45_FILENAME = "sdkextensions_e2e_test_app_req_s45.apk";
+    private static final String APP_S45_PACKAGE = "com.android.sdkext.extensions.apps.s45";
     private static final String MEDIA_FILENAME = "test_com.android.media.apex";
     private static final String SDKEXTENSIONS_FILENAME = "test_com.android.sdkext.apex";
 
-    private static String appFilename(String appName) {
-        return "sdkextensions_e2e_test_app_req_" + appName + ".apk";
-    }
-
-    private static String appPackage(String appName) {
-        return "com.android.sdkext.extensions.apps." + appName;
-    }
-
     private static final Duration BOOT_COMPLETE_TIMEOUT = Duration.ofMinutes(2);
 
     private final InstallUtilsHost mInstallUtils = new InstallUtilsHost(this);
 
     private Boolean mIsAtLeastS = null;
-    private Boolean mIsAtLeastT = null;
 
     @Rule
     public AbandonSessionsRule mHostTestRule = new AbandonSessionsRule(this);
@@ -105,8 +105,7 @@
         // Version 45 requires sdkext + media, which isn't fulfilled
         assertRVersionEquals(12);
         assertSVersionEquals(12);
-        assertTVersionEquals(12);
-        assertTestMethodsPresent(); // 45 APIs are available on 12 too.
+        assertTrue(broadcastForBoolean("MAKE_CALLS_45", null)); // 45 APIs are available on 12 too.
     }
 
     @Test
@@ -127,13 +126,13 @@
         assertVersion45();
     }
 
-    private boolean canInstallApp(String appName) throws Exception {
-        File appFile = mInstallUtils.getTestFile(appFilename(appName));
+    private boolean canInstallApp(String filename, String packageName) throws Exception {
+        File appFile = mInstallUtils.getTestFile(filename);
         String installResult = getDevice().installPackage(appFile, true);
         if (installResult != null) {
             return false;
         }
-        assertNull(getDevice().uninstallPackage(appPackage(appName)));
+        assertNull(getDevice().uninstallPackage(packageName));
         return true;
     }
 
@@ -176,71 +175,42 @@
     }
 
     private void assertVersionDefault() throws Exception {
-        int expected = isAtLeastT() ? CurrentVersion.T_BASE_VERSION
-            : isAtLeastS() ? CurrentVersion.S_BASE_VERSION
-            : CurrentVersion.R_BASE_VERSION;
-        assertRVersionEquals(expected);
-        assertSVersionEquals(expected);
-        assertTVersionEquals(expected);
-        assertTestMethodsNotPresent();
+        assertRVersionEquals(V);
+        assertSVersionEquals(V);
+        assertTrue(broadcastForBoolean("MAKE_CALLS_DEFAULT", null));
     }
 
     private void assertVersion45() throws Exception {
         assertRVersionEquals(45);
         assertSVersionEquals(45);
-        assertTVersionEquals(45);
-        assertTestMethodsPresent();
-    }
-
-    private void assertTestMethodsNotPresent() throws Exception {
-        assertTrue(broadcastForBoolean("MAKE_CALLS_DEFAULT", null));
-    }
-
-    private void assertTestMethodsPresent() throws Exception {
-        if (isAtLeastS()) {
-            assertTrue(broadcastForBoolean("MAKE_CALLS_45", null));
-        } else {
-            // The APIs in the test apex are not currently getting installed correctly
-            // on Android R devices because they rely on the dynamic classpath feature.
-            // TODO(b/234361913): fix this
-            assertTestMethodsNotPresent();
-        }
+        assertTrue(broadcastForBoolean("MAKE_CALLS_45", null));
     }
 
     private void assertRVersionEquals(int version) throws Exception {
-        String[] apps = version >= 45 ? new String[]{"r12", "r45"} :
-            version >= 12 ? new String[]{"r12"} : new String[]{};
-        assertExtensionVersionEquals("r", version, apps, true);
+        int appValue = broadcastForInt("GET_SDK_VERSION", "r");
+        String syspropValue = getExtensionVersionFromSysprop("r");
+        assertEquals(version, appValue);
+        assertEquals(String.valueOf(version), syspropValue);
+        assertEquals(version >= 12, canInstallApp(APP_R12_FILENAME, APP_R12_PACKAGE));
+        assertEquals(version >= 45, canInstallApp(APP_R45_FILENAME, APP_R45_PACKAGE));
     }
 
     private void assertSVersionEquals(int version) throws Exception {
-        // These APKs require the same R version as they do S version.
-        int minVersion = Math.min(version, broadcastForInt("GET_SDK_VERSION", "r"));
-        String[] apps = minVersion >= 45 ? new String[]{"s12", "s45"}
-                : minVersion >= 12 ? new String[]{"s12"} : new String[]{};
-        assertExtensionVersionEquals("s", version, apps, isAtLeastS());
-    }
-
-    private void assertTVersionEquals(int version) throws Exception {
-        assertExtensionVersionEquals("t", version, new String[]{}, isAtLeastT());
-    }
-
-    private void assertExtensionVersionEquals(String extension, int version, String[] apps,
-            boolean expected) throws Exception {
-        int appValue = broadcastForInt("GET_SDK_VERSION", extension);
-        String syspropValue = getExtensionVersionFromSysprop(extension);
-        if (expected) {
+        int appValue = broadcastForInt("GET_SDK_VERSION", "s");
+        String syspropValue = getExtensionVersionFromSysprop("s");
+        if (isAtLeastS()) {
             assertEquals(version, appValue);
             assertEquals(String.valueOf(version), syspropValue);
-            for (String app : apps) {
-                assertTrue(canInstallApp(app));
-            }
+
+            // These APKs require the same R version as they do S version.
+            int minVersion = Math.min(version, broadcastForInt("GET_SDK_VERSION", "r"));
+            assertEquals(minVersion >= 12, canInstallApp(APP_S12_FILENAME, APP_S12_PACKAGE));
+            assertEquals(minVersion >= 45, canInstallApp(APP_S45_FILENAME, APP_S45_PACKAGE));
         } else {
             assertEquals(0, appValue);
             assertEquals("", syspropValue);
-            for (String app : apps) {
-                assertFalse(canInstallApp(app));
-            }
+            assertFalse(canInstallApp(APP_S12_FILENAME, APP_S12_PACKAGE));
+            assertFalse(canInstallApp(APP_S45_FILENAME, APP_S45_PACKAGE));
         }
     }
 
@@ -261,13 +231,6 @@
         return mIsAtLeastS;
     }
 
-    private boolean isAtLeastT() throws Exception {
-        if (mIsAtLeastT == null) {
-            mIsAtLeastT = broadcastForBoolean("IS_AT_LEAST", "t");
-        }
-        return mIsAtLeastT;
-    }
-
     private boolean uninstallApexes(String... filenames) throws Exception {
         boolean reboot = false;
         for (String filename : filenames) {
diff --git a/javatests/com/android/sdkext/extensions/apps/Receiver.java b/javatests/com/android/sdkext/extensions/apps/Receiver.java
index 5f47b9c..4c81363 100644
--- a/javatests/com/android/sdkext/extensions/apps/Receiver.java
+++ b/javatests/com/android/sdkext/extensions/apps/Receiver.java
@@ -41,7 +41,6 @@
         switch (letter) {
             case 'r': return Build.VERSION_CODES.R;
             case 's': return Build.VERSION_CODES.S;
-            case 't': return Build.VERSION_CODES.TIRAMISU;
         }
         throw new IllegalArgumentException(String.valueOf(letter));
     }
@@ -50,7 +49,6 @@
         switch (letter) {
             case 'r': return true; // our min sdk version is 30
             case 's': return SdkLevel.isAtLeastS();
-            case 't': return SdkLevel.isAtLeastT();
         }
         return false;
     }
diff --git a/manifest.json b/manifest.json
index 3aabdf0..01062af 100644
--- a/manifest.json
+++ b/manifest.json
@@ -1,4 +1,4 @@
 {
   "name": "com.android.sdkext",
-  "version": 339990000
+  "version": 319999900
 }