diff --git a/nearby/README.md b/nearby/README.md
index 59d8082..da70819 100644
--- a/nearby/README.md
+++ b/nearby/README.md
@@ -33,7 +33,10 @@
 ## Build and Install
 
 ```sh
-$ source build/envsetup.sh && lunch <TARGE>
-$ mmm -j packages/modules/Nearby/
-$ adb install -r {ANDROID_PRODUCT_OUT}/system/apex/com.android.nearby.apex
+$ source build/envsetup.sh && lunch <TARGET>
+$ m com.android.tethering deapexer
+$ $ANDROID_BUILD_TOP/out/host/linux-x86/bin/deapexer decompress --input \
+    {ANDROID_PRODUCT_OUT}/system/apex/com.android.tethering.capex --output \
+    /tmp/tethering.apex
+$ adb install -r /tmp/tethering.apex
 ```
diff --git a/nearby/apex/Android.bp b/nearby/apex/Android.bp
index b277ac4..d7f063a 100644
--- a/nearby/apex/Android.bp
+++ b/nearby/apex/Android.bp
@@ -15,63 +15,7 @@
     default_applicable_licenses: ["Android-Apache-2.0"],
 }
 
-apex_key {
-    name: "com.android.nearby.key",
-    public_key: "com.android.nearby.avbpubkey",
-    private_key: "com.android.nearby.pem",
-}
-
-android_app_certificate {
-    name: "com.android.nearby.certificate",
-    certificate: "com.android.nearby",
-}
-
-apex {
-    name: "com.android.nearby",
-    manifest: "manifest.json",
-    // TODO(b/189890387): change the SDK version to "32" when T release is finalized.
-    min_sdk_version: "current",
-    updatable: true,
-    file_contexts: ":apex.test-file_contexts",  // Default, please edit, see go/android-apex-howto
-    key: "com.android.nearby.key",
-    certificate: ":com.android.nearby.certificate",
-
-    bootclasspath_fragments: ["com.android.nearby-bootclasspath-fragment"],
-    java_libs: [
-        "service-nearby",
-    ],
-    apps: ["HalfSheetUX"],
-}
-
 filegroup {
     name: "nearby-jarjar-rules",
     srcs: ["jarjar-rules.txt"],
 }
-
-sdk {
-    name: "nearby-module-sdk",
-    java_sdk_libs: [
-        "framework-nearby",
-    ],
-}
-
-// Encapsulate the contributions made by the com.android.nearby to the bootclasspath.
-bootclasspath_fragment {
-    name: "com.android.nearby-bootclasspath-fragment",
-    contents: ["framework-nearby"],
-    apex_available: ["com.android.nearby"],
-
-    // The bootclasspath_fragments that provide APIs on which this depends.
-    fragments: [
-        {
-            apex: "com.android.art",
-            module: "art-bootclasspath-fragment",
-        },
-    ],
-
-    // Additional stubs libraries that this fragment's contents use which are
-    // not provided by another bootclasspath_fragment.
-    additional_stubs: [
-        "android-non-updatable",
-    ],
-}
diff --git a/nearby/apex/com.android.nearby.avbpubkey b/nearby/apex/com.android.nearby.avbpubkey
deleted file mode 100644
index b6acf05..0000000
--- a/nearby/apex/com.android.nearby.avbpubkey
+++ /dev/null
Binary files differ
diff --git a/nearby/apex/com.android.nearby.pem b/nearby/apex/com.android.nearby.pem
deleted file mode 100644
index 2cc306c..0000000
--- a/nearby/apex/com.android.nearby.pem
+++ /dev/null
@@ -1,51 +0,0 @@
------BEGIN RSA PRIVATE KEY-----
-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
------END RSA PRIVATE KEY-----
diff --git a/nearby/apex/com.android.nearby.pk8 b/nearby/apex/com.android.nearby.pk8
deleted file mode 100644
index 3ed4094..0000000
--- a/nearby/apex/com.android.nearby.pk8
+++ /dev/null
Binary files differ
diff --git a/nearby/apex/com.android.nearby.x509.pem b/nearby/apex/com.android.nearby.x509.pem
deleted file mode 100644
index 56388e7..0000000
--- a/nearby/apex/com.android.nearby.x509.pem
+++ /dev/null
@@ -1,33 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIFyTCCA7ECFEspssWJX+AMgDetCBZCRSwjPYlpMA0GCSqGSIb3DQEBCwUAMIGf
-MQswCQYDVQQGEwJVUzETMBEGA1UECAwKQ2FsaWZvcm5pYTEWMBQGA1UEBwwNTW91
-bnRhaW4gVmlldzEQMA4GA1UECgwHQW5kcm9pZDEQMA4GA1UECwwHQW5kcm9pZDEi
-MCAGCSqGSIb3DQEJARYTYW5kcm9pZEBhbmRyb2lkLmNvbTEbMBkGA1UEAwwSY29t
-LmFuZHJvaWQubmVhcmJ5MCAXDTIxMDYwMTIzNTQwNVoYDzQ3NTkwNDI4MjM1NDA1
-WjCBnzELMAkGA1UEBhMCVVMxEzARBgNVBAgMCkNhbGlmb3JuaWExFjAUBgNVBAcM
-DU1vdW50YWluIFZpZXcxEDAOBgNVBAoMB0FuZHJvaWQxEDAOBgNVBAsMB0FuZHJv
-aWQxIjAgBgkqhkiG9w0BCQEWE2FuZHJvaWRAYW5kcm9pZC5jb20xGzAZBgNVBAMM
-EmNvbS5hbmRyb2lkLm5lYXJieTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoC
-ggIBAMBBi6RNxCWMsRg56D4lZYGHNDW7pRFZG1Tya2pROBt3yta4EWuziXIv+MuX
-BBimIy1KKhx3eYOsxeS2YucrPn9HSTTya9jDxAzjJInGCgzp0XC1eNQlpMcMZAnG
-vTcwWbXariOLu5dcnPJvBl4N2SdhjfsSMptdLXe+wMxrKZfkLEW9GvK02vduahk0
-ttO92eY/dhaWxVPLnuEAWo7zMG0oF9AsichykOdS/QB6R5tmtmVOy3oC/FBodiOF
-ZTvW0WRPoFZlHruL2JnpFF6n4c8eGTFd4Ux7maM/K7qlzeUZLJdrahdPaOAOAmyR
-RZd22QlzMQ6DRKgzceQ2CknglFUZRE+b/nxO9anbDGQ1piiBzaqAUZi1JS79ujA5
-UugLVznM+Q2yaz2FElW5UrT1ZmSisN5KXv/Bx37UXmc8ATzwKSrl2uJB1UqBaSlT
-rThPonoUhaRQHxqA/O/aFTEFK+jSyCA+/K9gVZQIgWF14bQBs+ZMNXa3gvJzW/aI
-gBM+9yvr94VIN0/fE7dof3ggPUPkAccVvYm3vky5x4dpOF10JCCC9cyiJYZ9GUnI
-9hbncYbLrWJmW3V7j99x1bnwL6JsjKAIfXOjTPTw1Su+hDA0qixqLeGdFzIoGOnm
-DkX0ev/FM8tb4ZrFWxKoFOByJFSDD6X671HWt0D34SevujK/AgMBAAEwDQYJKoZI
-hvcNAQELBQADggIBAEWNKZ/PTc9eZ+hhOI9oCLIa4rbdGu9Sd6Iu2TESNoesOup6
-+sRZ1VqpvcPNnNiRq8XyQh0kFR5Hm6W18BZ6AIawUWDx0syCQlflFzsbQSSqkAxg
-O4EGcvZfGwISy+JGY5FbeZ6JmispV5OhK0X2Qp3svCXDJdIh7BIB/kLUvGSCiRJy
-9Ct6X0Ol5fPQo8CvyDz7eDquEIj04QBwqgTEJIk5qmtPvJTRA0mI7/irfjAoyQTh
-LF2LRGHnwOLfLblKrQ4eohQgWNleIF25dN14Lfir61gr/04fIJYANUUK3Wsb1p/T
-8TjWaxlYNy+VsY74LxUs/hGUEzJbr4iPJAXV1AzySkWxgLcJK453fJDSfAlkE0pr
-a2jYdETF382FM7j/XIZvWrb8ercALGTvA6FwRkqqJVVugl+Im27H/ohEIEW7Qv97
-yMu5Hh+K40PQsmp9DgmgEw/9OD5mTVSXeh/BbaPc8UZWZPCe6EbRC8QKRiPolj8Y
-AjLQBX1WNmVIObVlSuM9JvFgHzs4ddQn52uelJieNfG7GXZyHN/xiKsoPbin1H/y
-YrT8y4e1CvJ6Cm38QgteTdAnmvOFjobuf7/DFmw32ev268/GiDLQ4S8Shi4bPWwA
-oIf5w+Wbx90HpnAIxKx+SxwnRCbDSnnuEu72OPa2LLAlWJx5O1Bb3M0qQMba
------END CERTIFICATE-----
diff --git a/nearby/framework/Android.bp b/nearby/framework/Android.bp
index fd7f2c9..ec854df 100644
--- a/nearby/framework/Android.bp
+++ b/nearby/framework/Android.bp
@@ -16,6 +16,8 @@
     default_applicable_licenses: ["Android-Apache-2.0"],
 }
 
+// Sources included in the framework-connectivity-t jar
+// TODO: consider moving files to packages/modules/Connectivity
 filegroup {
     name: "framework-nearby-java-sources",
     srcs: [
@@ -23,7 +25,9 @@
         "java/**/*.aidl",
     ],
     path: "java",
-    visibility: ["//visibility:private"],
+    visibility: [
+        "//packages/modules/Connectivity/framework-t:__subpackages__",
+    ],
 }
 
 filegroup {
@@ -34,69 +38,18 @@
     visibility: ["//frameworks/base"],
 }
 
-// Defaults shared between `framework-nearby` & `framework-nearby-pre-jarjar`
-java_defaults {
-    name: "framework-nearby-defaults",
-    defaults: ["nearby-module-sdk-version-defaults"],
-    srcs: [
-        ":framework-nearby-java-sources",
-    ],
-    static_libs: [
-        "modules-utils-preconditions",
-    ],
-}
-
-// Defaults for SDK versions.
-java_defaults {
-    name: "nearby-module-sdk-version-defaults",
-    min_sdk_version: "current",
-    target_sdk_version: "current",
-}
-
-// Nearby-service needs pre-jarjared version of framework-nearby so it can reference copied utility
-// classes before they are renamed.
+// Build of only framework-nearby (not as part of connectivity) for
+// unit tests
 java_library {
-    name: "framework-nearby-pre-jarjar",
-    defaults: ["framework-nearby-defaults"],
+    name: "framework-nearby-static",
+    srcs: [":framework-nearby-java-sources"],
     sdk_version: "module_current",
     libs: [
         "framework-annotations-lib",
         "framework-bluetooth",
     ],
-    // java_api_finder must accompany `srcs` (`srcs` defined in `framework-nearby-defaults`)
-    plugins: ["java_api_finder"],
-    installable: false,
-    visibility: [
-        "//packages/modules/Nearby/service",
-        "//packages/modules/Nearby/halfsheet",
-        "//packages/modules/Nearby/tests:__subpackages__",
+    static_libs: [
+        "modules-utils-preconditions",
     ],
-}
-
-// SDK library for nearby module API.
-java_sdk_library {
-    name: "framework-nearby",
-    defaults: [
-        "framework-module-defaults",  // the SDK needs to be usable in all processes
-        "framework-nearby-defaults",
-    ],
-    libs: ["framework-bluetooth"],
-
-    jarjar_rules: ":nearby-jarjar-rules",
-    apex_available: [
-        "com.android.nearby",
-    ],
-    installable: true,
-    optimize: {
-        enabled: false
-    },
-
-    // Restrict access to implementation library.
-    impl_library_visibility: [
-        "//packages/modules/Nearby/service:__subpackages__",
-    ],
-    permitted_packages: [
-        "android.nearby",
-        "com.android.nearby",
-    ],
+    visibility: ["//packages/modules/Nearby/tests:__subpackages__"],
 }
diff --git a/nearby/framework/api/current.txt b/nearby/framework/api/current.txt
deleted file mode 100644
index d802177..0000000
--- a/nearby/framework/api/current.txt
+++ /dev/null
@@ -1 +0,0 @@
-// Signature format: 2.0
diff --git a/nearby/framework/api/module-lib-current.txt b/nearby/framework/api/module-lib-current.txt
deleted file mode 100644
index d802177..0000000
--- a/nearby/framework/api/module-lib-current.txt
+++ /dev/null
@@ -1 +0,0 @@
-// Signature format: 2.0
diff --git a/nearby/framework/api/module-lib-removed.txt b/nearby/framework/api/module-lib-removed.txt
deleted file mode 100644
index d802177..0000000
--- a/nearby/framework/api/module-lib-removed.txt
+++ /dev/null
@@ -1 +0,0 @@
-// Signature format: 2.0
diff --git a/nearby/framework/api/removed.txt b/nearby/framework/api/removed.txt
deleted file mode 100644
index d802177..0000000
--- a/nearby/framework/api/removed.txt
+++ /dev/null
@@ -1 +0,0 @@
-// Signature format: 2.0
diff --git a/nearby/framework/api/system-current.txt b/nearby/framework/api/system-current.txt
deleted file mode 100644
index 6666c8d..0000000
--- a/nearby/framework/api/system-current.txt
+++ /dev/null
@@ -1,315 +0,0 @@
-// Signature format: 2.0
-package android.nearby {
-
-  public class FastPairAccountKeyDeviceMetadata {
-    method @Nullable public byte[] getAccountKey();
-    method @Nullable public android.nearby.FastPairDeviceMetadata getFastPairDeviceMetadata();
-    method @Nullable public android.nearby.FastPairDiscoveryItem getFastPairDiscoveryItem();
-    method @Nullable public byte[] getSha256AccountKeyPublicAddress();
-  }
-
-  public static final class FastPairAccountKeyDeviceMetadata.Builder {
-    ctor public FastPairAccountKeyDeviceMetadata.Builder();
-    method @NonNull public android.nearby.FastPairAccountKeyDeviceMetadata build();
-    method @NonNull public android.nearby.FastPairAccountKeyDeviceMetadata.Builder setAccountKey(@Nullable byte[]);
-    method @NonNull public android.nearby.FastPairAccountKeyDeviceMetadata.Builder setFastPairDeviceMetadata(@Nullable android.nearby.FastPairDeviceMetadata);
-    method @NonNull public android.nearby.FastPairAccountKeyDeviceMetadata.Builder setFastPairDiscoveryItem(@Nullable android.nearby.FastPairDiscoveryItem);
-    method @NonNull public android.nearby.FastPairAccountKeyDeviceMetadata.Builder setSha256AccountKeyPublicAddress(@Nullable byte[]);
-  }
-
-  public class FastPairAntispoofkeyDeviceMetadata {
-  }
-
-  public static final class FastPairAntispoofkeyDeviceMetadata.Builder {
-    ctor public FastPairAntispoofkeyDeviceMetadata.Builder();
-    method @NonNull public android.nearby.FastPairAntispoofkeyDeviceMetadata build();
-    method @NonNull public android.nearby.FastPairAntispoofkeyDeviceMetadata.Builder setAntiSpoofPublicKey(@Nullable byte[]);
-    method @NonNull public android.nearby.FastPairAntispoofkeyDeviceMetadata.Builder setFastPairDeviceMetadata(@Nullable android.nearby.FastPairDeviceMetadata);
-  }
-
-  public abstract class FastPairDataProviderBase {
-    ctor public FastPairDataProviderBase(@NonNull String);
-    method @Nullable public final android.os.IBinder getBinder();
-    method public abstract void onLoadFastPairAccountDevicesMetadata(@NonNull android.nearby.FastPairDataProviderBase.FastPairAccountDevicesMetadataRequest, @NonNull android.nearby.FastPairDataProviderBase.FastPairAccountDevicesMetadataCallback);
-    method public abstract void onLoadFastPairAntispoofkeyDeviceMetadata(@NonNull android.nearby.FastPairDataProviderBase.FastPairAntispoofkeyDeviceMetadataRequest, @NonNull android.nearby.FastPairDataProviderBase.FastPairAntispoofkeyDeviceMetadataCallback);
-    method public abstract void onLoadFastPairEligibleAccounts(@NonNull android.nearby.FastPairDataProviderBase.FastPairEligibleAccountsRequest, @NonNull android.nearby.FastPairDataProviderBase.FastPairEligibleAccountsCallback);
-    method public abstract void onManageFastPairAccount(@NonNull android.nearby.FastPairDataProviderBase.FastPairManageAccountRequest, @NonNull android.nearby.FastPairDataProviderBase.FastPairManageActionCallback);
-    method public abstract void onManageFastPairAccountDevice(@NonNull android.nearby.FastPairDataProviderBase.FastPairManageAccountDeviceRequest, @NonNull android.nearby.FastPairDataProviderBase.FastPairManageActionCallback);
-    field public static final String ACTION_FAST_PAIR_DATA_PROVIDER = "android.nearby.action.FAST_PAIR_DATA_PROVIDER";
-    field public static final int ERROR_CODE_BAD_REQUEST = 0; // 0x0
-    field public static final int ERROR_CODE_INTERNAL_ERROR = 1; // 0x1
-    field public static final int MANAGE_REQUEST_ADD = 0; // 0x0
-    field public static final int MANAGE_REQUEST_REMOVE = 1; // 0x1
-  }
-
-  public static interface FastPairDataProviderBase.FastPairAccountDevicesMetadataCallback {
-    method public void onError(int, @Nullable String);
-    method public void onFastPairAccountDevicesMetadataReceived(@NonNull java.util.Collection<android.nearby.FastPairAccountKeyDeviceMetadata>);
-  }
-
-  public static class FastPairDataProviderBase.FastPairAccountDevicesMetadataRequest {
-    method @NonNull public android.accounts.Account getAccount();
-  }
-
-  public static interface FastPairDataProviderBase.FastPairAntispoofkeyDeviceMetadataCallback {
-    method public void onError(int, @Nullable String);
-    method public void onFastPairAntispoofkeyDeviceMetadataReceived(@NonNull android.nearby.FastPairAntispoofkeyDeviceMetadata);
-  }
-
-  public static class FastPairDataProviderBase.FastPairAntispoofkeyDeviceMetadataRequest {
-    method @NonNull public byte[] getModelId();
-  }
-
-  public static interface FastPairDataProviderBase.FastPairEligibleAccountsCallback {
-    method public void onError(int, @Nullable String);
-    method public void onFastPairEligibleAccountsReceived(@NonNull java.util.Collection<android.nearby.FastPairEligibleAccount>);
-  }
-
-  public static class FastPairDataProviderBase.FastPairEligibleAccountsRequest {
-  }
-
-  public static class FastPairDataProviderBase.FastPairManageAccountDeviceRequest {
-    method @NonNull public android.accounts.Account getAccount();
-    method @NonNull public android.nearby.FastPairAccountKeyDeviceMetadata getAccountKeyDeviceMetadata();
-    method @Nullable public String getBleAddress();
-    method public int getRequestType();
-  }
-
-  public static class FastPairDataProviderBase.FastPairManageAccountRequest {
-    method @NonNull public android.accounts.Account getAccount();
-    method public int getRequestType();
-  }
-
-  public static interface FastPairDataProviderBase.FastPairManageActionCallback {
-    method public void onError(int, @Nullable String);
-    method public void onSuccess();
-  }
-
-  public class FastPairDeviceMetadata {
-    method @Nullable public String getAssistantSetupHalfSheet();
-    method @Nullable public String getAssistantSetupNotification();
-    method public int getBleTxPower();
-    method @Nullable public String getConfirmPinDescription();
-    method @Nullable public String getConfirmPinTitle();
-    method @Nullable public String getConnectSuccessCompanionAppInstalled();
-    method @Nullable public String getConnectSuccessCompanionAppNotInstalled();
-    method public int getDeviceType();
-    method @Nullable public String getDownloadCompanionAppDescription();
-    method @Nullable public String getFailConnectGoToSettingsDescription();
-    method @Nullable public String getFastPairTvConnectDeviceNoAccountDescription();
-    method @Nullable public byte[] getImage();
-    method @Nullable public String getImageUrl();
-    method @Nullable public String getInitialNotificationDescription();
-    method @Nullable public String getInitialNotificationDescriptionNoAccount();
-    method @Nullable public String getInitialPairingDescription();
-    method @Nullable public String getIntentUri();
-    method @Nullable public String getLocale();
-    method @Nullable public String getOpenCompanionAppDescription();
-    method @Nullable public String getRetroactivePairingDescription();
-    method @Nullable public String getSubsequentPairingDescription();
-    method @Nullable public String getSyncContactsDescription();
-    method @Nullable public String getSyncContactsTitle();
-    method @Nullable public String getSyncSmsDescription();
-    method @Nullable public String getSyncSmsTitle();
-    method public float getTriggerDistance();
-    method @Nullable public String getTrueWirelessImageUrlCase();
-    method @Nullable public String getTrueWirelessImageUrlLeftBud();
-    method @Nullable public String getTrueWirelessImageUrlRightBud();
-    method @Nullable public String getUnableToConnectDescription();
-    method @Nullable public String getUnableToConnectTitle();
-    method @Nullable public String getUpdateCompanionAppDescription();
-    method @Nullable public String getWaitLaunchCompanionAppDescription();
-  }
-
-  public static final class FastPairDeviceMetadata.Builder {
-    ctor public FastPairDeviceMetadata.Builder();
-    method @NonNull public android.nearby.FastPairDeviceMetadata build();
-    method @NonNull public android.nearby.FastPairDeviceMetadata.Builder setAssistantSetupHalfSheet(@Nullable String);
-    method @NonNull public android.nearby.FastPairDeviceMetadata.Builder setAssistantSetupNotification(@Nullable String);
-    method @NonNull public android.nearby.FastPairDeviceMetadata.Builder setBleTxPower(int);
-    method @NonNull public android.nearby.FastPairDeviceMetadata.Builder setConfirmPinDescription(@Nullable String);
-    method @NonNull public android.nearby.FastPairDeviceMetadata.Builder setConfirmPinTitle(@Nullable String);
-    method @NonNull public android.nearby.FastPairDeviceMetadata.Builder setConnectSuccessCompanionAppInstalled(@Nullable String);
-    method @NonNull public android.nearby.FastPairDeviceMetadata.Builder setConnectSuccessCompanionAppNotInstalled(@Nullable String);
-    method @NonNull public android.nearby.FastPairDeviceMetadata.Builder setDeviceType(int);
-    method @NonNull public android.nearby.FastPairDeviceMetadata.Builder setDownloadCompanionAppDescription(@Nullable String);
-    method @NonNull public android.nearby.FastPairDeviceMetadata.Builder setFailConnectGoToSettingsDescription(@Nullable String);
-    method @NonNull public android.nearby.FastPairDeviceMetadata.Builder setFastPairTvConnectDeviceNoAccountDescription(@Nullable String);
-    method @NonNull public android.nearby.FastPairDeviceMetadata.Builder setImage(@Nullable byte[]);
-    method @NonNull public android.nearby.FastPairDeviceMetadata.Builder setImageUrl(@Nullable String);
-    method @NonNull public android.nearby.FastPairDeviceMetadata.Builder setInitialNotificationDescription(@Nullable String);
-    method @NonNull public android.nearby.FastPairDeviceMetadata.Builder setInitialNotificationDescriptionNoAccount(@Nullable String);
-    method @NonNull public android.nearby.FastPairDeviceMetadata.Builder setInitialPairingDescription(@Nullable String);
-    method @NonNull public android.nearby.FastPairDeviceMetadata.Builder setIntentUri(@Nullable String);
-    method @NonNull public android.nearby.FastPairDeviceMetadata.Builder setLocale(@Nullable String);
-    method @NonNull public android.nearby.FastPairDeviceMetadata.Builder setOpenCompanionAppDescription(@Nullable String);
-    method @NonNull public android.nearby.FastPairDeviceMetadata.Builder setRetroactivePairingDescription(@Nullable String);
-    method @NonNull public android.nearby.FastPairDeviceMetadata.Builder setSubsequentPairingDescription(@Nullable String);
-    method @NonNull public android.nearby.FastPairDeviceMetadata.Builder setSyncContactsDescription(@Nullable String);
-    method @NonNull public android.nearby.FastPairDeviceMetadata.Builder setSyncContactsTitle(@Nullable String);
-    method @NonNull public android.nearby.FastPairDeviceMetadata.Builder setSyncSmsDescription(@Nullable String);
-    method @NonNull public android.nearby.FastPairDeviceMetadata.Builder setSyncSmsTitle(@Nullable String);
-    method @NonNull public android.nearby.FastPairDeviceMetadata.Builder setTriggerDistance(float);
-    method @NonNull public android.nearby.FastPairDeviceMetadata.Builder setTrueWirelessImageUrlCase(@Nullable String);
-    method @NonNull public android.nearby.FastPairDeviceMetadata.Builder setTrueWirelessImageUrlLeftBud(@Nullable String);
-    method @NonNull public android.nearby.FastPairDeviceMetadata.Builder setTrueWirelessImageUrlRightBud(@Nullable String);
-    method @NonNull public android.nearby.FastPairDeviceMetadata.Builder setUnableToConnectDescription(@Nullable String);
-    method @NonNull public android.nearby.FastPairDeviceMetadata.Builder setUnableToConnectTitle(@Nullable String);
-    method @NonNull public android.nearby.FastPairDeviceMetadata.Builder setUpdateCompanionAppDescription(@Nullable String);
-    method @NonNull public android.nearby.FastPairDeviceMetadata.Builder setWaitLaunchCompanionAppDescription(@Nullable String);
-  }
-
-  public class FastPairDiscoveryItem {
-    method @Nullable public String getActionUrl();
-    method public int getActionUrlType();
-    method @Nullable public String getAppName();
-    method public int getAttachmentType();
-    method @Nullable public byte[] getAuthenticationPublicKeySecp256r1();
-    method @Nullable public byte[] getBleRecordBytes();
-    method public int getDebugCategory();
-    method @Nullable public String getDebugMessage();
-    method @Nullable public String getDescription();
-    method @Nullable public String getDeviceName();
-    method @Nullable public String getDisplayUrl();
-    method @Nullable public String getEntityId();
-    method @Nullable public String getFeatureGraphicUrl();
-    method public long getFirstObservationTimestampMillis();
-    method @Nullable public String getGroupId();
-    method @Nullable public String getIconFfeUrl();
-    method @Nullable public byte[] getIconPng();
-    method @Nullable public String getId();
-    method public long getLastObservationTimestampMillis();
-    method public int getLastUserExperience();
-    method public long getLostMillis();
-    method @Nullable public String getMacAddress();
-    method @Nullable public String getPackageName();
-    method public long getPendingAppInstallTimestampMillis();
-    method public int getRssi();
-    method public int getState();
-    method @Nullable public String getTitle();
-    method @Nullable public String getTriggerId();
-    method public int getTxPower();
-    method public int getType();
-  }
-
-  public static final class FastPairDiscoveryItem.Builder {
-    ctor public FastPairDiscoveryItem.Builder();
-    method @NonNull public android.nearby.FastPairDiscoveryItem build();
-    method @NonNull public android.nearby.FastPairDiscoveryItem.Builder setActionUrl(@Nullable String);
-    method @NonNull public android.nearby.FastPairDiscoveryItem.Builder setActionUrlType(int);
-    method @NonNull public android.nearby.FastPairDiscoveryItem.Builder setAppName(@Nullable String);
-    method @NonNull public android.nearby.FastPairDiscoveryItem.Builder setAttachmentType(int);
-    method @NonNull public android.nearby.FastPairDiscoveryItem.Builder setAuthenticationPublicKeySecp256r1(@Nullable byte[]);
-    method @NonNull public android.nearby.FastPairDiscoveryItem.Builder setBleRecordBytes(@Nullable byte[]);
-    method @NonNull public android.nearby.FastPairDiscoveryItem.Builder setDebugCategory(int);
-    method @NonNull public android.nearby.FastPairDiscoveryItem.Builder setDebugMessage(@Nullable String);
-    method @NonNull public android.nearby.FastPairDiscoveryItem.Builder setDescription(@Nullable String);
-    method @NonNull public android.nearby.FastPairDiscoveryItem.Builder setDeviceName(@Nullable String);
-    method @NonNull public android.nearby.FastPairDiscoveryItem.Builder setDisplayUrl(@Nullable String);
-    method @NonNull public android.nearby.FastPairDiscoveryItem.Builder setEntityId(@Nullable String);
-    method @NonNull public android.nearby.FastPairDiscoveryItem.Builder setFeatureGraphicUrl(@Nullable String);
-    method @NonNull public android.nearby.FastPairDiscoveryItem.Builder setFirstObservationTimestampMillis(long);
-    method @NonNull public android.nearby.FastPairDiscoveryItem.Builder setGroupId(@Nullable String);
-    method @NonNull public android.nearby.FastPairDiscoveryItem.Builder setIconFfeUrl(@Nullable String);
-    method @NonNull public android.nearby.FastPairDiscoveryItem.Builder setIconPng(@Nullable byte[]);
-    method @NonNull public android.nearby.FastPairDiscoveryItem.Builder setId(@Nullable String);
-    method @NonNull public android.nearby.FastPairDiscoveryItem.Builder setLastObservationTimestampMillis(long);
-    method @NonNull public android.nearby.FastPairDiscoveryItem.Builder setLastUserExperience(int);
-    method @NonNull public android.nearby.FastPairDiscoveryItem.Builder setLostMillis(long);
-    method @NonNull public android.nearby.FastPairDiscoveryItem.Builder setMacAddress(@Nullable String);
-    method @NonNull public android.nearby.FastPairDiscoveryItem.Builder setPackageName(@Nullable String);
-    method @NonNull public android.nearby.FastPairDiscoveryItem.Builder setPendingAppInstallTimestampMillis(long);
-    method @NonNull public android.nearby.FastPairDiscoveryItem.Builder setRssi(int);
-    method @NonNull public android.nearby.FastPairDiscoveryItem.Builder setState(int);
-    method @NonNull public android.nearby.FastPairDiscoveryItem.Builder setTitle(@Nullable String);
-    method @NonNull public android.nearby.FastPairDiscoveryItem.Builder setTriggerId(@Nullable String);
-    method @NonNull public android.nearby.FastPairDiscoveryItem.Builder setTxPower(int);
-    method @NonNull public android.nearby.FastPairDiscoveryItem.Builder setType(int);
-  }
-
-  public class FastPairEligibleAccount {
-  }
-
-  public static final class FastPairEligibleAccount.Builder {
-    ctor public FastPairEligibleAccount.Builder();
-    method @NonNull public android.nearby.FastPairEligibleAccount build();
-    method @NonNull public android.nearby.FastPairEligibleAccount.Builder setAccount(@Nullable android.accounts.Account);
-    method @NonNull public android.nearby.FastPairEligibleAccount.Builder setOptIn(boolean);
-  }
-
-  public abstract class NearbyDevice {
-    method public int getMedium();
-    method @IntRange(from=0xffffff81, to=126) public int getRssi();
-    method public static boolean isValidMedium(int);
-  }
-
-  public final class NearbyDeviceParcelable implements android.os.Parcelable {
-    method public int describeContents();
-    method @Nullable public String getBluetoothAddress();
-    method @Nullable public byte[] getData();
-    method @Nullable public String getFastPairModelId();
-    method public int getMedium();
-    method @Nullable public String getName();
-    method @IntRange(from=0xffffff81, to=126) public int getRssi();
-    method public void writeToParcel(@NonNull android.os.Parcel, int);
-    field @NonNull public static final android.os.Parcelable.Creator<android.nearby.NearbyDeviceParcelable> CREATOR;
-  }
-
-  public static final class NearbyDeviceParcelable.Builder {
-    ctor public NearbyDeviceParcelable.Builder();
-    method @NonNull public android.nearby.NearbyDeviceParcelable build();
-    method @NonNull public android.nearby.NearbyDeviceParcelable.Builder setBluetoothAddress(@Nullable String);
-    method @NonNull public android.nearby.NearbyDeviceParcelable.Builder setData(@Nullable byte[]);
-    method @NonNull public android.nearby.NearbyDeviceParcelable.Builder setFastPairModelId(@Nullable String);
-    method @NonNull public android.nearby.NearbyDeviceParcelable.Builder setMedium(int);
-    method @NonNull public android.nearby.NearbyDeviceParcelable.Builder setName(@Nullable String);
-    method @NonNull public android.nearby.NearbyDeviceParcelable.Builder setRssi(int);
-  }
-
-  public final class NearbyFrameworkInitializer {
-    method public static void registerServiceWrappers();
-  }
-
-  public class NearbyManager {
-    method public void startScan(@NonNull android.nearby.ScanRequest, @NonNull java.util.concurrent.Executor, @NonNull android.nearby.ScanCallback);
-    method public void stopScan(@NonNull android.nearby.ScanCallback);
-  }
-
-  public interface ScanCallback {
-    method public void onDiscovered(@NonNull android.nearby.NearbyDevice);
-    method public void onLost(@NonNull android.nearby.NearbyDevice);
-    method public void onUpdated(@NonNull android.nearby.NearbyDevice);
-  }
-
-  public final class ScanRequest implements android.os.Parcelable {
-    method public int describeContents();
-    method public int getScanMode();
-    method public int getScanType();
-    method @NonNull public android.os.WorkSource getWorkSource();
-    method public boolean isEnableBle();
-    method public static boolean isValidScanMode(int);
-    method public static boolean isValidScanType(int);
-    method @NonNull public static String scanModeToString(int);
-    method public void writeToParcel(@NonNull android.os.Parcel, int);
-    field @NonNull public static final android.os.Parcelable.Creator<android.nearby.ScanRequest> CREATOR;
-    field public static final int SCAN_MODE_BALANCED = 1; // 0x1
-    field public static final int SCAN_MODE_LOW_LATENCY = 2; // 0x2
-    field public static final int SCAN_MODE_LOW_POWER = 0; // 0x0
-    field public static final int SCAN_MODE_NO_POWER = -1; // 0xffffffff
-    field public static final int SCAN_TYPE_EXPOSURE_NOTIFICATION = 4; // 0x4
-    field public static final int SCAN_TYPE_FAST_PAIR = 1; // 0x1
-    field public static final int SCAN_TYPE_NEARBY_PRESENCE = 3; // 0x3
-    field public static final int SCAN_TYPE_NEARBY_SHARE = 2; // 0x2
-  }
-
-  public static final class ScanRequest.Builder {
-    ctor public ScanRequest.Builder();
-    method @NonNull public android.nearby.ScanRequest build();
-    method @NonNull public android.nearby.ScanRequest.Builder setEnableBle(boolean);
-    method @NonNull public android.nearby.ScanRequest.Builder setScanMode(int);
-    method @NonNull public android.nearby.ScanRequest.Builder setScanType(int);
-    method @NonNull @RequiresPermission(android.Manifest.permission.UPDATE_DEVICE_STATS) public android.nearby.ScanRequest.Builder setWorkSource(@Nullable android.os.WorkSource);
-  }
-
-}
-
diff --git a/nearby/framework/api/system-removed.txt b/nearby/framework/api/system-removed.txt
deleted file mode 100644
index d802177..0000000
--- a/nearby/framework/api/system-removed.txt
+++ /dev/null
@@ -1 +0,0 @@
-// Signature format: 2.0
diff --git a/nearby/framework/api/test-current.txt b/nearby/framework/api/test-current.txt
deleted file mode 100644
index e69de29..0000000
--- a/nearby/framework/api/test-current.txt
+++ /dev/null
diff --git a/nearby/framework/api/test-removed.txt b/nearby/framework/api/test-removed.txt
deleted file mode 100644
index e69de29..0000000
--- a/nearby/framework/api/test-removed.txt
+++ /dev/null
diff --git a/nearby/halfsheet/Android.bp b/nearby/halfsheet/Android.bp
index 82d0933..3f4f258 100644
--- a/nearby/halfsheet/Android.bp
+++ b/nearby/halfsheet/Android.bp
@@ -20,14 +20,15 @@
     name: "HalfSheetDefaults",
     srcs: ["src/**/*.java"],
     sdk_version: "module_current",
-    min_sdk_version: "current",
+    // This is included in tethering apex, which uses min SDK 30
+    min_sdk_version: "30",
     target_sdk_version: "current",
     manifest: "AndroidManifest.xml",
     plugins: ["java_api_finder"],
     jarjar_rules: ":nearby-jarjar-rules",
     libs: [
         "framework-bluetooth",
-        "framework-nearby-pre-jarjar",
+        "framework-connectivity-tiramisu",
         "nearby-service-string",
       ],
     static_libs: [
@@ -49,7 +50,7 @@
     static_libs: [
         "com.google.android.material_material",
     ],
-    apex_available: ["com.android.nearby",],
+    apex_available: ["com.android.tethering",],
 }
 
 android_app_certificate {
diff --git a/nearby/halfsheet/res/values/colors.xml b/nearby/halfsheet/res/values/colors.xml
index 2a2ed41..b066665 100644
--- a/nearby/halfsheet/res/values/colors.xml
+++ b/nearby/halfsheet/res/values/colors.xml
@@ -1,14 +1,17 @@
 <?xml version="1.0" encoding="utf-8"?>
 <resources
-    xmlns:android="http://schemas.android.com/apk/res/android">
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:tools="http://schemas.android.com/tools">
   <!-- Use original background color -->
   <color name="fast_pair_notification_background">#00000000</color>
-  <color name="fast_pair_half_sheet_button_color">@android:color/system_accent1_100</color>
-  <color name="fast_pair_half_sheet_button_text">@android:color/system_neutral1_900</color>
-  <color name="fast_pair_half_sheet_button_accent_text">@android:color/system_neutral1_900</color>
-  <color name="fast_pair_progress_color">@android:color/system_accent1_600</color>
-  <color name="fast_pair_half_sheet_subtitle_color">@android:color/system_neutral2_700</color>
-  <color name="fast_pair_half_sheet_text_color">@android:color/system_neutral1_900</color>
+  <!-- Ignores NewApi as below system colors are available since API 31, and HalfSheet is always
+       running on T+ even though it has min_sdk 30 to match its containing APEX -->
+  <color name="fast_pair_half_sheet_button_color" tools:ignore="NewApi">@android:color/system_accent1_100</color>
+  <color name="fast_pair_half_sheet_button_text" tools:ignore="NewApi">@android:color/system_neutral1_900</color>
+  <color name="fast_pair_half_sheet_button_accent_text" tools:ignore="NewApi">@android:color/system_neutral1_900</color>
+  <color name="fast_pair_progress_color" tools:ignore="NewApi">@android:color/system_accent1_600</color>
+  <color name="fast_pair_half_sheet_subtitle_color" tools:ignore="NewApi">@android:color/system_neutral2_700</color>
+  <color name="fast_pair_half_sheet_text_color" tools:ignore="NewApi">@android:color/system_neutral1_900</color>
 
   <!-- Nearby Discoverer -->
   <color name="discovery_activity_accent">#4285F4</color>
diff --git a/nearby/service/Android.bp b/nearby/service/Android.bp
index 5b0028e..1e1af20 100644
--- a/nearby/service/Android.bp
+++ b/nearby/service/Android.bp
@@ -47,15 +47,12 @@
     srcs: [":nearby-service-srcs"],
 
     defaults: [
-        "nearby-module-sdk-version-defaults",
         "framework-system-server-module-defaults"
     ],
     libs: [
-        // pre-jarjar symbols are needed so that nearby-service can reference the original class
-        // names at compile time
-        "framework-nearby-pre-jarjar",
         "framework-bluetooth.stubs.module_lib", // TODO(b/215722418): Change to framework-bluetooth once fixed
         "error_prone_annotations",
+        "framework-connectivity-tiramisu.impl",
     ],
     static_libs: [
         "androidx.annotation_annotation",
@@ -70,13 +67,12 @@
         "modules-utils-backgroundthread",
     ],
     sdk_version: "system_server_current",
+    // This is included in service-connectivity which is 30+
+    // TODO: allow APEXes to have service jars with higher min_sdk than the APEX
+    // (service-connectivity is only used on 31+) and use 31 here
+    min_sdk_version: "30",
 
     installable: true,
-    optimize: {
-        enabled: true,
-        shrink: true,
-        proguard_flags_files: ["proguard.flags"],
-    },
     dex_preopt: {
         enabled: false,
         app_image: false,
@@ -85,6 +81,6 @@
         "//packages/modules/Nearby/apex",
     ],
     apex_available: [
-        "com.android.nearby",
+        "com.android.tethering",
     ],
 }
diff --git a/nearby/service/proguard.flags b/nearby/service/proguard.flags
deleted file mode 100644
index 55c963f..0000000
--- a/nearby/service/proguard.flags
+++ /dev/null
@@ -1,5 +0,0 @@
-# Prevent proguard from stripping out any nearby-service.
-# TODO: This could be optimized in the future to only keep the critical
-# entry points and then let proguard strip out any unused code within
-# the service.
--keep class com.android.server.nearby.** { *; }
diff --git a/nearby/service/proto/Android.bp b/nearby/service/proto/Android.bp
index 9eca51d..d8c059e 100644
--- a/nearby/service/proto/Android.bp
+++ b/nearby/service/proto/Android.bp
@@ -25,7 +25,7 @@
     min_sdk_version: "30",
     srcs: ["src/*/*.proto"],
     apex_available: [
-        "com.android.nearby",
+        "com.android.tethering",
     ],
 }
 
diff --git a/nearby/tests/cts/fastpair/Android.bp b/nearby/tests/cts/fastpair/Android.bp
index e28df1b..60626f1 100644
--- a/nearby/tests/cts/fastpair/Android.bp
+++ b/nearby/tests/cts/fastpair/Android.bp
@@ -25,11 +25,11 @@
         "androidx.test.rules",
         "compatibility-device-util-axt",
         "ctstestrunner-axt",
-        "framework-nearby-pre-jarjar",
         "truth-prebuilt",
     ],
     libs: [
         "android.test.base",
+        "framework-connectivity-tiramisu.impl",
     ],
     srcs: ["src/**/*.java"],
     test_suites: [
diff --git a/nearby/tests/unit/Android.bp b/nearby/tests/unit/Android.bp
index 64ef292..53d9fb6 100644
--- a/nearby/tests/unit/Android.bp
+++ b/nearby/tests/unit/Android.bp
@@ -37,7 +37,7 @@
         "androidx.test.ext.junit",
         "androidx.test.rules",
         "compatibility-device-util-axt",
-        "framework-nearby-pre-jarjar",
+        "framework-nearby-static",
         "guava",
         "junit",
         "libprotobuf-java-lite",
