build: Allow NFC stack to be delivered as a mainline module or APK
These changes are necessary to allow NFC stack delivery to be properly
trunk stable flagged:
1. Delivered as NfcNci.apk and framework-nfc.jar for Android
U based builds (existing).
2. Delivered as com.android.nfcservices.apex which embeds NfcNci.apk &
framework-nfc.jar for Android V based builds (new).
Bug: 303286040
Test: Device boots up after flashing
Test: atest CtsNfcTestCases
(cherry picked from https://googleplex-android-review.googlesource.com/q/commit:046c1816091f9150c91953b8571dc946b0a59f86)
Merged-In: Ib2170146d07763ff6c852ce810497ebe1ac2eead
Change-Id: Ib2170146d07763ff6c852ce810497ebe1ac2eead
diff --git a/target/product/base_system.mk b/target/product/base_system.mk
index 6a101da9..1a30fb7 100644
--- a/target/product/base_system.mk
+++ b/target/product/base_system.mk
@@ -94,7 +94,6 @@
framework-graphics \
framework-minus-apex \
framework-minus-apex-install-dependencies \
- framework-nfc \
framework-res \
framework-sysconfig.xml \
fsck.erofs \
@@ -302,6 +301,16 @@
endif
+# Check if the build supports NFC apex or not
+ifeq ($(RELEASE_PACKAGE_NFC_STACK),NfcNci)
+ PRODUCT_PACKAGES += \
+ framework-nfc \
+ NfcNci
+else
+ PRODUCT_PACKAGES += \
+ com.android.nfcservices
+endif
+
# VINTF data for system image
PRODUCT_PACKAGES += \
system_manifest.xml \
diff --git a/target/product/default_art_config.mk b/target/product/default_art_config.mk
index 55fcf2f..de2a9fc 100644
--- a/target/product/default_art_config.mk
+++ b/target/product/default_art_config.mk
@@ -50,7 +50,6 @@
PRODUCT_BOOT_JARS += \
framework-minus-apex \
framework-graphics \
- framework-nfc \
ext \
telephony-common \
voip-common \
@@ -88,6 +87,15 @@
com.android.virt:framework-virtualization \
com.android.wifi:framework-wifi \
+# Check if the build supports NFC apex or not
+ifeq ($(RELEASE_PACKAGE_NFC_STACK),NfcNci)
+ PRODUCT_BOOT_JARS += \
+ framework-nfc
+else
+ PRODUCT_APEX_BOOT_JARS := \
+ com.android.nfcservices:framework-nfc
+endif
+
# TODO(b/308174306): Adjust this after multiple prebuilts version is supported.
# APEX boot jars that are not in prebuilt apexes.
# Keep the list sorted by module names and then library names.
diff --git a/target/product/handheld_system.mk b/target/product/handheld_system.mk
index 3acf1e6..b5292d2 100644
--- a/target/product/handheld_system.mk
+++ b/target/product/handheld_system.mk
@@ -73,7 +73,6 @@
UserDictionaryProvider \
VpnDialogs \
vr \
- $(RELEASE_PACKAGE_NFC_STACK)
PRODUCT_SYSTEM_SERVER_APPS += \