Compare commits
22 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
af160b7fba | ||
|
|
8332923349 | ||
|
|
00022c05b4 | ||
|
|
3b941f287c | ||
|
|
c25fa8a148 | ||
|
|
a5e932d500 | ||
|
|
9038094a04 | ||
|
|
5e7c36d726 | ||
|
|
bbdc14d4e5 | ||
|
|
4d61f18ca9 | ||
|
|
dd06cee51d | ||
|
|
aeb20fc793 | ||
|
|
c418218980 | ||
|
|
96b642a142 | ||
|
|
4e1b2b7e5b | ||
|
|
3f4de4fa26 | ||
|
|
0c01bb2e74 | ||
|
|
e9be20e1ef | ||
|
|
2dd4be525b | ||
|
|
6b2269b7c8 | ||
|
|
8661048075 | ||
|
|
e74e9c43e8 |
@@ -1,28 +1,7 @@
|
||||
// Automatically generated file. DO NOT MODIFY
|
||||
//
|
||||
// This file is generated by device/gapps/arm/setup-makefiles.sh
|
||||
|
||||
soong_namespace {
|
||||
imports: [
|
||||
"vendor/gapps/common",
|
||||
],
|
||||
}
|
||||
|
||||
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,
|
||||
imports: ["vendor/gapps/common"],
|
||||
}
|
||||
|
||||
android_app_import {
|
||||
@@ -52,21 +31,23 @@ android_app_import {
|
||||
}
|
||||
|
||||
android_app_import {
|
||||
name: "SpeechServicesByGoogle",
|
||||
name: "SetupWizard",
|
||||
owner: "gapps",
|
||||
apk: "proprietary/product/app/SpeechServicesByGoogle/SpeechServicesByGoogle.apk",
|
||||
apk: "proprietary/system_ext/priv-app/SetupWizard/SetupWizard.apk",
|
||||
overrides: ["Provision"],
|
||||
preprocessed: true,
|
||||
presigned: true,
|
||||
dex_preopt: {
|
||||
enabled: false,
|
||||
},
|
||||
product_specific: true,
|
||||
privileged: true,
|
||||
system_ext_specific: true,
|
||||
}
|
||||
|
||||
android_app_import {
|
||||
name: "talkback",
|
||||
name: "SpeechServicesByGoogle",
|
||||
owner: "gapps",
|
||||
apk: "proprietary/product/app/talkback/talkback.apk",
|
||||
apk: "proprietary/product/app/SpeechServicesByGoogle/SpeechServicesByGoogle.apk",
|
||||
preprocessed: true,
|
||||
presigned: true,
|
||||
dex_preopt: {
|
||||
@@ -89,16 +70,20 @@ android_app_import {
|
||||
}
|
||||
|
||||
android_app_import {
|
||||
name: "SetupWizard",
|
||||
name: "talkback",
|
||||
owner: "gapps",
|
||||
apk: "proprietary/system_ext/priv-app/SetupWizard/SetupWizard.apk",
|
||||
overrides: ["Provision"],
|
||||
apk: "proprietary/product/app/talkback/talkback.apk",
|
||||
preprocessed: true,
|
||||
presigned: true,
|
||||
dex_preopt: {
|
||||
enabled: false,
|
||||
},
|
||||
privileged: true,
|
||||
system_ext_specific: true,
|
||||
product_specific: true,
|
||||
}
|
||||
|
||||
cc_prebuilt_library_shared {
|
||||
name: "libjni_latinimegoogle",
|
||||
srcs: ["proprietary/product/lib/libjni_latinimegoogle.so"],
|
||||
prefer: true,
|
||||
product_specific: true,
|
||||
}
|
||||
|
||||
@@ -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
|
||||
@@ -1,4 +1,2 @@
|
||||
# Automatically generated file. DO NOT MODIFY
|
||||
#
|
||||
# This file is generated by device/gapps/arm/setup-makefiles.sh
|
||||
|
||||
|
||||
@@ -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)
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -1,32 +1,7 @@
|
||||
// Automatically generated file. DO NOT MODIFY
|
||||
//
|
||||
// This file is generated by device/gapps/arm64/setup-makefiles.sh
|
||||
|
||||
soong_namespace {
|
||||
imports: [
|
||||
"vendor/gapps/common",
|
||||
],
|
||||
}
|
||||
|
||||
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,
|
||||
imports: ["vendor/gapps/common"],
|
||||
}
|
||||
|
||||
android_app_import {
|
||||
@@ -42,6 +17,18 @@ android_app_import {
|
||||
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",
|
||||
@@ -56,15 +43,17 @@ android_app_import {
|
||||
}
|
||||
|
||||
android_app_import {
|
||||
name: "MarkupGoogle",
|
||||
name: "SetupWizard",
|
||||
owner: "gapps",
|
||||
apk: "proprietary/product/app/MarkupGoogle/MarkupGoogle.apk",
|
||||
apk: "proprietary/system_ext/priv-app/SetupWizard/SetupWizard.apk",
|
||||
overrides: ["Provision"],
|
||||
preprocessed: true,
|
||||
presigned: true,
|
||||
dex_preopt: {
|
||||
enabled: false,
|
||||
},
|
||||
product_specific: true,
|
||||
privileged: true,
|
||||
system_ext_specific: true,
|
||||
}
|
||||
|
||||
android_app_import {
|
||||
@@ -79,18 +68,6 @@ android_app_import {
|
||||
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",
|
||||
@@ -119,16 +96,20 @@ android_app_import {
|
||||
}
|
||||
|
||||
android_app_import {
|
||||
name: "SetupWizard",
|
||||
name: "talkback",
|
||||
owner: "gapps",
|
||||
apk: "proprietary/system_ext/priv-app/SetupWizard/SetupWizard.apk",
|
||||
overrides: ["Provision"],
|
||||
apk: "proprietary/product/app/talkback/talkback.apk",
|
||||
preprocessed: true,
|
||||
presigned: true,
|
||||
dex_preopt: {
|
||||
enabled: false,
|
||||
},
|
||||
privileged: true,
|
||||
system_ext_specific: true,
|
||||
product_specific: true,
|
||||
}
|
||||
|
||||
cc_prebuilt_library_shared {
|
||||
name: "libjni_latinimegoogle",
|
||||
srcs: ["proprietary/product/lib64/libjni_latinimegoogle.so"],
|
||||
prefer: true,
|
||||
product_specific: true,
|
||||
}
|
||||
|
||||
@@ -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
|
||||
@@ -1,4 +1,2 @@
|
||||
# Automatically generated file. DO NOT MODIFY
|
||||
#
|
||||
# This file is generated by device/gapps/arm64/setup-makefiles.sh
|
||||
|
||||
|
||||
@@ -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 \
|
||||
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)
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -8,8 +8,8 @@
|
||||
#
|
||||
DATE=$(date -u +%Y%m%d_%H%M%S)
|
||||
export GAPPS_TOP=$(realpath .)
|
||||
ANDROIDV=14.0.0
|
||||
SDKV=34
|
||||
ANDROIDV=15.0.0
|
||||
SDKV=35
|
||||
GARCH=$1
|
||||
CPUARCH=$GARCH
|
||||
[ ! -z "$2" ] && CPUARCH=$2
|
||||
@@ -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
|
||||
|
||||
@@ -107,7 +107,7 @@ compute_apps_size() {
|
||||
remove_big_optional_apps() {
|
||||
ui_print "Low resource device detected, removing large extras"
|
||||
rm -rf product/app/GoogleTTS
|
||||
rm -rf product/app/MarkupGoogle
|
||||
rm -rf product/app/MarkupGoogle_v2
|
||||
rm -rf product/app/SpeechServicesByGoogle
|
||||
rm -rf product/app/talkback
|
||||
rm -rf product/priv-app/GoogleRestore
|
||||
|
||||
@@ -2,5 +2,4 @@ FROM ubuntu:latest
|
||||
MAINTAINER LuK1337 <priv.luk@gmail.com>
|
||||
|
||||
RUN apt update
|
||||
RUN apt -y install aapt python3 python3-pip
|
||||
RUN pip install parse requests
|
||||
RUN apt -y install aapt python3 python3-parse python3-requests
|
||||
|
||||
@@ -37,7 +37,7 @@ os.chdir(sys.path[0])
|
||||
|
||||
# Definitions for privileged permissions
|
||||
ANDROID_MANIFEST_XML = \
|
||||
'https://raw.githubusercontent.com/LineageOS/android_frameworks_base/lineage-21.0/core/res/AndroidManifest.xml'
|
||||
'https://raw.githubusercontent.com/LineageOS/android_frameworks_base/lineage-22.0/core/res/AndroidManifest.xml'
|
||||
ANDROID_XML_NS = '{http://schemas.android.com/apk/res/android}'
|
||||
privileged_permissions = set()
|
||||
privileged_permission_mask = {'privileged', 'signature'}
|
||||
@@ -94,7 +94,7 @@ for partition in partitions:
|
||||
|
||||
# Definitions for parsing APKs
|
||||
GLOB_APK_STR = '../*/proprietary/{}/priv-app/*/*.apk'
|
||||
AAPT_CMD = ['aapt', 'd', 'permissions']
|
||||
AAPT_CMD = ['aapt2', 'd', 'permissions']
|
||||
|
||||
# Extract requested privileged permissions from all priv-app APKs
|
||||
for partition in partitions:
|
||||
@@ -103,8 +103,7 @@ for partition in partitions:
|
||||
# Loop over all the APKs in the partition we want
|
||||
for apk in glob(GLOB_APK_STR.format(partition)):
|
||||
# Run 'aapt d permissions' on APK
|
||||
aapt_output = subprocess.check_output(AAPT_CMD + [apk],
|
||||
stderr=subprocess.STDOUT).decode(encoding='UTF-8')
|
||||
aapt_output = subprocess.check_output(AAPT_CMD + [apk]).decode(encoding='UTF-8')
|
||||
lines = aapt_output.splitlines()
|
||||
# Extract package name from the output
|
||||
# Output looks like:
|
||||
|
||||
@@ -1,10 +1,19 @@
|
||||
// Automatically generated file. DO NOT MODIFY
|
||||
//
|
||||
// This file is generated by device/gapps/common/setup-makefiles.sh
|
||||
|
||||
soong_namespace {
|
||||
imports: [
|
||||
],
|
||||
}
|
||||
|
||||
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,
|
||||
}
|
||||
|
||||
android_app_import {
|
||||
@@ -31,44 +40,6 @@ android_app_import {
|
||||
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,
|
||||
}
|
||||
|
||||
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,
|
||||
}
|
||||
|
||||
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,
|
||||
}
|
||||
|
||||
android_app_import {
|
||||
name: "GoogleFeedback",
|
||||
owner: "gapps",
|
||||
@@ -83,22 +54,15 @@ android_app_import {
|
||||
}
|
||||
|
||||
android_app_import {
|
||||
name: "GoogleServicesFramework",
|
||||
name: "GooglePartnerSetup",
|
||||
owner: "gapps",
|
||||
apk: "proprietary/system_ext/priv-app/GoogleServicesFramework/GoogleServicesFramework.apk",
|
||||
apk: "proprietary/product/priv-app/GooglePartnerSetup/GooglePartnerSetup.apk",
|
||||
preprocessed: true,
|
||||
presigned: true,
|
||||
dex_preopt: {
|
||||
enabled: false,
|
||||
},
|
||||
privileged: true,
|
||||
system_ext_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,
|
||||
}
|
||||
|
||||
@@ -115,6 +79,31 @@ android_app_import {
|
||||
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,
|
||||
}
|
||||
|
||||
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",
|
||||
@@ -128,3 +117,121 @@ android_app_import {
|
||||
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,
|
||||
}
|
||||
|
||||
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,
|
||||
}
|
||||
|
||||
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,
|
||||
}
|
||||
|
||||
@@ -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
|
||||
@@ -1,4 +1,2 @@
|
||||
# Automatically generated file. DO NOT MODIFY
|
||||
#
|
||||
# This file is generated by device/gapps/common/setup-makefiles.sh
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
Binary file not shown.
@@ -41,4 +41,30 @@
|
||||
<permission name="android.permission.BLUETOOTH_ADVERTISE" fixed="false"/>
|
||||
</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>
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
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">
|
||||
<!-- Gearhead legacy -->
|
||||
<permission name="android.permission.MODIFY_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.READ_CALL_LOG" fixed="false" />
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
on init
|
||||
setprop ro.com.google.gmsversion 14_202310
|
||||
setprop ro.com.google.gmsversion 15_202408
|
||||
setprop ro.opa.eligible_device true
|
||||
|
||||
@@ -12,8 +12,11 @@ It allows additional grants on top of privapp-permissions-platform.xml
|
||||
<privapp-permissions package="com.google.android.apps.messaging">
|
||||
<permission name="android.permission.CONNECTIVITY_USE_RESTRICTED_NETWORKS"/>
|
||||
<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_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.SCHEDULE_EXACT_ALARM"/>
|
||||
</privapp-permissions>
|
||||
@@ -64,17 +67,20 @@ It allows additional grants on top of privapp-permissions-platform.xml
|
||||
<permission name="android.permission.MONITOR_DEFAULT_SMS_PACKAGE"/>
|
||||
<permission name="android.permission.PACKAGE_USAGE_STATS"/>
|
||||
<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.SET_SYSTEM_AUDIO_CAPTION"/>
|
||||
<permission name="android.permission.START_ACTIVITIES_FROM_BACKGROUND"/>
|
||||
<permission name="android.permission.SUBSTITUTE_NOTIFICATION_APP_NAME"/>
|
||||
<permission name="android.permission.SYSTEM_CAMERA"/>
|
||||
<permission name="android.permission.UPDATE_DEVICE_STATS"/>
|
||||
<permission name="android.permission.USE_ON_DEVICE_INTELLIGENCE"/>
|
||||
<permission name="android.permission.WRITE_SECURE_SETTINGS"/>
|
||||
</privapp-permissions>
|
||||
|
||||
<privapp-permissions package="com.google.android.as.oss">
|
||||
<permission name="android.permission.READ_RESTRICTED_STATS"/>
|
||||
<permission name="android.permission.READ_SYSTEM_GRAMMATICAL_GENDER"/>
|
||||
</privapp-permissions>
|
||||
|
||||
<privapp-permissions package="com.android.vending">
|
||||
@@ -101,6 +107,7 @@ It allows additional grants on top of privapp-permissions-platform.xml
|
||||
<permission name="android.permission.PACKAGE_VERIFICATION_AGENT"/>
|
||||
<permission name="android.permission.READ_PRIVILEGED_PHONE_STATE"/>
|
||||
<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.REBOOT"/>
|
||||
<permission name="android.permission.SEND_DEVICE_CUSTOMIZATION_READY"/>
|
||||
@@ -130,7 +137,13 @@ It allows additional grants on top of privapp-permissions-platform.xml
|
||||
|
||||
<privapp-permissions package="com.google.android.apps.carrier.carrierwifi">
|
||||
<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.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 package="com.google.android.apps.gcs">
|
||||
@@ -145,6 +158,7 @@ It allows additional grants on top of privapp-permissions-platform.xml
|
||||
</privapp-permissions>
|
||||
|
||||
<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.SCHEDULE_EXACT_ALARM"/>
|
||||
</privapp-permissions>
|
||||
@@ -153,6 +167,7 @@ It allows additional grants on top of privapp-permissions-platform.xml
|
||||
<permission name="android.permission.INTERACT_ACROSS_USERS"/>
|
||||
<permission name="android.permission.MANAGE_USERS"/>
|
||||
<permission name="android.permission.START_FOREGROUND_SERVICES_FROM_BACKGROUND"/>
|
||||
<permission name="android.permission.WRITE_SECURE_SETTINGS"/>
|
||||
</privapp-permissions>
|
||||
|
||||
<privapp-permissions package="com.google.android.apps.turbo">
|
||||
@@ -210,6 +225,7 @@ It allows additional grants on top of privapp-permissions-platform.xml
|
||||
<permission name="android.permission.BACKUP"/>
|
||||
<permission name="android.permission.BLUETOOTH_PRIVILEGED"/>
|
||||
<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.CAPTURE_AUDIO_HOTWORD"/>
|
||||
<permission name="android.permission.CAPTURE_AUDIO_OUTPUT"/>
|
||||
@@ -217,6 +233,7 @@ It allows additional grants on top of privapp-permissions-platform.xml
|
||||
<permission name="android.permission.CHANGE_DEVICE_IDLE_TEMP_WHITELIST"/>
|
||||
<permission name="android.permission.CHECK_REMOTE_LOCKSCREEN"/>
|
||||
<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.CONTROL_DISPLAY_SATURATION"/>
|
||||
<permission name="android.permission.CONTROL_INCALL_EXPERIENCE"/>
|
||||
@@ -224,6 +241,8 @@ It allows additional grants on top of privapp-permissions-platform.xml
|
||||
<permission name="android.permission.DISPATCH_PROVISIONING_MESSAGE"/>
|
||||
<permission name="android.permission.DOMAIN_VERIFICATION_AGENT"/>
|
||||
<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.INSTALL_LOCATION_TIME_ZONE_PROVIDER_SERVICE"/>
|
||||
<permission name="android.permission.INTENT_FILTER_VERIFICATION_AGENT"/>
|
||||
@@ -256,15 +275,18 @@ It allows additional grants on top of privapp-permissions-platform.xml
|
||||
<permission name="android.permission.OBSERVE_GRANT_REVOKE_PERMISSIONS"/>
|
||||
<permission name="android.permission.OVERRIDE_WIFI_CONFIG"/>
|
||||
<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_REMOTE_CREDENTIALS"/>
|
||||
<permission name="android.permission.PROVIDE_RESOLVER_RANKER_SERVICE"/>
|
||||
<permission name="android.permission.PROVIDE_TRUST_AGENT"/>
|
||||
<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_NETWORK_USAGE_HISTORY"/>
|
||||
<permission name="android.permission.READ_OEM_UNLOCK_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.REAL_GET_TASKS"/>
|
||||
<permission name="android.permission.REBOOT"/>
|
||||
@@ -276,10 +298,13 @@ 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_SELF_MANAGED"/>
|
||||
<permission name="android.permission.RESET_PASSWORD"/>
|
||||
<permission name="android.permission.SATELLITE_COMMUNICATION"/>
|
||||
<permission name="android.permission.SCHEDULE_PRIORITIZED_ALARM"/>
|
||||
<permission name="android.permission.SCORE_NETWORKS"/>
|
||||
<permission name="android.permission.SEND_SAFETY_CENTER_UPDATE"/>
|
||||
<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_ZONE"/>
|
||||
<permission name="android.permission.START_ACTIVITIES_FROM_BACKGROUND"/>
|
||||
@@ -288,6 +313,7 @@ It allows additional grants on top of privapp-permissions-platform.xml
|
||||
<permission name="android.permission.SUBSTITUTE_NOTIFICATION_APP_NAME"/>
|
||||
<permission name="android.permission.SUBSTITUTE_SHARE_TARGET_APP_NAME_AND_ICON"/>
|
||||
<permission name="android.permission.TETHER_PRIVILEGED"/>
|
||||
<permission name="android.permission.THREAD_NETWORK_PRIVILEGED"/>
|
||||
<permission name="android.permission.TURN_SCREEN_ON"/>
|
||||
<permission name="android.permission.UPDATE_APP_OPS_STATS"/>
|
||||
<permission name="android.permission.UPDATE_DEVICE_STATS"/>
|
||||
@@ -297,6 +323,9 @@ It allows additional grants on top of privapp-permissions-platform.xml
|
||||
<permission name="android.permission.WRITE_EMBEDDED_SUBSCRIPTIONS"/>
|
||||
<permission name="android.permission.WRITE_GSERVICES"/>
|
||||
<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 package="com.google.android.gms.supervision">
|
||||
@@ -358,6 +387,7 @@ It allows additional grants on top of privapp-permissions-platform.xml
|
||||
<permission name="android.permission.MEDIA_CONTENT_CONTROL"/>
|
||||
<permission name="android.permission.PACKAGE_USAGE_STATS"/>
|
||||
<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.SET_MEDIA_KEY_LISTENER"/>
|
||||
<permission name="android.permission.SET_VOLUME_KEY_LONG_PRESS_LISTENER"/>
|
||||
@@ -366,6 +396,7 @@ It allows additional grants on top of privapp-permissions-platform.xml
|
||||
<permission name="android.permission.STOP_APP_SWITCHES"/>
|
||||
<permission name="android.permission.SUBSTITUTE_SHARE_TARGET_APP_NAME_AND_ICON"/>
|
||||
<permission name="android.permission.WRITE_APN_SETTINGS"/>
|
||||
<permission name="android.permission.RECEIVE_SANDBOX_TRIGGER_AUDIO"/>
|
||||
</privapp-permissions>
|
||||
|
||||
<privapp-permissions package="com.android.hotwordenrollment.okgoogle">
|
||||
|
||||
@@ -1,6 +1,11 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<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">
|
||||
<permission name="android.permission.CAPTURE_MEDIA_OUTPUT"/>
|
||||
<permission name="android.permission.QUERY_USERS"/>
|
||||
<permission name="android.permission.READ_DREAM_STATE"/>
|
||||
<permission name="android.permission.WRITE_DREAM_STATE"/>
|
||||
|
||||
@@ -0,0 +1,4 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<config>
|
||||
<feature name="com.google.android.feature.CONTEXTUAL_SEARCH" />
|
||||
</config>
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -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
|
||||
@@ -8,8 +8,8 @@ packageInfo:
|
||||
renameManifestPackage: null
|
||||
resourcesAreCompressed: false
|
||||
sdkInfo:
|
||||
minSdkVersion: '34'
|
||||
targetSdkVersion: '34'
|
||||
minSdkVersion: '35'
|
||||
targetSdkVersion: '35'
|
||||
sharedLibrary: false
|
||||
sparseResources: true
|
||||
unknownFiles: {}
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -8,8 +8,8 @@ packageInfo:
|
||||
renameManifestPackage: null
|
||||
resourcesAreCompressed: false
|
||||
sdkInfo:
|
||||
minSdkVersion: '34'
|
||||
targetSdkVersion: '34'
|
||||
minSdkVersion: '35'
|
||||
targetSdkVersion: '35'
|
||||
sharedLibrary: false
|
||||
sparseResources: true
|
||||
unknownFiles: {}
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -8,8 +8,8 @@ packageInfo:
|
||||
renameManifestPackage: null
|
||||
resourcesAreCompressed: false
|
||||
sdkInfo:
|
||||
minSdkVersion: '34'
|
||||
targetSdkVersion: '34'
|
||||
minSdkVersion: '35'
|
||||
targetSdkVersion: '35'
|
||||
sharedLibrary: false
|
||||
sparseResources: true
|
||||
unknownFiles: {}
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -8,8 +8,8 @@ packageInfo:
|
||||
renameManifestPackage: null
|
||||
resourcesAreCompressed: false
|
||||
sdkInfo:
|
||||
minSdkVersion: '34'
|
||||
targetSdkVersion: '34'
|
||||
minSdkVersion: '35'
|
||||
targetSdkVersion: '35'
|
||||
sharedLibrary: false
|
||||
sparseResources: true
|
||||
unknownFiles: {}
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
product/app/MarkupGoogle/MarkupGoogle.apk;PRESIGNED|ed68878a8a06ca8c06dbc98441a657168f1b378b
|
||||
product/app/MarkupGoogle_v2/MarkupGoogle_v2.apk;PRESIGNED|474ca0e1fb0e6340b647142b3f493055fcb3990f
|
||||
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|0251d61f74f0557ccfd0e0424bed31e5828ea4b5
|
||||
|
||||
system_ext/priv-app/SetupWizard/SetupWizard.apk;OVERRIDES=Provision;PRESIGNED
|
||||
|
||||
1
proprietary-files-arm64-tangorpro.txt
Normal file
1
proprietary-files-arm64-tangorpro.txt
Normal file
@@ -0,0 +1 @@
|
||||
product/priv-app/VelvetTitan/VelvetTitan.apk;OVERRIDES=Velvet;PRESIGNED|bb7c2f3fadfee4dda509daba285fec3dfffeed7e
|
||||
@@ -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
|
||||
|
||||
@@ -14,7 +14,7 @@ product/etc/init/gapps.rc|1b9e076965fe08a03cf90fed0e96f2aa4ac90c0e
|
||||
|
||||
product/etc/permissions/com.google.android.dialer.support.xml
|
||||
product/etc/permissions/privapp-permissions-google-product.xml
|
||||
product/etc/permissions/privapp-permissions-mtg.xml|926d8fbcfbf4711a4bc96777595b70b874ef7334
|
||||
product/etc/permissions/privapp-permissions-mtg.xml|b8bcdbc95f03e6c3e50a015c092d5a4b3fc878d7
|
||||
|
||||
product/etc/security/fsverity/gms_fsverity_cert.der
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
341
setup-makefiles.py
Executable 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",
|
||||
],
|
||||
),
|
||||
]
|
||||
)
|
||||
@@ -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
|
||||
@@ -1,32 +1,7 @@
|
||||
// Automatically generated file. DO NOT MODIFY
|
||||
//
|
||||
// This file is generated by device/gapps/x86_64/setup-makefiles.sh
|
||||
|
||||
soong_namespace {
|
||||
imports: [
|
||||
"vendor/gapps/common",
|
||||
],
|
||||
}
|
||||
|
||||
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,
|
||||
imports: ["vendor/gapps/common"],
|
||||
}
|
||||
|
||||
android_app_import {
|
||||
@@ -55,19 +30,6 @@ android_app_import {
|
||||
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",
|
||||
@@ -82,3 +44,22 @@ android_app_import {
|
||||
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",
|
||||
srcs: ["proprietary/product/lib64/libjni_latinimegoogle.so"],
|
||||
prefer: true,
|
||||
product_specific: true,
|
||||
}
|
||||
|
||||
@@ -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
|
||||
@@ -1,4 +1,2 @@
|
||||
# Automatically generated file. DO NOT MODIFY
|
||||
#
|
||||
# This file is generated by device/gapps/x86_64/setup-makefiles.sh
|
||||
|
||||
|
||||
Binary file not shown.
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user