diff --git a/AccountManager/Android.bp b/AccountManager/Android.bp
new file mode 100644
index 0000000000000000000000000000000000000000..9eaf84ea0cf48a6c434ef68591e51808fb3bd75a
--- /dev/null
+++ b/AccountManager/Android.bp
@@ -0,0 +1,9 @@
+android_app_import {
+ name: "AccountManager",
+ certificate: "platform",
+ optional_uses_libs: [
+ "androidx.window.extensions",
+ "androidx.window.sidecar",
+ ],
+ apk: "davx5-ose-4.3.9-7-ose-release-unsigned.apk",
+}
diff --git a/AccountManager/Android.mk b/AccountManager/Android.mk
deleted file mode 100644
index d883f29cc09312651fa7cd7bbc5a72c5500699bc..0000000000000000000000000000000000000000
--- a/AccountManager/Android.mk
+++ /dev/null
@@ -1,13 +0,0 @@
-LOCAL_PATH := $(call my-dir)
-include $(CLEAR_VARS)
-LOCAL_MODULE_TAGS := optional
-LOCAL_MODULE := AccountManager
-LOCAL_CERTIFICATE := platform
-LOCAL_SRC_FILES := davx5-ose-4.3.9-7-ose-release-unsigned.apk
-LOCAL_MODULE_CLASS := APPS
-LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX)
-ifneq ($(call math_gt_or_eq, $(PLATFORM_SDK_VERSION), 31),)
-LOCAL_OPTIONAL_USES_LIBRARIES := androidx.window.extensions \
- androidx.window.sidecar
-endif
-include $(BUILD_PREBUILT)
diff --git a/AdvancedPrivacy/Android.bp b/AdvancedPrivacy/Android.bp
new file mode 100644
index 0000000000000000000000000000000000000000..cecaba6daa21d2f90a4db37c204b5631fa93b8d3
--- /dev/null
+++ b/AdvancedPrivacy/Android.bp
@@ -0,0 +1,288 @@
+android_app_import {
+
+ name: "AdvancedPrivacy",
+ certificate: "platform",
+ privileged: true,
+
+ required: [
+ "privapp-permissions-foundation.e.advancedprivacy.xml",
+ "libgojni",
+ "libmapbox-gl",
+ "libtor",
+ "libsentry",
+ "libsentry-android",
+ ],
+
+ optional_uses_libs: [
+ "androidx.window.extensions",
+ "androidx.window.sidecar",
+ ],
+ apk: "Advanced_Privacy-2.7.0-eos-release.apk",
+}
+
+prebuilt_etc {
+ name: "privapp-permissions-foundation.e.advancedprivacy.xml",
+ src: "privapp-permissions-foundation.e.advancedprivacy.xml",
+ relative_install_path: "permissions",
+}
+
+cc_prebuilt_library_shared {
+ name: "libgojni",
+ owner: "e",
+ strip: {
+ none: true,
+ },
+ target: {
+ android_arm: {
+ srcs: ["lib/armeabi-v7a/libgojni.so"],
+ required: ["libgojni_jni_symlink_arm"],
+ },
+ android_arm64: {
+ srcs: ["lib/arm64-v8a/libgojni.so"],
+ required: ["libgojni_jni_symlink_arm64"],
+ },
+ android_x86: {
+ srcs: ["lib/x86/libgojni.so"],
+ required: ["libgojni_jni_symlink_x86"],
+ },
+ android_x86_64: {
+ srcs: ["lib/x86_64/libgojni.so"],
+ required: ["libgojni_jni_symlink_x86_64"],
+ },
+ },
+ compile_multilib: "first",
+ check_elf_files: false,
+}
+
+
+install_symlink {
+ name: "libgojni_jni_symlink_arm",
+ installed_location: "priv-app/AdvancedPrivacy/lib/arm/libgojni.so",
+ symlink_target: "/system/lib/libgojni.so",
+}
+
+install_symlink {
+ name: "libgojni_jni_symlink_arm64",
+ installed_location: "priv-app/AdvancedPrivacy/lib/arm64/libgojni.so",
+ symlink_target: "/system/lib64/libgojni.so",
+}
+
+install_symlink {
+ name: "libgojni_jni_symlink_x86",
+ installed_location: "priv-app/AdvancedPrivacy/lib/x86/libgojni.so",
+ symlink_target: "/system/lib/libgojni.so",
+}
+
+install_symlink {
+ name: "libgojni_jni_symlink_x86_64",
+ installed_location: "priv-app/AdvancedPrivacy/lib/x86_64/libgojni.so",
+ symlink_target: "/system/lib64/libgojni.so",
+}
+
+cc_prebuilt_library_shared {
+ name: "libmapbox-gl",
+ owner: "e",
+ strip: {
+ none: true,
+ },
+ target: {
+ android_arm: {
+ srcs: ["lib/armeabi-v7a/libmapbox-gl.so"],
+ required: ["libmapbox-gl_jni_symlink_arm"],
+ },
+ android_arm64: {
+ srcs: ["lib/arm64-v8a/libmapbox-gl.so"],
+ required: ["libmapbox-gl_jni_symlink_arm64"],
+ },
+ android_x86: {
+ srcs: ["lib/x86/libmapbox-gl.so"],
+ required: ["libmapbox-gl_jni_symlink_x86"],
+ },
+ android_x86_64: {
+ srcs: ["lib/x86_64/libmapbox-gl.so"],
+ required: ["libmapbox-gl_jni_symlink_x86_64"],
+ },
+ },
+ compile_multilib: "first",
+ check_elf_files: false,
+}
+
+install_symlink {
+ name: "libmapbox-gl_jni_symlink_arm",
+ installed_location: "priv-app/AdvancedPrivacy/lib/arm/libmapbox-gl.so",
+ symlink_target: "/system/lib/libmapbox-gl.so",
+}
+
+install_symlink {
+ name: "libmapbox-gl_jni_symlink_arm64",
+ installed_location: "priv-app/AdvancedPrivacy/lib/arm64/libmapbox-gl.so",
+ symlink_target: "/system/lib64/libmapbox-gl.so",
+}
+
+install_symlink {
+ name: "libmapbox-gl_jni_symlink_x86",
+ installed_location: "priv-app/AdvancedPrivacy/lib/x86/libmapbox-gl.so",
+ symlink_target: "/system/lib/libmapbox-gl.so",
+}
+
+install_symlink {
+ name: "libmapbox-gl_jni_symlink_x86_64",
+ installed_location: "priv-app/AdvancedPrivacy/lib/x86_64/libmapbox-gl.so",
+ symlink_target: "/system/lib64/libmapbox-gl.so",
+}
+
+cc_prebuilt_library_shared {
+ name: "libtor",
+ owner: "e",
+ strip: {
+ none: true,
+ },
+ target: {
+ android_arm: {
+ srcs: ["lib/armeabi-v7a/libtor.so"],
+ required: ["libtor_jni_symlink_arm"],
+ },
+ android_arm64: {
+ srcs: ["lib/arm64-v8a/libtor.so"],
+ required: ["libtor_jni_symlink_arm64"],
+ },
+ android_x86: {
+ srcs: ["lib/x86/libtor.so"],
+ required: ["libtor_jni_symlink_x86"],
+ },
+ android_x86_64: {
+ srcs: ["lib/x86_64/libtor.so"],
+ required: ["libtor_jni_symlink_x86_64"],
+ },
+ },
+ compile_multilib: "first",
+ check_elf_files: false,
+}
+
+install_symlink {
+ name: "libtor_jni_symlink_arm",
+ installed_location: "priv-app/AdvancedPrivacy/lib/arm/libtor.so",
+ symlink_target: "/system/lib/libtor.so",
+}
+
+install_symlink {
+ name: "libtor_jni_symlink_arm64",
+ installed_location: "priv-app/AdvancedPrivacy/lib/arm64/libtor.so",
+ symlink_target: "/system/lib64/libtor.so",
+}
+
+install_symlink {
+ name: "libtor_jni_symlink_x86",
+ installed_location: "priv-app/AdvancedPrivacy/lib/x86/libtor.so",
+ symlink_target: "/system/lib/libtor.so",
+}
+
+install_symlink {
+ name: "libtor_jni_symlink_x86_64",
+ installed_location: "priv-app/AdvancedPrivacy/lib/x86_64/libtor.so",
+ symlink_target: "/system/lib64/libtor.so",
+}
+
+cc_prebuilt_library_shared {
+ name: "libsentry",
+ owner: "e",
+ strip: {
+ none: true,
+ },
+ target: {
+ android_arm: {
+ srcs: ["lib/armeabi-v7a/libsentry.so"],
+ required: ["libsentry_jni_symlink_arm"],
+ },
+ android_arm64: {
+ srcs: ["lib/arm64-v8a/libsentry.so"],
+ required: ["libsentry_jni_symlink_arm64"],
+ },
+ android_x86: {
+ srcs: ["lib/x86/libsentry.so"],
+ required: ["libsentry_jni_symlink_x86"],
+ },
+ android_x86_64: {
+ srcs: ["lib/x86_64/libsentry.so"],
+ required: ["libsentry_jni_symlink_x86_64"],
+ },
+ },
+ compile_multilib: "first",
+ check_elf_files: false,
+}
+
+install_symlink {
+ name: "libsentry_jni_symlink_arm",
+ installed_location: "priv-app/AdvancedPrivacy/lib/arm/libsentry.so",
+ symlink_target: "/system/lib/libsentry.so",
+}
+
+install_symlink {
+ name: "libsentry_jni_symlink_arm64",
+ installed_location: "priv-app/AdvancedPrivacy/lib/arm64/libsentry.so",
+ symlink_target: "/system/lib64/libsentry.so",
+}
+
+install_symlink {
+ name: "libsentry_jni_symlink_x86",
+ installed_location: "priv-app/AdvancedPrivacy/lib/x86/libsentry.so",
+ symlink_target: "/system/lib/libsentry.so",
+}
+
+install_symlink {
+ name: "libsentry_jni_symlink_x86_64",
+ installed_location: "priv-app/AdvancedPrivacy/lib/x86_64/libsentry.so",
+ symlink_target: "/system/lib64/libsentry.so",
+}
+
+cc_prebuilt_library_shared {
+ name: "libsentry-android",
+ owner: "e",
+ strip: {
+ none: true,
+ },
+ target: {
+ android_arm: {
+ srcs: ["lib/armeabi-v7a/libsentry-android.so"],
+ required: ["libsentry-android_jni_symlink_arm"],
+ },
+ android_arm64: {
+ srcs: ["lib/arm64-v8a/libsentry-android.so"],
+ required: ["libsentry-android_jni_symlink_arm64"],
+ },
+ android_x86: {
+ srcs: ["lib/x86/libsentry-android.so"],
+ required: ["libsentry-android_jni_symlink_x86"],
+ },
+ android_x86_64: {
+ srcs: ["lib/x86_64/libsentry-android.so"],
+ required: ["libsentry-android_jni_symlink_x86_64"],
+ },
+ },
+ compile_multilib: "first",
+ check_elf_files: false,
+}
+
+install_symlink {
+ name: "libsentry-android_jni_symlink_arm",
+ installed_location: "priv-app/AdvancedPrivacy/lib/arm/libsentry-android.so",
+ symlink_target: "/system/lib/libsentry-android.so",
+}
+
+install_symlink {
+ name: "libsentry-android_jni_symlink_arm64",
+ installed_location: "priv-app/AdvancedPrivacy/lib/arm64/libsentry-android.so",
+ symlink_target: "/system/lib64/libsentry-android.so",
+}
+
+install_symlink {
+ name: "libsentry-android_jni_symlink_x86",
+ installed_location: "priv-app/AdvancedPrivacy/lib/x86/libsentry-android.so",
+ symlink_target: "/system/lib/libsentry-android.so",
+}
+
+install_symlink {
+ name: "libsentry-android_jni_symlink_x86_64",
+ installed_location: "priv-app/AdvancedPrivacy/lib/x86_64/libsentry-android.so",
+ symlink_target: "/system/lib64/libsentry-android.so",
+}
diff --git a/AdvancedPrivacy/Android.mk b/AdvancedPrivacy/Android.mk
deleted file mode 100644
index 2570dfc3a96b7f1703784bcd761822e08b8f89d4..0000000000000000000000000000000000000000
--- a/AdvancedPrivacy/Android.mk
+++ /dev/null
@@ -1,43 +0,0 @@
-LOCAL_PATH := $(call my-dir)
-ifeq ($(TARGET_ARCH), $(filter $(TARGET_ARCH), arm64))
- LIB_PATH := lib/arm64-v8a
-else ifeq ($(TARGET_ARCH), $(filter $(TARGET_ARCH), arm))
- LIB_PATH := lib/armeabi-v7a
-else ifeq ($(TARGET_ARCH), $(filter $(TARGET_ARCH), x86_64))
- LIB_PATH := lib/x86_64
-else ifeq ($(TARGET_ARCH), $(filter $(TARGET_ARCH), x86))
- LIB_PATH := lib/x86
-endif
-
-include $(CLEAR_VARS)
-LOCAL_MODULE := privapp-permissions-foundation.e.advancedprivacy.xml
-LOCAL_MODULE_TAGS := optional
-LOCAL_MODULE_CLASS := ETC
-LOCAL_MODULE_PATH := $(TARGET_OUT_ETC)/permissions
-LOCAL_SRC_FILES := $(LOCAL_MODULE)
-include $(BUILD_PREBUILT)
-
-include $(CLEAR_VARS)
-LOCAL_MODULE_TAGS := optional
-LOCAL_MODULE := AdvancedPrivacy
-LOCAL_CERTIFICATE := platform
-LOCAL_PRIVILEGED_MODULE := true
-LOCAL_SRC_FILES := Advanced_Privacy-2.7.0-eos-release.apk
-LOCAL_MODULE_CLASS := APPS
-LOCAL_REQUIRED_MODULES := privapp-permissions-foundation.e.advancedprivacy.xml
-LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX)
-ifneq ($(call math_gt_or_eq, $(PLATFORM_SDK_VERSION), 31),)
-LOCAL_OPTIONAL_USES_LIBRARIES := androidx.window.extensions \
- androidx.window.sidecar
-endif
-
-private_jni_libs := libgojni.so libmapbox-gl.so libtor.so libsentry.so libsentry-android.so
-LOCAL_PREBUILT_JNI_LIBS_arm := $(foreach lib,$(private_jni_libs), @$(LIB_PATH)/$(lib))
-LOCAL_PREBUILT_JNI_LIBS_arm64 := $(foreach lib,$(private_jni_libs), @$(LIB_PATH)/$(lib))
-LOCAL_PREBUILT_JNI_LIBS_x86 := $(foreach lib,$(private_jni_libs), @$(LIB_PATH)/$(lib))
-LOCAL_PREBUILT_JNI_LIBS_x86_64 := $(foreach lib,$(private_jni_libs), @$(LIB_PATH)/$(lib))
-
-private_jni_copy_libs := libgojni.so libmapbox-gl.so libtor.so libsentry.so libsentry-android.so
-LOCAL_POST_INSTALL_CMD := mkdir -p $(TARGET_OUT)/priv-app/$(LOCAL_MODULE)/lib/$(TARGET_ARCH)
-LOCAL_POST_INSTALL_CMD += $(foreach lib,$(private_jni_copy_libs), ; cp $(LOCAL_PATH)/$(LIB_PATH)/$(lib) $(TARGET_OUT)/priv-app/$(LOCAL_MODULE)/lib/$(TARGET_ARCH)/$(lib))
-include $(BUILD_PREBUILT)
diff --git a/AppLounge/Android.bp b/AppLounge/Android.bp
new file mode 100644
index 0000000000000000000000000000000000000000..46be6042976930b6ead35b356530488768dd2c52
--- /dev/null
+++ b/AppLounge/Android.bp
@@ -0,0 +1,10 @@
+android_app_import {
+ name: "AppLounge",
+ certificate: "platform",
+ required: ["SplitInstallService"],
+ optional_uses_libs: [
+ "androidx.window.extensions",
+ "androidx.window.sidecar",
+ ],
+ apk: "AppLounge-2.13.2-release.apk",
+}
diff --git a/Apps/AppLounge-2.13.2-release.apk b/AppLounge/AppLounge-2.13.2-release.apk
similarity index 100%
rename from Apps/AppLounge-2.13.2-release.apk
rename to AppLounge/AppLounge-2.13.2-release.apk
diff --git a/Apps/Android.mk b/Apps/Android.mk
deleted file mode 100644
index 623da225aaa110383d2eb39d180f49e767b878f2..0000000000000000000000000000000000000000
--- a/Apps/Android.mk
+++ /dev/null
@@ -1,13 +0,0 @@
-LOCAL_PATH := $(call my-dir)
-include $(CLEAR_VARS)
-LOCAL_MODULE_TAGS := optional
-LOCAL_MODULE := Apps
-LOCAL_CERTIFICATE := platform
-LOCAL_SRC_FILES := AppLounge-2.13.2-release.apk
-LOCAL_MODULE_CLASS := APPS
-LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX)
-ifneq ($(call math_gt_or_eq, $(PLATFORM_SDK_VERSION), 31),)
-LOCAL_OPTIONAL_USES_LIBRARIES := androidx.window.extensions \
- androidx.window.sidecar
-endif
-include $(BUILD_PREBUILT)
diff --git a/BlissIconPack/Android.mk b/BlissIconPack/Android.mk
deleted file mode 100644
index ed238a48dcc19cd69fd7f407e6e774211cf75fdc..0000000000000000000000000000000000000000
--- a/BlissIconPack/Android.mk
+++ /dev/null
@@ -1,10 +0,0 @@
-LOCAL_PATH := $(call my-dir)
-include $(CLEAR_VARS)
-LOCAL_MODULE_TAGS := optional
-LOCAL_MODULE := BlissIconPack
-LOCAL_CERTIFICATE := platform
-
-LOCAL_SRC_FILES := app-release-unsigned.apk
-LOCAL_MODULE_CLASS := APPS
-LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX)
-include $(BUILD_PREBUILT)
diff --git a/BlissIconPack/app-release-unsigned.apk b/BlissIconPack/app-release-unsigned.apk
deleted file mode 100644
index 4f3dff90b3c065599daf94ee34648e35cb729e4a..0000000000000000000000000000000000000000
--- a/BlissIconPack/app-release-unsigned.apk
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:0de19b2e056ac2794125e593c48f48f9c27c2ed04470586c3b94ccbaa5e987da
-size 1372244
diff --git a/BlissLauncher/Android.mk b/BlissLauncher/Android.mk
deleted file mode 100644
index 330aaeaba653f99f85fd7d3492d3d11cf348dd71..0000000000000000000000000000000000000000
--- a/BlissLauncher/Android.mk
+++ /dev/null
@@ -1,37 +0,0 @@
-LOCAL_PATH := $(call my-dir)
-include $(CLEAR_VARS)
-LOCAL_MODULE_TAGS := optional
-LOCAL_MODULE := BlissLauncher
-LOCAL_CERTIFICATE := platform
-
-# the ok part is necessary: https://stackoverflow.com/questions/3442304/performing-greater-than-less-than-calculations-in-a-makefile/44288938#44288938
-$(if $(shell [ $(PLATFORM_SDK_VERSION) -ge 29 ] && echo "ok"), \
- $(eval BUILD_GREATER_THAN_PIE := true), \
- $(eval BUILD_GREATER_THAN_PIE := false))
-
-ifeq ($(PLATFORM_SDK_VERSION), 29)
- LOCAL_SRC_FILES := BlissLauncher-1.18.0-apiQ-release.apk
-else ifeq ($(PLATFORM_SDK_VERSION), 30)
- LOCAL_SRC_FILES := BlissLauncher-1.18.0-apiR-release.apk
-else
- LOCAL_SRC_FILES := BlissLauncher-1.18.0-apiS-release.apk
-endif
-
-LOCAL_MODULE_CLASS := APPS
-LOCAL_PRIVILEGED_MODULE := true
-LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX)
-ifeq ($(BUILD_GREATER_THAN_PIE),true)
- LOCAL_REQUIRED_MODULES := privapp_whitelist_foundation.e.blisslauncher.xml
- include $(BUILD_PREBUILT)
-
- include $(CLEAR_VARS)
- LOCAL_MODULE := privapp_whitelist_foundation.e.blisslauncher.xml
- LOCAL_MODULE_CLASS := ETC
- LOCAL_MODULE_TAGS := optional
- LOCAL_MODULE_PATH := $(TARGET_OUT_ETC)/permissions
- LOCAL_PRODUCT_MODULE := true
- LOCAL_SRC_FILES := $(LOCAL_MODULE)
-endif
-
-include $(BUILD_PREBUILT)
-
diff --git a/BlissLauncher/BlissLauncher-1.18.0-apiQ-release.apk b/BlissLauncher/BlissLauncher-1.18.0-apiQ-release.apk
deleted file mode 100644
index 6f633d0da9cc3e8797514f631e82b69b159b8e64..0000000000000000000000000000000000000000
--- a/BlissLauncher/BlissLauncher-1.18.0-apiQ-release.apk
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:c24e6b49c22632875480bb0cbf9151e2cc42403b02d2cf7bd9ec03a6afe13f59
-size 29648178
diff --git a/BlissLauncher/BlissLauncher-1.18.0-apiR-release.apk b/BlissLauncher/BlissLauncher-1.18.0-apiR-release.apk
deleted file mode 100644
index 95e856834c686bc03af16b12323e0704d50dd1de..0000000000000000000000000000000000000000
--- a/BlissLauncher/BlissLauncher-1.18.0-apiR-release.apk
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:9e7be7e45988667a0e059e6ab98e1edce61da212ecbe9b75517e041ef7b4a8ca
-size 29709618
diff --git a/BlissLauncher/BlissLauncher-1.18.0-apiS-release.apk b/BlissLauncher/BlissLauncher-1.18.0-apiS-release.apk
deleted file mode 100644
index 5b8a93bdbfbd870bcaac43ea9ccd4725cc8b68d8..0000000000000000000000000000000000000000
--- a/BlissLauncher/BlissLauncher-1.18.0-apiS-release.apk
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:bffc7b5a4c8bef056f47914d9436ccf842a07a0aabe92e577079fb7e13c52fad
-size 29701426
diff --git a/BlissLauncher/privapp_whitelist_foundation.e.blisslauncher.xml b/BlissLauncher/privapp_whitelist_foundation.e.blisslauncher.xml
deleted file mode 100644
index 98c199fed620f1d636385a1f47f0e51ddaa110fd..0000000000000000000000000000000000000000
--- a/BlissLauncher/privapp_whitelist_foundation.e.blisslauncher.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/BlissLauncher3/Android.bp b/BlissLauncher3/Android.bp
new file mode 100644
index 0000000000000000000000000000000000000000..85267bb637e30c8af1221ea0f2f28e167c63c41d
--- /dev/null
+++ b/BlissLauncher3/Android.bp
@@ -0,0 +1,72 @@
+android_app_import {
+ name: "BlissLauncher3_A12",
+ privileged: true,
+ system_ext_specific: true,
+ certificate: "platform",
+ optional_uses_libs: [
+ "androidx.window.extensions",
+ "androidx.window.sidecar",
+ ],
+ overrides: [
+ "Home",
+ "Launcher2",
+ "Launcher3",
+ "Launcher3QuickStep",
+ "Trebuchet",
+ "TrebuchetQuickStep",
+ "Blisslauncher",
+ ],
+ required: ["privapp_whitelist_foundation.e.blisslauncher3.xml"],
+ apk: "BlissLauncher-apiS-release.apk",
+}
+
+android_app_import {
+ name: "BlissLauncher3_A13",
+ privileged: true,
+ system_ext_specific: true,
+ certificate: "platform",
+ optional_uses_libs: [
+ "androidx.window.extensions",
+ "androidx.window.sidecar",
+ ],
+ overrides: [
+ "Home",
+ "Launcher2",
+ "Launcher3",
+ "Launcher3QuickStep",
+ "Trebuchet",
+ "TrebuchetQuickStep",
+ "Blisslauncher",
+ ],
+ required: ["privapp_whitelist_foundation.e.blisslauncher3.xml"],
+ apk: "BlissLauncher-apiT-release.apk",
+}
+
+android_app_import {
+ name: "BlissLauncher3_A14",
+ privileged: true,
+ system_ext_specific: true,
+ certificate: "platform",
+ optional_uses_libs: [
+ "androidx.window.extensions",
+ "androidx.window.sidecar",
+ ],
+ overrides: [
+ "Home",
+ "Launcher2",
+ "Launcher3",
+ "Launcher3QuickStep",
+ "Trebuchet",
+ "TrebuchetQuickStep",
+ "Blisslauncher",
+ ],
+ required: ["privapp_whitelist_foundation.e.blisslauncher3.xml"],
+ apk: "BlissLauncher-apiU-release.apk",
+}
+
+prebuilt_etc {
+ name: "privapp_whitelist_foundation.e.blisslauncher3.xml",
+ system_ext_specific: true,
+ src: "privapp_whitelist_foundation.e.blisslauncher3.xml",
+ relative_install_path: "permissions",
+}
diff --git a/BlissLauncher3/Android.mk b/BlissLauncher3/Android.mk
deleted file mode 100644
index a74c590d1ee6aaba95f146f952bf622995c25837..0000000000000000000000000000000000000000
--- a/BlissLauncher3/Android.mk
+++ /dev/null
@@ -1,29 +0,0 @@
-LOCAL_PATH := $(call my-dir)
-include $(CLEAR_VARS)
-LOCAL_MODULE := BlissLauncher3
-LOCAL_MODULE_CLASS := APPS
-LOCAL_PRIVILEGED_MODULE := true
-LOCAL_SYSTEM_EXT_MODULE := true
-LOCAL_CERTIFICATE := platform
-LOCAL_OPTIONAL_USES_LIBRARIES := androidx.window.extensions androidx.window.sidecar
-
-ifeq ($(PLATFORM_SDK_VERSION), 33)
- LOCAL_SRC_FILES := BlissLauncher-apiT-release.apk
-else ifeq ($(PLATFORM_SDK_VERSION), 34)
- LOCAL_SRC_FILES := BlissLauncher-apiU-release.apk
-else
- LOCAL_SRC_FILES := BlissLauncher-apiS-release.apk
-endif
-
-LOCAL_OVERRIDES_PACKAGES := Home Launcher2 Launcher3 Launcher3QuickStep Trebuchet TrebuchetQuickStep Blisslauncher
-LOCAL_REQUIRED_MODULES := privapp_whitelist_foundation.e.blisslauncher3.xml
-include $(BUILD_PREBUILT)
-
-include $(CLEAR_VARS)
-LOCAL_MODULE := privapp_whitelist_foundation.e.blisslauncher3.xml
-LOCAL_MODULE_CLASS := ETC
-LOCAL_MODULE_TAGS := optional
-LOCAL_MODULE_PATH := $(TARGET_OUT_SYSTEM_EXT_ETC)/permissions
-LOCAL_SYSTEM_EXT_MODULE := true
-LOCAL_SRC_FILES := $(LOCAL_MODULE)
-include $(BUILD_PREBUILT)
diff --git a/BlissWeather/Android.bp b/BlissWeather/Android.bp
new file mode 100644
index 0000000000000000000000000000000000000000..75ea167b0b5c8b2e7ca5a3f1d1ba45451ab7474c
--- /dev/null
+++ b/BlissWeather/Android.bp
@@ -0,0 +1,19 @@
+android_app_import {
+ name: "BlissWeather",
+ privileged: true,
+ system_ext_specific: true,
+ certificate: "platform",
+ optional_uses_libs: [
+ "androidx.window.extensions",
+ "androidx.window.sidecar",
+ ],
+ required: ["privapp_whitelist_foundation.e.blissweather.xml"],
+ apk: "foundation.e.blissweather-v1.0.5-release.apk",
+}
+
+prebuilt_etc {
+ name: "privapp_whitelist_foundation.e.blissweather.xml",
+ system_ext_specific: true,
+ src: "privapp_whitelist_foundation.e.blissweather.xml",
+ relative_install_path: "permissions",
+}
diff --git a/BlissWeather/Android.mk b/BlissWeather/Android.mk
deleted file mode 100644
index 45cafcf02fc75f9a7fa8311759a66e5ab389bbb7..0000000000000000000000000000000000000000
--- a/BlissWeather/Android.mk
+++ /dev/null
@@ -1,25 +0,0 @@
-LOCAL_PATH := $(call my-dir)
-include $(CLEAR_VARS)
-LOCAL_MODULE_TAGS := optional
-LOCAL_MODULE := BlissWeather
-LOCAL_PRIVILEGED_MODULE := true
-LOCAL_SYSTEM_EXT_MODULE := true
-LOCAL_CERTIFICATE := platform
-LOCAL_SRC_FILES := foundation.e.blissweather-v1.0.5-release.apk
-LOCAL_MODULE_CLASS := APPS
-LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX)
-ifneq ($(call math_gt_or_eq, $(PLATFORM_SDK_VERSION), 31),)
-LOCAL_OPTIONAL_USES_LIBRARIES := androidx.window.extensions \
- androidx.window.sidecar
-endif
-LOCAL_REQUIRED_MODULES := privapp_whitelist_foundation.e.blissweather.xml
-include $(BUILD_PREBUILT)
-
-include $(CLEAR_VARS)
-LOCAL_MODULE := privapp_whitelist_foundation.e.blissweather.xml
-LOCAL_MODULE_CLASS := ETC
-LOCAL_MODULE_TAGS := optional
-LOCAL_MODULE_PATH := $(TARGET_OUT_SYSTEM_EXT_ETC)/permissions
-LOCAL_SYSTEM_EXT_MODULE := true
-LOCAL_SRC_FILES := $(LOCAL_MODULE)
-include $(BUILD_PREBUILT)
diff --git a/Browser/Android.bp b/Browser/Android.bp
new file mode 100644
index 0000000000000000000000000000000000000000..6505ecd45633aaebb81f2f76870efc0db75b9f39
--- /dev/null
+++ b/Browser/Android.bp
@@ -0,0 +1,91 @@
+android_app_import {
+ name: "Browser",
+ product_specific: true,
+ compile_multilib: "both",
+ certificate: "platform",
+ required: [
+ "TrichromeLibrary",
+ "BrowserWebView"
+ ],
+ arch: {
+ arm: {
+ apk: "arm/TrichromeChrome.apk",
+ },
+ arm64: {
+ apk: "arm64/TrichromeChrome.apk",
+ },
+ x86: {
+ apk: "x86/TrichromeChrome.apk",
+ },
+ x86_64: {
+ apk: "x64/TrichromeChrome.apk",
+ },
+ },
+ optional_uses_libs: [
+ "androidx.window.extensions",
+ "androidx.window.sidecar",
+ ],
+ overrides: [
+ "Jelly",
+ "Browser2",
+ "QuickSearchBox",
+ ],
+ dex_preopt: {
+ enabled: false,
+ },
+}
+
+android_app_import {
+ name: "TrichromeLibrary",
+ product_specific: true,
+ compile_multilib: "both",
+ certificate: "platform",
+ arch: {
+ arm: {
+ apk: "arm/TrichromeLibrary.apk",
+ },
+ arm64: {
+ apk: "arm64/TrichromeLibrary.apk",
+ },
+ x86: {
+ apk: "x86/TrichromeLibrary.apk",
+ },
+ x86_64: {
+ apk: "x64/TrichromeLibrary.apk",
+ },
+ },
+ dex_preopt: {
+ enabled: false,
+ },
+}
+
+android_app_import {
+ name: "BrowserWebView",
+ product_specific: true,
+ compile_multilib: "both",
+ certificate: "platform",
+ required: [
+ "libwebviewchromium_loader",
+ "libwebviewchromium_plat_support",
+ "TrichromeLibrary",
+ ],
+ arch: {
+ arm: {
+ apk: "arm/TrichromeWebView.apk",
+ },
+ arm64: {
+ apk: "arm64/TrichromeWebView.apk",
+ },
+ x86: {
+ apk: "x86/TrichromeWebView.apk",
+ },
+ x86_64: {
+ apk: "x64/TrichromeWebView.apk",
+ },
+ },
+ optional_uses_libs: ["androidx.window.extensions"],
+ overrides: ["webview"],
+ dex_preopt: {
+ enabled: false,
+ },
+}
diff --git a/Browser/Android.mk b/Browser/Android.mk
deleted file mode 100644
index c698df44718a0bef59a9fd410caec135b3812357..0000000000000000000000000000000000000000
--- a/Browser/Android.mk
+++ /dev/null
@@ -1,68 +0,0 @@
-LOCAL_PATH := $(call my-dir)
-
-ifeq ($(TARGET_ARCH), $(filter $(TARGET_ARCH), arm64))
- APK_PATH := arm64
-else ifeq ($(TARGET_ARCH), $(filter $(TARGET_ARCH), arm))
- APK_PATH := arm
-else ifeq ($(TARGET_ARCH), $(filter $(TARGET_ARCH), x86_64))
- APK_PATH := x64
-else ifeq ($(TARGET_ARCH), $(filter $(TARGET_ARCH), x86))
- APK_PATH := x86
-endif
-
-include $(CLEAR_VARS)
-LOCAL_MODULE := Browser
-LOCAL_MODULE_CLASS := APPS
-LOCAL_PRODUCT_MODULE := true
-LOCAL_MULTILIB := both
-ifneq (,$(wildcard user-keys/platform.x509.pem))
-LOCAL_CERTIFICATE := user-keys/platform
-else
-LOCAL_CERTIFICATE := platform
-endif
-LOCAL_REQUIRED_MODULES := \
- TrichromeLibrary
-LOCAL_SRC_FILES := $(APK_PATH)/TrichromeChrome.apk
-ifneq ($(call math_gt_or_eq, $(PLATFORM_SDK_VERSION), 31),)
-LOCAL_OPTIONAL_USES_LIBRARIES := androidx.window.extensions androidx.window.sidecar
-endif
-LOCAL_OVERRIDES_PACKAGES := Jelly Browser2 QuickSearchBox
-LOCAL_DEX_PREOPT := false
-include $(BUILD_PREBUILT)
-
-include $(CLEAR_VARS)
-LOCAL_MODULE := TrichromeLibrary
-LOCAL_MODULE_CLASS := APPS
-LOCAL_PRODUCT_MODULE := true
-LOCAL_MULTILIB := both
-ifneq (,$(wildcard user-keys/platform.x509.pem))
-LOCAL_CERTIFICATE := user-keys/platform
-else
-LOCAL_CERTIFICATE := platform
-endif
-LOCAL_SRC_FILES := $(APK_PATH)/TrichromeLibrary.apk
-LOCAL_DEX_PREOPT := false
-include $(BUILD_PREBUILT)
-
-include $(CLEAR_VARS)
-LOCAL_MODULE := BrowserWebView
-LOCAL_MODULE_CLASS := APPS
-LOCAL_PRODUCT_MODULE := true
-LOCAL_MULTILIB := both
-ifneq (,$(wildcard user-keys/platform.x509.pem))
-LOCAL_CERTIFICATE := user-keys/platform
-else
-LOCAL_CERTIFICATE := platform
-endif
-LOCAL_REQUIRED_MODULES := \
- libwebviewchromium_loader \
- libwebviewchromium_plat_support
-LOCAL_REQUIRED_MODULES += \
- TrichromeLibrary
-LOCAL_SRC_FILES := $(APK_PATH)/TrichromeWebView.apk
-ifneq ($(call math_gt_or_eq, $(PLATFORM_SDK_VERSION), 31),)
-LOCAL_OPTIONAL_USES_LIBRARIES := androidx.window.extensions
-endif
-LOCAL_OVERRIDES_PACKAGES := webview
-LOCAL_DEX_PREOPT := false
-include $(BUILD_PREBUILT)
diff --git a/Calendar/Android.mk b/Calendar/Android.mk
deleted file mode 100644
index cfb1d74983b5d6ff8a03d6da6f92698120107317..0000000000000000000000000000000000000000
--- a/Calendar/Android.mk
+++ /dev/null
@@ -1,11 +0,0 @@
-LOCAL_PATH := $(call my-dir)
-include $(CLEAR_VARS)
-LOCAL_MODULE_TAGS := optional
-LOCAL_MODULE := eCalendar
-LOCAL_CERTIFICATE := platform
-LOCAL_SRC_FILES := app-release-unsigned.apk
-LOCAL_MODULE_CLASS := APPS
-LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX)
-LOCAL_OPTIONAL_USES_LIBRARIES := androidx.window.extensions androidx.window.sidecar
-LOCAL_OVERRIDES_PACKAGES := Etar Calendar
-include $(BUILD_PREBUILT)
diff --git a/Camera/Android.bp b/Camera/Android.bp
new file mode 100644
index 0000000000000000000000000000000000000000..b3de41f9983de7a7c9ce1d58781181fb730a36c0
--- /dev/null
+++ b/Camera/Android.bp
@@ -0,0 +1,10 @@
+android_app_import {
+ name: "Camera",
+ certificate: "platform",
+ overrides: [
+ "Camera2",
+ "Snap",
+ "Aperture",
+ ],
+ apk: "app-release-unsigned.apk",
+}
diff --git a/Camera/Android.mk b/Camera/Android.mk
deleted file mode 100644
index e9ee989df92b76701389780d82f4dcf0cc6cfcbc..0000000000000000000000000000000000000000
--- a/Camera/Android.mk
+++ /dev/null
@@ -1,10 +0,0 @@
-LOCAL_PATH := $(call my-dir)
-include $(CLEAR_VARS)
-LOCAL_MODULE_TAGS := optional
-LOCAL_MODULE := Camera
-LOCAL_SRC_FILES := app-release-unsigned.apk
-LOCAL_MODULE_CLASS := APPS
-LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX)
-LOCAL_CERTIFICATE := platform
-LOCAL_OVERRIDES_PACKAGES := Camera2 Snap Aperture
-include $(BUILD_PREBUILT)
diff --git a/DemoApp/Android.mk b/DemoApp/Android.mk
deleted file mode 100644
index 700a46f604c39527e50e012b85b6371d0a8ce066..0000000000000000000000000000000000000000
--- a/DemoApp/Android.mk
+++ /dev/null
@@ -1,10 +0,0 @@
-LOCAL_PATH := $(call my-dir)
-include $(CLEAR_VARS)
-LOCAL_MODULE_TAGS := optional
-LOCAL_MODULE := DemoApp
-LOCAL_CERTIFICATE := platform
-
-LOCAL_SRC_FILES := DemoApp-release-unsigned.apk
-LOCAL_MODULE_CLASS := APPS
-LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX)
-include $(BUILD_PREBUILT)
diff --git a/DemoApp/DemoApp-release-unsigned.apk b/DemoApp/DemoApp-release-unsigned.apk
deleted file mode 100644
index e1dfcc363ee8c890b750f38aa075e3cc1f0c04ec..0000000000000000000000000000000000000000
--- a/DemoApp/DemoApp-release-unsigned.apk
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:f6c8ef6298145a014bd9ee1b268ad1158baea8015dc6a602a70a396270117291
-size 2135201
diff --git a/DroidGuard/Android.mk b/DroidGuard/Android.mk
deleted file mode 100644
index 3e1f978b388d612e96b1a5dee81840e7b75f76e7..0000000000000000000000000000000000000000
--- a/DroidGuard/Android.mk
+++ /dev/null
@@ -1,11 +0,0 @@
-LOCAL_PATH := $(call my-dir)
-
-include $(CLEAR_VARS)
-LOCAL_MODULE_TAGS := optional
-LOCAL_MODULE := DroidGuard
-LOCAL_SRC_FILES := remote-droid-guard-release-unsigned.apk
-LOCAL_MODULE_CLASS := APPS
-LOCAL_PRIVILEGED_MODULE := true
-LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX)
-LOCAL_CERTIFICATE := shared
-include $(BUILD_PREBUILT)
diff --git a/DroidGuard/remote-droid-guard-release-unsigned.apk b/DroidGuard/remote-droid-guard-release-unsigned.apk
deleted file mode 100644
index c99f38a590da5197f027ff2995154e513b3515e8..0000000000000000000000000000000000000000
--- a/DroidGuard/remote-droid-guard-release-unsigned.apk
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:24c18a483b2f4c19ca22b3febdf38ff21e94a360564b00008df8dc9d7b7351bc
-size 94812
diff --git a/ESmsSync/Android.mk b/ESmsSync/Android.mk
deleted file mode 100644
index b8df9dae4b81cb9a8115cd209b70e5096cc2d933..0000000000000000000000000000000000000000
--- a/ESmsSync/Android.mk
+++ /dev/null
@@ -1,10 +0,0 @@
-LOCAL_PATH := $(call my-dir)
-include $(CLEAR_VARS)
-LOCAL_MODULE_TAGS := optional
-LOCAL_MODULE := ESmsSync
-LOCAL_CERTIFICATE := platform
-
-LOCAL_SRC_FILES := ncsms-android-release-unsigned.apk
-LOCAL_MODULE_CLASS := APPS
-LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX)
-include $(BUILD_PREBUILT)
diff --git a/ESmsSync/ncsms-android-release-unsigned.apk b/ESmsSync/ncsms-android-release-unsigned.apk
deleted file mode 100644
index 2acf225dbe5d3634a4204db224546e73b070aa54..0000000000000000000000000000000000000000
--- a/ESmsSync/ncsms-android-release-unsigned.apk
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:0e1a83a820d3660c70cec37a555591a5ffc60a23fe32a306cdd17600380bcdb1
-size 11656036
diff --git a/FakeStore/Android.bp b/FakeStore/Android.bp
new file mode 100644
index 0000000000000000000000000000000000000000..44ce0d2502f989859c76088f9099435cfed5ba12
--- /dev/null
+++ b/FakeStore/Android.bp
@@ -0,0 +1,17 @@
+prebuilt_etc {
+ name: "privapp-permissions-com.android.vending.xml",
+ src: "privapp-permissions-com.android.vending.xml",
+ relative_install_path: "permissions",
+}
+
+android_app_import {
+ name: "FakeStore",
+ privileged: true,
+ certificate: "platform",
+ required: ["privapp-permissions-com.android.vending.xml"],
+ optional_uses_libs: [
+ "androidx.window.extensions",
+ "androidx.window.sidecar",
+ ],
+ apk: "com.android.vending-22.apk",
+}
diff --git a/FakeStore/Android.mk b/FakeStore/Android.mk
deleted file mode 100644
index 355ac248fd34718578a52297648b97e28db50e46..0000000000000000000000000000000000000000
--- a/FakeStore/Android.mk
+++ /dev/null
@@ -1,30 +0,0 @@
-LOCAL_PATH := $(call my-dir)
-
-include $(CLEAR_VARS)
-LOCAL_MODULE := privapp-permissions-com.android.vending.xml
-LOCAL_MODULE_TAGS := optional
-LOCAL_MODULE_CLASS := ETC
-LOCAL_MODULE_PATH := $(TARGET_OUT_ETC)/permissions
-LOCAL_SRC_FILES := $(LOCAL_MODULE)
-include $(BUILD_PREBUILT)
-
-USES_LIBRARY := androidx.window.extensions androidx.window.sidecar
-
-include $(CLEAR_VARS)
-LOCAL_MODULE_TAGS := optional
-LOCAL_MODULE := FakeStore
-LOCAL_SRC_FILES := com.android.vending-22.apk
-LOCAL_MODULE_CLASS := APPS
-LOCAL_PRIVILEGED_MODULE := true
-LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX)
-LOCAL_CERTIFICATE := platform
-LOCAL_REQUIRED_MODULES := privapp-permissions-com.android.vending.xml
-
-ifneq ($(call math_gt_or_eq, $(PLATFORM_SDK_VERSION), 31),)
-LOCAL_OPTIONAL_USES_LIBRARIES := $(USES_LIBRARY)
-else
-LOCAL_PROVIDES_USES_LIBRARY := $(USES_LIBRARY)
-endif
-
-include $(BUILD_PREBUILT)
-
diff --git a/GmsCore/Android.bp b/GmsCore/Android.bp
new file mode 100644
index 0000000000000000000000000000000000000000..17c514884af488fe1ad38efea2fd3c0f8947ef09
--- /dev/null
+++ b/GmsCore/Android.bp
@@ -0,0 +1,28 @@
+prebuilt_etc {
+ name: "privapp-permissions-com.google.android.gms.xml",
+ src: "privapp-permissions-com.google.android.gms.xml",
+ relative_install_path: "permissions",
+}
+
+prebuilt_etc {
+ name: "microg.xml",
+ src: "microg.xml",
+}
+
+android_app_import {
+ name: "GmsCore",
+ privileged: true,
+ certificate: "platform",
+ overrides: ["com.qualcomm.location"],
+ required: [
+ "privapp-permissions-com.google.android.gms.xml",
+ "microg.xml",
+ ],
+ uses_libs: ["com.android.location.provider"],
+ optional_uses_libs: [
+ "org.apache.http.legacy",
+ "androidx.window.extensions",
+ "androidx.window.sidecar",
+ ],
+ apk: "play-services-core-mapbox-default-release-unsigned.apk",
+}
diff --git a/GmsCore/Android.mk b/GmsCore/Android.mk
deleted file mode 100644
index 0977b8e1ceaf14242481365735cfa0a61a4bd727..0000000000000000000000000000000000000000
--- a/GmsCore/Android.mk
+++ /dev/null
@@ -1,36 +0,0 @@
-LOCAL_PATH := $(call my-dir)
-
-include $(CLEAR_VARS)
-LOCAL_MODULE := privapp-permissions-com.google.android.gms.xml
-LOCAL_MODULE_TAGS := optional
-LOCAL_MODULE_CLASS := ETC
-LOCAL_MODULE_PATH := $(TARGET_OUT_ETC)/permissions
-LOCAL_SRC_FILES := $(LOCAL_MODULE)
-include $(BUILD_PREBUILT)
-
-include $(CLEAR_VARS)
-LOCAL_MODULE := microg.xml
-LOCAL_MODULE_TAGS := optional
-LOCAL_MODULE_CLASS := ETC
-LOCAL_MODULE_PATH := $(TARGET_OUT_ETC)
-LOCAL_SRC_FILES := microg.xml
-include $(BUILD_PREBUILT)
-
-include $(CLEAR_VARS)
-LOCAL_MODULE_TAGS := optional
-LOCAL_MODULE := GmsCore
-LOCAL_SRC_FILES := play-services-core-mapbox-default-release-unsigned.apk
-LOCAL_MODULE_CLASS := APPS
-LOCAL_PRIVILEGED_MODULE := true
-LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX)
-LOCAL_CERTIFICATE := platform
-LOCAL_OVERRIDES_PACKAGES := com.qualcomm.location
-LOCAL_REQUIRED_MODULES := privapp-permissions-com.google.android.gms.xml
-LOCAL_REQUIRED_MODULES += microg.xml
-ifneq ($(call math_gt_or_eq, $(PLATFORM_SDK_VERSION), 31),)
-LOCAL_USES_LIBRARIES := com.android.location.provider
-LOCAL_OPTIONAL_USES_LIBRARIES := org.apache.http.legacy \
- androidx.window.extensions \
- androidx.window.sidecar
-endif
-include $(BUILD_PREBUILT)
diff --git a/GsfProxy/Android.bp b/GsfProxy/Android.bp
new file mode 100644
index 0000000000000000000000000000000000000000..40ce76f5c8478c7181d23022c2862664cf0841f7
--- /dev/null
+++ b/GsfProxy/Android.bp
@@ -0,0 +1,5 @@
+android_app_import {
+ name: "GsfProxy",
+ apk: "com.google.android.gsf-8.apk",
+ presigned: true,
+}
diff --git a/GsfProxy/Android.mk b/GsfProxy/Android.mk
deleted file mode 100644
index c200fc41a10d79788721d655e1efcbbec236bb82..0000000000000000000000000000000000000000
--- a/GsfProxy/Android.mk
+++ /dev/null
@@ -1,9 +0,0 @@
-LOCAL_PATH := $(call my-dir)
-include $(CLEAR_VARS)
-LOCAL_MODULE_TAGS := optional
-LOCAL_MODULE := GsfProxy
-LOCAL_SRC_FILES := com.google.android.gsf-8.apk
-LOCAL_MODULE_CLASS := APPS
-LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX)
-LOCAL_CERTIFICATE := PRESIGNED
-include $(BUILD_PREBUILT)
diff --git a/Light/Android.mk b/Light/Android.mk
deleted file mode 100644
index 142d49b065baef7d21b7dbab9974fde33dbe15b4..0000000000000000000000000000000000000000
--- a/Light/Android.mk
+++ /dev/null
@@ -1,10 +0,0 @@
-LOCAL_PATH := $(call my-dir)
-include $(CLEAR_VARS)
-LOCAL_MODULE_TAGS := optional
-LOCAL_MODULE := Light
-LOCAL_CERTIFICATE := platform
-
-LOCAL_SRC_FILES := light-release-unsigned.apk
-LOCAL_MODULE_CLASS := APPS
-LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX)
-include $(BUILD_PREBUILT)
diff --git a/Light/light-release-unsigned.apk b/Light/light-release-unsigned.apk
deleted file mode 100644
index bf0a5a8c1e4ad6b2307f843927fb7680fc6dfa8d..0000000000000000000000000000000000000000
--- a/Light/light-release-unsigned.apk
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:80b3a6710f7490e7f9f8e6091412f89fedbbfe9e5d2137ebd081afb6c9f0770c
-size 4513442
diff --git a/MagicEarth/Android.mk b/MagicEarth/Android.mk
deleted file mode 100644
index 3461191d64ba54616322ebac82c76d41c89f6a3d..0000000000000000000000000000000000000000
--- a/MagicEarth/Android.mk
+++ /dev/null
@@ -1,32 +0,0 @@
-LOCAL_PATH := $(call my-dir)
-
-include $(CLEAR_VARS)
-LOCAL_MODULE_TAGS := optional
-LOCAL_MODULE := MagicEarth
-LOCAL_SRC_FILES := MagicEarth-$(TARGET_ARCH).apk
-LOCAL_MODULE_CLASS := APPS
-LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX)
-LOCAL_CERTIFICATE := PRESIGNED
-LOCAL_REQUIRED_MODULES := libMagicEarthSphereNative.so
-ifneq ($(call math_gt_or_eq, $(PLATFORM_SDK_VERSION), 31),)
-LOCAL_OPTIONAL_USES_LIBRARIES := com.sec.android.app.multiwindow org.apache.http.legacy androidx.window.extensions androidx.window.sidecar
-endif
-include $(BUILD_PREBUILT)
-
-ifeq ($(TARGET_ARCH), $(filter $(TARGET_ARCH), arm64))
- LIB_PATH := lib/arm64-v8a
-else ifeq ($(TARGET_ARCH), $(filter $(TARGET_ARCH), arm))
- LIB_PATH := lib/armeabi-v7a
-else ifeq ($(TARGET_ARCH), $(filter $(TARGET_ARCH), x86_64))
- LIB_PATH := lib/x86_64
-else ifeq ($(TARGET_ARCH), $(filter $(TARGET_ARCH), x86))
- LIB_PATH := lib/x86
-endif
-
-include $(CLEAR_VARS)
-LOCAL_MODULE := libMagicEarthSphereNative.so
-LOCAL_MODULE_CLASS := SHARED_LIBRARIES
-LOCAL_CHECK_ELF_FILES := false
-LOCAL_MODULE_PATH := $(TARGET_OUT_SHARED_LIBRARIES)
-LOCAL_SRC_FILES := $(LIB_PATH)/libMagicEarthSphereNative.so
-include $(BUILD_PREBUILT)
diff --git a/Mail/Android.bp b/Mail/Android.bp
new file mode 100644
index 0000000000000000000000000000000000000000..616262f0e898f7dc48b6847256d41a3e30681398
--- /dev/null
+++ b/Mail/Android.bp
@@ -0,0 +1,11 @@
+android_app_import {
+ name: "Mail",
+ overrides: ["Email"],
+ certificate: "platform",
+ optional_uses_libs: [
+ "com.sec.android.app.multiwindow",
+ "androidx.window.extensions",
+ "androidx.window.sidecar",
+ ],
+ apk: "k9mail-release-unsigned.apk",
+}
diff --git a/Mail/Android.mk b/Mail/Android.mk
deleted file mode 100644
index 3b3d654d70ff79e75f6f6dcd69a5ec2f1f2382a6..0000000000000000000000000000000000000000
--- a/Mail/Android.mk
+++ /dev/null
@@ -1,15 +0,0 @@
-LOCAL_PATH := $(call my-dir)
-include $(CLEAR_VARS)
-LOCAL_MODULE_TAGS := optional
-LOCAL_MODULE := Mail
-LOCAL_OVERRIDES_PACKAGES := Email
-LOCAL_CERTIFICATE := platform
-LOCAL_SRC_FILES := k9mail-release-unsigned.apk
-LOCAL_MODULE_CLASS := APPS
-LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX)
-ifneq ($(call math_gt_or_eq, $(PLATFORM_SDK_VERSION), 31),)
-LOCAL_OPTIONAL_USES_LIBRARIES := com.sec.android.app.multiwindow \
- androidx.window.extensions \
- androidx.window.sidecar
-endif
-include $(BUILD_PREBUILT)
diff --git a/Maps/Android.bp b/Maps/Android.bp
new file mode 100644
index 0000000000000000000000000000000000000000..c60130c8a0d0762964139f9af193742fa581c15a
--- /dev/null
+++ b/Maps/Android.bp
@@ -0,0 +1,83 @@
+android_app_import {
+ name: "Maps",
+ presigned: true,
+ preprocessed: true,
+
+ required: [
+ "libMagicEarthSphereNative",
+ "mapsOverlay",
+ ],
+
+ optional_uses_libs: [
+ "com.sec.android.app.multiwindow",
+ "org.apache.http.legacy",
+ "androidx.window.extensions",
+ "androidx.window.sidecar",
+ ],
+ arch: {
+ arm: {
+ apk: "Maps-arm.apk",
+ },
+ arm64: {
+ apk: "Maps-arm64.apk",
+ },
+ x86: {
+ apk: "Maps-x86.apk",
+ },
+ x86_64: {
+ apk: "Maps-x86_64.apk",
+ },
+ },
+}
+
+cc_prebuilt_library_shared {
+ name: "libMagicEarthSphereNative",
+ owner: "magicearth",
+ strip: {
+ none: true,
+ },
+ target: {
+ android_arm: {
+ srcs: ["lib/armeabi-v7a/libMagicEarthSphereNative.so"],
+ required: ["libMagicEarthSphereNative_jni_symlink_arm"],
+ },
+ android_arm64: {
+ srcs: ["lib/arm64-v8a/libMagicEarthSphereNative.so"],
+ required: ["libMagicEarthSphereNative_jni_symlink_arm64"],
+ },
+ android_x86: {
+ srcs: ["lib/x86/libMagicEarthSphereNative.so"],
+ required: ["libMagicEarthSphereNative_jni_symlink_x86"],
+ },
+ android_x86_64: {
+ srcs: ["lib/x86_64/libMagicEarthSphereNative.so"],
+ required: ["libMagicEarthSphereNative_jni_symlink_x86_64"],
+ },
+ },
+ compile_multilib: "first",
+ check_elf_files: false,
+}
+
+install_symlink {
+ name: "libMagicEarthSphereNative_jni_symlink_arm",
+ installed_location: "priv-app/MagicEarth/lib/arm/libMagicEarthSphereNative.so",
+ symlink_target: "/system/lib/libMagicEarthSphereNative.so",
+}
+
+install_symlink {
+ name: "libMagicEarthSphereNative_jni_symlink_arm64",
+ installed_location: "app/MagicEarth/lib/arm64/libMagicEarthSphereNative.so",
+ symlink_target: "/system/lib64/libMagicEarthSphereNative.so",
+}
+
+install_symlink {
+ name: "libMagicEarthSphereNative_jni_symlink_x86",
+ installed_location: "app/MagicEarth/lib/x86/libMagicEarthSphereNative.so",
+ symlink_target: "/system/lib/libMagicEarthSphereNative.so",
+}
+
+install_symlink {
+ name: "libMagicEarthSphereNative_jni_symlink_x86_64",
+ installed_location: "app/MagicEarth/lib/x86_64/libMagicEarthSphereNative.so",
+ symlink_target: "/system/lib64/libMagicEarthSphereNative.so",
+}
diff --git a/MagicEarth/MagicEarth-arm.apk b/Maps/Maps-arm.apk
similarity index 100%
rename from MagicEarth/MagicEarth-arm.apk
rename to Maps/Maps-arm.apk
diff --git a/MagicEarth/MagicEarth-arm64.apk b/Maps/Maps-arm64.apk
similarity index 100%
rename from MagicEarth/MagicEarth-arm64.apk
rename to Maps/Maps-arm64.apk
diff --git a/MagicEarth/MagicEarth-x86.apk b/Maps/Maps-x86.apk
similarity index 100%
rename from MagicEarth/MagicEarth-x86.apk
rename to Maps/Maps-x86.apk
diff --git a/MagicEarth/MagicEarth-x86_64.apk b/Maps/Maps-x86_64.apk
similarity index 100%
rename from MagicEarth/MagicEarth-x86_64.apk
rename to Maps/Maps-x86_64.apk
diff --git a/MagicEarth/lib/arm64-v8a/libMagicEarthSphereNative.so b/Maps/lib/arm64-v8a/libMagicEarthSphereNative.so
similarity index 100%
rename from MagicEarth/lib/arm64-v8a/libMagicEarthSphereNative.so
rename to Maps/lib/arm64-v8a/libMagicEarthSphereNative.so
diff --git a/MagicEarth/lib/armeabi-v7a/libMagicEarthSphereNative.so b/Maps/lib/armeabi-v7a/libMagicEarthSphereNative.so
similarity index 100%
rename from MagicEarth/lib/armeabi-v7a/libMagicEarthSphereNative.so
rename to Maps/lib/armeabi-v7a/libMagicEarthSphereNative.so
diff --git a/MagicEarth/lib/x86/libMagicEarthSphereNative.so b/Maps/lib/x86/libMagicEarthSphereNative.so
similarity index 100%
rename from MagicEarth/lib/x86/libMagicEarthSphereNative.so
rename to Maps/lib/x86/libMagicEarthSphereNative.so
diff --git a/MagicEarth/lib/x86_64/libMagicEarthSphereNative.so b/Maps/lib/x86_64/libMagicEarthSphereNative.so
similarity index 100%
rename from MagicEarth/lib/x86_64/libMagicEarthSphereNative.so
rename to Maps/lib/x86_64/libMagicEarthSphereNative.so
diff --git a/Message/Android.bp b/Message/Android.bp
new file mode 100644
index 0000000000000000000000000000000000000000..af41eab683c2466496427b6d19672d420dcedf42
--- /dev/null
+++ b/Message/Android.bp
@@ -0,0 +1,6 @@
+android_app_import {
+ name: "Message",
+ certificate: "platform",
+ overrides: ["messaging"],
+ apk: "presentation-noAnalytics-universal-release-unsigned.apk",
+}
diff --git a/Message/Android.mk b/Message/Android.mk
deleted file mode 100644
index 37210e83cb30c89713b9805dc3652f905001b549..0000000000000000000000000000000000000000
--- a/Message/Android.mk
+++ /dev/null
@@ -1,10 +0,0 @@
-LOCAL_PATH := $(call my-dir)
-include $(CLEAR_VARS)
-LOCAL_MODULE_TAGS := optional
-LOCAL_MODULE := Message
-LOCAL_CERTIFICATE := platform
-LOCAL_OVERRIDES_PACKAGES := messaging
-LOCAL_SRC_FILES := presentation-noAnalytics-universal-release-unsigned.apk
-LOCAL_MODULE_CLASS := APPS
-LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX)
-include $(BUILD_PREBUILT)
diff --git a/MozillaNlpBackend/Android.mk b/MozillaNlpBackend/Android.mk
deleted file mode 100644
index 62e4bc68b7d06d4da2b6a7130b62ddd5f263c526..0000000000000000000000000000000000000000
--- a/MozillaNlpBackend/Android.mk
+++ /dev/null
@@ -1,9 +0,0 @@
-LOCAL_PATH := $(call my-dir)
-include $(CLEAR_VARS)
-LOCAL_MODULE_TAGS := optional
-LOCAL_MODULE := MozillaNlpBackend
-LOCAL_SRC_FILES := IchnaeaNlpBackend-1.5.apk
-LOCAL_MODULE_CLASS := APPS
-LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX)
-LOCAL_CERTIFICATE := PRESIGNED
-include $(BUILD_PREBUILT)
diff --git a/MozillaNlpBackend/IchnaeaNlpBackend-1.5.apk b/MozillaNlpBackend/IchnaeaNlpBackend-1.5.apk
deleted file mode 100644
index d3661621b33785aa9e3889a52f12ab6c61f84082..0000000000000000000000000000000000000000
--- a/MozillaNlpBackend/IchnaeaNlpBackend-1.5.apk
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:0121ba944c0dbfe9cfc114e054c0932ac37d2d9dcdff10c684ae53cec2746212
-size 69393
diff --git a/MurenaMDM/Android.bp b/MurenaMDM/Android.bp
new file mode 100644
index 0000000000000000000000000000000000000000..c6e482f9f58485fa239c66fc7ff9afec9e3b3bde
--- /dev/null
+++ b/MurenaMDM/Android.bp
@@ -0,0 +1,15 @@
+android_app_import {
+ name: "MurenaMDM",
+ privileged: true,
+ system_ext_specific: true,
+ certificate: "platform",
+ required: ["privapp_whitelist_foundation.e.mdm.xml"],
+ apk: "app-system-release.apk",
+}
+
+prebuilt_etc {
+ name: "privapp_whitelist_foundation.e.mdm.xml",
+ system_ext_specific: true,
+ src: "privapp_whitelist_foundation.e.mdm.xml",
+ relative_install_path: "permissions",
+}
diff --git a/MurenaMDM/Android.mk b/MurenaMDM/Android.mk
deleted file mode 100644
index b6b15d0c623e22b31372644ac9ed10d80a26727e..0000000000000000000000000000000000000000
--- a/MurenaMDM/Android.mk
+++ /dev/null
@@ -1,20 +0,0 @@
-LOCAL_PATH := $(call my-dir)
-
-include $(CLEAR_VARS)
-LOCAL_MODULE := MurenaMDM
-LOCAL_MODULE_CLASS := APPS
-LOCAL_PRIVILEGED_MODULE := true
-LOCAL_SYSTEM_EXT_MODULE := true
-LOCAL_CERTIFICATE := platform
-LOCAL_SRC_FILES := app-system-release.apk
-LOCAL_REQUIRED_MODULES := privapp_whitelist_foundation.e.mdm.xml
-include $(BUILD_PREBUILT)
-
-include $(CLEAR_VARS)
-LOCAL_MODULE := privapp_whitelist_foundation.e.mdm.xml
-LOCAL_MODULE_CLASS := ETC
-LOCAL_MODULE_TAGS := optional
-LOCAL_MODULE_PATH := $(TARGET_OUT_SYSTEM_EXT_ETC)/permissions
-LOCAL_SYSTEM_EXT_MODULE := true
-LOCAL_SRC_FILES := $(LOCAL_MODULE)
-include $(BUILD_PREBUILT)
diff --git a/NominatimNlpBackend/Android.mk b/NominatimNlpBackend/Android.mk
deleted file mode 100644
index 47a0075f0ff454e2685490a7ed758b3e64ce1845..0000000000000000000000000000000000000000
--- a/NominatimNlpBackend/Android.mk
+++ /dev/null
@@ -1,9 +0,0 @@
-LOCAL_PATH := $(call my-dir)
-include $(CLEAR_VARS)
-LOCAL_MODULE_TAGS := optional
-LOCAL_MODULE := NominatimNlpBackend
-LOCAL_SRC_FILES := org.microg.nlp.backend.nominatim_20042.apk
-LOCAL_MODULE_CLASS := APPS
-LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX)
-LOCAL_CERTIFICATE := PRESIGNED
-include $(BUILD_PREBUILT)
diff --git a/NominatimNlpBackend/org.microg.nlp.backend.nominatim_20042.apk b/NominatimNlpBackend/org.microg.nlp.backend.nominatim_20042.apk
deleted file mode 100644
index 8d19472af691be58f35fa8bd66353fecb6889c8b..0000000000000000000000000000000000000000
--- a/NominatimNlpBackend/org.microg.nlp.backend.nominatim_20042.apk
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:2a2d902660c78dcdef2c19ddf571fcbe6c21eee4a8da1833224de1efa112d898
-size 1816869
diff --git a/Notes/Android.bp b/Notes/Android.bp
new file mode 100644
index 0000000000000000000000000000000000000000..38b099020fecacd13ece78cca74e95b0c3922d11
--- /dev/null
+++ b/Notes/Android.bp
@@ -0,0 +1,9 @@
+android_app_import {
+ name: "Notes",
+ certificate: "platform",
+ optional_uses_libs: [
+ "androidx.window.extensions",
+ "androidx.window.sidecar",
+ ],
+ apk: "app-release.apk",
+}
diff --git a/Notes/Android.mk b/Notes/Android.mk
deleted file mode 100644
index 1f054436da8f96da02c52af1987a2cb5212eb317..0000000000000000000000000000000000000000
--- a/Notes/Android.mk
+++ /dev/null
@@ -1,13 +0,0 @@
-LOCAL_PATH := $(call my-dir)
-include $(CLEAR_VARS)
-LOCAL_MODULE_TAGS := optional
-LOCAL_MODULE := Notes
-LOCAL_CERTIFICATE := platform
-LOCAL_SRC_FILES := app-release.apk
-LOCAL_MODULE_CLASS := APPS
-LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX)
-ifneq ($(call math_gt_or_eq, $(PLATFORM_SDK_VERSION), 31),)
-LOCAL_OPTIONAL_USES_LIBRARIES := androidx.window.extensions \
- androidx.window.sidecar
-endif
-include $(BUILD_PREBUILT)
diff --git a/Ntfy/Android.bp b/Ntfy/Android.bp
new file mode 100644
index 0000000000000000000000000000000000000000..306b616beb4d3488e5c51abd9d8615dc7003d972
--- /dev/null
+++ b/Ntfy/Android.bp
@@ -0,0 +1,19 @@
+android_app_import {
+ name: "Ntfy",
+ certificate: "platform",
+ privileged: true,
+ optional_uses_libs: [
+ "androidx.window.extensions",
+ "androidx.window.sidecar",
+ ],
+ required: ["privapp_whitelist_foundation.e.ntfy.xml"],
+ system_ext_specific: true,
+ apk: "Ntfy.apk",
+}
+
+prebuilt_etc {
+ name: "privapp_whitelist_foundation.e.ntfy.xml",
+ system_ext_specific: true,
+ src: "privapp_whitelist_foundation.e.ntfy.xml",
+ relative_install_path: "permissions",
+}
diff --git a/Ntfy/Android.mk b/Ntfy/Android.mk
deleted file mode 100644
index f46752c6a384ecd6325dc1a70230f138f818f4db..0000000000000000000000000000000000000000
--- a/Ntfy/Android.mk
+++ /dev/null
@@ -1,25 +0,0 @@
-LOCAL_PATH := $(call my-dir)
-
-include $(CLEAR_VARS)
-LOCAL_MODULE_TAGS := optional
-LOCAL_MODULE := Ntfy
-LOCAL_CERTIFICATE := platform
-LOCAL_SRC_FILES := Ntfy.apk
-LOCAL_PRIVILEGED_MODULE := true
-LOCAL_MODULE_CLASS := APPS
-LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX)
-LOCAL_OPTIONAL_USES_LIBRARIES := androidx.window.extensions androidx.window.sidecar
-LOCAL_REQUIRED_MODULES := privapp_whitelist_foundation.e.ntfy.xml
-LOCAL_SYSTEM_EXT_MODULE := true
-
-include $(BUILD_PREBUILT)
-
-include $(CLEAR_VARS)
-LOCAL_MODULE := privapp_whitelist_foundation.e.ntfy.xml
-LOCAL_MODULE_CLASS := ETC
-LOCAL_MODULE_TAGS := optional
-LOCAL_MODULE_PATH := $(TARGET_OUT_SYSTEM_EXT_ETC)/permissions
-LOCAL_SYSTEM_EXT_MODULE := true
-LOCAL_SRC_FILES := $(LOCAL_MODULE)
-include $(BUILD_PREBUILT)
-
diff --git a/OpenKeychain/Android.bp b/OpenKeychain/Android.bp
new file mode 100644
index 0000000000000000000000000000000000000000..0444bbd5a37fd2e3975b4fc7617c01b85fe68be9
--- /dev/null
+++ b/OpenKeychain/Android.bp
@@ -0,0 +1,6 @@
+android_app_import {
+ name: "OpenKeychain",
+ apk: "org.sufficientlysecure.keychain_60400.apk",
+ presigned: true,
+ preprocessed: true,
+}
diff --git a/OpenKeychain/Android.mk b/OpenKeychain/Android.mk
deleted file mode 100644
index c98dd5c5f53f92bd8315ecbd2e62bde2bc438670..0000000000000000000000000000000000000000
--- a/OpenKeychain/Android.mk
+++ /dev/null
@@ -1,9 +0,0 @@
-LOCAL_PATH := $(call my-dir)
-include $(CLEAR_VARS)
-LOCAL_MODULE_TAGS := optional
-LOCAL_MODULE := OpenKeychain
-LOCAL_SRC_FILES := org.sufficientlysecure.keychain_60400.apk
-LOCAL_MODULE_CLASS := APPS
-LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX)
-LOCAL_CERTIFICATE := PRESIGNED
-include $(BUILD_PREBUILT)
diff --git a/OpenWeatherMapWeatherProvider/Android.mk b/OpenWeatherMapWeatherProvider/Android.mk
deleted file mode 100644
index dba64d6ed7a7f7e914de651be5b7f74a7c51ef04..0000000000000000000000000000000000000000
--- a/OpenWeatherMapWeatherProvider/Android.mk
+++ /dev/null
@@ -1,19 +0,0 @@
-LOCAL_PATH := $(call my-dir)
-include $(CLEAR_VARS)
-LOCAL_MODULE_TAGS := optional
-LOCAL_MODULE := OpenWeatherMapWeatherProvider
-LOCAL_CERTIFICATE := platform
-
-ifeq ($(PLATFORM_SDK_VERSION), 28)
- LOCAL_SRC_FILES := OpenWeatherMapWeatherProvider-oreo.apk
-else ifeq ($(PLATFORM_SDK_VERSION), 29)
- LOCAL_SRC_FILES := OpenWeatherMapWeatherProvider-q.apk
-else ifeq ($(PLATFORM_SDK_VERSION), 30)
- LOCAL_SRC_FILES := OpenWeatherMapWeatherProvider-r.apk
-else
- LOCAL_SRC_FILES := OpenWeatherMapWeatherProvider-s.apk
-endif
-
-LOCAL_MODULE_CLASS := APPS
-LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX)
-include $(BUILD_PREBUILT)
diff --git a/OpenWeatherMapWeatherProvider/OpenWeatherMapWeatherProvider-oreo.apk b/OpenWeatherMapWeatherProvider/OpenWeatherMapWeatherProvider-oreo.apk
deleted file mode 100644
index 16a520498c9a66beb264a3b9324e5f3112ed57cf..0000000000000000000000000000000000000000
--- a/OpenWeatherMapWeatherProvider/OpenWeatherMapWeatherProvider-oreo.apk
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:f6015e02d8e00a6c48097db3419f4fc82fc5af1301e4b4f9d09f1128a82e0e37
-size 393427
diff --git a/OpenWeatherMapWeatherProvider/OpenWeatherMapWeatherProvider-q.apk b/OpenWeatherMapWeatherProvider/OpenWeatherMapWeatherProvider-q.apk
deleted file mode 100644
index 7da7cdf0afaabe0ccfd01a22c4b6cd918903af6f..0000000000000000000000000000000000000000
--- a/OpenWeatherMapWeatherProvider/OpenWeatherMapWeatherProvider-q.apk
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:5651a655992aa646dac271117b78565e569125bfaf649de880ccf80f2ab1bb8d
-size 1462700
diff --git a/OpenWeatherMapWeatherProvider/OpenWeatherMapWeatherProvider-r.apk b/OpenWeatherMapWeatherProvider/OpenWeatherMapWeatherProvider-r.apk
deleted file mode 100644
index 686c9c1a965ecd4bf2d12376460ec7bc7b68e1b8..0000000000000000000000000000000000000000
--- a/OpenWeatherMapWeatherProvider/OpenWeatherMapWeatherProvider-r.apk
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:4181730197ecf328e30b5a5f1b4fd0a87b85b334220f6d3dcf33cbd813df2727
-size 1105761
diff --git a/OpenWeatherMapWeatherProvider/OpenWeatherMapWeatherProvider-s.apk b/OpenWeatherMapWeatherProvider/OpenWeatherMapWeatherProvider-s.apk
deleted file mode 100644
index 15025ae1ee9cf160f8f6e6edfddff5641e2f5bc3..0000000000000000000000000000000000000000
--- a/OpenWeatherMapWeatherProvider/OpenWeatherMapWeatherProvider-s.apk
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:4957f5d5916ad93d93e7966febefaecb9fb24e0c8ff9472ee7e9bfec5dd9ed22
-size 1102273
diff --git a/ParentalControl/Android.bp b/ParentalControl/Android.bp
new file mode 100644
index 0000000000000000000000000000000000000000..e892d7db0964cae081384b66ce371e161634fb0d
--- /dev/null
+++ b/ParentalControl/Android.bp
@@ -0,0 +1,21 @@
+android_app_import {
+ name: "ParentalControl",
+ system_ext_specific: true,
+ certificate: "platform",
+ required: [
+ "init.parental.rc",
+ "set-device-owner.sh",
+ ],
+ apk: "app-release.apk",
+}
+
+prebuilt_etc {
+ name: "init.parental.rc",
+ src: "init.parental.rc",
+ relative_install_path: "init",
+}
+
+cc_prebuilt_binary {
+ name: "set-device-owner.sh",
+ srcs: ["set-device-owner.sh"],
+}
diff --git a/ParentalControl/Android.mk b/ParentalControl/Android.mk
deleted file mode 100644
index d0423bd6779eaff4df7bbb60e1c51d212480cca8..0000000000000000000000000000000000000000
--- a/ParentalControl/Android.mk
+++ /dev/null
@@ -1,25 +0,0 @@
-LOCAL_PATH := $(call my-dir)
-
-include $(CLEAR_VARS)
-LOCAL_MODULE := ParentalControl
-LOCAL_MODULE_CLASS := APPS
-LOCAL_SYSTEM_EXT_MODULE := true
-LOCAL_CERTIFICATE := platform
-LOCAL_SRC_FILES := app-release.apk
-LOCAL_REQUIRED_MODULES := init.parental.rc set-device-owner.sh
-include $(BUILD_PREBUILT)
-
-include $(CLEAR_VARS)
-LOCAL_MODULE := init.parental.rc
-LOCAL_SRC_FILES := $(LOCAL_MODULE)
-LOCAL_MODULE_CLASS := ETC
-LOCAL_MODULE_PATH := $(TARGET_OUT_ETC)/init
-include $(BUILD_PREBUILT)
-
-include $(CLEAR_VARS)
-LOCAL_MODULE := set-device-owner.sh
-LOCAL_MODULE_TAGS := optional
-LOCAL_MODULE_CLASS := EXECUTABLES
-LOCAL_SRC_FILES := set-device-owner.sh
-LOCAL_MODULE_PATH := $(TARGET_OUT_SYSTEM_EXECUTABLES)
-include $(BUILD_PREBUILT)
diff --git a/ParentalControl/sepolicy/file_contexts b/ParentalControl/sepolicy/file_contexts
new file mode 100644
index 0000000000000000000000000000000000000000..ef2691409831d1eb60621179769488dc5d838d5a
--- /dev/null
+++ b/ParentalControl/sepolicy/file_contexts
@@ -0,0 +1 @@
+/system/bin/set-device-owner\.sh u:object_r:shell_exec:s0
diff --git a/PdfViewer/Android.bp b/PdfViewer/Android.bp
new file mode 100644
index 0000000000000000000000000000000000000000..eb371ed809138d47fe642a635865a0c5a06c9cc3
--- /dev/null
+++ b/PdfViewer/Android.bp
@@ -0,0 +1,9 @@
+android_app_import {
+ name: "PdfViewer",
+ certificate: "platform",
+ optional_uses_libs: [
+ "androidx.window.extensions",
+ "androidx.window.sidecar",
+ ],
+ apk: "app-release-unsigned.apk",
+}
diff --git a/PdfViewer/Android.mk b/PdfViewer/Android.mk
deleted file mode 100644
index dec42fa892bbe40ff2ecdcfca05351988d8b6577..0000000000000000000000000000000000000000
--- a/PdfViewer/Android.mk
+++ /dev/null
@@ -1,13 +0,0 @@
-LOCAL_PATH := $(call my-dir)
-include $(CLEAR_VARS)
-LOCAL_MODULE_TAGS := optional
-LOCAL_MODULE := PdfViewer
-LOCAL_CERTIFICATE := platform
-LOCAL_SRC_FILES := app-release-unsigned.apk
-LOCAL_MODULE_CLASS := APPS
-LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX)
-ifneq ($(call math_gt_or_eq, $(PLATFORM_SDK_VERSION), 31),)
-LOCAL_OPTIONAL_USES_LIBRARIES := androidx.window.extensions \
- androidx.window.sidecar
-endif
-include $(BUILD_PREBUILT)
diff --git a/PicoTTS/Android.mk b/PicoTTS/Android.mk
deleted file mode 100644
index c37ffa96b10b97e5e9e7718098b5ee844cd49fe6..0000000000000000000000000000000000000000
--- a/PicoTTS/Android.mk
+++ /dev/null
@@ -1,10 +0,0 @@
-LOCAL_PATH := $(call my-dir)
-include $(CLEAR_VARS)
-LOCAL_MODULE_TAGS := optional
-LOCAL_MODULE := PicoTTS
-LOCAL_CERTIFICATE := platform
-
-LOCAL_SRC_FILES := picoTTS-release-unsigned.apk
-LOCAL_MODULE_CLASS := APPS
-LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX)
-include $(BUILD_PREBUILT)
diff --git a/PicoTTS/picoTTS-release-unsigned.apk b/PicoTTS/picoTTS-release-unsigned.apk
deleted file mode 100644
index efc3bd4862c71d51081c5531362f8888897821ba..0000000000000000000000000000000000000000
--- a/PicoTTS/picoTTS-release-unsigned.apk
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:8c0514046a656587d48d9385ed34a37d6591ffc83c267d4d95c0dd95f1d351d8
-size 15329038
diff --git a/PwaPlayer/Android.bp b/PwaPlayer/Android.bp
new file mode 100644
index 0000000000000000000000000000000000000000..0076cd40e2fe95244dabfeacf61826795c91c41b
--- /dev/null
+++ b/PwaPlayer/Android.bp
@@ -0,0 +1,5 @@
+android_app_import {
+ name: "PwaPlayer",
+ certificate: "platform",
+ apk: "app-release-unsigned.apk",
+}
diff --git a/PwaPlayer/Android.mk b/PwaPlayer/Android.mk
deleted file mode 100644
index bb8821731d6b39593fe96437cddbf0a2d295c703..0000000000000000000000000000000000000000
--- a/PwaPlayer/Android.mk
+++ /dev/null
@@ -1,9 +0,0 @@
-LOCAL_PATH := $(call my-dir)
-include $(CLEAR_VARS)
-LOCAL_MODULE_TAGS := optional
-LOCAL_MODULE := PwaPlayer
-LOCAL_CERTIFICATE := platform
-LOCAL_SRC_FILES := app-release-unsigned.apk
-LOCAL_MODULE_CLASS := APPS
-LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX)
-include $(BUILD_PREBUILT)
diff --git a/SeedVault/Android.mk b/SeedVault/Android.mk
deleted file mode 100644
index a5ec372cc9e22a8c9adc724f5134982135f5980b..0000000000000000000000000000000000000000
--- a/SeedVault/Android.mk
+++ /dev/null
@@ -1,20 +0,0 @@
-LOCAL_PATH := $(call my-dir)
-
-include $(CLEAR_VARS)
-LOCAL_MODULE := privapp-permissions-com.stevesoltys.seedvault.xml
-LOCAL_MODULE_TAGS := optional
-LOCAL_MODULE_CLASS := ETC
-LOCAL_MODULE_PATH := $(TARGET_OUT_ETC)/permissions
-LOCAL_SRC_FILES := $(LOCAL_MODULE)
-include $(BUILD_PREBUILT)
-
-include $(CLEAR_VARS)
-LOCAL_MODULE_TAGS := optional
-LOCAL_MODULE := SeedVault
-LOCAL_CERTIFICATE := platform
-LOCAL_SRC_FILES := SeedVault.apk
-LOCAL_MODULE_CLASS := APPS
-LOCAL_PRIVILEGED_MODULE := true
-LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX)
-LOCAL_REQUIRED_MODULES := privapp-permissions-com.stevesoltys.seedvault.xml
-include $(BUILD_PREBUILT)
\ No newline at end of file
diff --git a/SeedVault/SeedVault.apk b/SeedVault/SeedVault.apk
deleted file mode 100644
index f7335eeda3901cd3b52935525bdf45e376a2ebe2..0000000000000000000000000000000000000000
--- a/SeedVault/SeedVault.apk
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:03da5d7f01251d1b3c013ef8a29615a7f2c35249899f59034412e89dd58e1b64
-size 5468115
diff --git a/SeedVault/privapp-permissions-com.stevesoltys.seedvault.xml b/SeedVault/privapp-permissions-com.stevesoltys.seedvault.xml
deleted file mode 100644
index 28085b870a910c2fe1e2a947b9edab593eba505b..0000000000000000000000000000000000000000
--- a/SeedVault/privapp-permissions-com.stevesoltys.seedvault.xml
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/Talkback/Android.bp b/Talkback/Android.bp
new file mode 100644
index 0000000000000000000000000000000000000000..a0a31316b5e1aa9b29273ae0683c03d394103c2c
--- /dev/null
+++ b/Talkback/Android.bp
@@ -0,0 +1,26 @@
+android_app_import {
+ name: "Talkback",
+ optional_uses_libs: [
+ "com.google.android.wearable",
+ "androidx.window.extensions",
+ "androidx.window.sidecar",
+ ],
+ default_dev_cert: true,
+ arch: {
+ arm: {
+ apk: "talkback-foss-phone-armeabi-v7a-release-unsigned.apk",
+ },
+ arm64: {
+ apk: "talkback-foss-phone-arm64-v8a-release-unsigned.apk",
+ },
+ x86: {
+ apk: "talkback-foss-phone-x86-release-unsigned.apk",
+ },
+ x86_64: {
+ apk: "talkback-foss-phone-x86_64-release-unsigned.apk",
+ },
+ },
+ dex_preopt: {
+ enabled: false,
+ },
+}
diff --git a/Talkback/Android.mk b/Talkback/Android.mk
deleted file mode 100644
index 2a25e241ce56273bc05268b3c5798b3530d7775d..0000000000000000000000000000000000000000
--- a/Talkback/Android.mk
+++ /dev/null
@@ -1,27 +0,0 @@
-LOCAL_PATH := $(call my-dir)
-
-ifeq ($(TARGET_ARCH), $(filter $(TARGET_ARCH), arm64))
- APK_PATH := talkback-foss-phone-arm64-v8a-release-unsigned.apk
-else ifeq ($(TARGET_ARCH), $(filter $(TARGET_ARCH), arm))
- APK_PATH := talkback-foss-phone-armeabi-v7a-release-unsigned.apk
-else ifeq ($(TARGET_ARCH), $(filter $(TARGET_ARCH), x86_64))
- APK_PATH := talkback-foss-phone-x86_64-release-unsigned.apk
-else ifeq ($(TARGET_ARCH), $(filter $(TARGET_ARCH), x86))
- APK_PATH := talkback-foss-phone-x86-release-unsigned.apk
-endif
-
-USES_LIBRARY := com.google.android.wearable androidx.window.extensions androidx.window.sidecar
-
-include $(CLEAR_VARS)
-LOCAL_MODULE := Talkback
-LOCAL_MODULE_CLASS := APPS
-LOCAL_CERTIFICATE := $(DEFAULT_SYSTEM_DEV_CERTIFICATE)
-LOCAL_SRC_FILES := $(APK_PATH)
-ifneq ($(call math_gt_or_eq, $(PLATFORM_SDK_VERSION), 31),)
-LOCAL_OPTIONAL_USES_LIBRARIES := $(USES_LIBRARY)
-else
-LOCAL_PROVIDES_USES_LIBRARY := $(USES_LIBRARY)
-endif
-LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX)
-LOCAL_MODULE_TAGS := optional
-include $(BUILD_PREBUILT)
diff --git a/Tasks/Android.bp b/Tasks/Android.bp
new file mode 100644
index 0000000000000000000000000000000000000000..78ddd61e6e12446b843b4f7d8142e08fc2a115a0
--- /dev/null
+++ b/Tasks/Android.bp
@@ -0,0 +1,5 @@
+android_app_import {
+ name: "Tasks",
+ certificate: "platform",
+ apk: "opentasks-release-unsigned.apk",
+}
diff --git a/Tasks/Android.mk b/Tasks/Android.mk
deleted file mode 100644
index 188c98d85e70244ce1f41cc5fbafd628f7beef58..0000000000000000000000000000000000000000
--- a/Tasks/Android.mk
+++ /dev/null
@@ -1,9 +0,0 @@
-LOCAL_PATH := $(call my-dir)
-include $(CLEAR_VARS)
-LOCAL_MODULE_TAGS := optional
-LOCAL_MODULE := Tasks
-LOCAL_CERTIFICATE := platform
-LOCAL_SRC_FILES := opentasks-release-unsigned.apk
-LOCAL_MODULE_CLASS := APPS
-LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX)
-include $(BUILD_PREBUILT)
diff --git a/VOSK/Android.mk b/VOSK/Android.mk
deleted file mode 100644
index cb53b9f9fbc2c1ca7163a24aac1041ab695ad3eb..0000000000000000000000000000000000000000
--- a/VOSK/Android.mk
+++ /dev/null
@@ -1,20 +0,0 @@
-LOCAL_PATH := $(call my-dir)
-
-include $(CLEAR_VARS)
-LOCAL_MODULE := privapp-permissions-foundation.e.voice.vosk.xml
-LOCAL_MODULE_TAGS := optional
-LOCAL_MODULE_CLASS := ETC
-LOCAL_MODULE_PATH := $(TARGET_OUT_ETC)/permissions
-LOCAL_SRC_FILES := $(LOCAL_MODULE)
-include $(BUILD_PREBUILT)
-
-include $(CLEAR_VARS)
-LOCAL_MODULE_TAGS := optional
-LOCAL_MODULE := VOSK
-LOCAL_CERTIFICATE := platform
-LOCAL_PRIVILEGED_MODULE := true
-LOCAL_SRC_FILES := app-release-unsigned.apk
-LOCAL_MODULE_CLASS := APPS
-LOCAL_REQUIRED_MODULES := privapp-permissions-foundation.e.voice.vosk.xml
-LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX)
-include $(BUILD_PREBUILT)
diff --git a/VOSK/app-release-unsigned.apk b/VOSK/app-release-unsigned.apk
deleted file mode 100644
index db8a07ad9ebd22384807c8bdfba7aa1474b29d89..0000000000000000000000000000000000000000
--- a/VOSK/app-release-unsigned.apk
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:5c1fbbf0ef48e511efeb6c6dd9089a09abbeb2ccca33b809febc9b7588d86a79
-size 65285493
diff --git a/VOSK/privapp-permissions-foundation.e.voice.vosk.xml b/VOSK/privapp-permissions-foundation.e.voice.vosk.xml
deleted file mode 100644
index a8140d003f03ed713b655947032e38c0896d6a8d..0000000000000000000000000000000000000000
--- a/VOSK/privapp-permissions-foundation.e.voice.vosk.xml
+++ /dev/null
@@ -1,9 +0,0 @@
-
-
-
-
-
-
-
-
-
diff --git a/WebCalendarManager/Android.bp b/WebCalendarManager/Android.bp
new file mode 100644
index 0000000000000000000000000000000000000000..a4c19d1122e852225428322203cb2846d8de150b
--- /dev/null
+++ b/WebCalendarManager/Android.bp
@@ -0,0 +1,5 @@
+android_app_import {
+ name: "WebCalendarManager",
+ certificate: "platform",
+ apk: "WebCalendarManager-2.2-beta.1-standard-release-unsigned.apk",
+}
diff --git a/WebCalendarManager/Android.mk b/WebCalendarManager/Android.mk
deleted file mode 100644
index 6cee9f0a5719455a21df793fac43bd5b73b6ce9e..0000000000000000000000000000000000000000
--- a/WebCalendarManager/Android.mk
+++ /dev/null
@@ -1,9 +0,0 @@
-LOCAL_PATH := $(call my-dir)
-include $(CLEAR_VARS)
-LOCAL_MODULE_TAGS := optional
-LOCAL_MODULE := WebCalendarManager
-LOCAL_CERTIFICATE := platform
-LOCAL_SRC_FILES := WebCalendarManager-2.2-beta.1-standard-release-unsigned.apk
-LOCAL_MODULE_CLASS := APPS
-LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX)
-include $(BUILD_PREBUILT)
diff --git a/config/common.mk b/config/common.mk
new file mode 100644
index 0000000000000000000000000000000000000000..c436a1e10ed1e882fb4b6c83bbbce4c306a6853f
--- /dev/null
+++ b/config/common.mk
@@ -0,0 +1,60 @@
+# Copyright (C) 2025 E FOUNDATION
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+PRODUCT_ARTIFACT_PATH_REQUIREMENT_ALLOWED_LIST += \
+ system/%
+
+PRODUCT_PACKAGES += \
+ AccountManager \
+ AdvancedPrivacy \
+ AppLounge \
+ BlissWeather \
+ Browser \
+ Camera \
+ eCalendar \
+ eDrive \
+ FakeStore \
+ GmsCore \
+ GsfProxy \
+ Mail \
+ MurenaMDM \
+ Notes \
+ Ntfy \
+ OpenKeychain \
+ ParentalControl \
+ PwaPlayer \
+ Talkback \
+ Tasks \
+ WebCalendarManager
+
+# Optional applications
+MINIMAL_APPS ?= false
+
+ifeq ($(MINIMAL_APPS),false)
+PRODUCT_PACKAGES += \
+ Maps \
+ PdfViewer
+endif
+
+# Parental control
+SYSTEM_EXT_PRIVATE_SEPOLICY_DIRS += prebuilts/prebuiltapks/ParentalControl/sepolicy
+
+# BlissLauncher3
+ifeq ($(PLATFORM_SDK_VERSION), 32)
+PRODUCT_PACKAGES += BlissLauncher3_A12
+else ifeq ($(PLATFORM_SDK_VERSION), 33)
+PRODUCT_PACKAGES += BlissLauncher3_A13
+else ifeq ($(PLATFORM_SDK_VERSION), 34)
+PRODUCT_PACKAGES += BlissLauncher3_A14
+endif
diff --git a/config/telephony.mk b/config/telephony.mk
new file mode 100644
index 0000000000000000000000000000000000000000..ceaf3c34c10a83a73e427d85b6c870af240e5de5
--- /dev/null
+++ b/config/telephony.mk
@@ -0,0 +1,2 @@
+PRODUCT_PACKAGES += \
+ Message
diff --git a/eCalendar/Android.bp b/eCalendar/Android.bp
new file mode 100644
index 0000000000000000000000000000000000000000..a5c935930dbce6c208ed314eabc649d383efcbed
--- /dev/null
+++ b/eCalendar/Android.bp
@@ -0,0 +1,13 @@
+android_app_import {
+ name: "eCalendar",
+ certificate: "platform",
+ optional_uses_libs: [
+ "androidx.window.extensions",
+ "androidx.window.sidecar",
+ ],
+ overrides: [
+ "Etar",
+ "Calendar",
+ ],
+ apk: "app-release-unsigned.apk",
+}
diff --git a/Calendar/app-release-unsigned.apk b/eCalendar/app-release-unsigned.apk
similarity index 100%
rename from Calendar/app-release-unsigned.apk
rename to eCalendar/app-release-unsigned.apk
diff --git a/eDrive/Android.bp b/eDrive/Android.bp
new file mode 100644
index 0000000000000000000000000000000000000000..46ccfbfb72bcdab892eee56b0e3675e0128f7e00
--- /dev/null
+++ b/eDrive/Android.bp
@@ -0,0 +1,5 @@
+android_app_import {
+ name: "eDrive",
+ certificate: "platform",
+ apk: "eDrive-1.6.0-release-unsigned.apk",
+}
diff --git a/eDrive/Android.mk b/eDrive/Android.mk
deleted file mode 100644
index 95903220373847595d9f5c0a92adf2471bd58684..0000000000000000000000000000000000000000
--- a/eDrive/Android.mk
+++ /dev/null
@@ -1,10 +0,0 @@
-LOCAL_PATH := $(call my-dir)
-
-include $(CLEAR_VARS)
-LOCAL_MODULE_TAGS := optional
-LOCAL_MODULE := eDrive
-LOCAL_CERTIFICATE := platform
-LOCAL_SRC_FILES := eDrive-1.6.0-release-unsigned.apk
-LOCAL_MODULE_CLASS := APPS
-LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX)
-include $(BUILD_PREBUILT)
diff --git a/eSpeakTTS/Android.mk b/eSpeakTTS/Android.mk
deleted file mode 100644
index 3813202adff7e07685d77a2a2537697b3e7fba4e..0000000000000000000000000000000000000000
--- a/eSpeakTTS/Android.mk
+++ /dev/null
@@ -1,10 +0,0 @@
-LOCAL_PATH := $(call my-dir)
-include $(CLEAR_VARS)
-LOCAL_MODULE_TAGS := optional
-LOCAL_MODULE := eSpeakTTS
-LOCAL_CERTIFICATE := platform
-
-LOCAL_SRC_FILES := espeak-release-unsigned.apk
-LOCAL_MODULE_CLASS := APPS
-LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX)
-include $(BUILD_PREBUILT)
diff --git a/eSpeakTTS/espeak-release-unsigned.apk b/eSpeakTTS/espeak-release-unsigned.apk
deleted file mode 100644
index 360fff4fb5e5865d315835ed5149f4af782a4ee3..0000000000000000000000000000000000000000
--- a/eSpeakTTS/espeak-release-unsigned.apk
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:6391b9301ba20ab2ba04f81ef852c51825abdfeaf5bda0219d895eabf4c24d27
-size 3415687
diff --git a/mapsOverlay/Android.bp b/mapsOverlay/Android.bp
new file mode 100644
index 0000000000000000000000000000000000000000..fc40ba6d33edc6c5f3e4e20863aedf584df4ef56
--- /dev/null
+++ b/mapsOverlay/Android.bp
@@ -0,0 +1,4 @@
+runtime_resource_overlay {
+ name: "mapsOverlay",
+ product_specific: true,
+}
diff --git a/mapsOverlay/AndroidManifest.xml b/mapsOverlay/AndroidManifest.xml
new file mode 100644
index 0000000000000000000000000000000000000000..90929a4a10995484a2925677b495134c95821de4
--- /dev/null
+++ b/mapsOverlay/AndroidManifest.xml
@@ -0,0 +1,10 @@
+
+
+
+
diff --git a/mapsOverlay/res/drawable/icon_magicearth_notification.png b/mapsOverlay/res/drawable/icon_magicearth_notification.png
new file mode 100644
index 0000000000000000000000000000000000000000..e5152352037dd593d189c6bc06ae25f6c13c3278
Binary files /dev/null and b/mapsOverlay/res/drawable/icon_magicearth_notification.png differ
diff --git a/mapsOverlay/res/mipmap-hdpi/app_icon_foreground.png b/mapsOverlay/res/mipmap-hdpi/app_icon_foreground.png
new file mode 100644
index 0000000000000000000000000000000000000000..f51aff95f8194c953053ec43ba4f8ef6b417ea32
Binary files /dev/null and b/mapsOverlay/res/mipmap-hdpi/app_icon_foreground.png differ
diff --git a/mapsOverlay/res/mipmap-hdpi/ic_launcher_foreground.png b/mapsOverlay/res/mipmap-hdpi/ic_launcher_foreground.png
new file mode 100644
index 0000000000000000000000000000000000000000..f51aff95f8194c953053ec43ba4f8ef6b417ea32
Binary files /dev/null and b/mapsOverlay/res/mipmap-hdpi/ic_launcher_foreground.png differ
diff --git a/mapsOverlay/res/mipmap-mdpi/app_icon_foreground.png b/mapsOverlay/res/mipmap-mdpi/app_icon_foreground.png
new file mode 100644
index 0000000000000000000000000000000000000000..1f8ced469f472f66652eac03cbdff4c0c150f6cc
Binary files /dev/null and b/mapsOverlay/res/mipmap-mdpi/app_icon_foreground.png differ
diff --git a/mapsOverlay/res/mipmap-mdpi/ic_launcher_foreground.png b/mapsOverlay/res/mipmap-mdpi/ic_launcher_foreground.png
new file mode 100644
index 0000000000000000000000000000000000000000..1f8ced469f472f66652eac03cbdff4c0c150f6cc
Binary files /dev/null and b/mapsOverlay/res/mipmap-mdpi/ic_launcher_foreground.png differ
diff --git a/mapsOverlay/res/mipmap-xhdpi/app_icon_foreground.png b/mapsOverlay/res/mipmap-xhdpi/app_icon_foreground.png
new file mode 100644
index 0000000000000000000000000000000000000000..5aa9f3cf8f0c2ca43ab9eeb13f0ff38750b7d31f
Binary files /dev/null and b/mapsOverlay/res/mipmap-xhdpi/app_icon_foreground.png differ
diff --git a/mapsOverlay/res/mipmap-xhdpi/ic_launcher_foreground.png b/mapsOverlay/res/mipmap-xhdpi/ic_launcher_foreground.png
new file mode 100644
index 0000000000000000000000000000000000000000..5aa9f3cf8f0c2ca43ab9eeb13f0ff38750b7d31f
Binary files /dev/null and b/mapsOverlay/res/mipmap-xhdpi/ic_launcher_foreground.png differ
diff --git a/mapsOverlay/res/mipmap-xxhdpi/app_icon_foreground.png b/mapsOverlay/res/mipmap-xxhdpi/app_icon_foreground.png
new file mode 100644
index 0000000000000000000000000000000000000000..c759e3abb14bf5690c9ec2431f3f0a4881649f44
Binary files /dev/null and b/mapsOverlay/res/mipmap-xxhdpi/app_icon_foreground.png differ
diff --git a/mapsOverlay/res/mipmap-xxhdpi/ic_launcher_foreground.png b/mapsOverlay/res/mipmap-xxhdpi/ic_launcher_foreground.png
new file mode 100644
index 0000000000000000000000000000000000000000..c759e3abb14bf5690c9ec2431f3f0a4881649f44
Binary files /dev/null and b/mapsOverlay/res/mipmap-xxhdpi/ic_launcher_foreground.png differ
diff --git a/mapsOverlay/res/mipmap-xxxhdpi/app_icon_foreground.png b/mapsOverlay/res/mipmap-xxxhdpi/app_icon_foreground.png
new file mode 100644
index 0000000000000000000000000000000000000000..cd14b02581814da33df466ad7c50b336660722f2
Binary files /dev/null and b/mapsOverlay/res/mipmap-xxxhdpi/app_icon_foreground.png differ
diff --git a/mapsOverlay/res/mipmap-xxxhdpi/ic_launcher_foreground.png b/mapsOverlay/res/mipmap-xxxhdpi/ic_launcher_foreground.png
new file mode 100644
index 0000000000000000000000000000000000000000..cd14b02581814da33df466ad7c50b336660722f2
Binary files /dev/null and b/mapsOverlay/res/mipmap-xxxhdpi/ic_launcher_foreground.png differ
diff --git a/mapsOverlay/res/values/strings.xml b/mapsOverlay/res/values/strings.xml
new file mode 100644
index 0000000000000000000000000000000000000000..fe894cfb7f9b36fdf6d9ca176da01c8ff437550a
--- /dev/null
+++ b/mapsOverlay/res/values/strings.xml
@@ -0,0 +1,20 @@
+
+
+
+ Maps
+ Maps
+