5 Commits
vic ... upsilon

Author SHA1 Message Date
LuK1337
f75de2aa2a Add wellbeing.xml 2025-02-03 20:58:13 +01:00
LuK1337
1c90e09131 md5 -> sha256 2025-02-03 20:58:13 +01:00
LuK1337
4d2aed7551 Regenerate makefiles 2024-10-04 14:10:01 +02:00
LuK1337
be925b67cc Move extra product priv-app permissions to privapp-permissions-mtg.xml 2024-10-04 13:52:01 +02:00
LuK1337
cecd93e3a5 Get rid of x86 support
Doesn't seem like x86 GMS exists anymore as it's not available as GSI
nor Android SDK image.
2024-10-04 10:35:21 +02:00
65 changed files with 741 additions and 1019 deletions

View File

@@ -1,89 +1,104 @@
// Automatically generated file. DO NOT MODIFY // Automatically generated file. DO NOT MODIFY
//
// This file is generated by device/gapps/arm/setup-makefiles.sh
soong_namespace { 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 { cc_prebuilt_library_shared {
name: "libjni_latinimegoogle", name: "libjni_latinimegoogle",
srcs: ["proprietary/product/lib/libjni_latinimegoogle.so"], owner: "gapps",
prefer: true, strip: {
product_specific: true, 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,
} }
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,
}

9
arm/Android.mk Normal file
View File

@@ -0,0 +1,9 @@
# 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,2 +1,4 @@
# Automatically generated file. DO NOT MODIFY # Automatically generated file. DO NOT MODIFY
# #
# This file is generated by device/gapps/arm/setup-makefiles.sh

View File

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

View File

@@ -1,115 +1,134 @@
// Automatically generated file. DO NOT MODIFY // Automatically generated file. DO NOT MODIFY
//
// This file is generated by device/gapps/arm64/setup-makefiles.sh
soong_namespace { 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 { cc_prebuilt_library_shared {
name: "libjni_latinimegoogle", name: "libjni_latinimegoogle",
srcs: ["proprietary/product/lib64/libjni_latinimegoogle.so"], owner: "gapps",
prefer: true, strip: {
product_specific: true, 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,
} }
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",
owner: "gapps",
apk: "proprietary/product/app/MarkupGoogle/MarkupGoogle.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,
}

9
arm64/Android.mk Normal file
View File

@@ -0,0 +1,9 @@
# 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,2 +1,4 @@
# Automatically generated file. DO NOT MODIFY # Automatically generated file. DO NOT MODIFY
# #
# This file is generated by device/gapps/arm64/setup-makefiles.sh

View File

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

Binary file not shown.

View File

@@ -8,8 +8,8 @@
# #
DATE=$(date -u +%Y%m%d_%H%M%S) DATE=$(date -u +%Y%m%d_%H%M%S)
export GAPPS_TOP=$(realpath .) export GAPPS_TOP=$(realpath .)
ANDROIDV=15.0.0 ANDROIDV=14.0.0
SDKV=35 SDKV=34
GARCH=$1 GARCH=$1
CPUARCH=$GARCH CPUARCH=$GARCH
[ ! -z "$2" ] && CPUARCH=$2 [ ! -z "$2" ] && CPUARCH=$2
@@ -93,10 +93,8 @@ function getsha256() {
if [ -x $(which sha256sum) ]; then if [ -x $(which sha256sum) ]; then
echo "sha256sum is installed, getting sha256..." >> $GLOG echo "sha256sum is installed, getting sha256..." >> $GLOG
echo "Getting sha256sum..." echo "Getting sha256sum..."
pushd $OUT > /dev/null GSHA256=$(sha256sum $OUT/$BUILDZIP)
GSHA256=$(sha256sum $BUILDZIP) echo -e "$GSHA256" > $OUT/$BUILDZIP.sha256sum
echo -e "$GSHA256" > $BUILDZIP.sha256sum
popd > /dev/null
echo "sha256 exported at $OUT/$BUILDZIP.sha256sum" echo "sha256 exported at $OUT/$BUILDZIP.sha256sum"
return 0 return 0
else else

View File

@@ -107,7 +107,7 @@ compute_apps_size() {
remove_big_optional_apps() { remove_big_optional_apps() {
ui_print "Low resource device detected, removing large extras" ui_print "Low resource device detected, removing large extras"
rm -rf product/app/GoogleTTS rm -rf product/app/GoogleTTS
rm -rf product/app/MarkupGoogle_v2 rm -rf product/app/MarkupGoogle
rm -rf product/app/SpeechServicesByGoogle rm -rf product/app/SpeechServicesByGoogle
rm -rf product/app/talkback rm -rf product/app/talkback
rm -rf product/priv-app/GoogleRestore rm -rf product/priv-app/GoogleRestore

View File

@@ -2,4 +2,5 @@ FROM ubuntu:latest
MAINTAINER LuK1337 <priv.luk@gmail.com> MAINTAINER LuK1337 <priv.luk@gmail.com>
RUN apt update RUN apt update
RUN apt -y install aapt python3 python3-parse python3-requests RUN apt -y install aapt python3 python3-pip
RUN pip install parse requests

View File

@@ -37,7 +37,7 @@ os.chdir(sys.path[0])
# Definitions for privileged permissions # Definitions for privileged permissions
ANDROID_MANIFEST_XML = \ ANDROID_MANIFEST_XML = \
'https://raw.githubusercontent.com/LineageOS/android_frameworks_base/lineage-22.0/core/res/AndroidManifest.xml' 'https://raw.githubusercontent.com/LineageOS/android_frameworks_base/lineage-21.0/core/res/AndroidManifest.xml'
ANDROID_XML_NS = '{http://schemas.android.com/apk/res/android}' ANDROID_XML_NS = '{http://schemas.android.com/apk/res/android}'
privileged_permissions = set() privileged_permissions = set()
privileged_permission_mask = {'privileged', 'signature'} privileged_permission_mask = {'privileged', 'signature'}
@@ -94,7 +94,7 @@ for partition in partitions:
# Definitions for parsing APKs # Definitions for parsing APKs
GLOB_APK_STR = '../*/proprietary/{}/priv-app/*/*.apk' GLOB_APK_STR = '../*/proprietary/{}/priv-app/*/*.apk'
AAPT_CMD = ['aapt2', 'd', 'permissions'] AAPT_CMD = ['aapt', 'd', 'permissions']
# Extract requested privileged permissions from all priv-app APKs # Extract requested privileged permissions from all priv-app APKs
for partition in partitions: for partition in partitions:
@@ -103,7 +103,8 @@ for partition in partitions:
# Loop over all the APKs in the partition we want # Loop over all the APKs in the partition we want
for apk in glob(GLOB_APK_STR.format(partition)): for apk in glob(GLOB_APK_STR.format(partition)):
# Run 'aapt d permissions' on APK # Run 'aapt d permissions' on APK
aapt_output = subprocess.check_output(AAPT_CMD + [apk]).decode(encoding='UTF-8') aapt_output = subprocess.check_output(AAPT_CMD + [apk],
stderr=subprocess.STDOUT).decode(encoding='UTF-8')
lines = aapt_output.splitlines() lines = aapt_output.splitlines()
# Extract package name from the output # Extract package name from the output
# Output looks like: # Output looks like:

View File

@@ -1,237 +1,130 @@
// Automatically generated file. DO NOT MODIFY // Automatically generated file. DO NOT MODIFY
//
// This file is generated by device/gapps/common/setup-makefiles.sh
soong_namespace { soong_namespace {
imports: [
],
} }
android_app_import { android_app_import {
name: "AndroidAutoStub", name: "GoogleCalendarSyncAdapter",
owner: "gapps", owner: "gapps",
apk: "proprietary/product/priv-app/AndroidAutoStub/AndroidAutoStub.apk", apk: "proprietary/product/app/GoogleCalendarSyncAdapter/GoogleCalendarSyncAdapter.apk",
preprocessed: true, preprocessed: true,
presigned: true, presigned: true,
dex_preopt: { dex_preopt: {
enabled: false, enabled: false,
}, },
privileged: true, product_specific: true,
product_specific: true,
} }
android_app_import { android_app_import {
name: "GoogleCalendarSyncAdapter", name: "GoogleContactsSyncAdapter",
owner: "gapps", owner: "gapps",
apk: "proprietary/product/app/GoogleCalendarSyncAdapter/GoogleCalendarSyncAdapter.apk", apk: "proprietary/product/app/GoogleContactsSyncAdapter/GoogleContactsSyncAdapter.apk",
preprocessed: true, preprocessed: true,
presigned: true, presigned: true,
dex_preopt: { dex_preopt: {
enabled: false, enabled: false,
}, },
product_specific: true, product_specific: true,
} }
android_app_import { android_app_import {
name: "GoogleContactsSyncAdapter", name: "PrebuiltExchange3Google",
owner: "gapps", owner: "gapps",
apk: "proprietary/product/app/GoogleContactsSyncAdapter/GoogleContactsSyncAdapter.apk", apk: "proprietary/product/app/PrebuiltExchange3Google/PrebuiltExchange3Google.apk",
preprocessed: true, preprocessed: true,
presigned: true, presigned: true,
dex_preopt: { dex_preopt: {
enabled: false, enabled: false,
}, },
product_specific: true, product_specific: true,
} }
android_app_import { android_app_import {
name: "GoogleFeedback", name: "AndroidAutoStub",
owner: "gapps", owner: "gapps",
apk: "proprietary/system_ext/priv-app/GoogleFeedback/GoogleFeedback.apk", apk: "proprietary/product/priv-app/AndroidAutoStub/AndroidAutoStub.apk",
preprocessed: true, preprocessed: true,
presigned: true, presigned: true,
dex_preopt: { dex_preopt: {
enabled: false, enabled: false,
}, },
privileged: true, privileged: true,
system_ext_specific: true, product_specific: true,
} }
android_app_import { android_app_import {
name: "GooglePartnerSetup", name: "GooglePartnerSetup",
owner: "gapps", owner: "gapps",
apk: "proprietary/product/priv-app/GooglePartnerSetup/GooglePartnerSetup.apk", apk: "proprietary/product/priv-app/GooglePartnerSetup/GooglePartnerSetup.apk",
preprocessed: true, preprocessed: true,
presigned: true, presigned: true,
dex_preopt: { dex_preopt: {
enabled: false, enabled: false,
}, },
privileged: true, privileged: true,
product_specific: true, product_specific: true,
} }
android_app_import { android_app_import {
name: "GoogleRestore", name: "GoogleFeedback",
owner: "gapps", owner: "gapps",
apk: "proprietary/product/priv-app/GoogleRestore/GoogleRestore.apk", apk: "proprietary/system_ext/priv-app/GoogleFeedback/GoogleFeedback.apk",
preprocessed: true, preprocessed: true,
presigned: true, presigned: true,
dex_preopt: { dex_preopt: {
enabled: false, enabled: false,
}, },
privileged: true, privileged: true,
product_specific: true, system_ext_specific: true,
} }
android_app_import { android_app_import {
name: "GoogleServicesFramework", name: "GoogleServicesFramework",
owner: "gapps", owner: "gapps",
apk: "proprietary/system_ext/priv-app/GoogleServicesFramework/GoogleServicesFramework.apk", apk: "proprietary/system_ext/priv-app/GoogleServicesFramework/GoogleServicesFramework.apk",
preprocessed: true, preprocessed: true,
presigned: true, presigned: true,
dex_preopt: { dex_preopt: {
enabled: false, enabled: false,
}, },
privileged: true, privileged: true,
system_ext_specific: 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 { dex_import {
name: "com.google.android.dialer.support", name: "com.google.android.dialer.support",
owner: "gapps", owner: "gapps",
jars: ["proprietary/product/framework/com.google.android.dialer.support.jar"], jars: ["proprietary/product/framework/com.google.android.dialer.support.jar"],
product_specific: true, product_specific: true,
} }
prebuilt_etc { android_app_import {
name: "com.google.android.dialer.support.xml", name: "GoogleRestore",
src: "proprietary/product/etc/permissions/com.google.android.dialer.support.xml", owner: "gapps",
relative_install_path: "permissions", apk: "proprietary/product/priv-app/GoogleRestore/GoogleRestore.apk",
filename_from_src: true, preprocessed: true,
product_specific: true, presigned: true,
dex_preopt: {
enabled: false,
},
privileged: true,
product_specific: true,
} }
prebuilt_etc { android_app_import {
name: "d2d_cable_migration_feature.xml", name: "Wellbeing",
src: "proprietary/product/etc/sysconfig/d2d_cable_migration_feature.xml", owner: "gapps",
relative_install_path: "sysconfig", apk: "proprietary/product/priv-app/Wellbeing/Wellbeing.apk",
filename_from_src: true, preprocessed: true,
product_specific: true, presigned: true,
dex_preopt: {
enabled: false,
},
privileged: 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,
}

9
common/Android.mk Normal file
View File

@@ -0,0 +1,9 @@
# 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,2 +1,4 @@
# Automatically generated file. DO NOT MODIFY # Automatically generated file. DO NOT MODIFY
# #
# This file is generated by device/gapps/common/setup-makefiles.sh

View File

@@ -1,44 +1,42 @@
# Automatically generated file. DO NOT MODIFY # Automatically generated file. DO NOT MODIFY
# #
# This file is generated by device/gapps/common/setup-makefiles.sh
PRODUCT_SOONG_NAMESPACES += \ PRODUCT_SOONG_NAMESPACES += \
$(LOCAL_PATH) 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
PRODUCT_PACKAGES += \ PRODUCT_PACKAGES += \
AndroidAutoStub \
GoogleCalendarSyncAdapter \ GoogleCalendarSyncAdapter \
GoogleContactsSyncAdapter \ GoogleContactsSyncAdapter \
GoogleFeedback \
GooglePartnerSetup \
GoogleServicesFramework \
PrebuiltExchange3Google \ PrebuiltExchange3Google \
com.google.android.dialer.support \ AndroidAutoStub \
com.google.android.dialer.support.xml \ GooglePartnerSetup \
d2d_cable_migration_feature.xml \ GoogleFeedback \
default-permissions-google.xml \ GoogleServicesFramework \
default-permissions-mtg.xml \ com.google.android.dialer.support
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),) 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 += \ PRODUCT_PACKAGES += \
GoogleRestore \ GoogleRestore \
Wellbeing \ Wellbeing
wellbeing.xml
endif endif
PRODUCT_SOONG_NAMESPACES += \ PRODUCT_SOONG_NAMESPACES += vendor/gapps/overlay
vendor/gapps/overlay PRODUCT_PACKAGES += GmsOverlay GmsSettingsOverlay GmsSettingsProviderOverlay GmsSetupWizardOverlay
PRODUCT_PACKAGES += \
GmsOverlay \
GmsSettingsOverlay \
GmsSettingsProviderOverlay \
GmsSetupWizardOverlay

View File

@@ -41,30 +41,4 @@
<permission name="android.permission.BLUETOOTH_ADVERTISE" fixed="false"/> <permission name="android.permission.BLUETOOTH_ADVERTISE" fixed="false"/>
</exception> </exception>
<exception
package="com.google.android.deskclock"
sha256-cert-digest="F0:FD:6C:5B:41:0F:25:CB:25:C3:B5:33:46:C8:97:2F:AE:30:F8:EE:74:11:DF:91:04:80:AD:6B:2D:60:DB:83">
<!-- Notifications -->
<permission name="android.permission.POST_NOTIFICATIONS" fixed="false"/>
</exception>
<exception
package="com.google.android.apps.tachyon"
sha256-cert-digest="7C:AA:B6:E6:BA:70:0E:0D:DC:F7:5C:CA:52:B8:C3:B1:9A:3C:7D:23:30:8F:7E:B1:77:A6:4E:B2:47:61:97:BD">
<!-- Notifications -->
<permission name="android.permission.READ_CONTACTS" fixed="false"/>
<permission name="android.permission.READ_PHONE_STATE" fixed="false"/>
<permission name="android.permission.RECORD_AUDIO" fixed="false"/>
<permission name="android.permission.WRITE_CALL_LOG" fixed="false"/>
<permission name="android.permission.WRITE_CONTACTS" fixed="false"/>
<permission name="android.permission.POST_NOTIFICATIONS" fixed="false"/>
</exception>
<exception
package="com.google.android.apps.photos"
sha256-cert-digest="3D:7A:12:23:01:9A:A3:9D:9E:A0:E3:43:6A:B7:C0:89:6B:FB:4F:B6:79:F4:DE:5F:E7:C2:3F:32:6C:8F:99:4A">
<permission name="android.permission.ACCESS_MEDIA_LOCATION" fixed="false"/>
<permission name="android.permission.READ_MEDIA_IMAGES" fixed="false"/>
<permission name="android.permission.READ_MEDIA_VIDEO" fixed="false"/>
</exception>
</exceptions> </exceptions>

View File

@@ -4,7 +4,6 @@
package="com.google.android.projection.gearhead" package="com.google.android.projection.gearhead"
sha256-cert-digest="FD:B0:0C:43:DB:DE:8B:51:CB:31:2A:A8:1D:3B:5F:A1:77:13:AD:B9:4B:28:F5:98:D7:7F:8E:B8:9D:AC:EE:DF"> sha256-cert-digest="FD:B0:0C:43:DB:DE:8B:51:CB:31:2A:A8:1D:3B:5F:A1:77:13:AD:B9:4B:28:F5:98:D7:7F:8E:B8:9D:AC:EE:DF">
<!-- Gearhead legacy --> <!-- Gearhead legacy -->
<permission name="android.permission.MODIFY_PHONE_STATE" fixed="false" />
<permission name="android.permission.READ_PHONE_STATE" fixed="false" /> <permission name="android.permission.READ_PHONE_STATE" fixed="false" />
<permission name="android.permission.CALL_PHONE" fixed="false" /> <permission name="android.permission.CALL_PHONE" fixed="false" />
<permission name="android.permission.READ_CALL_LOG" fixed="false" /> <permission name="android.permission.READ_CALL_LOG" fixed="false" />

View File

@@ -1,3 +1,3 @@
on init on init
setprop ro.com.google.gmsversion 15_202408 setprop ro.com.google.gmsversion 14_202310
setprop ro.opa.eligible_device true setprop ro.opa.eligible_device true

View File

@@ -12,11 +12,8 @@ It allows additional grants on top of privapp-permissions-platform.xml
<privapp-permissions package="com.google.android.apps.messaging"> <privapp-permissions package="com.google.android.apps.messaging">
<permission name="android.permission.CONNECTIVITY_USE_RESTRICTED_NETWORKS"/> <permission name="android.permission.CONNECTIVITY_USE_RESTRICTED_NETWORKS"/>
<permission name="android.permission.MODIFY_PHONE_STATE"/> <permission name="android.permission.MODIFY_PHONE_STATE"/>
<permission name="android.permission.QUERY_USERS"/>
<permission name="android.permission.READ_PRIVILEGED_PHONE_STATE"/> <permission name="android.permission.READ_PRIVILEGED_PHONE_STATE"/>
<permission name="android.permission.READ_PRECISE_PHONE_STATE"/> <permission name="android.permission.READ_PRECISE_PHONE_STATE"/>
<permission name="android.permission.READ_SYSTEM_GRAMMATICAL_GENDER"/>
<permission name="android.permission.SATELLITE_COMMUNICATION"/>
<permission name="android.permission.START_FOREGROUND_SERVICES_FROM_BACKGROUND"/> <permission name="android.permission.START_FOREGROUND_SERVICES_FROM_BACKGROUND"/>
<permission name="android.permission.SCHEDULE_EXACT_ALARM"/> <permission name="android.permission.SCHEDULE_EXACT_ALARM"/>
</privapp-permissions> </privapp-permissions>
@@ -67,20 +64,17 @@ It allows additional grants on top of privapp-permissions-platform.xml
<permission name="android.permission.MONITOR_DEFAULT_SMS_PACKAGE"/> <permission name="android.permission.MONITOR_DEFAULT_SMS_PACKAGE"/>
<permission name="android.permission.PACKAGE_USAGE_STATS"/> <permission name="android.permission.PACKAGE_USAGE_STATS"/>
<permission name="android.permission.READ_OEM_UNLOCK_STATE"/> <permission name="android.permission.READ_OEM_UNLOCK_STATE"/>
<permission name="android.permission.READ_SYSTEM_GRAMMATICAL_GENDER"/>
<permission name="android.permission.REQUEST_NOTIFICATION_ASSISTANT_SERVICE"/> <permission name="android.permission.REQUEST_NOTIFICATION_ASSISTANT_SERVICE"/>
<permission name="android.permission.SET_SYSTEM_AUDIO_CAPTION"/> <permission name="android.permission.SET_SYSTEM_AUDIO_CAPTION"/>
<permission name="android.permission.START_ACTIVITIES_FROM_BACKGROUND"/> <permission name="android.permission.START_ACTIVITIES_FROM_BACKGROUND"/>
<permission name="android.permission.SUBSTITUTE_NOTIFICATION_APP_NAME"/> <permission name="android.permission.SUBSTITUTE_NOTIFICATION_APP_NAME"/>
<permission name="android.permission.SYSTEM_CAMERA"/> <permission name="android.permission.SYSTEM_CAMERA"/>
<permission name="android.permission.UPDATE_DEVICE_STATS"/> <permission name="android.permission.UPDATE_DEVICE_STATS"/>
<permission name="android.permission.USE_ON_DEVICE_INTELLIGENCE"/>
<permission name="android.permission.WRITE_SECURE_SETTINGS"/> <permission name="android.permission.WRITE_SECURE_SETTINGS"/>
</privapp-permissions> </privapp-permissions>
<privapp-permissions package="com.google.android.as.oss"> <privapp-permissions package="com.google.android.as.oss">
<permission name="android.permission.READ_RESTRICTED_STATS"/> <permission name="android.permission.READ_RESTRICTED_STATS"/>
<permission name="android.permission.READ_SYSTEM_GRAMMATICAL_GENDER"/>
</privapp-permissions> </privapp-permissions>
<privapp-permissions package="com.android.vending"> <privapp-permissions package="com.android.vending">
@@ -107,7 +101,6 @@ It allows additional grants on top of privapp-permissions-platform.xml
<permission name="android.permission.PACKAGE_VERIFICATION_AGENT"/> <permission name="android.permission.PACKAGE_VERIFICATION_AGENT"/>
<permission name="android.permission.READ_PRIVILEGED_PHONE_STATE"/> <permission name="android.permission.READ_PRIVILEGED_PHONE_STATE"/>
<permission name="android.permission.READ_RUNTIME_PROFILES"/> <permission name="android.permission.READ_RUNTIME_PROFILES"/>
<permission name="android.permission.READ_SYSTEM_GRAMMATICAL_GENDER"/>
<permission name="android.permission.REAL_GET_TASKS"/> <permission name="android.permission.REAL_GET_TASKS"/>
<permission name="android.permission.REBOOT"/> <permission name="android.permission.REBOOT"/>
<permission name="android.permission.SEND_DEVICE_CUSTOMIZATION_READY"/> <permission name="android.permission.SEND_DEVICE_CUSTOMIZATION_READY"/>
@@ -137,13 +130,7 @@ It allows additional grants on top of privapp-permissions-platform.xml
<privapp-permissions package="com.google.android.apps.carrier.carrierwifi"> <privapp-permissions package="com.google.android.apps.carrier.carrierwifi">
<permission name="android.permission.READ_PRIVILEGED_PHONE_STATE"/> <permission name="android.permission.READ_PRIVILEGED_PHONE_STATE"/>
<permission name="android.permission.MODIFY_PHONE_STATE"/>
<permission name="android.permission.NETWORK_CARRIER_PROVISIONING"/> <permission name="android.permission.NETWORK_CARRIER_PROVISIONING"/>
<permission name="android.permission.WIFI_UPDATE_USABILITY_STATS_SCORE"/>
<permission name="android.permission.INTERACT_ACROSS_USERS"/>
<permission name="android.permission.LOCATION_HARDWARE"/>
<permission name="android.permission.CHANGE_COMPONENT_ENABLED_STATE"/>
<permission name="android.permission.MANAGE_WIFI_NETWORK_SELECTION"/>
</privapp-permissions> </privapp-permissions>
<privapp-permissions package="com.google.android.apps.gcs"> <privapp-permissions package="com.google.android.apps.gcs">
@@ -158,7 +145,6 @@ It allows additional grants on top of privapp-permissions-platform.xml
</privapp-permissions> </privapp-permissions>
<privapp-permissions package="com.google.android.apps.searchlite"> <privapp-permissions package="com.google.android.apps.searchlite">
<permission name="android.permission.CALL_PRIVILEGED"/>
<permission name="android.permission.MEDIA_CONTENT_CONTROL"/> <permission name="android.permission.MEDIA_CONTENT_CONTROL"/>
<permission name="android.permission.SCHEDULE_EXACT_ALARM"/> <permission name="android.permission.SCHEDULE_EXACT_ALARM"/>
</privapp-permissions> </privapp-permissions>
@@ -167,7 +153,6 @@ It allows additional grants on top of privapp-permissions-platform.xml
<permission name="android.permission.INTERACT_ACROSS_USERS"/> <permission name="android.permission.INTERACT_ACROSS_USERS"/>
<permission name="android.permission.MANAGE_USERS"/> <permission name="android.permission.MANAGE_USERS"/>
<permission name="android.permission.START_FOREGROUND_SERVICES_FROM_BACKGROUND"/> <permission name="android.permission.START_FOREGROUND_SERVICES_FROM_BACKGROUND"/>
<permission name="android.permission.WRITE_SECURE_SETTINGS"/>
</privapp-permissions> </privapp-permissions>
<privapp-permissions package="com.google.android.apps.turbo"> <privapp-permissions package="com.google.android.apps.turbo">
@@ -225,7 +210,6 @@ It allows additional grants on top of privapp-permissions-platform.xml
<permission name="android.permission.BACKUP"/> <permission name="android.permission.BACKUP"/>
<permission name="android.permission.BLUETOOTH_PRIVILEGED"/> <permission name="android.permission.BLUETOOTH_PRIVILEGED"/>
<permission name="android.permission.BROADCAST_CLOSE_SYSTEM_DIALOGS"/> <permission name="android.permission.BROADCAST_CLOSE_SYSTEM_DIALOGS"/>
<permission name="android.permission.CALL_AUDIO_INTERCEPTION"/>
<permission name="android.permission.CALL_PRIVILEGED"/> <permission name="android.permission.CALL_PRIVILEGED"/>
<permission name="android.permission.CAPTURE_AUDIO_HOTWORD"/> <permission name="android.permission.CAPTURE_AUDIO_HOTWORD"/>
<permission name="android.permission.CAPTURE_AUDIO_OUTPUT"/> <permission name="android.permission.CAPTURE_AUDIO_OUTPUT"/>
@@ -233,7 +217,6 @@ It allows additional grants on top of privapp-permissions-platform.xml
<permission name="android.permission.CHANGE_DEVICE_IDLE_TEMP_WHITELIST"/> <permission name="android.permission.CHANGE_DEVICE_IDLE_TEMP_WHITELIST"/>
<permission name="android.permission.CHECK_REMOTE_LOCKSCREEN"/> <permission name="android.permission.CHECK_REMOTE_LOCKSCREEN"/>
<permission name="android.permission.COMPANION_APPROVE_WIFI_CONNECTIONS"/> <permission name="android.permission.COMPANION_APPROVE_WIFI_CONNECTIONS"/>
<permission name="android.permission.CONFIGURE_FACTORY_RESET_PROTECTION"/>
<permission name="android.permission.CONNECTIVITY_USE_RESTRICTED_NETWORKS"/> <permission name="android.permission.CONNECTIVITY_USE_RESTRICTED_NETWORKS"/>
<permission name="android.permission.CONTROL_DISPLAY_SATURATION"/> <permission name="android.permission.CONTROL_DISPLAY_SATURATION"/>
<permission name="android.permission.CONTROL_INCALL_EXPERIENCE"/> <permission name="android.permission.CONTROL_INCALL_EXPERIENCE"/>
@@ -241,8 +224,6 @@ It allows additional grants on top of privapp-permissions-platform.xml
<permission name="android.permission.DISPATCH_PROVISIONING_MESSAGE"/> <permission name="android.permission.DISPATCH_PROVISIONING_MESSAGE"/>
<permission name="android.permission.DOMAIN_VERIFICATION_AGENT"/> <permission name="android.permission.DOMAIN_VERIFICATION_AGENT"/>
<permission name="android.permission.DUMP"/> <permission name="android.permission.DUMP"/>
<permission name="android.permission.EMERGENCY_INSTALL_PACKAGES"/>
<permission name="android.permission.FORCE_STOP_PACKAGES"/>
<permission name="android.permission.GET_APP_OPS_STATS"/> <permission name="android.permission.GET_APP_OPS_STATS"/>
<permission name="android.permission.INSTALL_LOCATION_TIME_ZONE_PROVIDER_SERVICE"/> <permission name="android.permission.INSTALL_LOCATION_TIME_ZONE_PROVIDER_SERVICE"/>
<permission name="android.permission.INTENT_FILTER_VERIFICATION_AGENT"/> <permission name="android.permission.INTENT_FILTER_VERIFICATION_AGENT"/>
@@ -275,18 +256,15 @@ It allows additional grants on top of privapp-permissions-platform.xml
<permission name="android.permission.OBSERVE_GRANT_REVOKE_PERMISSIONS"/> <permission name="android.permission.OBSERVE_GRANT_REVOKE_PERMISSIONS"/>
<permission name="android.permission.OVERRIDE_WIFI_CONFIG"/> <permission name="android.permission.OVERRIDE_WIFI_CONFIG"/>
<permission name="android.permission.PACKAGE_USAGE_STATS"/> <permission name="android.permission.PACKAGE_USAGE_STATS"/>
<permission name="android.permission.PREPARE_FACTORY_RESET"/>
<permission name="android.permission.PROVIDE_DEFAULT_ENABLED_CREDENTIAL_SERVICE"/> <permission name="android.permission.PROVIDE_DEFAULT_ENABLED_CREDENTIAL_SERVICE"/>
<permission name="android.permission.PROVIDE_REMOTE_CREDENTIALS"/> <permission name="android.permission.PROVIDE_REMOTE_CREDENTIALS"/>
<permission name="android.permission.PROVIDE_RESOLVER_RANKER_SERVICE"/> <permission name="android.permission.PROVIDE_RESOLVER_RANKER_SERVICE"/>
<permission name="android.permission.PROVIDE_TRUST_AGENT"/> <permission name="android.permission.PROVIDE_TRUST_AGENT"/>
<permission name="android.permission.READ_DREAM_STATE"/> <permission name="android.permission.READ_DREAM_STATE"/>
<permission name="android.permission.READ_DROPBOX_DATA"/>
<permission name="android.permission.READ_LOGS"/> <permission name="android.permission.READ_LOGS"/>
<permission name="android.permission.READ_NETWORK_USAGE_HISTORY"/> <permission name="android.permission.READ_NETWORK_USAGE_HISTORY"/>
<permission name="android.permission.READ_OEM_UNLOCK_STATE"/> <permission name="android.permission.READ_OEM_UNLOCK_STATE"/>
<permission name="android.permission.READ_PRIVILEGED_PHONE_STATE"/> <permission name="android.permission.READ_PRIVILEGED_PHONE_STATE"/>
<permission name="android.permission.READ_SYSTEM_GRAMMATICAL_GENDER"/>
<permission name="android.permission.READ_WIFI_CREDENTIAL"/> <permission name="android.permission.READ_WIFI_CREDENTIAL"/>
<permission name="android.permission.REAL_GET_TASKS"/> <permission name="android.permission.REAL_GET_TASKS"/>
<permission name="android.permission.REBOOT"/> <permission name="android.permission.REBOOT"/>
@@ -298,13 +276,10 @@ It allows additional grants on top of privapp-permissions-platform.xml
<permission name="android.permission.REQUEST_COMPANION_PROFILE_COMPUTER"/> <permission name="android.permission.REQUEST_COMPANION_PROFILE_COMPUTER"/>
<permission name="android.permission.REQUEST_COMPANION_SELF_MANAGED"/> <permission name="android.permission.REQUEST_COMPANION_SELF_MANAGED"/>
<permission name="android.permission.RESET_PASSWORD"/> <permission name="android.permission.RESET_PASSWORD"/>
<permission name="android.permission.SATELLITE_COMMUNICATION"/>
<permission name="android.permission.SCHEDULE_PRIORITIZED_ALARM"/> <permission name="android.permission.SCHEDULE_PRIORITIZED_ALARM"/>
<permission name="android.permission.SCORE_NETWORKS"/> <permission name="android.permission.SCORE_NETWORKS"/>
<permission name="android.permission.SEND_SAFETY_CENTER_UPDATE"/> <permission name="android.permission.SEND_SAFETY_CENTER_UPDATE"/>
<permission name="android.permission.SEND_SMS_NO_CONFIRMATION"/> <permission name="android.permission.SEND_SMS_NO_CONFIRMATION"/>
<permission name="android.permission.SET_BIOMETRIC_DIALOG_ADVANCED"/>
<permission name="android.permission.SET_LOW_POWER_STANDBY_PORTS"/>
<permission name="android.permission.SET_TIME"/> <permission name="android.permission.SET_TIME"/>
<permission name="android.permission.SET_TIME_ZONE"/> <permission name="android.permission.SET_TIME_ZONE"/>
<permission name="android.permission.START_ACTIVITIES_FROM_BACKGROUND"/> <permission name="android.permission.START_ACTIVITIES_FROM_BACKGROUND"/>
@@ -313,7 +288,6 @@ It allows additional grants on top of privapp-permissions-platform.xml
<permission name="android.permission.SUBSTITUTE_NOTIFICATION_APP_NAME"/> <permission name="android.permission.SUBSTITUTE_NOTIFICATION_APP_NAME"/>
<permission name="android.permission.SUBSTITUTE_SHARE_TARGET_APP_NAME_AND_ICON"/> <permission name="android.permission.SUBSTITUTE_SHARE_TARGET_APP_NAME_AND_ICON"/>
<permission name="android.permission.TETHER_PRIVILEGED"/> <permission name="android.permission.TETHER_PRIVILEGED"/>
<permission name="android.permission.THREAD_NETWORK_PRIVILEGED"/>
<permission name="android.permission.TURN_SCREEN_ON"/> <permission name="android.permission.TURN_SCREEN_ON"/>
<permission name="android.permission.UPDATE_APP_OPS_STATS"/> <permission name="android.permission.UPDATE_APP_OPS_STATS"/>
<permission name="android.permission.UPDATE_DEVICE_STATS"/> <permission name="android.permission.UPDATE_DEVICE_STATS"/>
@@ -323,9 +297,6 @@ It allows additional grants on top of privapp-permissions-platform.xml
<permission name="android.permission.WRITE_EMBEDDED_SUBSCRIPTIONS"/> <permission name="android.permission.WRITE_EMBEDDED_SUBSCRIPTIONS"/>
<permission name="android.permission.WRITE_GSERVICES"/> <permission name="android.permission.WRITE_GSERVICES"/>
<permission name="android.permission.WRITE_SECURE_SETTINGS"/> <permission name="android.permission.WRITE_SECURE_SETTINGS"/>
<permission name="android.permission.WRITE_VERIFICATION_STATE_E2EE_CONTACT_KEYS"/>
<permission name="android.permission.THREAD_NETWORK_PRIVILEGED"/>
<permission name="android.permission.READ_DROPBOX_DATA"/>
</privapp-permissions> </privapp-permissions>
<privapp-permissions package="com.google.android.gms.supervision"> <privapp-permissions package="com.google.android.gms.supervision">
@@ -387,7 +358,6 @@ It allows additional grants on top of privapp-permissions-platform.xml
<permission name="android.permission.MEDIA_CONTENT_CONTROL"/> <permission name="android.permission.MEDIA_CONTENT_CONTROL"/>
<permission name="android.permission.PACKAGE_USAGE_STATS"/> <permission name="android.permission.PACKAGE_USAGE_STATS"/>
<permission name="android.permission.REAL_GET_TASKS"/> <permission name="android.permission.REAL_GET_TASKS"/>
<permission name="android.permission.RECEIVE_SANDBOX_TRIGGER_AUDIO"/>
<permission name="android.permission.SCHEDULE_EXACT_ALARM"/> <permission name="android.permission.SCHEDULE_EXACT_ALARM"/>
<permission name="android.permission.SET_MEDIA_KEY_LISTENER"/> <permission name="android.permission.SET_MEDIA_KEY_LISTENER"/>
<permission name="android.permission.SET_VOLUME_KEY_LONG_PRESS_LISTENER"/> <permission name="android.permission.SET_VOLUME_KEY_LONG_PRESS_LISTENER"/>
@@ -396,7 +366,6 @@ It allows additional grants on top of privapp-permissions-platform.xml
<permission name="android.permission.STOP_APP_SWITCHES"/> <permission name="android.permission.STOP_APP_SWITCHES"/>
<permission name="android.permission.SUBSTITUTE_SHARE_TARGET_APP_NAME_AND_ICON"/> <permission name="android.permission.SUBSTITUTE_SHARE_TARGET_APP_NAME_AND_ICON"/>
<permission name="android.permission.WRITE_APN_SETTINGS"/> <permission name="android.permission.WRITE_APN_SETTINGS"/>
<permission name="android.permission.RECEIVE_SANDBOX_TRIGGER_AUDIO"/>
</privapp-permissions> </privapp-permissions>
<privapp-permissions package="com.android.hotwordenrollment.okgoogle"> <privapp-permissions package="com.android.hotwordenrollment.okgoogle">

View File

@@ -1,11 +1,6 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<permissions> <permissions>
<privapp-permissions package="com.google.android.projection.gearhead">
<permission name="android.permission.MODIFY_PHONE_STATE"/>
</privapp-permissions>
<privapp-permissions package="com.google.android.googlequicksearchbox"> <privapp-permissions package="com.google.android.googlequicksearchbox">
<permission name="android.permission.CAPTURE_MEDIA_OUTPUT"/>
<permission name="android.permission.QUERY_USERS"/> <permission name="android.permission.QUERY_USERS"/>
<permission name="android.permission.READ_DREAM_STATE"/> <permission name="android.permission.READ_DREAM_STATE"/>
<permission name="android.permission.WRITE_DREAM_STATE"/> <permission name="android.permission.WRITE_DREAM_STATE"/>

View File

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

52
extract-files.sh Executable file
View File

@@ -0,0 +1,52 @@
#!/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

@@ -8,8 +8,8 @@ packageInfo:
renameManifestPackage: null renameManifestPackage: null
resourcesAreCompressed: false resourcesAreCompressed: false
sdkInfo: sdkInfo:
minSdkVersion: '35' minSdkVersion: '34'
targetSdkVersion: '35' targetSdkVersion: '34'
sharedLibrary: false sharedLibrary: false
sparseResources: true sparseResources: true
unknownFiles: {} unknownFiles: {}

View File

@@ -1,5 +1,52 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <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 <!-- The set of system packages on device that are queryable by any app regardless of the
contents of its manifest. --> contents of its manifest. -->
<string-array name="config_forceQueryablePackages" translatable="false"> <string-array name="config_forceQueryablePackages" translatable="false">
@@ -13,84 +60,19 @@
<!-- The name of the package that will hold the assistant role by default. --> <!-- The name of the package that will hold the assistant role by default. -->
<string name="config_defaultAssistant" translatable="false">com.google.android.googlequicksearchbox</string> <string name="config_defaultAssistant" translatable="false">com.google.android.googlequicksearchbox</string>
<!-- The names of the packages that will hold the automotive projection role. --> <!-- Component name that accepts settings intents for saved devices.
<string name="config_systemAutomotiveProjection" translatable="false">com.google.android.projection.gearhead</string> Used by FastPairSettingsFragment. -->
<string translatable="false" name="config_defaultNearbyFastPairSettingsDevicesComponent">com.google.android.gms/com.google.android.gms.nearby.discovery.devices.SavedDevicesSettingsActivity</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. --> <!-- The name of the package that will hold the game service role. -->
<string name="config_systemGameService" translatable="false">com.google.android.gms</string> <string name="config_systemGameService" translatable="false">com.google.android.gms</string>
<!-- The name of the package that will hold the device management role --> <!-- The name of the package that will hold the device management role and its certificate's SHA256. -->
<string name="config_devicePolicyManagement" translatable="false">com.google.android.apps.work.clouddpc:23962F4B43B9857638EA66F4D419518EAE282491ACDA4B94707BD59003C45E58</string> <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. --> <!-- The name of the package that will handle updating the device management role. -->
<string name="config_devicePolicyManagementUpdater" translatable="false">com.google.android.gms</string> <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 --> <!-- Flag indicating which package name can access the persistent data partition -->
<string name="config_persistentDataPackageName" translatable="false">com.google.android.gms</string> <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> </resources>

View File

@@ -8,8 +8,8 @@ packageInfo:
renameManifestPackage: null renameManifestPackage: null
resourcesAreCompressed: false resourcesAreCompressed: false
sdkInfo: sdkInfo:
minSdkVersion: '35' minSdkVersion: '34'
targetSdkVersion: '35' targetSdkVersion: '34'
sharedLibrary: false sharedLibrary: false
sparseResources: true sparseResources: true
unknownFiles: {} unknownFiles: {}

View File

@@ -1,14 +1,14 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<!-- 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. --> <!-- 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> <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. --> <!-- 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> <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>
</resources> </resources>

View File

@@ -8,8 +8,8 @@ packageInfo:
renameManifestPackage: null renameManifestPackage: null
resourcesAreCompressed: false resourcesAreCompressed: false
sdkInfo: sdkInfo:
minSdkVersion: '35' minSdkVersion: '34'
targetSdkVersion: '35' targetSdkVersion: '34'
sharedLibrary: false sharedLibrary: false
sparseResources: true sparseResources: true
unknownFiles: {} unknownFiles: {}

View File

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

View File

@@ -8,8 +8,8 @@ packageInfo:
renameManifestPackage: null renameManifestPackage: null
resourcesAreCompressed: false resourcesAreCompressed: false
sdkInfo: sdkInfo:
minSdkVersion: '35' minSdkVersion: '34'
targetSdkVersion: '35' targetSdkVersion: '34'
sharedLibrary: false sharedLibrary: false
sparseResources: true sparseResources: true
unknownFiles: {} unknownFiles: {}

View File

@@ -1,6 +1,7 @@
product/app/MarkupGoogle_v2/MarkupGoogle_v2.apk;PRESIGNED|474ca0e1fb0e6340b647142b3f493055fcb3990f product/app/MarkupGoogle/MarkupGoogle.apk;PRESIGNED|ed68878a8a06ca8c06dbc98441a657168f1b378b
product/app/SpeechServicesByGoogle/SpeechServicesByGoogle.apk;PRESIGNED product/app/SpeechServicesByGoogle/SpeechServicesByGoogle.apk;PRESIGNED
product/app/talkback/talkback.apk;PRESIGNED product/app/talkback/talkback.apk;PRESIGNED
product/priv-app/Velvet/Velvet.apk;PRESIGNED product/priv-app/Velvet/Velvet.apk;PRESIGNED
product/priv-app/VelvetTitan/VelvetTitan.apk;OVERRIDES=Velvet;PRESIGNED|0251d61f74f0557ccfd0e0424bed31e5828ea4b5
system_ext/priv-app/SetupWizard/SetupWizard.apk;OVERRIDES=Provision;PRESIGNED system_ext/priv-app/SetupWizard/SetupWizard.apk;OVERRIDES=Provision;PRESIGNED

View File

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

View File

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

View File

@@ -14,7 +14,7 @@ product/etc/init/gapps.rc|1b9e076965fe08a03cf90fed0e96f2aa4ac90c0e
product/etc/permissions/com.google.android.dialer.support.xml product/etc/permissions/com.google.android.dialer.support.xml
product/etc/permissions/privapp-permissions-google-product.xml product/etc/permissions/privapp-permissions-google-product.xml
product/etc/permissions/privapp-permissions-mtg.xml|b8bcdbc95f03e6c3e50a015c092d5a4b3fc878d7 product/etc/permissions/privapp-permissions-mtg.xml|926d8fbcfbf4711a4bc96777595b70b874ef7334
product/etc/security/fsverity/gms_fsverity_cert.der product/etc/security/fsverity/gms_fsverity_cert.der
@@ -22,7 +22,6 @@ product/etc/sysconfig/d2d_cable_migration_feature.xml
system/etc/sysconfig/google-hiddenapi-package-allowlist.xml:product/etc/sysconfig/google-hiddenapi-package-allowlist.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.xml
product/etc/sysconfig/google_build.xml|2547949ac40c1e921ae6e92de6a36f2a3a70802c 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/GoogleFeedback/GoogleFeedback.apk;PRESIGNED
system_ext/priv-app/GoogleServicesFramework/GoogleServicesFramework.apk;PRESIGNED system_ext/priv-app/GoogleServicesFramework/GoogleServicesFramework.apk;PRESIGNED

View File

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

View File

@@ -1,341 +0,0 @@
#!/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",
],
),
]
)

100
setup-makefiles.sh Executable file
View File

@@ -0,0 +1,100 @@
#!/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,65 +1,84 @@
// Automatically generated file. DO NOT MODIFY // Automatically generated file. DO NOT MODIFY
//
// This file is generated by device/gapps/x86_64/setup-makefiles.sh
soong_namespace { 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 { cc_prebuilt_library_shared {
name: "libjni_latinimegoogle", name: "libjni_latinimegoogle",
srcs: ["proprietary/product/lib64/libjni_latinimegoogle.so"], owner: "gapps",
prefer: true, strip: {
product_specific: true, 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,
} }
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,
}

9
x86_64/Android.mk Normal file
View File

@@ -0,0 +1,9 @@
# 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,2 +1,4 @@
# Automatically generated file. DO NOT MODIFY # Automatically generated file. DO NOT MODIFY
# #
# This file is generated by device/gapps/x86_64/setup-makefiles.sh

View File

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