10 Commits
luk/wb ... vic

Author SHA1 Message Date
LuK1337
af160b7fba Enable com.google.android.feature.CONTEXTUAL_SEARCH feature 2025-08-12 21:03:54 +02:00
rmp22
8332923349 overlay: Update circle to search overlays for vanilla builds
Change-Id: Id72c2e81494f793d773cfc5de24cb15eeaaaf5e9
2025-08-12 21:03:54 +02:00
Ido Ben-Hur
00022c05b4 overlay: Enable circle to search
Change-Id: I7d8b099f6e2e16396b3d7cf38ca78a155279ca35
2025-08-12 21:03:54 +02:00
LuK1337
3b941f287c Sort overlay package names 2025-08-04 13:09:26 +02:00
LuK1337
c25fa8a148 overlay: Unset config_accessibility_allowed_install_source
No longer exists.
2025-08-04 12:38:18 +02:00
LuK1337
a5e932d500 overlay: Run beautify-rro 2025-08-04 12:38:18 +02:00
LuK1337
9038094a04 Fix relative_install_path computation 2025-06-28 10:52:05 +02:00
LuK1337
5e7c36d726 Migrate away from lineage extract utils 2025-06-28 10:24:53 +02:00
LuK1337
bbdc14d4e5 Get rid of libjni_latinimegoogle multilib 2025-06-27 19:56:22 +02:00
LuK1337
4d61f18ca9 Strip build path from .sha256sum file
Fixes: https://github.com/MindTheGapps/15.0.0-arm64/issues/5
2025-06-09 19:01:27 +02:00
31 changed files with 926 additions and 709 deletions

View File

@@ -1,104 +1,89 @@
// Automatically generated file. DO NOT MODIFY
//
// This file is generated by device/gapps/arm/setup-makefiles.sh
soong_namespace {
imports: [
"vendor/gapps/common",
],
imports: ["vendor/gapps/common"],
}
android_app_import {
name: "GmsCore",
owner: "gapps",
apk: "proprietary/product/priv-app/GmsCore/GmsCore.apk",
preprocessed: true,
presigned: true,
dex_preopt: {
enabled: false,
},
privileged: true,
product_specific: true,
}
android_app_import {
name: "Phonesky",
owner: "gapps",
apk: "proprietary/product/priv-app/Phonesky/Phonesky.apk",
preprocessed: true,
presigned: true,
dex_preopt: {
enabled: false,
},
privileged: true,
product_specific: true,
}
android_app_import {
name: "SetupWizard",
owner: "gapps",
apk: "proprietary/system_ext/priv-app/SetupWizard/SetupWizard.apk",
overrides: ["Provision"],
preprocessed: true,
presigned: true,
dex_preopt: {
enabled: false,
},
privileged: true,
system_ext_specific: true,
}
android_app_import {
name: "SpeechServicesByGoogle",
owner: "gapps",
apk: "proprietary/product/app/SpeechServicesByGoogle/SpeechServicesByGoogle.apk",
preprocessed: true,
presigned: true,
dex_preopt: {
enabled: false,
},
product_specific: true,
}
android_app_import {
name: "Velvet",
owner: "gapps",
apk: "proprietary/product/priv-app/Velvet/Velvet.apk",
preprocessed: true,
presigned: true,
dex_preopt: {
enabled: false,
},
privileged: true,
product_specific: true,
}
android_app_import {
name: "talkback",
owner: "gapps",
apk: "proprietary/product/app/talkback/talkback.apk",
preprocessed: true,
presigned: true,
dex_preopt: {
enabled: false,
},
product_specific: true,
}
cc_prebuilt_library_shared {
name: "libjni_latinimegoogle",
owner: "gapps",
strip: {
none: true,
},
target: {
android_arm: {
srcs: ["proprietary/product/lib/libjni_latinimegoogle.so"],
shared_libs: ["libc", "libm", "libc++", "libdl", ],
},
},
compile_multilib: "32",
prefer: true,
product_specific: true,
name: "libjni_latinimegoogle",
srcs: ["proprietary/product/lib/libjni_latinimegoogle.so"],
prefer: true,
product_specific: true,
}
android_app_import {
name: "GmsCore",
owner: "gapps",
apk: "proprietary/product/priv-app/GmsCore/GmsCore.apk",
preprocessed: true,
presigned: true,
dex_preopt: {
enabled: false,
},
privileged: true,
product_specific: true,
}
android_app_import {
name: "Phonesky",
owner: "gapps",
apk: "proprietary/product/priv-app/Phonesky/Phonesky.apk",
preprocessed: true,
presigned: true,
dex_preopt: {
enabled: false,
},
privileged: true,
product_specific: true,
}
android_app_import {
name: "SpeechServicesByGoogle",
owner: "gapps",
apk: "proprietary/product/app/SpeechServicesByGoogle/SpeechServicesByGoogle.apk",
preprocessed: true,
presigned: true,
dex_preopt: {
enabled: false,
},
product_specific: true,
}
android_app_import {
name: "talkback",
owner: "gapps",
apk: "proprietary/product/app/talkback/talkback.apk",
preprocessed: true,
presigned: true,
dex_preopt: {
enabled: false,
},
product_specific: true,
}
android_app_import {
name: "Velvet",
owner: "gapps",
apk: "proprietary/product/priv-app/Velvet/Velvet.apk",
preprocessed: true,
presigned: true,
dex_preopt: {
enabled: false,
},
privileged: true,
product_specific: true,
}
android_app_import {
name: "SetupWizard",
owner: "gapps",
apk: "proprietary/system_ext/priv-app/SetupWizard/SetupWizard.apk",
overrides: ["Provision"],
preprocessed: true,
presigned: true,
dex_preopt: {
enabled: false,
},
privileged: true,
system_ext_specific: true,
}

View File

@@ -1,9 +0,0 @@
# Automatically generated file. DO NOT MODIFY
#
# This file is generated by device/gapps/arm/setup-makefiles.sh
LOCAL_PATH := $(call my-dir)
ifeq ($(TARGET_ARCH),arm)
endif

View File

@@ -1,4 +1,2 @@
# Automatically generated file. DO NOT MODIFY
#
# This file is generated by device/gapps/arm/setup-makefiles.sh

View File

@@ -1,23 +1,20 @@
# Automatically generated file. DO NOT MODIFY
#
# This file is generated by device/gapps/arm/setup-makefiles.sh
PRODUCT_SOONG_NAMESPACES += \
vendor/gapps/arm
$(LOCAL_PATH)
PRODUCT_PACKAGES += \
libjni_latinimegoogle \
GmsCore \
Phonesky
Phonesky \
libjni_latinimegoogle
ifeq ($(TARGET_IS_GROUPER),)
PRODUCT_PACKAGES += \
SetupWizard \
SpeechServicesByGoogle \
talkback \
Velvet \
SetupWizard
talkback
endif
$(call inherit-product, vendor/gapps/common/common-vendor.mk)

View File

@@ -1,134 +1,115 @@
// Automatically generated file. DO NOT MODIFY
//
// This file is generated by device/gapps/arm64/setup-makefiles.sh
soong_namespace {
imports: [
"vendor/gapps/common",
],
imports: ["vendor/gapps/common"],
}
android_app_import {
name: "GmsCore",
owner: "gapps",
apk: "proprietary/product/priv-app/GmsCore/GmsCore.apk",
preprocessed: true,
presigned: true,
dex_preopt: {
enabled: false,
},
privileged: true,
product_specific: true,
}
android_app_import {
name: "MarkupGoogle_v2",
owner: "gapps",
apk: "proprietary/product/app/MarkupGoogle_v2/MarkupGoogle_v2.apk",
preprocessed: true,
presigned: true,
dex_preopt: {
enabled: false,
},
product_specific: true,
}
android_app_import {
name: "Phonesky",
owner: "gapps",
apk: "proprietary/product/priv-app/Phonesky/Phonesky.apk",
preprocessed: true,
presigned: true,
dex_preopt: {
enabled: false,
},
privileged: true,
product_specific: true,
}
android_app_import {
name: "SetupWizard",
owner: "gapps",
apk: "proprietary/system_ext/priv-app/SetupWizard/SetupWizard.apk",
overrides: ["Provision"],
preprocessed: true,
presigned: true,
dex_preopt: {
enabled: false,
},
privileged: true,
system_ext_specific: true,
}
android_app_import {
name: "SpeechServicesByGoogle",
owner: "gapps",
apk: "proprietary/product/app/SpeechServicesByGoogle/SpeechServicesByGoogle.apk",
preprocessed: true,
presigned: true,
dex_preopt: {
enabled: false,
},
product_specific: true,
}
android_app_import {
name: "Velvet",
owner: "gapps",
apk: "proprietary/product/priv-app/Velvet/Velvet.apk",
preprocessed: true,
presigned: true,
dex_preopt: {
enabled: false,
},
privileged: true,
product_specific: true,
}
android_app_import {
name: "VelvetTitan",
owner: "gapps",
apk: "proprietary/product/priv-app/VelvetTitan/VelvetTitan.apk",
overrides: ["Velvet"],
preprocessed: true,
presigned: true,
dex_preopt: {
enabled: false,
},
privileged: true,
product_specific: true,
}
android_app_import {
name: "talkback",
owner: "gapps",
apk: "proprietary/product/app/talkback/talkback.apk",
preprocessed: true,
presigned: true,
dex_preopt: {
enabled: false,
},
product_specific: true,
}
cc_prebuilt_library_shared {
name: "libjni_latinimegoogle",
owner: "gapps",
strip: {
none: true,
},
target: {
android_arm: {
srcs: ["proprietary/product/lib/libjni_latinimegoogle.so"],
shared_libs: ["libc", "libm", "libc++", "libdl", ],
},
android_arm64: {
srcs: ["proprietary/product/lib64/libjni_latinimegoogle.so"],
shared_libs: ["libc", "libm", "libc++", "libdl", ],
},
},
compile_multilib: "both",
prefer: true,
product_specific: true,
name: "libjni_latinimegoogle",
srcs: ["proprietary/product/lib64/libjni_latinimegoogle.so"],
prefer: true,
product_specific: true,
}
android_app_import {
name: "GmsCore",
owner: "gapps",
apk: "proprietary/product/priv-app/GmsCore/GmsCore.apk",
preprocessed: true,
presigned: true,
dex_preopt: {
enabled: false,
},
privileged: true,
product_specific: true,
}
android_app_import {
name: "Phonesky",
owner: "gapps",
apk: "proprietary/product/priv-app/Phonesky/Phonesky.apk",
preprocessed: true,
presigned: true,
dex_preopt: {
enabled: false,
},
privileged: true,
product_specific: true,
}
android_app_import {
name: "MarkupGoogle_v2",
owner: "gapps",
apk: "proprietary/product/app/MarkupGoogle_v2/MarkupGoogle_v2.apk",
preprocessed: true,
presigned: true,
dex_preopt: {
enabled: false,
},
product_specific: true,
}
android_app_import {
name: "SpeechServicesByGoogle",
owner: "gapps",
apk: "proprietary/product/app/SpeechServicesByGoogle/SpeechServicesByGoogle.apk",
preprocessed: true,
presigned: true,
dex_preopt: {
enabled: false,
},
product_specific: true,
}
android_app_import {
name: "talkback",
owner: "gapps",
apk: "proprietary/product/app/talkback/talkback.apk",
preprocessed: true,
presigned: true,
dex_preopt: {
enabled: false,
},
product_specific: true,
}
android_app_import {
name: "Velvet",
owner: "gapps",
apk: "proprietary/product/priv-app/Velvet/Velvet.apk",
preprocessed: true,
presigned: true,
dex_preopt: {
enabled: false,
},
privileged: true,
product_specific: true,
}
android_app_import {
name: "VelvetTitan",
owner: "gapps",
apk: "proprietary/product/priv-app/VelvetTitan/VelvetTitan.apk",
overrides: ["Velvet"],
preprocessed: true,
presigned: true,
dex_preopt: {
enabled: false,
},
privileged: true,
product_specific: true,
}
android_app_import {
name: "SetupWizard",
owner: "gapps",
apk: "proprietary/system_ext/priv-app/SetupWizard/SetupWizard.apk",
overrides: ["Provision"],
preprocessed: true,
presigned: true,
dex_preopt: {
enabled: false,
},
privileged: true,
system_ext_specific: true,
}

View File

@@ -1,9 +0,0 @@
# Automatically generated file. DO NOT MODIFY
#
# This file is generated by device/gapps/arm64/setup-makefiles.sh
LOCAL_PATH := $(call my-dir)
ifeq ($(TARGET_ARCH),arm64)
endif

View File

@@ -1,4 +1,2 @@
# Automatically generated file. DO NOT MODIFY
#
# This file is generated by device/gapps/arm64/setup-makefiles.sh

View File

@@ -1,28 +1,26 @@
# Automatically generated file. DO NOT MODIFY
#
# This file is generated by device/gapps/arm64/setup-makefiles.sh
PRODUCT_SOONG_NAMESPACES += \
vendor/gapps/arm64
$(LOCAL_PATH)
PRODUCT_PACKAGES += \
libjni_latinimegoogle \
GmsCore \
Phonesky
Phonesky \
libjni_latinimegoogle
ifeq ($(TARGET_IS_GROUPER),)
PRODUCT_PACKAGES += \
MarkupGoogle_v2 \
SetupWizard \
SpeechServicesByGoogle \
talkback \
Velvet \
SetupWizard
talkback
endif
ifneq ($(filter %tangorpro,$(TARGET_PRODUCT)),)
PRODUCT_PACKAGES += VelvetTitan
PRODUCT_PACKAGES += \
VelvetTitan
endif
$(call inherit-product, vendor/gapps/common/common-vendor.mk)

View File

@@ -93,8 +93,10 @@ function getsha256() {
if [ -x $(which sha256sum) ]; then
echo "sha256sum is installed, getting sha256..." >> $GLOG
echo "Getting sha256sum..."
GSHA256=$(sha256sum $OUT/$BUILDZIP)
echo -e "$GSHA256" > $OUT/$BUILDZIP.sha256sum
pushd $OUT > /dev/null
GSHA256=$(sha256sum $BUILDZIP)
echo -e "$GSHA256" > $BUILDZIP.sha256sum
popd > /dev/null
echo "sha256 exported at $OUT/$BUILDZIP.sha256sum"
return 0
else

View File

@@ -1,130 +1,237 @@
// Automatically generated file. DO NOT MODIFY
//
// This file is generated by device/gapps/common/setup-makefiles.sh
soong_namespace {
imports: [
],
}
android_app_import {
name: "GoogleCalendarSyncAdapter",
owner: "gapps",
apk: "proprietary/product/app/GoogleCalendarSyncAdapter/GoogleCalendarSyncAdapter.apk",
preprocessed: true,
presigned: true,
dex_preopt: {
enabled: false,
},
product_specific: true,
name: "AndroidAutoStub",
owner: "gapps",
apk: "proprietary/product/priv-app/AndroidAutoStub/AndroidAutoStub.apk",
preprocessed: true,
presigned: true,
dex_preopt: {
enabled: false,
},
privileged: true,
product_specific: true,
}
android_app_import {
name: "GoogleContactsSyncAdapter",
owner: "gapps",
apk: "proprietary/product/app/GoogleContactsSyncAdapter/GoogleContactsSyncAdapter.apk",
preprocessed: true,
presigned: true,
dex_preopt: {
enabled: false,
},
product_specific: true,
name: "GoogleCalendarSyncAdapter",
owner: "gapps",
apk: "proprietary/product/app/GoogleCalendarSyncAdapter/GoogleCalendarSyncAdapter.apk",
preprocessed: true,
presigned: true,
dex_preopt: {
enabled: false,
},
product_specific: true,
}
android_app_import {
name: "PrebuiltExchange3Google",
owner: "gapps",
apk: "proprietary/product/app/PrebuiltExchange3Google/PrebuiltExchange3Google.apk",
preprocessed: true,
presigned: true,
dex_preopt: {
enabled: false,
},
product_specific: true,
name: "GoogleContactsSyncAdapter",
owner: "gapps",
apk: "proprietary/product/app/GoogleContactsSyncAdapter/GoogleContactsSyncAdapter.apk",
preprocessed: true,
presigned: true,
dex_preopt: {
enabled: false,
},
product_specific: true,
}
android_app_import {
name: "AndroidAutoStub",
owner: "gapps",
apk: "proprietary/product/priv-app/AndroidAutoStub/AndroidAutoStub.apk",
preprocessed: true,
presigned: true,
dex_preopt: {
enabled: false,
},
privileged: true,
product_specific: true,
name: "GoogleFeedback",
owner: "gapps",
apk: "proprietary/system_ext/priv-app/GoogleFeedback/GoogleFeedback.apk",
preprocessed: true,
presigned: true,
dex_preopt: {
enabled: false,
},
privileged: true,
system_ext_specific: true,
}
android_app_import {
name: "GooglePartnerSetup",
owner: "gapps",
apk: "proprietary/product/priv-app/GooglePartnerSetup/GooglePartnerSetup.apk",
preprocessed: true,
presigned: true,
dex_preopt: {
enabled: false,
},
privileged: true,
product_specific: true,
name: "GooglePartnerSetup",
owner: "gapps",
apk: "proprietary/product/priv-app/GooglePartnerSetup/GooglePartnerSetup.apk",
preprocessed: true,
presigned: true,
dex_preopt: {
enabled: false,
},
privileged: true,
product_specific: true,
}
android_app_import {
name: "GoogleFeedback",
owner: "gapps",
apk: "proprietary/system_ext/priv-app/GoogleFeedback/GoogleFeedback.apk",
preprocessed: true,
presigned: true,
dex_preopt: {
enabled: false,
},
privileged: true,
system_ext_specific: true,
name: "GoogleRestore",
owner: "gapps",
apk: "proprietary/product/priv-app/GoogleRestore/GoogleRestore.apk",
preprocessed: true,
presigned: true,
dex_preopt: {
enabled: false,
},
privileged: true,
product_specific: true,
}
android_app_import {
name: "GoogleServicesFramework",
owner: "gapps",
apk: "proprietary/system_ext/priv-app/GoogleServicesFramework/GoogleServicesFramework.apk",
preprocessed: true,
presigned: true,
dex_preopt: {
enabled: false,
},
privileged: true,
system_ext_specific: true,
name: "GoogleServicesFramework",
owner: "gapps",
apk: "proprietary/system_ext/priv-app/GoogleServicesFramework/GoogleServicesFramework.apk",
preprocessed: true,
presigned: true,
dex_preopt: {
enabled: false,
},
privileged: true,
system_ext_specific: true,
}
android_app_import {
name: "PrebuiltExchange3Google",
owner: "gapps",
apk: "proprietary/product/app/PrebuiltExchange3Google/PrebuiltExchange3Google.apk",
preprocessed: true,
presigned: true,
dex_preopt: {
enabled: false,
},
product_specific: true,
}
android_app_import {
name: "Wellbeing",
owner: "gapps",
apk: "proprietary/product/priv-app/Wellbeing/Wellbeing.apk",
preprocessed: true,
presigned: true,
dex_preopt: {
enabled: false,
},
privileged: true,
product_specific: true,
}
dex_import {
name: "com.google.android.dialer.support",
owner: "gapps",
jars: ["proprietary/product/framework/com.google.android.dialer.support.jar"],
product_specific: true,
name: "com.google.android.dialer.support",
owner: "gapps",
jars: ["proprietary/product/framework/com.google.android.dialer.support.jar"],
product_specific: true,
}
android_app_import {
name: "GoogleRestore",
owner: "gapps",
apk: "proprietary/product/priv-app/GoogleRestore/GoogleRestore.apk",
preprocessed: true,
presigned: true,
dex_preopt: {
enabled: false,
},
privileged: true,
product_specific: true,
prebuilt_etc {
name: "com.google.android.dialer.support.xml",
src: "proprietary/product/etc/permissions/com.google.android.dialer.support.xml",
relative_install_path: "permissions",
filename_from_src: true,
product_specific: true,
}
android_app_import {
name: "Wellbeing",
owner: "gapps",
apk: "proprietary/product/priv-app/Wellbeing/Wellbeing.apk",
preprocessed: true,
presigned: true,
dex_preopt: {
enabled: false,
},
privileged: true,
product_specific: true,
prebuilt_etc {
name: "d2d_cable_migration_feature.xml",
src: "proprietary/product/etc/sysconfig/d2d_cable_migration_feature.xml",
relative_install_path: "sysconfig",
filename_from_src: true,
product_specific: true,
}
prebuilt_etc {
name: "default-permissions-google.xml",
src: "proprietary/product/etc/default-permissions/default-permissions-google.xml",
relative_install_path: "default-permissions",
filename_from_src: true,
product_specific: true,
}
prebuilt_etc {
name: "default-permissions-mtg.xml",
src: "proprietary/product/etc/default-permissions/default-permissions-mtg.xml",
relative_install_path: "default-permissions",
filename_from_src: true,
product_specific: true,
}
prebuilt_etc {
name: "gapps.rc",
src: "proprietary/product/etc/init/gapps.rc",
relative_install_path: "init",
filename_from_src: true,
product_specific: true,
}
prebuilt_etc {
name: "gms_fsverity_cert.der",
src: "proprietary/product/etc/security/fsverity/gms_fsverity_cert.der",
relative_install_path: "security/fsverity",
filename_from_src: true,
product_specific: true,
}
prebuilt_etc {
name: "google-hiddenapi-package-allowlist.xml",
src: "proprietary/product/etc/sysconfig/google-hiddenapi-package-allowlist.xml",
relative_install_path: "sysconfig",
filename_from_src: true,
product_specific: true,
}
prebuilt_etc {
name: "google.xml",
src: "proprietary/product/etc/sysconfig/google.xml",
relative_install_path: "sysconfig",
filename_from_src: true,
product_specific: true,
}
prebuilt_etc {
name: "google_build.xml",
src: "proprietary/product/etc/sysconfig/google_build.xml",
relative_install_path: "sysconfig",
filename_from_src: true,
product_specific: true,
}
prebuilt_etc {
name: "privapp-permissions-google-product.xml",
src: "proprietary/product/etc/permissions/privapp-permissions-google-product.xml",
relative_install_path: "permissions",
filename_from_src: true,
product_specific: true,
}
prebuilt_etc {
name: "privapp-permissions-google-system-ext.xml",
src: "proprietary/system_ext/etc/permissions/privapp-permissions-google-system-ext.xml",
relative_install_path: "permissions",
filename_from_src: true,
system_ext_specific: true,
}
prebuilt_etc {
name: "privapp-permissions-mtg.xml",
src: "proprietary/product/etc/permissions/privapp-permissions-mtg.xml",
relative_install_path: "permissions",
filename_from_src: true,
product_specific: true,
}
prebuilt_etc {
name: "sysconfig_contextual_search.xml",
src: "proprietary/product/etc/sysconfig/sysconfig_contextual_search.xml",
relative_install_path: "sysconfig",
filename_from_src: true,
product_specific: true,
}
prebuilt_etc {
name: "wellbeing.xml",
src: "proprietary/product/etc/sysconfig/wellbeing.xml",
relative_install_path: "sysconfig",
filename_from_src: true,
product_specific: true,
}

View File

@@ -1,9 +0,0 @@
# Automatically generated file. DO NOT MODIFY
#
# This file is generated by device/gapps/common/setup-makefiles.sh
LOCAL_PATH := $(call my-dir)
ifneq ($(filter arm arm64 x86_64,$(TARGET_ARCH)),)
endif

View File

@@ -1,4 +1,2 @@
# Automatically generated file. DO NOT MODIFY
#
# This file is generated by device/gapps/common/setup-makefiles.sh

View File

@@ -1,42 +1,44 @@
# Automatically generated file. DO NOT MODIFY
#
# This file is generated by device/gapps/common/setup-makefiles.sh
PRODUCT_SOONG_NAMESPACES += \
vendor/gapps/common
PRODUCT_COPY_FILES += \
vendor/gapps/common/proprietary/product/etc/default-permissions/default-permissions-google.xml:$(TARGET_COPY_OUT_PRODUCT)/etc/default-permissions/default-permissions-google.xml \
vendor/gapps/common/proprietary/product/etc/default-permissions/default-permissions-mtg.xml:$(TARGET_COPY_OUT_PRODUCT)/etc/default-permissions/default-permissions-mtg.xml \
vendor/gapps/common/proprietary/product/etc/init/gapps.rc:$(TARGET_COPY_OUT_PRODUCT)/etc/init/gapps.rc \
vendor/gapps/common/proprietary/product/etc/permissions/com.google.android.dialer.support.xml:$(TARGET_COPY_OUT_PRODUCT)/etc/permissions/com.google.android.dialer.support.xml \
vendor/gapps/common/proprietary/product/etc/permissions/privapp-permissions-google-product.xml:$(TARGET_COPY_OUT_PRODUCT)/etc/permissions/privapp-permissions-google-product.xml \
vendor/gapps/common/proprietary/product/etc/permissions/privapp-permissions-mtg.xml:$(TARGET_COPY_OUT_PRODUCT)/etc/permissions/privapp-permissions-mtg.xml \
vendor/gapps/common/proprietary/product/etc/security/fsverity/gms_fsverity_cert.der:$(TARGET_COPY_OUT_PRODUCT)/etc/security/fsverity/gms_fsverity_cert.der \
vendor/gapps/common/proprietary/product/etc/sysconfig/d2d_cable_migration_feature.xml:$(TARGET_COPY_OUT_PRODUCT)/etc/sysconfig/d2d_cable_migration_feature.xml \
vendor/gapps/common/proprietary/product/etc/sysconfig/google.xml:$(TARGET_COPY_OUT_PRODUCT)/etc/sysconfig/google.xml \
vendor/gapps/common/proprietary/product/etc/sysconfig/google_build.xml:$(TARGET_COPY_OUT_PRODUCT)/etc/sysconfig/google_build.xml \
vendor/gapps/common/proprietary/product/etc/sysconfig/google-hiddenapi-package-allowlist.xml:$(TARGET_COPY_OUT_PRODUCT)/etc/sysconfig/google-hiddenapi-package-allowlist.xml \
vendor/gapps/common/proprietary/system_ext/etc/permissions/privapp-permissions-google-system-ext.xml:$(TARGET_COPY_OUT_SYSTEM_EXT)/etc/permissions/privapp-permissions-google-system-ext.xml
$(LOCAL_PATH)
PRODUCT_PACKAGES += \
AndroidAutoStub \
GoogleCalendarSyncAdapter \
GoogleContactsSyncAdapter \
PrebuiltExchange3Google \
AndroidAutoStub \
GooglePartnerSetup \
GoogleFeedback \
GooglePartnerSetup \
GoogleServicesFramework \
com.google.android.dialer.support
PrebuiltExchange3Google \
com.google.android.dialer.support \
com.google.android.dialer.support.xml \
d2d_cable_migration_feature.xml \
default-permissions-google.xml \
default-permissions-mtg.xml \
gapps.rc \
gms_fsverity_cert.der \
google-hiddenapi-package-allowlist.xml \
google.xml \
google_build.xml \
privapp-permissions-google-product.xml \
privapp-permissions-google-system-ext.xml \
privapp-permissions-mtg.xml \
sysconfig_contextual_search.xml
ifeq ($(TARGET_IS_GROUPER),)
PRODUCT_COPY_FILES += \
vendor/gapps/common/proprietary/product/etc/sysconfig/wellbeing.xml:$(TARGET_COPY_OUT_PRODUCT)/etc/sysconfig/wellbeing.xml
PRODUCT_PACKAGES += \
GoogleRestore \
Wellbeing
Wellbeing \
wellbeing.xml
endif
PRODUCT_SOONG_NAMESPACES += vendor/gapps/overlay
PRODUCT_PACKAGES += GmsOverlay GmsSettingsOverlay GmsSettingsProviderOverlay GmsSetupWizardOverlay
PRODUCT_SOONG_NAMESPACES += \
vendor/gapps/overlay
PRODUCT_PACKAGES += \
GmsOverlay \
GmsSettingsOverlay \
GmsSettingsProviderOverlay \
GmsSetupWizardOverlay

View File

@@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<config>
<feature name="com.google.android.feature.CONTEXTUAL_SEARCH" />
</config>

View File

@@ -1,52 +0,0 @@
#!/bin/bash
#
# Copyright (C) 2016 The CyanogenMod Project
# Copyright (C) 2017-2021 The LineageOS Project
#
# 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.
#
set -e
export GAPPS_COMMON=common
export VENDOR=gapps
# Load extract_utils and do some sanity checks
MY_DIR="${BASH_SOURCE%/*}"
if [[ ! -d "$MY_DIR" ]]; then MY_DIR="$PWD"; fi
ANDROID_ROOT="$MY_DIR/../.."
export TARGET_ENABLE_CHECKELF=true
HELPER="$ANDROID_ROOT/tools/extract-utils/extract_utils.sh"
if [ ! -f "$HELPER" ]; then
echo "Unable to find helper script at $HELPER"
exit 1
fi
. "$HELPER"
SRC=$1
if [ -z "$SRC" ]; then
echo "Path to system dump not specified! Specify one with --path"
exit 1
fi
# Initialize the helper for common gapps
setup_vendor "$GAPPS_COMMON" "$VENDOR" "$ANDROID_ROOT"
extract "$MY_DIR"/proprietary-files-common.txt "$SRC"
extract "$MY_DIR"/proprietary-files-common-nongrouper.txt "$SRC"
"$MY_DIR"/setup-makefiles.sh

View File

@@ -1,52 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<!-- Apps that are authorized to access shared accounts -->
<string name="config_appsAuthorizedForSharedAccounts" translatable="false">;com.android.vending;com.android.settings;</string>
<!-- Default service to enable with accessibility shortcut [DO NOT TRANSLATE] -->
<string name="config_defaultAccessibilityService" translatable="false">com.google.android.marvin.talkback/.TalkBackService</string>
<!-- The name of the package that will hold the speech recognizer role by default. -->
<string name="config_systemSpeechRecognizer" translatable="false">com.google.android.tts</string>
<!-- The name of the package that will hold the wellbeing role. -->
<string name="config_systemWellbeing" translatable="false">com.google.android.apps.wellbeing</string>
<!-- The package name for the default wellbeing application. [DO NOT TRANSLATE] -->
<string name="config_defaultWellbeingPackage" translatable="false">com.google.android.apps.wellbeing</string>
<!-- An array of packages that can make sound on the ringer stream in priority-only DND mode -->
<string-array name="config_priorityOnlyDndExemptPackages" translatable="false">
<item>com.android.dialer</item>
<item>com.google.android.dialer</item>
<item>com.android.server.telecom</item>
<item>android</item>
<item>com.android.systemui</item>
</string-array>
<!-- Colon separated list of package names that should be granted DND access -->
<string name="config_defaultDndAccessPackages" translatable="false">com.google.android.gms:com.google.android.apps.wellbeing</string>
<!-- Names of packages that should not be suspended when personal use is blocked by policy. -->
<string-array name="config_packagesExemptFromSuspension" translatable="false">
<item>com.google.android.apps.wellbeing</item>
</string-array>
<!-- List containing the allowed install sources for accessibility service. -->
<string-array name="config_accessibility_allowed_install_source" translatable="false">
<item>com.android.vending</item>
</string-array>
<!-- The names of the packages that will hold the system automotive projection role. -->
<string name="config_systemAutomotiveProjection" translatable="false">com.google.android.projection.gearhead</string>
<!-- The component name for the default profile supervisor, which can be set as a profile owner
even after user setup is complete. The defined component should be used for supervision purposes
only. The component must be part of a system app. -->
<string name="config_defaultSupervisionProfileOwnerComponent" translatable="false">com.google.android.gms/.kids.account.receiver.ProfileOwnerReceiver</string>
<string name="config_systemSupervision" translatable="false">com.google.android.gms.supervision</string>
<!-- The set of system packages on device that are queryable by any app regardless of the
contents of its manifest. -->
<string-array name="config_forceQueryablePackages" translatable="false">
@@ -60,19 +13,84 @@
<!-- The name of the package that will hold the assistant role by default. -->
<string name="config_defaultAssistant" translatable="false">com.google.android.googlequicksearchbox</string>
<!-- Component name that accepts settings intents for saved devices.
Used by FastPairSettingsFragment. -->
<string translatable="false" name="config_defaultNearbyFastPairSettingsDevicesComponent">com.google.android.gms/com.google.android.gms.nearby.discovery.devices.SavedDevicesSettingsActivity</string>
<!-- The names of the packages that will hold the automotive projection role. -->
<string name="config_systemAutomotiveProjection" translatable="false">com.google.android.projection.gearhead</string>
<!-- The name of the package that will hold the speech recognizer role by default. -->
<string name="config_systemSpeechRecognizer" translatable="false">com.google.android.tts</string>
<!-- The name of the package that will hold the wellbeing role. -->
<string name="config_systemWellbeing" translatable="false">com.google.android.apps.wellbeing</string>
<!-- The name of the package that will hold the game service role. -->
<string name="config_systemGameService" translatable="false">com.google.android.gms</string>
<!-- The name of the package that will hold the device management role and its certificate's SHA256. -->
<!-- The name of the package that will hold the device management role -->
<string name="config_devicePolicyManagement" translatable="false">com.google.android.apps.work.clouddpc:23962F4B43B9857638EA66F4D419518EAE282491ACDA4B94707BD59003C45E58</string>
<!-- The name of the package that will handle updating the device management role. -->
<string name="config_devicePolicyManagementUpdater" translatable="false">com.google.android.gms</string>
<!-- Apps that are authorized to access shared accounts, overridden by product overlays -->
<string name="config_appsAuthorizedForSharedAccounts" translatable="false">;com.android.vending;com.android.settings;</string>
<!-- Flag indicating which package name can access the persistent data partition -->
<string name="config_persistentDataPackageName" translatable="false">com.google.android.gms</string>
<!-- Colon separated list of package names that should be granted DND access -->
<string name="config_defaultDndAccessPackages" translatable="false">com.google.android.gms:com.google.android.apps.wellbeing</string>
<!-- An array of packages that can make sound on the ringer stream in priority-only DND
mode -->
<string-array name="config_priorityOnlyDndExemptPackages" translatable="false">
<item>com.android.dialer</item>
<item>com.google.android.dialer</item>
<item>com.android.server.telecom</item>
<item>android</item>
<item>com.android.systemui</item>
</string-array>
<!-- The component name, flattened to a string, for the default accessibility service to be
enabled by the accessibility shortcut. This service must be trusted, as it can be activated
without explicit consent of the user. If no accessibility service with the specified name
exists on the device, the accessibility shortcut will be disabled by default. -->
<string name="config_defaultAccessibilityService" translatable="false">com.google.android.marvin.talkback/.TalkBackService</string>
<!-- The package name for the default wellbeing app.
This package must be trusted, as it has the permissions to control other applications
on the device.
Example: "com.android.wellbeing"
Note: This config is deprecated, please use config_systemWellbeing instead.
-->
<string name="config_defaultWellbeingPackage" translatable="false">com.google.android.apps.wellbeing</string>
<!-- The component name for the default profile supervisor, which can be set as a profile owner
even after user setup is complete. The defined component should be used for supervision purposes
only. The component must be part of a system app. -->
<string name="config_defaultSupervisionProfileOwnerComponent" translatable="false">com.google.android.gms/.kids.account.receiver.ProfileOwnerReceiver</string>
<!-- The package name of the default supervision package. -->
<string name="config_systemSupervision" translatable="false">com.google.android.gms.supervision</string>
<!-- Names of packages that should not be suspended when personal use is blocked by policy. -->
<string-array name="config_packagesExemptFromSuspension" translatable="false">
<item>com.google.android.apps.wellbeing</item>
</string-array>
<!-- Component name that accepts settings intents for saved devices.
Used by FastPairSettingsFragment. -->
<string name="config_defaultNearbyFastPairSettingsDevicesComponent" translatable="false">com.google.android.gms/com.google.android.gms.nearby.discovery.devices.SavedDevicesSettingsActivity</string>
<!-- Name of the package responsible to handle Contextual Search. -->
<string name="config_defaultContextualSearchPackageName" translatable="false">com.google.android.googlequicksearchbox</string>
<!-- The key containing the entrypoint for Contextual Search. -->
<string name="config_defaultContextualSearchKey" translatable="false">omni.entry_point</string>
<!-- The key containing the branching boolean for Contextual Search. -->
<string name="config_defaultContextualSearchEnabled" translatable="false">omni.enable_cs_helper</string>
<!-- The key containing the branching boolean for legacy Search. -->
<string name="config_defaultContextualSearchLegacyEnabled" translatable="false">omni.enable_vis</string>
</resources>

View File

@@ -1,14 +1,14 @@
<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<!-- BT Slice EXTRA_INTENT. To support Settings 2 panel, BT slice can't use PendingIntent.send(). Therefore, here defines the Slice EXTRA_INTENT. -->
<string name="config_bt_slice_extra_intent" translatable="false">com.google.android.gms.nearby.discovery.EXTRA_INTENT</string>
<!-- BT Slice EXTRA_PENDING_INTENT. To support Settings 2 panel, BT slice can't use PendingIntent.send(). Therefore, here defines the Slice EXTRA_PENDING_INTENT. -->
<string name="config_bt_slice_extra_pending_intent" translatable="false">com.google.android.gms.nearby.discovery.EXTRA_PENDING_INTENT</string>
<!-- BT Slice intent action. To support Settings 2 panel, BT slice can't use PendingIntent.send(). Therefore, here defines the Slice intent action. -->
<string name="config_bt_slice_intent_action" translatable="false">com.google.android.gms.nearby.discovery.ACTION_LOG_SLICE_AND_LAUNCH_INTENT</string>
<!-- BT Slice pending intent action. To support Settings 2 panel, BT slice can't use PendingIntent.send(). Therefore, here defines the Slice pending intent action. -->
<string name="config_bt_slice_pending_intent_action" translatable="false">com.google.android.gms.nearby.discovery.ACTION_LOG_SLICE_AND_SEND_PENDING_INTENT</string>
<!-- BT Slice EXTRA_INTENT. To support Settings 2 panel, BT slice can't use PendingIntent.send(). Therefore, here defines the Slice EXTRA_INTENT. -->
<string name="config_bt_slice_extra_intent" translatable="false">com.google.android.gms.nearby.discovery.EXTRA_INTENT</string>
<!-- BT Slice EXTRA_PENDING_INTENT. To support Settings 2 panel, BT slice can't use PendingIntent.send(). Therefore, here defines the Slice EXTRA_PENDING_INTENT. -->
<string name="config_bt_slice_extra_pending_intent" translatable="false">com.google.android.gms.nearby.discovery.EXTRA_PENDING_INTENT</string>
</resources>

View File

@@ -1,3 +1,4 @@
<resources>
<string name="def_backup_transport">com.google.android.gms/.backup.BackupTransportService</string>
<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="def_backup_transport" translatable="false">com.google.android.gms/.backup.BackupTransportService</string>
</resources>

View File

@@ -2,6 +2,5 @@ product/app/MarkupGoogle_v2/MarkupGoogle_v2.apk;PRESIGNED|474ca0e1fb0e6340b64714
product/app/SpeechServicesByGoogle/SpeechServicesByGoogle.apk;PRESIGNED
product/app/talkback/talkback.apk;PRESIGNED
product/priv-app/Velvet/Velvet.apk;PRESIGNED
product/priv-app/VelvetTitan/VelvetTitan.apk;OVERRIDES=Velvet;PRESIGNED|bb7c2f3fadfee4dda509daba285fec3dfffeed7e
system_ext/priv-app/SetupWizard/SetupWizard.apk;OVERRIDES=Provision;PRESIGNED

View File

@@ -0,0 +1 @@
product/priv-app/VelvetTitan/VelvetTitan.apk;OVERRIDES=Velvet;PRESIGNED|bb7c2f3fadfee4dda509daba285fec3dfffeed7e

View File

@@ -1,4 +1,3 @@
product/priv-app/GmsCore/GmsCore.apk;PRESIGNED
product/priv-app/Phonesky/Phonesky.apk;PRESIGNED
product/lib/libjni_latinimegoogle.so|cff48167aeff1d47e624b100138a8ad01cb2967b
product/lib64/libjni_latinimegoogle.so|08ca8391a1816da0c417a3882e72dabb4091fd3c

View File

@@ -22,6 +22,7 @@ product/etc/sysconfig/d2d_cable_migration_feature.xml
system/etc/sysconfig/google-hiddenapi-package-allowlist.xml:product/etc/sysconfig/google-hiddenapi-package-allowlist.xml
product/etc/sysconfig/google.xml
product/etc/sysconfig/google_build.xml|2547949ac40c1e921ae6e92de6a36f2a3a70802c
product/etc/sysconfig/sysconfig_contextual_search.xml|ca052cd1860cd004a6ed003115bf46d6d473543c
system_ext/priv-app/GoogleFeedback/GoogleFeedback.apk;PRESIGNED
system_ext/priv-app/GoogleServicesFramework/GoogleServicesFramework.apk;PRESIGNED

View File

@@ -1,4 +1,3 @@
product/priv-app/GmsCore/GmsCore.apk;PRESIGNED
product/priv-app/Phonesky/Phonesky.apk;PRESIGNED
product/lib/libjni_latinimegoogle.so|40e731390e8372196db987b1d7fd83c204b42e41
product/lib64/libjni_latinimegoogle.so|67772ec6576feb79748440f765cad6321aef63d0

341
setup-makefiles.py Executable file
View File

@@ -0,0 +1,341 @@
#!/usr/bin/env python3
from dataclasses import dataclass
from fnmatch import fnmatch
from pathlib import Path
import textwrap
import typing
@dataclass
class GappsTarget:
name: str
soong_imports: list[str]
additional_namespaces: list[str]
additional_packages: list[str]
additional_makefiles_to_inherit: list[str]
class SoongModule:
def __init__(self):
self.soong_module = type(self).__name__
@staticmethod
def _value_to_str(value: typing.Any) -> str:
match value:
case bool():
return ["false", "true"][value]
case dict():
ret = "{\n"
for key, value in value.items():
ret += f"{indent(SoongModule._prop_to_str(key, value))}\n"
ret += "}"
return ret
case list():
return f'[{", ".join([SoongModule._value_to_str(x) for x in value])}]'
case str():
return f'"{value}"'
case default:
assert False, f"Unhandled value type: {type(value)}"
@staticmethod
def _prop_to_str(key: str, value: typing.Any) -> str:
return f"{key}: {SoongModule._value_to_str(value)},"
def _to_blueprint(self, props: dict) -> str:
ret = f"{self.soong_module} {{\n"
for key, value in props.items():
ret += f"{indent(SoongModule._prop_to_str(key, value))}\n"
ret += "}"
return ret
class SoongPrebuilt(SoongModule):
def __init__(self, install_path: str, flags: dict):
SoongModule.__init__(self)
self.name = Path(install_path).stem
self.install_path = install_path
self.src = f"proprietary/{install_path}"
self.flags = flags
def _has_flag(self, key: str) -> bool:
return key in self.flags
def _flag(self, key: str) -> str | None:
return self.flags.get(key, None)
def _to_blueprint(self, props: dict) -> str:
partition, _ = self.install_path.split("/", maxsplit=1)
match partition:
case "system":
pass
case "product":
props["product_specific"] = True
case "system_ext":
props["system_ext_specific"] = True
case _:
assert False, f"Unhandled partition: {partition}"
return super()._to_blueprint(props)
class android_app_import(SoongPrebuilt):
def to_blueprint(self) -> str:
props = {
"name": self.name,
"owner": "gapps",
"apk": self.src,
"overrides": [self._flag("OVERRIDES")],
"preprocessed": True,
"presigned": True,
"dex_preopt": {
"enabled": False,
},
"privileged": True,
}
_, apk_dst, _ = self.install_path.split("/", maxsplit=2)
if apk_dst != "priv-app":
del props["privileged"]
if not self._has_flag("OVERRIDES"):
del props["overrides"]
if not self._has_flag("PRESIGNED"):
del props["presigned"]
return self._to_blueprint(props)
class cc_prebuilt_library_shared(SoongPrebuilt):
def to_blueprint(self) -> str:
props = {
"name": self.name,
"srcs": [self.src],
"prefer": True,
}
return self._to_blueprint(props)
class dex_import(SoongPrebuilt):
def to_blueprint(self) -> str:
props = {
"name": self.name,
"owner": "gapps",
"jars": [self.src],
}
return self._to_blueprint(props)
class prebuilt_etc(SoongPrebuilt):
def __init__(self, install_path: str, flags: dict):
super().__init__(install_path, flags)
self.name += Path(self.install_path).suffix
def to_blueprint(self) -> str:
props = {
"name": self.name,
"src": self.src,
"relative_install_path": "/".join(self.install_path.split("/")[2:-1]),
"filename_from_src": True,
}
return self._to_blueprint(props)
class soong_namespace(SoongModule):
def __init__(self, imports: list[str]):
super().__init__()
self.imports = imports
def to_blueprint(self) -> str:
props = {
"imports": self.imports,
}
if not self.imports:
del props["imports"]
return self._to_blueprint(props)
def indent(text: str) -> str:
return textwrap.indent(text, " " * 4)
def parse_proprietary_file(line: str) -> SoongPrebuilt:
# Format: ORIG_PATH:INSTALL_PATH;FLAGS|SHA1
if "|" in line:
line, file_hash = line.split("|")
else:
file_hash = None
if ";" in line:
line, flags_str = line.split(";", maxsplit=1)
flags = {}
for flag in flags_str.split(";"):
if "=" in flag:
key, value = flag.split("=", maxsplit=1)
else:
key = flag
value = None
flags[key] = value
else:
flags = {}
if ":" in line:
line, install_path = line.split(":")
else:
install_path = line
for pattern, blob_type in {
"*.apk": android_app_import,
"*.jar": dex_import,
"*.so": cc_prebuilt_library_shared,
"*/etc/*.*": prebuilt_etc,
}.items():
if fnmatch(install_path, pattern):
return blob_type(install_path, flags)
else:
assert False, f"Unhandled install path: {install_path}"
def parse_proprietary_files(path: str) -> list:
packages = []
if Path(path).is_file():
for line in open(path).readlines():
line = line.strip()
if not line:
continue
if package := parse_proprietary_file(line):
packages.append(package)
return sorted(packages, key=lambda x: (x.soong_module, x.name))
def generate(targets: list[GappsTarget]) -> None:
for target in targets:
packages = parse_proprietary_files(f"proprietary-files-{target.name}.txt")
packages_nongrouper = parse_proprietary_files(
f"proprietary-files-{target.name}-nongrouper.txt"
)
packages_tangorpro = parse_proprietary_files(
f"proprietary-files-{target.name}-tangorpro.txt"
)
packages_all = sorted(
packages + packages_nongrouper + packages_tangorpro,
key=lambda x: (x.soong_module, x.name),
)
with open(f"{target.name}/Android.bp", "+wt") as f:
f.write("// Automatically generated file. DO NOT MODIFY\n")
f.write("\n")
f.write(soong_namespace(target.soong_imports).to_blueprint())
f.write("\n")
for package in packages_all:
f.write("\n")
f.write(package.to_blueprint())
f.write("\n")
with open(f"{target.name}/BoardConfigVendor.mk", "+wt") as f:
f.write("# Automatically generated file. DO NOT MODIFY\n")
f.write("#\n")
with open(f"{target.name}/{target.name}-vendor.mk", "+wt") as f:
f.write("# Automatically generated file. DO NOT MODIFY\n")
f.write("#\n")
def write_list(var: str, items: list[str]):
f.write(f"{var} += \\\n")
f.write(" \\\n".join([indent(x) for x in items]))
f.write("\n")
f.write("\n")
write_list("PRODUCT_SOONG_NAMESPACES", [f"$(LOCAL_PATH)"])
if packages:
f.write("\n")
write_list("PRODUCT_PACKAGES", [x.name for x in packages])
if packages_nongrouper:
f.write("\n")
f.write("ifeq ($(TARGET_IS_GROUPER),)\n")
write_list("PRODUCT_PACKAGES", [x.name for x in packages_nongrouper])
f.write("endif\n")
if packages_tangorpro:
f.write("\n")
f.write("ifneq ($(filter %tangorpro,$(TARGET_PRODUCT)),)\n")
write_list("PRODUCT_PACKAGES", [x.name for x in packages_tangorpro])
f.write("endif\n")
if target.additional_namespaces:
f.write("\n")
write_list("PRODUCT_SOONG_NAMESPACES", target.additional_namespaces)
if target.additional_packages:
f.write("\n")
write_list("PRODUCT_PACKAGES", target.additional_packages)
for path in target.additional_makefiles_to_inherit:
f.write("\n")
f.write(f"$(call inherit-product, {path})\n")
if __name__ == "__main__":
generate(
[
GappsTarget(
name="common",
soong_imports=[],
additional_namespaces=["vendor/gapps/overlay"],
additional_packages=sorted([x.name for x in Path("overlay").glob("*Overlay")]),
additional_makefiles_to_inherit=[],
),
GappsTarget(
name="arm",
soong_imports=["vendor/gapps/common"],
additional_namespaces=[],
additional_packages=[],
additional_makefiles_to_inherit=[
"vendor/gapps/common/common-vendor.mk",
],
),
GappsTarget(
name="arm64",
soong_imports=["vendor/gapps/common"],
additional_namespaces=[],
additional_packages=[],
additional_makefiles_to_inherit=[
"vendor/gapps/common/common-vendor.mk",
],
),
GappsTarget(
name="x86_64",
soong_imports=["vendor/gapps/common"],
additional_namespaces=[],
additional_packages=[],
additional_makefiles_to_inherit=[
"vendor/gapps/common/common-vendor.mk",
],
),
]
)

View File

@@ -1,100 +0,0 @@
#!/bin/bash
#
# Copyright (C) 2016 The CyanogenMod Project
# Copyright (C) 2017-2021 The LineageOS Project
#
# 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.
#
set -e
export DEVICE_COMMON=common
export VENDOR=gapps
# Load extract_utils and do some sanity checks
MY_DIR="${BASH_SOURCE%/*}"
if [[ ! -d "$MY_DIR" ]]; then MY_DIR="$PWD"; fi
ANDROID_ROOT="$MY_DIR/../.."
export TARGET_ENABLE_CHECKELF=true
HELPER="$ANDROID_ROOT/tools/extract-utils/extract_utils.sh"
if [ ! -f "$HELPER" ]; then
echo "Unable to find helper script at $HELPER"
exit 1
fi
. "$HELPER"
# Initialize the helper for common gapps
setup_vendor "$DEVICE_COMMON" "$VENDOR" "$ANDROID_ROOT" true
# Copyright headers
write_headers "arm arm64 x86_64"
# Common gapps
write_makefiles "$MY_DIR"/proprietary-files-common.txt
# Gapps that are too large for grouper
printf "\n" >> "$PRODUCTMK"
echo "ifeq (\$(TARGET_IS_GROUPER),)" >> "$PRODUCTMK"
write_makefiles "$MY_DIR"/proprietary-files-common-nongrouper.txt
echo "endif" >> "$PRODUCTMK"
# Overlays
cd overlay
OVERLAYS=$(for dir in $(ls -d */); do echo ${dir%%/}; done)
OVERLAYS=$(echo $OVERLAYS | paste -s -d ' ')
cd - >/dev/null
printf "\n" >> "$PRODUCTMK"
echo "PRODUCT_SOONG_NAMESPACES += vendor/$VENDOR/overlay" >> "$PRODUCTMK"
echo "PRODUCT_PACKAGES += $OVERLAYS" >> "$PRODUCTMK"
sed -i 's/TARGET_DEVICE/TARGET_ARCH/g' "$ANDROIDMK"
# We are done with common
write_footers
for DEVICE in arm arm64 x86_64; do
# Reinitialize the helper for target gapps
setup_vendor "$DEVICE" "$VENDOR" "$ANDROID_ROOT"
# Copyright headers and guards
write_headers "$DEVICE"
write_makefiles "$MY_DIR"/proprietary-files-$DEVICE.txt
# Gapps that are too large for grouper
printf "\n" >> "$PRODUCTMK"
echo "ifeq (\$(TARGET_IS_GROUPER),)" >> "$PRODUCTMK"
write_makefiles "$MY_DIR"/proprietary-files-$DEVICE-nongrouper.txt
echo "endif" >> "$PRODUCTMK"
# Workaround for VelvetTitan on tangorpro
if grep -q "VelvetTitan" "$PRODUCTMK"; then
sed -i '/VelvetTitan/d' "$PRODUCTMK"
printf "\n" >> "$PRODUCTMK"
echo "ifneq (\$(filter %tangorpro,\$(TARGET_PRODUCT)),)" >> "$PRODUCTMK"
echo "PRODUCT_PACKAGES += VelvetTitan" >> "$PRODUCTMK"
echo "endif" >> "$PRODUCTMK"
fi
printf '\n%s\n' "\$(call inherit-product, vendor/gapps/common/common-vendor.mk)" >> "$PRODUCTMK"
sed -i 's/TARGET_DEVICE/TARGET_ARCH/g' "$ANDROIDMK"
# We are done with target
write_footers
done

View File

@@ -1,84 +1,65 @@
// Automatically generated file. DO NOT MODIFY
//
// This file is generated by device/gapps/x86_64/setup-makefiles.sh
soong_namespace {
imports: [
"vendor/gapps/common",
],
imports: ["vendor/gapps/common"],
}
android_app_import {
name: "GmsCore",
owner: "gapps",
apk: "proprietary/product/priv-app/GmsCore/GmsCore.apk",
preprocessed: true,
presigned: true,
dex_preopt: {
enabled: false,
},
privileged: true,
product_specific: true,
}
android_app_import {
name: "Phonesky",
owner: "gapps",
apk: "proprietary/product/priv-app/Phonesky/Phonesky.apk",
preprocessed: true,
presigned: true,
dex_preopt: {
enabled: false,
},
privileged: true,
product_specific: true,
}
android_app_import {
name: "SetupWizard",
owner: "gapps",
apk: "proprietary/system_ext/priv-app/SetupWizard/SetupWizard.apk",
overrides: ["Provision"],
preprocessed: true,
presigned: true,
dex_preopt: {
enabled: false,
},
privileged: true,
system_ext_specific: true,
}
android_app_import {
name: "Velvet",
owner: "gapps",
apk: "proprietary/product/priv-app/Velvet/Velvet.apk",
preprocessed: true,
presigned: true,
dex_preopt: {
enabled: false,
},
privileged: true,
product_specific: true,
}
cc_prebuilt_library_shared {
name: "libjni_latinimegoogle",
owner: "gapps",
strip: {
none: true,
},
target: {
android_x86: {
srcs: ["proprietary/product/lib/libjni_latinimegoogle.so"],
shared_libs: ["libc", "libc++", "libm", "libdl", ],
},
android_x86_64: {
srcs: ["proprietary/product/lib64/libjni_latinimegoogle.so"],
shared_libs: ["libc", "libc++", "libm", "libdl", ],
},
},
compile_multilib: "both",
prefer: true,
product_specific: true,
name: "libjni_latinimegoogle",
srcs: ["proprietary/product/lib64/libjni_latinimegoogle.so"],
prefer: true,
product_specific: true,
}
android_app_import {
name: "GmsCore",
owner: "gapps",
apk: "proprietary/product/priv-app/GmsCore/GmsCore.apk",
preprocessed: true,
presigned: true,
dex_preopt: {
enabled: false,
},
privileged: true,
product_specific: true,
}
android_app_import {
name: "Phonesky",
owner: "gapps",
apk: "proprietary/product/priv-app/Phonesky/Phonesky.apk",
preprocessed: true,
presigned: true,
dex_preopt: {
enabled: false,
},
privileged: true,
product_specific: true,
}
android_app_import {
name: "Velvet",
owner: "gapps",
apk: "proprietary/product/priv-app/Velvet/Velvet.apk",
preprocessed: true,
presigned: true,
dex_preopt: {
enabled: false,
},
privileged: true,
product_specific: true,
}
android_app_import {
name: "SetupWizard",
owner: "gapps",
apk: "proprietary/system_ext/priv-app/SetupWizard/SetupWizard.apk",
overrides: ["Provision"],
preprocessed: true,
presigned: true,
dex_preopt: {
enabled: false,
},
privileged: true,
system_ext_specific: true,
}

View File

@@ -1,9 +0,0 @@
# Automatically generated file. DO NOT MODIFY
#
# This file is generated by device/gapps/x86_64/setup-makefiles.sh
LOCAL_PATH := $(call my-dir)
ifeq ($(TARGET_ARCH),x86_64)
endif

View File

@@ -1,4 +1,2 @@
# Automatically generated file. DO NOT MODIFY
#
# This file is generated by device/gapps/x86_64/setup-makefiles.sh

View File

@@ -1,21 +1,18 @@
# Automatically generated file. DO NOT MODIFY
#
# This file is generated by device/gapps/x86_64/setup-makefiles.sh
PRODUCT_SOONG_NAMESPACES += \
vendor/gapps/x86_64
$(LOCAL_PATH)
PRODUCT_PACKAGES += \
libjni_latinimegoogle \
GmsCore \
Phonesky
Phonesky \
libjni_latinimegoogle
ifeq ($(TARGET_IS_GROUPER),)
PRODUCT_PACKAGES += \
Velvet \
SetupWizard
SetupWizard \
Velvet
endif
$(call inherit-product, vendor/gapps/common/common-vendor.mk)