gapps: adapt crdroid

This commit is contained in:
2024-12-09 15:27:20 +09:00
parent dd06cee51d
commit 970b0ee6a7
114 changed files with 251 additions and 2780 deletions

32
.gitattributes vendored
View File

@@ -3,3 +3,35 @@ arm64/proprietary/product/priv-app/Velvet/Velvet.apk filter=lfs diff=lfs merge=l
arm64/proprietary/product/priv-app/VelvetTitan/VelvetTitan.apk filter=lfs diff=lfs merge=lfs -text arm64/proprietary/product/priv-app/VelvetTitan/VelvetTitan.apk filter=lfs diff=lfs merge=lfs -text
arm/proprietary/product/priv-app/Velvet/Velvet.apk filter=lfs diff=lfs merge=lfs -text arm/proprietary/product/priv-app/Velvet/Velvet.apk filter=lfs diff=lfs merge=lfs -text
arm64/proprietary/product/priv-app/GmsCore/GmsCore.apk filter=lfs diff=lfs merge=lfs -text arm64/proprietary/product/priv-app/GmsCore/GmsCore.apk filter=lfs diff=lfs merge=lfs -text
*.gitignore filter=lfs diff=lfs merge=lfs -text
*.yml filter=lfs diff=lfs merge=lfs -text
/LICENSE filter=lfs diff=lfs merge=lfs -text
/Makefile filter=lfs diff=lfs merge=lfs -text
*.md filter=lfs diff=lfs merge=lfs -text
/addond_head filter=lfs diff=lfs merge=lfs -text
/addond_tail filter=lfs diff=lfs merge=lfs -text
*.bp filter=lfs diff=lfs merge=lfs -text
*.mk filter=lfs diff=lfs merge=lfs -text
*.apk filter=lfs diff=lfs merge=lfs -text
*.so filter=lfs diff=lfs merge=lfs -text
*.jar filter=lfs diff=lfs merge=lfs -text
*.sh filter=lfs diff=lfs merge=lfs -text
*.RSA filter=lfs diff=lfs merge=lfs -text
*.SF filter=lfs diff=lfs merge=lfs -text
*.MF filter=lfs diff=lfs merge=lfs -text
/build/meta/com/android/otacert filter=lfs diff=lfs merge=lfs -text
/build/meta/com/google/android/update-binary filter=lfs diff=lfs merge=lfs -text
/build/meta/com/google/android/updater-script filter=lfs diff=lfs merge=lfs -text
*.dylib filter=lfs diff=lfs merge=lfs -text
*.pk8 filter=lfs diff=lfs merge=lfs -text
*.pem filter=lfs diff=lfs merge=lfs -text
/cicd/Dockerfile filter=lfs diff=lfs merge=lfs -text
*.py filter=lfs diff=lfs merge=lfs -text
*.xml filter=lfs diff=lfs merge=lfs -text
*.rc filter=lfs diff=lfs merge=lfs -text
*.der filter=lfs diff=lfs merge=lfs -text
*.txt filter=lfs diff=lfs merge=lfs -text
/toybox-arm filter=lfs diff=lfs merge=lfs -text
/toybox-arm64 filter=lfs diff=lfs merge=lfs -text
/toybox-x86 filter=lfs diff=lfs merge=lfs -text
/toybox-x86_64 filter=lfs diff=lfs merge=lfs -text

11
.gitignore vendored
View File

@@ -1,8 +1,3 @@
# out directory version https://git-lfs.github.com/spec/v1
out/ oid sha256:2aa4a45f10a2df69cf1ed1698d6629ae28c569c3ca3457ce4c6ed3ce91c10eab
size 85
# rro build artifacts
overlay/**/build/
# gapps log
gapps_log

View File

@@ -1,5 +1,3 @@
image: registry.gitlab.com/mindthegapps/vendor_gapps:latest version https://git-lfs.github.com/spec/v1
oid sha256:630d6a8c7e4cef504ddfef93bb20ea812ae54820d96a519bb953d5b61e47e4bd
verify: size 114
script:
- ./cicd/verify-permissions.py

12
LICENSE
View File

@@ -1,9 +1,3 @@
For files in [arm/arm64/common/x86/x86_64]/proprietary: version https://git-lfs.github.com/spec/v1
These are closed source/propietary/prebuilt files. oid sha256:7dd210e662049585d2526d4d5a063507bad7e4874b72ebd6daa448af2c7dddcc
I do not own them, these are just here to make size 404
your life easier when compiling the package.
Contacts their authors for information about licensing.
For any other file:
GNU License v2, unless otherwise noted
(https://www.gnu.org/licenses/gpl-2.0.html for more information)

View File

@@ -1,3 +1,3 @@
### DO NOT EDIT THIS FILE ### version https://git-lfs.github.com/spec/v1
include build/main.mk oid sha256:599ee37c5f531a7ddc9a9385ae34f5f8db8648b6a9770d86751c7696a7210f15
### DO NOT EDIT THIS FILE ### size 82

View File

@@ -1,92 +1,3 @@
# vendor_gapps version https://git-lfs.github.com/spec/v1
oid sha256:8811f07839add5e55e910e513d82eed464f10e4077382a2bf620972c0964e839
**GApps for android devices** size 2728
Build standalone zips
-------------------
You can compile your GApps package with GNU make
_make distclean_
- Remove output directory
_make gapps_arm_
- compile signed flashable GApps for arm
_make gapps_arm64_
- compile signed flashable GApps for arm64
_make gapps_x86_64_
- compile signed flashable GApps for x86_64
Build inline with Android
-------------------
1. Sync this repo to `$GAPPS_PATH` where `$GAPPS_PATH` is the path to this repo
2. Include `$GAPPS_PATH/$ARCH/$ARCH-vendor.mk` where `$ARCH` is arm, arm64, or x86_64 depending on the device's architecture
Explanation of pinned blobs
-------------------
NOTE: All arch specific blobs not specifically explained here are pinned for the sake of being able to extract independently of the architecture of the source device.
AndroidMigratePrebuilt.apk
- This is from a marlin factory image to avoid crashes with the one found in the walleye factory images.
GoogleCalendarSyncAdapter.apk
- This is no longer included in Google system images and is required for syncing Google Calendar accounts with AOSP Calendar.
PrebuiltExchange3Google.apk
- This is no longer included in Google system images and is required for using Exchange accounts in the Gmail app.
PrebuiltGmsCore.apk
- This is a nodpi apk so that it works properly on all devices and updates to the appropriate one. This is generally from APKMirror and is not usually updated between major version updates.
SetupWizard.apk
- This is a non-pixel SetupWizard for better UX and less pixel-specific references.
default-permissions.xml and privapp-permissions-google.xml
- These do not always contain all the necessary permissions for apks which are not from the corresponding factory image, so they must be modified to avoid permission related crashes.
libjni_latinimegoogle.so
- This lib is no longer included in Google system images and is required for swype typing with AOSP LatinIME.
Thanks and Credits
-------------------
aleasto
- Install scripts for 11 with dedicated partitions support
cdesai
- Reminding me that /proc/meminfo is a thing
ciwrl
- Catching a few spelling errors in this file
gmrt
- Initial list for gapps
flex1911, raymanfx, deadman96385, jrior001, haggertk, arco
- Thorough testing
harryyoud
- Thorough testing and Jenkins setup
haggertk
- Suggesting CI integration of privapp-permissions
jrizzoli
- Initial build scripts and build system
luca020400
- Fixing my makefiles
LuK1337
- Setting up custom Docker image for CI, improving scripts, thorough testing
mikeioannina
- The name for MindTheGapps
aleasto, razorloves, raymanfx
- Helping maintain this repo
syphyr
- Showing me how to repack libs in PrebuiltGmsCore

View File

@@ -1,4 +1,3 @@
# TODO list version https://git-lfs.github.com/spec/v1
oid sha256:c44cdbcf0fcc2d2ae384830f37d14a4c4f2b4fa1dc0a0b803256eb832fbf7ae2
- Look at adding prebuilt voice recognition for Velvet size 118
- Update sigma gapps from a proper device release

View File

@@ -1,10 +1,3 @@
#!/sbin/sh version https://git-lfs.github.com/spec/v1
# oid sha256:523f18a4cd953147c484955cba2a43c3ae3bc0082fa14ed499098badd693f9c3
# ADDOND_VERSION=3 size 120
#
# /system/addon.d/30-gapps.sh
#
. /tmp/backuptool.functions
list_files() {
cat <<EOF

View File

@@ -1,34 +1,3 @@
EOF version https://git-lfs.github.com/spec/v1
} oid sha256:03c838be71e78175f271cbd264425d846bfdf4444ee4700b805ec425dac2601f
size 572
case "$1" in
backup)
list_files | while read FILE DUMMY; do
backup_file $S/$FILE
done
;;
restore)
list_files | while read FILE REPLACEMENT; do
R=""
[ -n "$REPLACEMENT" ] && R="$S/$REPLACEMENT"
[ -f "$C/$S/$FILE" ] && restore_file $S/$FILE $R
done
;;
pre-backup)
# Stub
;;
post-backup)
# Stub
;;
pre-restore)
# Stub
;;
post-restore)
for i in $(list_files); do
f=$(get_output_path "$S/$i")
chown root:root $f
chmod 644 $f
chmod 755 $(dirname $f)
done
;;
esac

View File

@@ -1,104 +1,3 @@
// Automatically generated file. DO NOT MODIFY version https://git-lfs.github.com/spec/v1
// oid sha256:25d6b0c91dd8af2cc4627679461a988cb2f18f69873eedfc7406f1a0bbbbbf3f
// This file is generated by device/gapps/arm/setup-makefiles.sh size 1974
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,
}
android_app_import {
name: "GmsCore",
owner: "gapps",
apk: "proprietary/product/priv-app/GmsCore/GmsCore.apk",
preprocessed: true,
presigned: true,
dex_preopt: {
enabled: false,
},
privileged: true,
product_specific: true,
}
android_app_import {
name: "Phonesky",
owner: "gapps",
apk: "proprietary/product/priv-app/Phonesky/Phonesky.apk",
preprocessed: true,
presigned: true,
dex_preopt: {
enabled: false,
},
privileged: true,
product_specific: true,
}
android_app_import {
name: "SpeechServicesByGoogle",
owner: "gapps",
apk: "proprietary/product/app/SpeechServicesByGoogle/SpeechServicesByGoogle.apk",
preprocessed: true,
presigned: true,
dex_preopt: {
enabled: false,
},
product_specific: true,
}
android_app_import {
name: "talkback",
owner: "gapps",
apk: "proprietary/product/app/talkback/talkback.apk",
preprocessed: true,
presigned: true,
dex_preopt: {
enabled: false,
},
product_specific: true,
}
android_app_import {
name: "Velvet",
owner: "gapps",
apk: "proprietary/product/priv-app/Velvet/Velvet.apk",
preprocessed: true,
presigned: true,
dex_preopt: {
enabled: false,
},
privileged: true,
product_specific: true,
}
android_app_import {
name: "SetupWizard",
owner: "gapps",
apk: "proprietary/system_ext/priv-app/SetupWizard/SetupWizard.apk",
overrides: ["Provision"],
preprocessed: true,
presigned: true,
dex_preopt: {
enabled: false,
},
privileged: true,
system_ext_specific: true,
}

View File

@@ -1,9 +1,3 @@
# Automatically generated file. DO NOT MODIFY version https://git-lfs.github.com/spec/v1
# oid sha256:fbcd284f13c9bf27bb290683d579138cd1d3baac430f8fc57cb67a24d19f084c
# This file is generated by device/gapps/arm/setup-makefiles.sh size 176
LOCAL_PATH := $(call my-dir)
ifeq ($(TARGET_ARCH),arm)
endif

View File

@@ -1,4 +1,3 @@
# Automatically generated file. DO NOT MODIFY version https://git-lfs.github.com/spec/v1
# oid sha256:a859722efca69a32a14ae5ca37a4362e2796e4aa07e67b85339e4e03bfb5abe7
# This file is generated by device/gapps/arm/setup-makefiles.sh size 113

View File

@@ -1,23 +1,3 @@
# Automatically generated file. DO NOT MODIFY version https://git-lfs.github.com/spec/v1
# oid sha256:32aec874eaf4219336ba635d3944e26e47317da1acb3b2f930273620dad6c8e5
# This file is generated by device/gapps/arm/setup-makefiles.sh size 438
PRODUCT_SOONG_NAMESPACES += \
vendor/gapps/arm
PRODUCT_PACKAGES += \
libjni_latinimegoogle \
GmsCore \
Phonesky
ifeq ($(TARGET_IS_GROUPER),)
PRODUCT_PACKAGES += \
SpeechServicesByGoogle \
talkback \
Velvet \
SetupWizard
endif
$(call inherit-product, vendor/gapps/common/common-vendor.mk)

View File

@@ -1,134 +1,3 @@
// Automatically generated file. DO NOT MODIFY version https://git-lfs.github.com/spec/v1
// oid sha256:05af932f58dd19c5284c3809d0fd7f8a77e381040eb97cf9c404728320bf5510
// This file is generated by device/gapps/arm64/setup-makefiles.sh size 2157
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,
}
android_app_import {
name: "GmsCore",
owner: "gapps",
apk: "proprietary/product/priv-app/GmsCore/GmsCore.apk",
preprocessed: true,
presigned: true,
dex_preopt: {
enabled: false,
},
privileged: true,
product_specific: true,
}
android_app_import {
name: "Phonesky",
owner: "gapps",
apk: "proprietary/product/priv-app/Phonesky/Phonesky.apk",
preprocessed: true,
presigned: true,
dex_preopt: {
enabled: false,
},
privileged: true,
product_specific: true,
}
android_app_import {
name: "MarkupGoogle_v2",
owner: "gapps",
apk: "proprietary/product/app/MarkupGoogle_v2/MarkupGoogle_v2.apk",
preprocessed: true,
presigned: true,
dex_preopt: {
enabled: false,
},
product_specific: true,
}
android_app_import {
name: "SpeechServicesByGoogle",
owner: "gapps",
apk: "proprietary/product/app/SpeechServicesByGoogle/SpeechServicesByGoogle.apk",
preprocessed: true,
presigned: true,
dex_preopt: {
enabled: false,
},
product_specific: true,
}
android_app_import {
name: "talkback",
owner: "gapps",
apk: "proprietary/product/app/talkback/talkback.apk",
preprocessed: true,
presigned: true,
dex_preopt: {
enabled: false,
},
product_specific: true,
}
android_app_import {
name: "Velvet",
owner: "gapps",
apk: "proprietary/product/priv-app/Velvet/Velvet.apk",
preprocessed: true,
presigned: true,
dex_preopt: {
enabled: false,
},
privileged: true,
product_specific: true,
}
android_app_import {
name: "VelvetTitan",
owner: "gapps",
apk: "proprietary/product/priv-app/VelvetTitan/VelvetTitan.apk",
overrides: ["Velvet"],
preprocessed: true,
presigned: true,
dex_preopt: {
enabled: false,
},
privileged: true,
product_specific: true,
}
android_app_import {
name: "SetupWizard",
owner: "gapps",
apk: "proprietary/system_ext/priv-app/SetupWizard/SetupWizard.apk",
overrides: ["Provision"],
preprocessed: true,
presigned: true,
dex_preopt: {
enabled: false,
},
privileged: true,
system_ext_specific: true,
}

View File

@@ -1,9 +1,3 @@
# Automatically generated file. DO NOT MODIFY version https://git-lfs.github.com/spec/v1
# oid sha256:f83e4f53b3f4e80063804a93d88e65a32c231f287f2695912135cfe10aa37de8
# This file is generated by device/gapps/arm64/setup-makefiles.sh size 180
LOCAL_PATH := $(call my-dir)
ifeq ($(TARGET_ARCH),arm64)
endif

View File

@@ -1,4 +1,3 @@
# Automatically generated file. DO NOT MODIFY version https://git-lfs.github.com/spec/v1
# oid sha256:be08c25ece3ac4bc72f37c245fae1a4a2f420bf10e7e458c5be97706b0b3bc57
# This file is generated by device/gapps/arm64/setup-makefiles.sh size 115

View File

@@ -1,28 +1,3 @@
# Automatically generated file. DO NOT MODIFY version https://git-lfs.github.com/spec/v1
# oid sha256:18543353a6ced2de85f680107465219bc9c41a21880325b70f3a39c2fb609ead
# This file is generated by device/gapps/arm64/setup-makefiles.sh size 523
PRODUCT_SOONG_NAMESPACES += \
vendor/gapps/arm64
PRODUCT_PACKAGES += \
libjni_latinimegoogle \
GmsCore \
Phonesky
ifeq ($(TARGET_IS_GROUPER),)
PRODUCT_PACKAGES += \
MarkupGoogle_v2 \
SpeechServicesByGoogle \
talkback \
Velvet \
SetupWizard
endif
ifneq ($(filter %tangorpro,$(TARGET_PRODUCT)),)
PRODUCT_PACKAGES += VelvetTitan
endif
$(call inherit-product, vendor/gapps/common/common-vendor.mk)

Binary file not shown.

View File

@@ -1,128 +1,3 @@
#!/bin/bash version https://git-lfs.github.com/spec/v1
# (c) Joey Rizzoli, 2015 oid sha256:bc9738e6695745bb011d149f4cf5cde1354a8906e388c0233c3cad88fb88d6d2
# (c) Paul Keith, 2017 size 3509
# Released under GPL v2 License
##
# var
#
DATE=$(date -u +%Y%m%d_%H%M%S)
export GAPPS_TOP=$(realpath .)
ANDROIDV=15.0.0
SDKV=35
GARCH=$1
CPUARCH=$GARCH
[ ! -z "$2" ] && CPUARCH=$2
OUT=$GAPPS_TOP/out
BUILD=$GAPPS_TOP/build
METAINF=$BUILD/meta
COMMON=$GAPPS_TOP/common/proprietary
export GLOG=$GAPPS_TOP/gapps_log
ADDOND=$GAPPS_TOP/addond.sh
SIGNAPK=$GAPPS_TOP/build/sign/signapk.jar
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$GAPPS_TOP/build/sign
ZIP_KEY_PK8=$GAPPS_TOP/build/sign/testkey.pk8
ZIP_KEY_PEM=$GAPPS_TOP/build/sign/testkey.x509.pem
##
# functions
#
function clean() {
echo "Cleaning up..."
rm -r $OUT/$GARCH
rm /tmp/$BUILDZIP
return $?
}
function failed() {
echo "Build failed, check $GLOG"
exit 1
}
function create() {
test -f $GLOG && rm -f $GLOG
echo "Starting GApps compilation" > $GLOG
echo "ARCH= $GARCH" >> $GLOG
echo "OS= $(uname -s -r)" >> $GLOG
echo "NAME= $(whoami) at $(uname -n)" >> $GLOG
PREBUILT=$GAPPS_TOP/$GARCH/proprietary
test -d $OUT || mkdir $OUT;
test -d $OUT/$GARCH || mkdir -p $OUT/$GARCH
test -d $OUT/$GARCH/system || mkdir -p $OUT/$GARCH/system
echo "Build directories are now ready" >> $GLOG
echo "Compiling RROs"
$GAPPS_TOP/overlay/build_overlays.sh $GARCH $OUT/$GARCH
echo "Getting prebuilts..."
echo "Copying stuff" >> $GLOG
cp $GAPPS_TOP/toybox-$GARCH $OUT/$GARCH/toybox >> $GLOG
cp -r $PREBUILT/* $OUT/$GARCH/system >> $GLOG
cp -r $COMMON/* $OUT/$GARCH/system >> $GLOG
echo "Generating addon.d script" >> $GLOG
test -d $OUT/$GARCH/system/addon.d || mkdir -p $OUT/$GARCH/system/addon.d
cp -f addond_head $OUT/$GARCH/system/addon.d
cp -f addond_tail $OUT/$GARCH/system/addon.d
echo "Writing build props..."
echo "arch=$CPUARCH" > $OUT/$GARCH/build.prop
echo "version=$SDKV" >> $OUT/$GARCH/build.prop
echo "version_nice=$ANDROIDV" >> $OUT/$GARCH/build.prop
}
function zipit() {
BUILDZIP=MindTheGapps-$ANDROIDV-$GARCH-$DATE.zip
echo "Importing installation scripts..."
test -d $OUT/$GARCH/META-INF || mkdir $OUT/$GARCH/META-INF;
cp -r $METAINF/* $OUT/$GARCH/META-INF/ && echo "Meta copied" >> $GLOG
echo "Creating package..."
cd $OUT/$GARCH
zip -r /tmp/$BUILDZIP . >> $GLOG
rm -rf $OUT/tmp >> $GLOG
cd $GAPPS_TOP
if [ -f /tmp/$BUILDZIP ]; then
echo "Signing zip..."
java -Xmx2048m -jar $SIGNAPK -w $ZIP_KEY_PEM $ZIP_KEY_PK8 /tmp/$BUILDZIP $OUT/$BUILDZIP >> $GLOG
else
echo "Couldn't zip files!"
echo "Couldn't find unsigned zip file, aborting" >> $GLOG
return 1
fi
}
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
echo "sha256 exported at $OUT/$BUILDZIP.sha256sum"
return 0
else
echo "sha256sum is not installed, aborting" >> $GLOG
return 1
fi
}
##
# main
#
if [ -x $(which realpath) ]; then
echo "Realpath found!" >> $GLOG
else
GAPPS_TOP=$(cd . && pwd) # some darwin love
echo "No realpath found!" >> $GLOG
fi
for func in create zipit getsha256 clean; do
$func
ret=$?
if [ "$ret" == 0 ]; then
continue
else
failed
fi
done
echo "Done!" >> $GLOG
echo "Build completed: $GSHA256"
exit 0

View File

@@ -1,22 +1,3 @@
# build paths version https://git-lfs.github.com/spec/v1
TOPDIR := . oid sha256:fdf254ebb48bb279683bc0dd61c0bda847e7ea86c6bb22bde931f71a1784228d
BUILD_SYSTEM := $(TOPDIR)/build size 482
BUILD_GAPPS := $(BUILD_SYSTEM)/gapps.sh
OUTDIR := $(TOPDIR)/out
LOG_BUILD := /tmp/gapps_log
distclean:
@rm -fr $(OUTDIR)
@echo "Output removed! Ready for a clean build"
gapps_arm:
@echo "Compiling GApps for arm..."
@bash $(BUILD_GAPPS) arm 2>&1
gapps_arm64:
@echo "Compiling GApps for arm64..."
@bash $(BUILD_GAPPS) arm64 2>&1
gapps_x86_64:
@echo "Compiling GApps for x86_64..."
@bash $(BUILD_GAPPS) x86_64 2>&1

Binary file not shown.

View File

@@ -1,2 +1,3 @@
Signature-Version: 1.0 version https://git-lfs.github.com/spec/v1
Created-By: 1.0 (Android SignApk) oid sha256:4311b364d9db14a7478969ceded03f8a9bf2b136f34f80935fa4bbf244add1e7
size 59

View File

@@ -1,2 +1,3 @@
Manifest-Version: 1.0 version https://git-lfs.github.com/spec/v1
Created-By: 1.0 (Android SignApk) oid sha256:a4693b799fca2439111aad443f3bb3c062a1316226c02852ee4c02224d254c65
size 58

View File

@@ -1,27 +1,3 @@
-----BEGIN CERTIFICATE----- version https://git-lfs.github.com/spec/v1
MIIEqDCCA5CgAwIBAgIJAJNurL4H8gHfMA0GCSqGSIb3DQEBBQUAMIGUMQswCQYD oid sha256:a4384ba815b9499a5ce349b4e33c1755278873fe2eac150a068823f526e6dbde
VQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNTW91bnRhaW4g size 1675
VmlldzEQMA4GA1UEChMHQW5kcm9pZDEQMA4GA1UECxMHQW5kcm9pZDEQMA4GA1UE
AxMHQW5kcm9pZDEiMCAGCSqGSIb3DQEJARYTYW5kcm9pZEBhbmRyb2lkLmNvbTAe
Fw0wODAyMjkwMTMzNDZaFw0zNTA3MTcwMTMzNDZaMIGUMQswCQYDVQQGEwJVUzET
MBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNTW91bnRhaW4gVmlldzEQMA4G
A1UEChMHQW5kcm9pZDEQMA4GA1UECxMHQW5kcm9pZDEQMA4GA1UEAxMHQW5kcm9p
ZDEiMCAGCSqGSIb3DQEJARYTYW5kcm9pZEBhbmRyb2lkLmNvbTCCASAwDQYJKoZI
hvcNAQEBBQADggENADCCAQgCggEBANaTGQTexgskse3HYuDZ2CU+Ps1s6x3i/waM
qOi8qM1r03hupwqnbOYOuw+ZNVn/2T53qUPn6D1LZLjk/qLT5lbx4meoG7+yMLV4
wgRDvkxyGLhG9SEVhvA4oU6Jwr44f46+z4/Kw9oe4zDJ6pPQp8PcSvNQIg1QCAcy
4ICXF+5qBTNZ5qaU7Cyz8oSgpGbIepTYOzEJOmc3Li9kEsBubULxWBjf/gOBzAzU
RNps3cO4JFgZSAGzJWQTT7/emMkod0jb9WdqVA2BVMi7yge54kdVMxHEa5r3b97s
zI5p58ii0I54JiCUP5lyfTwE/nKZHZnfm644oLIXf6MdW2r+6R8CAQOjgfwwgfkw
HQYDVR0OBBYEFEhZAFY9JyxGrhGGBaR0GawJyowRMIHJBgNVHSMEgcEwgb6AFEhZ
AFY9JyxGrhGGBaR0GawJyowRoYGapIGXMIGUMQswCQYDVQQGEwJVUzETMBEGA1UE
CBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNTW91bnRhaW4gVmlldzEQMA4GA1UEChMH
QW5kcm9pZDEQMA4GA1UECxMHQW5kcm9pZDEQMA4GA1UEAxMHQW5kcm9pZDEiMCAG
CSqGSIb3DQEJARYTYW5kcm9pZEBhbmRyb2lkLmNvbYIJAJNurL4H8gHfMAwGA1Ud
EwQFMAMBAf8wDQYJKoZIhvcNAQEFBQADggEBAHqvlozrUMRBBVEY0NqrrwFbinZa
J6cVosK0TyIUFf/azgMJWr+kLfcHCHJsIGnlw27drgQAvilFLAhLwn62oX6snb4Y
LCBOsVMR9FXYJLZW2+TcIkCRLXWG/oiVHQGo/rWuWkJgU134NDEFJCJGjDbiLCpe
+ZTWHdcwauTJ9pUbo8EvHRkU3cYfGmLaLfgn9gP+pWA7LFQNvXwBnDa6sppCccEX
31I828XzgXpJ4O+mDL1/dBd+ek8ZPUP0IgdyZm5MTYPhvVqGCHzzTy3sIeJFymwr
sBbmg2OAUNLEMO6nwmocSdN2ClirfxqCzJOLSDE4QyS9BAH6EhY6UFcOaE0=
-----END CERTIFICATE-----

View File

@@ -1,322 +1,3 @@
#!/sbin/sh version https://git-lfs.github.com/spec/v1
oid sha256:942cb36151928e44fb31aee50563cf728ad8191d41e9a550be0c27ce8005bdb5
OUTFD="/proc/self/fd/$2" size 9093
ZIP=$3
set_con() {
chcon -h u:object_r:"$1":s0 $2
chcon u:object_r:"$1":s0 $2
}
set_perm() {
chmod $1 $2
}
set_owner() {
chown $1:$2 $3
}
ui_print() {
echo "ui_print $1" > "$OUTFD";
echo "ui_print" > "$OUTFD";
}
getprop2() {
grep -m 1 "^$2=" $1 | cut -d= -f2
}
cleanup() {
ui_print "Cleaning up files"
rm -rf $TMP/system
rm -rf $TMP/bin
rm $TMP/toybox
ui_print "Unmounting partitions"
umount -l "$SYSTEM_MNT"
umount -l /product || true
umount -l /system_ext || true
}
error() {
ui_print "$1"
cleanup
exit 1
}
error_no_space() {
error "Not enough space for GApps! Aborting"
}
error_mounting() {
error "Could not mount $1! Aborting"
}
get_block_for_mount_point() {
grep -v "^#" /etc/recovery.fstab | grep "[[:blank:]]$1[[:blank:]]" | tail -n1 | tr -s [:blank:] ' ' | cut -d' ' -f1
}
find_block() {
local name="$1"
local fstab_entry=$(get_block_for_mount_point "/$name")
# P-SAR hacks
[ -z "$fstab_entry" ] && [ "$name" = "system" ] && fstab_entry=$(get_block_for_mount_point "/")
[ -z "$fstab_entry" ] && [ "$name" = "system" ] && fstab_entry=$(get_block_for_mount_point "/system_root")
local dev
if [ "$DYNAMIC_PARTITIONS" = "true" ]; then
if [ -n "$fstab_entry" ]; then
dev="${BLK_PATH}/${fstab_entry}${SLOT_SUFFIX}"
else
dev="${BLK_PATH}/${name}${SLOT_SUFFIX}"
fi
else
if [ -n "$fstab_entry" ]; then
dev="${fstab_entry}${SLOT_SUFFIX}"
else
dev="${BLK_PATH}/${name}${SLOT_SUFFIX}"
fi
fi
if [ -b "$dev" ]; then
echo "$dev"
fi
}
compute_apps_size() {
NEEDED_STORAGE_SYSTEM=$(expr $(du -cs `find -maxdepth 1 -mindepth 1 ! -name product ! -name system_ext` | tail -n1 | cut -f1) + $STORAGE_BUFFER)
NEEDED_STORAGE_PRODUCT=$(expr $(du -s ./product | cut -f1) + $STORAGE_BUFFER)
NEEDED_STORAGE_SYSTEM_EXT=$(expr $(du -s ./system_ext | cut -f1) + $STORAGE_BUFFER)
RECLAIMABLE_STORAGE_SYSTEM=$(find . ! -path "./product/*" ! -path "./system_ext/*" -type f | sed "s|^./|$SYSTEM_OUT/|" | xargs ls -d 2>/dev/null | xargs du -cs PLACEHOLDER 2>/dev/null | tail -n1 | cut -f1)
NEEDED_STORAGE_SYSTEM=$(expr $NEEDED_STORAGE_SYSTEM - $RECLAIMABLE_STORAGE_SYSTEM)
RECLAIMABLE_STORAGE_PRODUCT=$(find ./product -type f | sed "s|^./|$SYSTEM_OUT/|" | xargs ls -d 2>/dev/null | xargs du -cs PLACEHOLDER 2>/dev/null | tail -n1 | cut -f1)
NEEDED_STORAGE_PRODUCT=$(expr $NEEDED_STORAGE_PRODUCT - $RECLAIMABLE_STORAGE_PRODUCT)
RECLAIMABLE_STORAGE_SYSTEM_EXT=$(find ./system_ext -type f | sed "s|^./|$SYSTEM_OUT/|" | xargs ls -d 2>/dev/null | xargs du -cs PLACEHOLDER 2>/dev/null | tail -n1 | cut -f1)
NEEDED_STORAGE_SYSTEM_EXT=$(expr $NEEDED_STORAGE_SYSTEM_EXT - $RECLAIMABLE_STORAGE_SYSTEM_EXT)
if [ -z "$PRODUCT_BLOCK" ]; then
NEEDED_STORAGE_SYSTEM=$(expr $NEEDED_STORAGE_SYSTEM + $NEEDED_STORAGE_PRODUCT - $STORAGE_BUFFER)
fi
if [ -z "$SYSTEM_EXT_BLOCK" ]; then
NEEDED_STORAGE_SYSTEM=$(expr $NEEDED_STORAGE_SYSTEM + $NEEDED_STORAGE_SYSTEM_EXT - $STORAGE_BUFFER)
fi
}
remove_big_optional_apps() {
ui_print "Low resource device detected, removing large extras"
rm -rf product/app/GoogleTTS
rm -rf product/app/MarkupGoogle_v2
rm -rf product/app/SpeechServicesByGoogle
rm -rf product/app/talkback
rm -rf product/priv-app/GoogleRestore
rm -rf product/priv-app/Velvet
rm -rf product/priv-app/VelvetTitan
rm -rf product/priv-app/Wellbeing
rm -rf system_ext/priv-app/SetupWizard
}
ui_print "**********************"
ui_print "MindTheGapps installer"
ui_print "**********************"
ui_print "Extracting files"
TMP=/tmp
cd "$TMP"
unzip -o "$ZIP"
rm -rf META-INF
# Check for arch. We need to do this before extracting our toybox, since that might be
# compiled for a different architecture. Just hope that all environments have at least
# a proper `grep` and `uname`.
GAPPS_ARCH=$(getprop2 $TMP/build.prop arch)
CPU_ARCH=$(getprop ro.bionic.arch)
if [ $GAPPS_ARCH != $CPU_ARCH ]; then
error "This package is built for $GAPPS_ARCH but your device is $CPU_ARCH! Aborting"
fi
ui_print "Setting up environment"
TOYBOX="${TMP}/toybox"
chmod +x "$TOYBOX"
TOYS_PATH="${TMP}/bin"
rm -rf "$TOYS_PATH";
$TOYBOX install -d "$TOYS_PATH"
for toy in $($TOYBOX); do
$TOYBOX ln -sf "$TOYBOX" "${TOYS_PATH}/${toy}"
done
PATH="${TOYS_PATH}:${PATH}"
ui_print "Mounting partitions"
# Ensure system is unmounted so mounting succeeds
umount /system || umount /mnt/system || true
umount /product || true
umount /system_ext || true
# Find partitions
DYNAMIC_PARTITIONS=`getprop ro.boot.dynamic_partitions`
if [ "$DYNAMIC_PARTITIONS" = "true" ]; then
BLK_PATH="/dev/block/mapper"
else
BLK_PATH=/dev/block/bootdevice/by-name
fi
CURRENTSLOT=`getprop ro.boot.slot_suffix`
if [ ! -z "$CURRENTSLOT" ]; then
if [ "$CURRENTSLOT" == "_a" ]; then
SLOT_SUFFIX="_a"
else
SLOT_SUFFIX="_b"
fi
fi
SYSTEM_BLOCK=$(find_block "system")
PRODUCT_BLOCK=$(find_block "product")
SYSTEM_EXT_BLOCK=$(find_block "system_ext")
# Disable rw protection on dynamic partitions
if [ "$DYNAMIC_PARTITIONS" = "true" ]; then
blockdev --setrw "$SYSTEM_BLOCK"
if [ -n "$PRODUCT_BLOCK" ]; then
blockdev --setrw "$PRODUCT_BLOCK"
fi
if [ -n "$SYSTEM_EXT_BLOCK" ]; then
blockdev --setrw "$SYSTEM_EXT_BLOCK"
fi
fi
# Mount and define SYSTEM_OUT
SYSTEM_MNT=/mnt/system
mkdir -p "$SYSTEM_MNT" || true
if mount -o rw "$SYSTEM_BLOCK" "$SYSTEM_MNT"; then
ui_print "$SYSTEM_MNT mounted"
else
error_mounting "$SYSTEM_MNT"
fi
SYSTEM_OUT="${SYSTEM_MNT}/system"
# Compare sdk version
GAPPS_VERSION=$(getprop2 $TMP/build.prop version)
ANDROID_VERSION=$(getprop2 $SYSTEM_OUT/build.prop ro.build.version.sdk)
if [ "$GAPPS_VERSION" != "$ANDROID_VERSION" ]; then
gapps_version_nice=$(getprop2 $TMP/build.prop version_nice)
android_version_nice=$(getprop2 $SYSTEM_OUT/build.prop ro.build.version.release)
error "This package is for Android $gapps_version_nice (SDK $GAPPS_VERSION) but your system is Android $android_version_nice (SDK $ANDROID_VERSION)! Aborting"
fi
# Ignore {product,system_ext} block devices in case they are symlinks
# This is common on devices where maintainers have chosen not to use
# real partitions because of their size being too small to be useful
if [ -L "${SYSTEM_MNT}/product" ]; then
PRODUCT_BLOCK=""
fi
if [ -L "${SYSTEM_MNT}/system_ext" ]; then
SYSTEM_EXT_BLOCK=""
fi
if [ -n "$PRODUCT_BLOCK" ]; then
mkdir /product || true
if mount -o rw "$PRODUCT_BLOCK" /product; then
ui_print "/product mounted"
else
error_mounting "/product"
fi
fi
if [ -n "$SYSTEM_EXT_BLOCK" ]; then
mkdir /system_ext || true
if mount -o rw "$SYSTEM_EXT_BLOCK" /system_ext; then
ui_print "/system_ext mounted"
else
error_mounting "/system_ext"
fi
fi
# Compute storage requirements
SYSTEM_STORAGE=`df $SYSTEM_MNT | tail -1 | tr -s ' ' | cut -d ' ' -f4`
if [ -n "$PRODUCT_BLOCK" ]; then
PRODUCT_STORAGE=`df /product | tail -1 | tr -s ' ' | cut -d ' ' -f4`
fi
if [ -n "$SYSTEM_EXT_BLOCK" ]; then
SYSTEM_EXT_STORAGE=`df /system_ext | tail -1 | tr -s ' ' | cut -d ' ' -f4`
fi
STORAGE_BUFFER=10240
cd system
# Detect tangorpro
DEVICE=$(getprop ro.build.product)
if [ "$DEVICE" == "tangorpro" ]; then
ui_print "Detected tangorpro device. Deleting normal Velvet app"
rm -rf product/priv-app/Velvet
else
rm -rf product/priv-app/VelvetTitan
fi
compute_apps_size
if [ "$SYSTEM_STORAGE" -lt "$NEEDED_STORAGE_SYSTEM" ]; then
remove_big_optional_apps
compute_apps_size
if [ "$SYSTEM_STORAGE" -lt "$NEEDED_STORAGE_SYSTEM" ]; then
error_no_space
fi
fi
if [ -n "$PRODUCT_BLOCK" ] && [ "$PRODUCT_STORAGE" -lt "$NEEDED_STORAGE_PRODUCT" ]; then
remove_big_optional_apps
compute_apps_size
if [ "$PRODUCT_STORAGE" -lt "$NEEDED_STORAGE_PRODUCT" ]; then
error_no_space
fi
fi
if [ -n "$SYSTEM_EXT_BLOCK" ] && [ "$SYSTEM_EXT_STORAGE" -lt "$NEEDED_STORAGE_SYSTEM_EXT" ]; then
remove_big_optional_apps
compute_apps_size
if [ "$SYSTEM_EXT_STORAGE" -lt "$NEEDED_STORAGE_SYSTEM_EXT" ]; then
error_no_space
fi
fi
ui_print "Generating addon.d file"
cat addon.d/addond_head > addon.d/30-gapps.sh
for f in `find . ! -path "./addon.d/*" -type f`; do
line=$(echo "$f" | sed 's/\.\///')
echo "$line" >> addon.d/30-gapps.sh
done
cat addon.d/addond_tail >> addon.d/30-gapps.sh
rm addon.d/addond_head addon.d/addond_tail
ui_print "Preparing files for copying"
for d in `find . -mindepth 1 -type d -type d`; do
set_perm 0755 $d
set_owner root root $d
done
for f in `find . -type f`; do
type=$(echo "$f" | sed 's/.*\.//')
if [ "$type" == "sh" ] || [ "$type" == "$f" ]; then
set_perm 0755 $f
else
set_perm 0644 $f
fi
set_owner root root $f
set_con system_file $f
done
ui_print "Copying files"
cp --preserve=a -r ./* "${SYSTEM_OUT}/"
if [ -n "$PRODUCT_BLOCK" ]; then
cp --preserve=a -r ./product/* /product
fi
if [ -n "$SYSTEM_EXT_BLOCK" ]; then
cp --preserve=a -r ./system_ext/* /system_ext
fi
if [ -e system_ext/priv-app/SetupWizard ] ; then
rm -rf "${SYSTEM_OUT}/system_ext/priv-app/Provision"
fi
cleanup
ui_print "Done!"
exit 0

View File

@@ -1 +1,3 @@
# this is a dummy file, the magic is in update-binary, which is a shell script version https://git-lfs.github.com/spec/v1
oid sha256:07d861287f6064d46fa550bd3e0c2587d67732a3de233c66e89dddb3949f1524
size 79

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -1,27 +1,3 @@
-----BEGIN CERTIFICATE----- version https://git-lfs.github.com/spec/v1
MIIEqDCCA5CgAwIBAgIJAJNurL4H8gHfMA0GCSqGSIb3DQEBBQUAMIGUMQswCQYD oid sha256:a4384ba815b9499a5ce349b4e33c1755278873fe2eac150a068823f526e6dbde
VQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNTW91bnRhaW4g size 1675
VmlldzEQMA4GA1UEChMHQW5kcm9pZDEQMA4GA1UECxMHQW5kcm9pZDEQMA4GA1UE
AxMHQW5kcm9pZDEiMCAGCSqGSIb3DQEJARYTYW5kcm9pZEBhbmRyb2lkLmNvbTAe
Fw0wODAyMjkwMTMzNDZaFw0zNTA3MTcwMTMzNDZaMIGUMQswCQYDVQQGEwJVUzET
MBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNTW91bnRhaW4gVmlldzEQMA4G
A1UEChMHQW5kcm9pZDEQMA4GA1UECxMHQW5kcm9pZDEQMA4GA1UEAxMHQW5kcm9p
ZDEiMCAGCSqGSIb3DQEJARYTYW5kcm9pZEBhbmRyb2lkLmNvbTCCASAwDQYJKoZI
hvcNAQEBBQADggENADCCAQgCggEBANaTGQTexgskse3HYuDZ2CU+Ps1s6x3i/waM
qOi8qM1r03hupwqnbOYOuw+ZNVn/2T53qUPn6D1LZLjk/qLT5lbx4meoG7+yMLV4
wgRDvkxyGLhG9SEVhvA4oU6Jwr44f46+z4/Kw9oe4zDJ6pPQp8PcSvNQIg1QCAcy
4ICXF+5qBTNZ5qaU7Cyz8oSgpGbIepTYOzEJOmc3Li9kEsBubULxWBjf/gOBzAzU
RNps3cO4JFgZSAGzJWQTT7/emMkod0jb9WdqVA2BVMi7yge54kdVMxHEa5r3b97s
zI5p58ii0I54JiCUP5lyfTwE/nKZHZnfm644oLIXf6MdW2r+6R8CAQOjgfwwgfkw
HQYDVR0OBBYEFEhZAFY9JyxGrhGGBaR0GawJyowRMIHJBgNVHSMEgcEwgb6AFEhZ
AFY9JyxGrhGGBaR0GawJyowRoYGapIGXMIGUMQswCQYDVQQGEwJVUzETMBEGA1UE
CBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNTW91bnRhaW4gVmlldzEQMA4GA1UEChMH
QW5kcm9pZDEQMA4GA1UECxMHQW5kcm9pZDEQMA4GA1UEAxMHQW5kcm9pZDEiMCAG
CSqGSIb3DQEJARYTYW5kcm9pZEBhbmRyb2lkLmNvbYIJAJNurL4H8gHfMAwGA1Ud
EwQFMAMBAf8wDQYJKoZIhvcNAQEFBQADggEBAHqvlozrUMRBBVEY0NqrrwFbinZa
J6cVosK0TyIUFf/azgMJWr+kLfcHCHJsIGnlw27drgQAvilFLAhLwn62oX6snb4Y
LCBOsVMR9FXYJLZW2+TcIkCRLXWG/oiVHQGo/rWuWkJgU134NDEFJCJGjDbiLCpe
+ZTWHdcwauTJ9pUbo8EvHRkU3cYfGmLaLfgn9gP+pWA7LFQNvXwBnDa6sppCccEX
31I828XzgXpJ4O+mDL1/dBd+ek8ZPUP0IgdyZm5MTYPhvVqGCHzzTy3sIeJFymwr
sBbmg2OAUNLEMO6nwmocSdN2ClirfxqCzJOLSDE4QyS9BAH6EhY6UFcOaE0=
-----END CERTIFICATE-----

View File

@@ -1,5 +1,3 @@
FROM ubuntu:latest version https://git-lfs.github.com/spec/v1
MAINTAINER LuK1337 <priv.luk@gmail.com> oid sha256:f4ebce3eda4df4024e61bf5e03d93f5a03064efd7cc8d809ed4350c5898db59b
size 138
RUN apt update
RUN apt -y install aapt python3 python3-parse python3-requests

View File

@@ -1,149 +1,3 @@
#!/usr/bin/python3 version https://git-lfs.github.com/spec/v1
# oid sha256:c76a3138da3aaf954f708a9be4c345f82c55b7c5113fbc980d3246e5c660eaff
# Copyright (C) 2021 Paul Keith <javelinanddart@gmail.com> size 6079
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 2 and
# only version 2 as published by the Free Software Foundation.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
import errno
from glob import glob
import os
import subprocess
import sys
from xml.etree import ElementTree
# Get external packages
try:
from parse import parse
except ImportError:
print('Please install the "parse" package via pip3.')
exit(errno.ENOPKG)
try:
import requests
except ImportError:
print('Please install the "requests" package via pip3.')
exit(errno.ENOPKG)
# Change working directory to the location of this script
# This fixes relative path references when calling this script from
# outside of the directory containing it
os.chdir(sys.path[0])
# Definitions for privileged permissions
ANDROID_MANIFEST_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'}
# Get AndroidManifest.xml
req = requests.get(ANDROID_MANIFEST_XML)
# Parse AndroidManifest.xml to get signature|privileged permissions
root = ElementTree.fromstring(req.text)
for perm in root.findall('permission'):
# Get name of permission
name = perm.get(f'{ANDROID_XML_NS}name')
# Get the protection levels on the permission
levels = set(
perm.get(f'{ANDROID_XML_NS}protectionLevel').split('|'))
# Check if the protections include signature and privileged
levels_masked = levels & privileged_permission_mask
if len(levels_masked) == len(privileged_permission_mask):
privileged_permissions.add(name)
# List of partitions to check priv-app permissions on
partitions = ['product', 'system_ext']
# Definitions for privapp-permissions
# Dictionary with structure:
# partition: permissions_dictionary
# Where permissions_dictionary has the structure:
# package_name : (set(allowed_permissions), set(requested_permissions))
privapp_permissions_dict = {x: {} for x in partitions}
# Definitions for privapp-permission allowlists
GLOB_XML_STR = '../*/proprietary/{}/etc/permissions/privapp-permissions*.xml'
# Parse allowlists to extract allowed privileged permissions
for partition in partitions:
# Get pointer to permissions_dictionary for the partition
perm_dict = privapp_permissions_dict[partition]
# Loop over all the XMLs in the partition we want
for allowlist in glob(GLOB_XML_STR.format(partition)):
# Get root of XML
tree = ElementTree.parse(allowlist)
root = tree.getroot()
# Loop through and find packages
for package in root.findall('privapp-permissions'):
name = package.get('package')
# Create empty entry if it's not in the dictionary
if name not in perm_dict:
perm_dict[name] = (set(), set())
# Get all permissions and add them to dictionary
for permission in package.findall('permission'):
perm_dict[name][0].add(permission.get('name'))
for permission in package.findall('deny-permission'):
perm_dict[name][0].add(permission.get('name'))
# Definitions for parsing APKs
GLOB_APK_STR = '../*/proprietary/{}/priv-app/*/*.apk'
AAPT_CMD = ['aapt2', 'd', 'permissions']
# Extract requested privileged permissions from all priv-app APKs
for partition in partitions:
# Get pointer to permissions_dictionary for the partition
perm_dict = privapp_permissions_dict[partition]
# 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]).decode(encoding='UTF-8')
lines = aapt_output.splitlines()
# Extract package name from the output
# Output looks like:
# package: my.package.name
package_name = parse('package: {}', lines[0])[0]
# Create empty entry if package is not in dict
if package_name not in perm_dict:
perm_dict[package_name] = (set(), set())
# Extract 'uses-permission' lines from the rest of the output
# Relevant output looks like:
# uses-permission: name='permission'
for line in lines[1:]:
# Extract permission name and add it to the dictionary if it's
# one of the privileged permissions we extracted earlier
if perm_name := parse('uses-permission: name=\'{}\'', line):
if perm_name[0] in privileged_permissions:
perm_dict[package_name][1].add(perm_name[0])
# Keep track of exit code
rc = 0
# Find all the missing permissions
for partition in partitions:
# Get pointer to permissions_dictionary for the partition
perm_dict = privapp_permissions_dict[partition]
# Loop through all the packages and compare permission sets
for package in perm_dict:
# Get the sets of permissions
# Format is (allowed, requested)
perm_sets = perm_dict[package]
# Compute the set difference requested - allowed
# This gives us all the permissions requested that were not allowed
perm_diff = perm_sets[1] - perm_sets[0]
# If any permissions are left, set exit code to EPERM and print output
if len(perm_diff) > 0:
rc = errno.EPERM
sys.stderr.write(
f"Package {package} on partition {partition} is missing these permissions:\n")
for perm in perm_diff:
sys.stderr.write(f" - {perm}\n")
# Exit program
exit(rc)

View File

@@ -1,130 +1,3 @@
// Automatically generated file. DO NOT MODIFY version https://git-lfs.github.com/spec/v1
// oid sha256:f55cdba5e6f9bb7fabb08f8cce0dea5b1e81c74e88bea54e23f5e828813b338c
// This file is generated by device/gapps/common/setup-makefiles.sh size 2717
soong_namespace {
imports: [
],
}
android_app_import {
name: "GoogleCalendarSyncAdapter",
owner: "gapps",
apk: "proprietary/product/app/GoogleCalendarSyncAdapter/GoogleCalendarSyncAdapter.apk",
preprocessed: true,
presigned: true,
dex_preopt: {
enabled: false,
},
product_specific: true,
}
android_app_import {
name: "GoogleContactsSyncAdapter",
owner: "gapps",
apk: "proprietary/product/app/GoogleContactsSyncAdapter/GoogleContactsSyncAdapter.apk",
preprocessed: true,
presigned: true,
dex_preopt: {
enabled: false,
},
product_specific: true,
}
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",
apk: "proprietary/system_ext/priv-app/GoogleFeedback/GoogleFeedback.apk",
preprocessed: true,
presigned: true,
dex_preopt: {
enabled: false,
},
privileged: true,
system_ext_specific: true,
}
android_app_import {
name: "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,
}
dex_import {
name: "com.google.android.dialer.support",
owner: "gapps",
jars: ["proprietary/product/framework/com.google.android.dialer.support.jar"],
product_specific: true,
}
android_app_import {
name: "GoogleRestore",
owner: "gapps",
apk: "proprietary/product/priv-app/GoogleRestore/GoogleRestore.apk",
preprocessed: true,
presigned: true,
dex_preopt: {
enabled: false,
},
privileged: true,
product_specific: true,
}
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,
}

View File

@@ -1,9 +1,3 @@
# Automatically generated file. DO NOT MODIFY version https://git-lfs.github.com/spec/v1
# oid sha256:2fb8d0416dfda1f15f27dd7fcdc1975b5170c07049f1252488bd2923d9bd84f4
# This file is generated by device/gapps/common/setup-makefiles.sh size 204
LOCAL_PATH := $(call my-dir)
ifneq ($(filter arm arm64 x86_64,$(TARGET_ARCH)),)
endif

View File

@@ -1,4 +1,3 @@
# Automatically generated file. DO NOT MODIFY version https://git-lfs.github.com/spec/v1
# oid sha256:890ba40ee4be56019c58e777299d276b65e4cc277f0af26d278627eab4e99911
# This file is generated by device/gapps/common/setup-makefiles.sh size 116

View File

@@ -1,42 +1,3 @@
# Automatically generated file. DO NOT MODIFY version https://git-lfs.github.com/spec/v1
# oid sha256:6cbf2034c3fa6c911adb9a7e18c414b05e7befa49480860e15ddb27c6d1ba003
# This file is generated by device/gapps/common/setup-makefiles.sh size 2791
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
PRODUCT_PACKAGES += \
GoogleCalendarSyncAdapter \
GoogleContactsSyncAdapter \
PrebuiltExchange3Google \
AndroidAutoStub \
GooglePartnerSetup \
GoogleFeedback \
GoogleServicesFramework \
com.google.android.dialer.support
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
endif
PRODUCT_SOONG_NAMESPACES += vendor/gapps/overlay
PRODUCT_PACKAGES += GmsOverlay GmsSettingsOverlay GmsSettingsProviderOverlay GmsSetupWizardOverlay

View File

@@ -1,70 +1,3 @@
<?xml version='1.0' encoding='utf-8' standalone='yes' ?> version https://git-lfs.github.com/spec/v1
<exceptions> oid sha256:4513efc5d1e2efe0619d1b3551a6016813a02beb862c849ef6d6e26f7335ea9c
<exception size 3521
package="com.google.android.apps.restore"
sha256-cert-digest="56:BE:13:2B:78:06:56:FE:24:44:CD:34:32:6E:B5:D7:AA:C9:1D:20:96:AB:F0:FE:67:3A:99:27:06:22:EC:87">
<!-- External storage -->
<permission name="android.permission.READ_EXTERNAL_STORAGE" fixed="false"/>
<permission name="android.permission.WRITE_EXTERNAL_STORAGE" fixed="false"/>
<!-- Contacts -->
<permission name="android.permission.READ_CONTACTS" fixed="false"/>
<permission name="android.permission.WRITE_CONTACTS" fixed="false"/>
<!-- For D2D Restore -->
<permission name="android.permission.READ_CALL_LOG" fixed="false"/>
<permission name="android.permission.WRITE_CALL_LOG" fixed="false"/>
<permission name="android.permission.NEARBY_WIFI_DEVICES" fixed="false"/>
<permission name="android.permission.POST_NOTIFICATIONS" fixed="false"/>
</exception>
<exception
package="com.google.android.apps.assistant"
sha256-cert-digest="43:0B:20:EB:61:96:7E:9C:5B:BE:02:59:9B:07:35:16:80:7D:AE:72:D7:86:FE:92:7F:48:96:B7:C7:F2:96:1F">
<!-- Record audio -->
<permission name="android.permission.RECORD_AUDIO" fixed="false"/>
</exception>
<exception
package="com.google.android.apps.actionsservice"
sha256-cert-digest="43:0B:20:EB:61:96:7E:9C:5B:BE:02:59:9B:07:35:16:80:7D:AE:72:D7:86:FE:92:7F:48:96:B7:C7:F2:96:1F">
<!-- Record audio -->
<permission name="android.permission.RECORD_AUDIO" fixed="false"/>
</exception>
<exception
package="com.google.android.marvin.talkback"
sha256-cert-digest="7B:5A:D5:51:80:A4:8A:1F:30:F3:53:77:C0:F9:E5:F9:11:BF:94:2F:B4:CF:83:EB:A2:55:A0:EB:F5:80:BE:EF">
<!-- Read phone status -->
<permission name="android.permission.READ_PHONE_STATE" fixed="false"/>
<!-- Bluetooth permissions -->
<permission name="android.permission.BLUETOOTH_CONNECT" fixed="false"/>
<permission name="android.permission.BLUETOOTH_SCAN" fixed="false"/>
<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>

View File

@@ -1,24 +1,3 @@
<?xml version='1.0' encoding='utf-8' standalone='yes' ?> version https://git-lfs.github.com/spec/v1
<exceptions> oid sha256:250a22a5b0fd63140ae3842404d3ea85b5f390962d8350c96ff4b7ce4029a4f3
<exception size 1453
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" />
<permission name="android.permission.READ_CONTACTS" fixed="false" />
<permission name="android.permission.ACCESS_FINE_LOCATION" fixed="false" />
<permission name="android.permission.RECEIVE_SMS" fixed="false" />
<permission name="android.permission.SEND_SMS" fixed="false" />
<permission name="android.permission.RECORD_AUDIO" fixed="false" />
<permission name="android.permission.READ_CALENDAR" fixed="false" />
<!-- For Top Gear -->
<permission name="android.permission.PROCESS_OUTGOING_CALLS" fixed="false" />
<permission name="android.permission.READ_SMS" fixed="false" />
<permission name="android.permission.RECEIVE_MMS" fixed="false" />
<permission name="android.permission.WRITE_CALL_LOG" fixed="false" />
<permission name="android.permission.ACCESS_COARSE_LOCATION" fixed="false" />
</exception>
</exceptions>

View File

@@ -1,3 +1,3 @@
on init version https://git-lfs.github.com/spec/v1
setprop ro.com.google.gmsversion 15_202408 oid sha256:73fec552f7939e324162685ab5faa728d65e578ef3f68c8ce983973b42a6fa54
setprop ro.opa.eligible_device true size 95

View File

@@ -1,12 +1,3 @@
<?xml version="1.0" encoding="utf-8"?> version https://git-lfs.github.com/spec/v1
<permissions> oid sha256:b3b530828259e81adffbd78cd64735afe65849f78dc2bb09b62e14b8ddef3244
<!-- Shared library required on the device to get Google Dialer updates from size 610
Play Store. This will be deprecated once Google Dialer play store
updates stop supporting pre-O devices. -->
<library name="com.google.android.dialer.support"
file="/product/framework/com.google.android.dialer.support.jar" />
<!-- Starting from Android O and above, this system feature is required for
getting Google Dialer play store updates. -->
<feature name="com.google.android.apps.dialer.SUPPORTED" />
</permissions>

View File

@@ -1,438 +1,3 @@
<?xml version="1.0" encoding="utf-8"?> version https://git-lfs.github.com/spec/v1
<!-- oid sha256:b0a0e5e41b67be5a91756aa5f08f8adb411b0a2867ab6e73407fd4a983612762
This XML file declares which signature|privileged permissions should be granted to privileged size 28081
applications in /product GMS or Google-branded devices.
It allows additional grants on top of privapp-permissions-platform.xml
-->
<permissions>
<privapp-permissions package="com.google.android.apps.nbu.files">
<permission name="android.permission.PACKAGE_USAGE_STATS"/>
</privapp-permissions>
<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>
<privapp-permissions package="com.google.android.apps.restore">
<permission name="android.permission.BACKUP"/>
<permission name="android.permission.MANAGE_USB"/>
<permission name="android.permission.MANAGE_USERS"/>
<permission name="android.permission.MANAGE_WIFI_NETWORK_SELECTION"/>
<permission name="android.permission.OVERRIDE_WIFI_CONFIG"/>
<permission name="android.permission.READ_PRIVILEGED_PHONE_STATE"/>
<permission name="android.permission.SUBSTITUTE_NOTIFICATION_APP_NAME"/>
<permission name="android.permission.WRITE_EMBEDDED_SUBSCRIPTIONS"/>
<permission name="android.permission.WRITE_SECURE_SETTINGS"/>
</privapp-permissions>
<privapp-permissions package="com.google.android.apps.safetyhub">
<permission name="android.permission.ACCESS_CONTEXT_HUB"/>
<permission name="android.permission.CALL_PRIVILEGED"/>
<permission name="android.permission.CAPTURE_AUDIO_OUTPUT"/>
<permission name="android.permission.CONTROL_INCALL_EXPERIENCE"/>
<permission name="android.permission.MANAGE_USERS"/>
<permission name="android.permission.MODIFY_PHONE_STATE"/>
<permission name="android.permission.READ_PRIVILEGED_PHONE_STATE"/>
<permission name="android.permission.RECEIVE_EMERGENCY_BROADCAST"/>
<permission name="android.permission.SCHEDULE_EXACT_ALARM"/>
<permission name="android.permission.START_ACTIVITIES_FROM_BACKGROUND"/>
<permission name="android.permission.WRITE_SECURE_SETTINGS"/>
</privapp-permissions>
<privapp-permissions package="com.google.android.as">
<permission name="android.permission.ACCESS_CONTEXT_HUB"/>
<permission name="android.permission.ACCESS_ULTRASOUND"/>
<permission name="android.permission.BLUETOOTH_PRIVILEGED"/>
<permission name="android.permission.CAPTURE_AUDIO_HOTWORD"/>
<permission name="android.permission.CAPTURE_AUDIO_OUTPUT"/>
<permission name="android.permission.CAPTURE_MEDIA_OUTPUT"/>
<permission name="android.permission.CAPTURE_VOICE_COMMUNICATION_OUTPUT"/>
<permission name="android.permission.CONTROL_INCALL_EXPERIENCE"/>
<permission name="android.permission.EXEMPT_FROM_AUDIO_RECORD_RESTRICTIONS"/>
<permission name="android.permission.LOCATION_HARDWARE"/>
<permission name="android.permission.MANAGE_CLOUDSEARCH"/>
<permission name="android.permission.MANAGE_SOUND_TRIGGER"/>
<permission name="android.permission.MANAGE_MUSIC_RECOGNITION"/>
<permission name="android.permission.MANAGE_UI_TRANSLATION"/>
<permission name="android.permission.MODIFY_AUDIO_ROUTING"/>
<permission name="android.permission.MODIFY_PHONE_STATE"/>
<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">
<permission name="android.permission.ALLOCATE_AGGRESSIVE"/>
<permission name="android.permission.BACKUP"/>
<permission name="android.permission.BATTERY_STATS"/>
<permission name="android.permission.CHANGE_COMPONENT_ENABLED_STATE"/>
<permission name="android.permission.CHANGE_DEVICE_IDLE_TEMP_WHITELIST"/>
<permission name="android.permission.CHANGE_OVERLAY_PACKAGES"/>
<permission name="android.permission.CLEAR_APP_CACHE"/>
<permission name="android.permission.CONNECTIVITY_INTERNAL"/>
<permission name="android.permission.DELETE_PACKAGES"/>
<permission name="android.permission.DUMP"/>
<permission name="android.permission.FORCE_STOP_PACKAGES"/>
<permission name="android.permission.GET_ACCOUNTS_PRIVILEGED"/>
<permission name="android.permission.GET_APP_OPS_STATS"/>
<permission name="android.permission.INSTALL_PACKAGES"/>
<permission name="android.permission.INTERACT_ACROSS_USERS"/>
<permission name="android.permission.LOADER_USAGE_STATS"/>
<permission name="android.permission.MANAGE_CLOUDSEARCH"/>
<permission name="android.permission.MANAGE_ROLLBACKS"/>
<permission name="android.permission.MANAGE_USERS"/>
<permission name="android.permission.PACKAGE_USAGE_STATS"/>
<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"/>
<permission name="android.permission.SEND_SAFETY_CENTER_UPDATE"/>
<permission name="android.permission.SEND_SMS_NO_CONFIRMATION"/>
<permission name="android.permission.SET_PREFERRED_APPLICATIONS"/>
<permission name="android.permission.START_ACTIVITIES_FROM_BACKGROUND"/>
<permission name="android.permission.STATUS_BAR"/>
<permission name="android.permission.SUBSTITUTE_NOTIFICATION_APP_NAME"/>
<permission name="android.permission.UPDATE_DEVICE_STATS"/>
<permission name="android.permission.WRITE_SECURE_SETTINGS"/>
<permission name="com.android.permission.USE_INSTALLER_V2"/>
<permission name="android.permission.OVERRIDE_COMPAT_CHANGE_CONFIG_ON_RELEASE_BUILD"/>
<permission name="com.google.android.settings.setup.dock.RUN_DOCK_SETUP"/>
</privapp-permissions>
<privapp-permissions package="com.google.android.apps.actionsservice">
<permission name="android.permission.CALL_PRIVILEGED"/>
<permission name="android.permission.CAPTURE_AUDIO_HOTWORD"/>
<permission name="android.permission.MEDIA_CONTENT_CONTROL"/>
</privapp-permissions>
<privapp-permissions package="com.google.android.apps.assistant">
<permission name="android.permission.CALL_PRIVILEGED"/>
<permission name="android.permission.MEDIA_CONTENT_CONTROL"/>
</privapp-permissions>
<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">
<permission name="android.permission.CONTROL_VPN"/>
<permission name="android.permission.GET_APP_OPS_STATS"/>
<permission name="android.permission.INTERACT_ACROSS_USERS"/>
<permission name="android.permission.OVERRIDE_WIFI_CONFIG"/>
<permission name="android.permission.PACKET_KEEPALIVE_OFFLOAD"/>
<permission name="android.permission.READ_PRIVILEGED_PHONE_STATE"/>
<permission name="android.permission.SCORE_NETWORKS"/>
<permission name="android.permission.UPDATE_APP_OPS_STATS"/>
</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>
<privapp-permissions package="com.google.android.apps.setupwizard.searchselector">
<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">
<permission name="android.permission.ACCESS_AMBIENT_LIGHT_STATS"/>
<permission name="android.permission.BATTERY_PREDICTION"/>
<permission name="android.permission.BATTERY_STATS"/>
<permission name="android.permission.BRIGHTNESS_SLIDER_USAGE"/>
<permission name="android.permission.CHANGE_APP_IDLE_STATE"/>
<permission name="android.permission.CHANGE_APP_LAUNCH_TIME_ESTIMATE"/>
<permission name="android.permission.CONFIGURE_DISPLAY_BRIGHTNESS"/>
<permission name="android.permission.DUMP"/>
<permission name="android.permission.PACKAGE_USAGE_STATS"/>
<permission name="android.permission.POWER_SAVER"/>
<permission name="android.permission.SUBSTITUTE_NOTIFICATION_APP_NAME"/>
</privapp-permissions>
<privapp-permissions package="com.google.android.apps.wellbeing">
<permission name="android.permission.ACCESS_AMBIENT_CONTEXT_EVENT"/>
<permission name="android.permission.ACCESS_INSTANT_APPS"/>
<permission name="android.permission.CONTROL_DISPLAY_COLOR_TRANSFORMS"/>
<permission name="android.permission.CONTROL_DISPLAY_SATURATION"/>
<permission name="android.permission.INTERACT_ACROSS_PROFILES"/>
<permission name="android.permission.MODIFY_DAY_NIGHT_MODE"/>
<permission name="android.permission.MODIFY_PHONE_STATE"/>
<permission name="android.permission.MODIFY_QUIET_MODE"/>
<permission name="android.permission.OBSERVE_APP_USAGE"/>
<permission name="android.permission.PACKAGE_USAGE_STATS"/>
<permission name="android.permission.READ_DREAM_STATE"/>
<permission name="android.permission.READ_WALLPAPER_INTERNAL"/>
<permission name="android.permission.REAL_GET_TASKS"/>
<permission name="android.permission.SCHEDULE_EXACT_ALARM"/>
<permission name="android.permission.SET_WALLPAPER_COMPONENT"/>
<permission name="android.permission.SET_WALLPAPER_DIM_AMOUNT"/>
<permission name="android.permission.START_ACTIVITIES_FROM_BACKGROUND"/>
<permission name="android.permission.START_TASKS_FROM_RECENTS"/>
<permission name="android.permission.SUBSTITUTE_NOTIFICATION_APP_NAME"/>
<permission name="android.permission.SYSTEM_APPLICATION_OVERLAY"/>
<permission name="android.permission.WRITE_DREAM_STATE"/>
<permission name="android.permission.WRITE_SECURE_SETTINGS"/>
</privapp-permissions>
<privapp-permissions package="com.google.android.configupdater">
<permission name="android.permission.UPDATE_CONFIG"/>
</privapp-permissions>
<privapp-permissions package="com.google.android.gms">
<permission name="android.permission.ACCESS_BROADCAST_RESPONSE_STATS"/>
<permission name="android.permission.ACCESS_CACHE_FILESYSTEM"/>
<permission name="android.permission.ACCESS_CONTEXT_HUB"/>
<permission name="android.permission.ACCESS_FPS_COUNTER"/>
<permission name="android.permission.ACCESS_NETWORK_CONDITIONS"/>
<permission name="android.permission.ACCESS_VIBRATOR_STATE"/>
<permission name="android.permission.ACTIVITY_EMBEDDING"/>
<permission name="android.permission.ALLOCATE_AGGRESSIVE"/>
<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"/>
<permission name="android.permission.CHANGE_COMPONENT_ENABLED_STATE"/>
<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"/>
<permission name="android.permission.CONTROL_KEYGUARD_SECURE_NOTIFICATIONS"/>
<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"/>
<permission name="android.permission.INTERACT_ACROSS_USERS"/>
<permission name="android.permission.INVOKE_CARRIER_SETUP"/>
<permission name="android.permission.LOCAL_MAC_ADDRESS"/>
<permission name="android.permission.LOCATION_BYPASS"/>
<permission name="android.permission.LOCATION_HARDWARE"/>
<permission name="android.permission.LOCK_DEVICE"/>
<permission name="android.permission.MANAGE_FACTORY_RESET_PROTECTION"/>
<permission name="android.permission.MANAGE_GAME_ACTIVITY"/>
<permission name="android.permission.MANAGE_GAME_MODE"/>
<permission name="android.permission.MANAGE_ROLLBACKS"/>
<permission name="android.permission.MANAGE_SOUND_TRIGGER"/>
<permission name="android.permission.MANAGE_SUBSCRIPTION_PLANS"/>
<permission name="android.permission.MANAGE_TIME_AND_ZONE_DETECTION"/>
<permission name="android.permission.MANAGE_USB"/>
<permission name="android.permission.MANAGE_USERS"/>
<permission name="android.permission.MANAGE_VOICE_KEYPHRASES"/>
<permission name="android.permission.MANAGE_WIFI_INTERFACES"/>
<permission name="android.permission.MANAGE_WIFI_NETWORK_SELECTION"/>
<permission name="android.permission.MASTER_CLEAR"/>
<permission name="android.permission.MEDIA_CONTENT_CONTROL"/>
<permission name="android.permission.MODIFY_AUDIO_ROUTING"/>
<permission name="android.permission.MODIFY_DAY_NIGHT_MODE"/>
<permission name="android.permission.MODIFY_DEFAULT_AUDIO_EFFECTS"/>
<permission name="android.permission.MODIFY_NETWORK_ACCOUNTING"/>
<permission name="android.permission.MODIFY_PHONE_STATE"/>
<permission name="android.permission.NOTIFY_PENDING_SYSTEM_UPDATE"/>
<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"/>
<permission name="android.permission.RECEIVE_DATA_ACTIVITY_CHANGE"/>
<permission name="android.permission.RECOVERY"/>
<permission name="android.permission.RECOVER_KEYSTORE"/>
<permission name="android.permission.REMOTE_DISPLAY_PROVIDER"/>
<permission name="android.permission.RENOUNCE_PERMISSIONS"/>
<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"/>
<permission name="android.permission.START_TASKS_FROM_RECENTS"/>
<permission name="android.permission.STATUS_BAR"/>
<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"/>
<permission name="android.permission.UPDATE_FONTS"/>
<permission name="android.permission.USER_ACTIVITY"/>
<permission name="android.permission.UWB_PRIVILEGED"/>
<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">
<permission name="android.permission.ACCESS_NETWORK_CONDITIONS"/>
<permission name="android.permission.CHANGE_DEVICE_IDLE_TEMP_WHITELIST"/>
<permission name="android.permission.GET_ACCOUNTS_PRIVILEGED"/>
<permission name="android.permission.GET_APP_OPS_STATS"/>
<permission name="android.permission.INTERACT_ACROSS_USERS"/>
<permission name="android.permission.MANAGE_FACTORY_RESET_PROTECTION"/>
<permission name="android.permission.MANAGE_TIME_AND_ZONE_DETECTION"/>
<permission name="android.permission.MANAGE_USERS"/>
<permission name="android.permission.MASTER_CLEAR"/>
<permission name="android.permission.OBSERVE_GRANT_REVOKE_PERMISSIONS"/>
<permission name="android.permission.PACKAGE_USAGE_STATS"/>
<permission name="android.permission.READ_DREAM_STATE"/>
<permission name="android.permission.RESET_PASSWORD"/>
<permission name="android.permission.SCHEDULE_EXACT_ALARM"/>
<permission name="android.permission.SET_TIME"/>
<permission name="android.permission.SET_TIME_ZONE"/>
<permission name="android.permission.START_ACTIVITIES_FROM_BACKGROUND"/>
<permission name="android.permission.STATUS_BAR"/>
<permission name="android.permission.USER_ACTIVITY"/>
<permission name="android.permission.WRITE_SECURE_SETTINGS"/>
</privapp-permissions>
<privapp-permissions package="com.google.android.projection.gearhead">
<permission name="android.permission.ACTIVITY_EMBEDDING"/>
<permission name="android.permission.BLUETOOTH_PRIVILEGED"/>
<permission name="android.permission.CALL_PRIVILEGED"/>
<permission name="android.permission.CHANGE_COMPONENT_ENABLED_STATE"/>
<permission name="android.permission.COMPANION_APPROVE_WIFI_CONNECTIONS"/>
<permission name="android.permission.CONTROL_INCALL_EXPERIENCE"/>
<permission name="android.permission.DUMP"/>
<permission name="android.permission.ENTER_CAR_MODE_PRIORITIZED"/>
<permission name="android.permission.LOCAL_MAC_ADDRESS"/>
<permission name="android.permission.LOCATION_HARDWARE"/>
<permission name="android.permission.MANAGE_USB"/>
<permission name="android.permission.MODIFY_AUDIO_ROUTING"/>
<permission name="android.permission.MODIFY_DAY_NIGHT_MODE"/>
<permission name="android.permission.READ_PRIVILEGED_PHONE_STATE"/>
<permission name="android.permission.REQUEST_COMPANION_SELF_MANAGED"/>
<permission name="android.permission.SCHEDULE_EXACT_ALARM"/>
<permission name="android.permission.START_ACTIVITIES_FROM_BACKGROUND"/>
<permission name="android.permission.UPDATE_APP_OPS_STATS"/>
</privapp-permissions>
<privapp-permissions package="com.google.android.googlequicksearchbox">
<permission name="android.permission.BIND_APPWIDGET"/>
<permission name="android.permission.CALL_PRIVILEGED"/>
<permission name="android.permission.CAPTURE_AUDIO_HOTWORD"/>
<permission name="android.permission.CONTROL_INCALL_EXPERIENCE"/>
<permission name="android.permission.ENTER_CAR_MODE_PRIORITIZED"/>
<permission name="android.permission.GLOBAL_SEARCH"/>
<permission name="android.permission.INTERACT_ACROSS_PROFILES"/>
<deny-permission name="android.permission.INTERACT_ACROSS_USERS"/>
<permission name="android.permission.MANAGE_SOUND_TRIGGER"/>
<permission name="android.permission.MANAGE_USB"/>
<permission name="android.permission.MANAGE_VOICE_KEYPHRASES"/>
<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"/>
<permission name="android.permission.SOUND_TRIGGER_RUN_IN_BATTERY_SAVER"/>
<permission name="android.permission.START_ACTIVITIES_FROM_BACKGROUND"/>
<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">
<permission name="android.permission.KEYPHRASE_ENROLLMENT_APPLICATION"/>
<permission name="android.permission.INTERACT_ACROSS_USERS"/>
</privapp-permissions>
<privapp-permissions package="com.android.hotwordenrollment.xgoogle">
<permission name="android.permission.KEYPHRASE_ENROLLMENT_APPLICATION"/>
<permission name="android.permission.INTERACT_ACROSS_USERS"/>
</privapp-permissions>
<privapp-permissions package="com.google.android.partnersetup">
<permission name="android.permission.CHANGE_COMPONENT_ENABLED_STATE"/>
<permission name="android.permission.CHANGE_CONFIGURATION"/>
<permission name="android.permission.READ_PRIVILEGED_PHONE_STATE"/>
</privapp-permissions>
<privapp-permissions package="com.google.android.onetimeinitializer">
<permission name="android.permission.CHANGE_COMPONENT_ENABLED_STATE"/>
</privapp-permissions>
<privapp-permissions package="com.google.ambient.streaming">
<permission name="android.permission.START_FOREGROUND_SERVICES_FROM_BACKGROUND"/>
<permission name="android.permission.REQUEST_COMPANION_SELF_MANAGED"/>
<permission name="android.permission.CAPTURE_VOICE_COMMUNICATION_OUTPUT"/>
<permission name="android.permission.SUBSTITUTE_NOTIFICATION_APP_NAME"/>
<permission name="android.permission.CAPTURE_AUDIO_OUTPUT"/>
<permission name="android.permission.BLUETOOTH_PRIVILEGED"/>
<permission name="android.permission.START_ACTIVITIES_FROM_BACKGROUND"/>
<permission name="android.permission.BATTERY_STATS"/>
<permission name="android.permission.ACCESS_NOTIFICATIONS"/>
<permission name="android.permission.FORCE_STOP_PACKAGES"/>
<permission name="android.permission.REQUEST_COMPANION_PROFILE_APP_STREAMING"/>
<permission name="android.permission.MODIFY_AUDIO_ROUTING"/>
<permission name="android.permission.REAL_GET_TASKS"/>
<permission name="android.permission.MANAGE_ACCESSIBILITY"/>
</privapp-permissions>
</permissions>

View File

@@ -1,13 +1,3 @@
<?xml version="1.0" encoding="utf-8"?> version https://git-lfs.github.com/spec/v1
<permissions> oid sha256:9de7ae2a7ed6d643b6d556593a09bb9410cd8a9cb98fee99c85c66eb45f1ee03
<privapp-permissions package="com.google.android.projection.gearhead"> size 601
<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"/>
</privapp-permissions>
</permissions>

View File

@@ -1,4 +1,3 @@
<?xml version="1.0" encoding="utf-8"?> version https://git-lfs.github.com/spec/v1
<config> oid sha256:364372d5bb87bbf22b2628b14e2b56d521fb17ce27df804713c6fbea2eb2088c
<feature name="com.google.android.feature.D2D_CABLE_MIGRATION_FEATURE" /> size 136
</config>

View File

@@ -1,62 +1,3 @@
<?xml version="1.0" encoding="utf-8"?> version https://git-lfs.github.com/spec/v1
<!-- oid sha256:47612877a9484d9426a9964843016f0da34153f7f1446fbabcfba7e469790cd1
This XML file declares which platform apps that need to access internal APIs. size 4259
-->
<config>
<hidden-api-whitelisted-app package="com.android.apps.tag" />
<hidden-api-whitelisted-app package="com.android.connectivity.metrics" />
<hidden-api-whitelisted-app package="com.android.facelock" />
<hidden-api-whitelisted-app package="com.android.google.gce.gceservice" />
<hidden-api-whitelisted-app package="com.android.hotwordenrollment.okgoogle" />
<hidden-api-whitelisted-app package="com.android.hotwordenrollment.tgoogle" />
<hidden-api-whitelisted-app package="com.android.hotwordenrollment.xgoogle" />
<hidden-api-whitelisted-app package="com.android.inputmethod.latin" />
<hidden-api-whitelisted-app package="com.android.media.update" />
<hidden-api-whitelisted-app package="com.android.netspeed" />
<hidden-api-whitelisted-app package="com.android.onemedia" />
<hidden-api-whitelisted-app package="com.android.pixellogger" />
<hidden-api-whitelisted-app package="com.android.ramdump" />
<hidden-api-whitelisted-app package="com.android.settingslib.robotests" />
<hidden-api-whitelisted-app package="com.android.simappdialog" />
<hidden-api-whitelisted-app package="com.android.statsd.dogfood" />
<hidden-api-whitelisted-app package="com.android.statsd.loadtest" />
<hidden-api-whitelisted-app package="com.android.systemui.shared" />
<hidden-api-whitelisted-app package="com.android.test.power" />
<hidden-api-whitelisted-app package="com.android.test.voiceenrollment" />
<hidden-api-whitelisted-app package="com.android.tv.provision" />
<hidden-api-whitelisted-app package="com.google.SSRestartDetector" />
<hidden-api-whitelisted-app package="com.google.android.apps.nexuslauncher" />
<hidden-api-whitelisted-app package="com.google.android.apps.wallpaper" />
<hidden-api-whitelisted-app package="com.google.android.asdiv" />
<hidden-api-whitelisted-app package="com.google.android.athome.globalkeyinterceptor" />
<hidden-api-whitelisted-app package="com.google.android.carrier" />
<hidden-api-whitelisted-app package="com.google.android.carriersetup" />
<hidden-api-whitelisted-app package="com.google.android.connectivitymonitor" />
<hidden-api-whitelisted-app package="com.google.android.edu.harnesssettings" />
<hidden-api-whitelisted-app package="com.google.android.ext.services" />
<hidden-api-whitelisted-app package="com.google.android.factoryota" />
<hidden-api-whitelisted-app package="com.google.android.feedback" />
<hidden-api-whitelisted-app package="com.google.android.gsf" />
<hidden-api-whitelisted-app package="com.google.android.hardwareinfo" />
<hidden-api-whitelisted-app package="com.google.android.hiddenmenu" />
<hidden-api-whitelisted-app package="com.google.android.permissioncontroller" />
<hidden-api-whitelisted-app package="com.google.android.partner.provisioning" />
<hidden-api-whitelisted-app package="com.google.android.pixel.setupwizard" />
<hidden-api-whitelisted-app package="com.google.android.preloaded_drawable_viewer" />
<hidden-api-whitelisted-app package="com.google.android.printservice.recommendation" />
<hidden-api-whitelisted-app package="com.google.android.sampledeviceowner" />
<hidden-api-whitelisted-app package="com.google.android.apps.scone" />
<hidden-api-whitelisted-app package="com.google.android.sdksetup" />
<hidden-api-whitelisted-app package="com.google.android.setupwizard" />
<hidden-api-whitelisted-app package="com.google.android.storagemanager" />
<hidden-api-whitelisted-app package="com.google.android.tag" />
<hidden-api-whitelisted-app package="com.google.android.tungsten.setupwraith" />
<hidden-api-whitelisted-app package="com.google.android.vendorloggingservice" />
<hidden-api-whitelisted-app package="com.google.android.volta" />
<hidden-api-whitelisted-app package="com.google.android.wfcactivation" />
<hidden-api-whitelisted-app package="com.google.mds" />
<hidden-api-whitelisted-app package="com.google.modemservice" />
<hidden-api-whitelisted-app package="com.htc.omadm.trigger" />
<hidden-api-whitelisted-app package="com.qualcomm.qcrilmsgtunnel" />
<hidden-api-whitelisted-app package="com.ustwo.lwp" />
</config>

View File

@@ -1,99 +1,3 @@
<?xml version="1.0" encoding="utf-8"?> version https://git-lfs.github.com/spec/v1
<!-- These are configurations that must exist on all GMS devices. --> oid sha256:edf812885b78966b74f121d13d1ef7120aeab2b51211182b709bfb3c93b91330
<config> size 6127
<!-- These are the standard packages that are white-listed to always have internet
access while in power save mode, even if they aren't in the foreground. -->
<!-- GmsCore must always have network access for GCM and other things. -->
<allow-in-power-save package="com.google.android.gms" />
<allow-in-data-usage-save package="com.google.android.gms" />
<allow-unthrottled-location package="com.google.android.gms" />
<allow-ignore-location-settings package="com.google.android.gms" attributionTag="com.google.android.gms.thunderbird" />
<allow-ignore-location-settings package="com.google.android.dialer" attributionTag="*" />
<!-- Allow App Streaming to run in background while in power save mode. -->
<allow-in-power-save package="com.google.ambient.streaming" />
<!-- Turbo must not have App Standby restrictions in order to push new
App Standby buckets to the platform periodically -->
<allow-in-power-save-except-idle package="com.google.android.apps.turbo" />
<!-- Certain broadcasts must still go to legacy implicit receivers -->
<allow-implicit-broadcast action="com.google.android.checkin.CHECKIN_COMPLETE" />
<allow-implicit-broadcast action="com.google.gservices.intent.action.GSERVICES_CHANGED" />
<allow-implicit-broadcast action="com.google.gservices.intent.action.GSERVICES_OVERRIDE" />
<allow-implicit-broadcast action="com.google.android.c2dm.intent.RECEIVE" />
<!-- TODO: This is a temporary workaround for allowing GmsCore to receive this broadcast.
This can be removed once OneTimeInitializer functionality is moved to GmsCore. -->
<allow-implicit-broadcast action="com.google.android.onetimeinitializer.ONE_TIME_INITIALIZED" />
<!-- Play Store likewise must have network access to support other applications. -->
<allow-in-power-save-except-idle package="com.android.vending" />
<!-- Allow SetupWizard keeping at unrestricted mode of Battery usage. -->
<bg-restriction-exemption package="com.google.android.setupwizard"/>
<bg-restriction-exemption package="com.google.android.apps.setupwizard.searchselector"/>
<!-- These Google applications all handle URLs to their websites by default -->
<!-- Apps below are required on all GMS devices -->
<app-link package="com.android.vending" />
<app-link package="com.google.android.gms" />
<app-link package="com.google.android.apps.maps" />
<app-link package="com.google.android.youtube" />
<app-link package="com.google.android.apps.docs" />
<app-link package="com.google.android.apps.photos" />
<app-link package="com.google.android.apps.youtube.music" />
<app-link package="com.google.android.googlequicksearchbox" />
<!-- Apps below are optional on GMS devices -->
<app-link package="com.google.android.apps.docs.editors.sheets" />
<app-link package="com.google.android.apps.docs.editors.slides" />
<app-link package="com.google.android.apps.docs.editors.docs" />
<app-link package="com.google.android.talk" />
<app-link package="com.google.android.videos" />
<app-link package="com.google.android.calendar" />
<app-link package="com.google.android.apps.wallpaper" />
<!-- Whitelist of what components are permitted as backup data transports. The
'service' attribute here is a flattened ComponentName string. -->
<backup-transport-whitelisted-service
service="com.google.android.gms/.backup.BackupTransportService" />
<backup-transport-whitelisted-service
service="com.google.android.gms/.backup.component.D2dTransportService" />
<backup-transport-whitelisted-service
service="com.google.android.apps.restore/.transport.BackupTransportService" />
<backup-transport-whitelisted-service
service="com.google.android.apps.restore/.transport.D2dTransportService" />
<!-- Specify the explicit set of other applications that AI services are allowed to
interact with, including the providers that back the implementation of the APIs
provided by the package. -->
<allow-association target="com.google.android.as" allowed="com.android.bluetooth" />
<allow-association target="com.google.android.as" allowed="com.android.bluetooth.services" />
<allow-association target="com.google.android.as" allowed="com.android.providers.contacts" />
<allow-association target="com.google.android.as" allowed="com.android.providers.media" />
<allow-association target="com.google.android.as" allowed="com.android.providers.telephony" />
<allow-association target="com.google.android.as" allowed="com.android.systemui" />
<allow-association target="com.google.android.as" allowed="com.google.android.bluetooth" />
<allow-association target="com.google.android.as" allowed="com.google.android.bluetooth.services" />
<allow-association target="com.google.android.as" allowed="com.google.android.providers.media.module" />
<!-- AI services can bind to its open-source network component. -->
<allow-association target="com.google.android.as" allowed="com.google.android.as.oss" />
<!-- AI services open-source network component can only bind back to the core package. -->
<allow-association target="com.google.android.as.oss" allowed="com.google.android.as" />
<!-- Specify the explicit set of other applications whose app data directories are
accessible by other applications. -->
<app-data-isolation-whitelisted-app package="com.google.android.gms" />
<!-- Whitelist of packages that eligible for rollback -->
<rollback-whitelisted-app package="com.android.vending" />
<!-- Specify the installer eligiable for updating the given GMS package. -->
<update-ownership package="com.google.android.gms" installer="com.android.vending" />
<!-- Denylist of packages that are not eligible for automatic rollback -->
<automatic-rollback-denylisted-app package="com.android.vending" />
</config>

View File

@@ -1,24 +1,3 @@
<?xml version="1.0" encoding="utf-8"?> version https://git-lfs.github.com/spec/v1
<!-- Copyright (C) 2014 The Android Open Source Project oid sha256:724875dc95f7fb7eb950714f9a474a9a304e081626d9364647e02409e4bdae9c
size 1106
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.
-->
<!-- These are configurations that should exist on Google's own Nexus and GPe devices. -->
<config>
<feature name="com.google.android.feature.GOOGLE_BUILD" />
<!-- This should be added to all Nexus and GPe devices -->
<feature name="com.google.android.feature.GOOGLE_EXPERIENCE" />
<!-- This should declare the version of Exchange that ships -->
<feature name="com.google.android.feature.EXCHANGE_6_2" />
</config>

View File

@@ -1,4 +1,3 @@
<?xml version="1.0" encoding="utf-8"?> version https://git-lfs.github.com/spec/v1
<config> oid sha256:eb737eb93ffa855638793cf898c9bb73dff81fa48fa0ecaf7707280a9f1b2753
<feature name="com.google.android.feature.WELLBEING" /> size 118
</config>

View File

@@ -1,76 +1,3 @@
<?xml version="1.0" encoding="utf-8"?> version https://git-lfs.github.com/spec/v1
<!-- oid sha256:5ad3816372042840de3b9953cb6582fa84e55416100afca4da93b0dcf470aadb
This XML file declares which signature|privileged permissions should be granted to privileged size 4500
applications in /system_ext on GMS or Google-branded devices.
It allows additional grants on top of privapp-permissions-platform.xml
-->
<permissions>
<privapp-permissions package="com.android.emergency">
<permission name="android.permission.CALL_PRIVILEGED"/>
<permission name="android.permission.READ_PRIVILEGED_PHONE_STATE"/>
<permission name="android.permission.START_ACTIVITIES_FROM_BACKGROUND"/>
<permission name="android.permission.WRITE_SECURE_SETTINGS"/>
</privapp-permissions>
<privapp-permissions package="com.google.android.gsf">
<permission name="android.permission.ACCESS_CACHE_FILESYSTEM"/>
<permission name="android.permission.BACKUP"/>
<permission name="android.permission.CHANGE_COMPONENT_ENABLED_STATE"/>
<permission name="android.permission.DUMP"/>
<permission name="android.permission.INTERACT_ACROSS_USERS"/>
<permission name="android.permission.INVOKE_CARRIER_SETUP"/>
<permission name="android.permission.MANAGE_USERS"/>
<permission name="android.permission.MASTER_CLEAR"/>
<permission name="android.permission.READ_DREAM_STATE"/>
<permission name="android.permission.READ_NETWORK_USAGE_HISTORY"/>
<permission name="android.permission.REBOOT"/>
<permission name="android.permission.RECEIVE_DATA_ACTIVITY_CHANGE"/>
<permission name="android.permission.RECOVERY"/>
<permission name="android.permission.SET_TIME"/>
<permission name="android.permission.STATUS_BAR"/>
<permission name="android.permission.UPDATE_DEVICE_STATS"/>
<permission name="android.permission.WRITE_GSERVICES"/>
<permission name="android.permission.WRITE_SECURE_SETTINGS"/>
</privapp-permissions>
<privapp-permissions package="com.google.android.feedback">
<permission name="android.permission.PACKAGE_USAGE_STATS"/>
<permission name="android.permission.READ_LOGS"/>
<permission name="android.permission.READ_PRIVILEGED_PHONE_STATE"/>
</privapp-permissions>
<privapp-permissions package="com.google.android.setupwizard">
<permission name="android.permission.BACKUP"/>
<permission name="android.permission.CHANGE_COMPONENT_ENABLED_STATE"/>
<permission name="android.permission.CHANGE_CONFIGURATION"/>
<permission name="android.permission.CONNECTIVITY_INTERNAL"/>
<permission name="android.permission.DISPATCH_PROVISIONING_MESSAGE"/>
<permission name="android.permission.INTERACT_ACROSS_USERS"/>
<permission name="android.permission.INVOKE_CARRIER_SETUP"/>
<permission name="android.permission.LOCAL_MAC_ADDRESS"/>
<permission name="android.permission.LOCATION_HARDWARE"/>
<permission name="android.permission.MANAGE_DEVICE_ADMINS"/>
<permission name="android.permission.MANAGE_FINGERPRINT"/>
<permission name="android.permission.MANAGE_USB"/>
<permission name="android.permission.MANAGE_TIME_AND_ZONE_DETECTION"/>
<permission name="android.permission.MANAGE_USERS"/>
<permission name="android.permission.MASTER_CLEAR"/>
<permission name="android.permission.MODIFY_DAY_NIGHT_MODE"/>
<permission name="android.permission.MODIFY_PHONE_STATE"/>
<permission name="android.permission.NOTIFICATION_DURING_SETUP"/>
<permission name="android.permission.OVERRIDE_WIFI_CONFIG"/>
<permission name="android.permission.PERFORM_CDMA_PROVISIONING"/>
<permission name="android.permission.READ_PRIVILEGED_PHONE_STATE"/>
<permission name="android.permission.READ_WIFI_CREDENTIAL"/>
<permission name="android.permission.REBOOT"/>
<permission name="android.permission.REQUEST_NETWORK_SCORES"/>
<permission name="android.permission.SET_TIME"/>
<permission name="android.permission.SET_TIME_ZONE"/>
<permission name="android.permission.SHUTDOWN"/>
<permission name="android.permission.STATUS_BAR"/>
<permission name="android.permission.START_ACTIVITIES_FROM_BACKGROUND"/>
<permission name="android.permission.SUBSTITUTE_NOTIFICATION_APP_NAME"/>
<permission name="android.permission.WRITE_APN_SETTINGS"/>
<permission name="android.permission.WRITE_SECURE_SETTINGS"/>
</privapp-permissions>
</permissions>

View File

@@ -1,52 +1,3 @@
#!/bin/bash version https://git-lfs.github.com/spec/v1
# oid sha256:1de879c8241ff8d01e3866e76a8c99d75d7ea34cd124f45587b5eeff7fe8d7e1
# Copyright (C) 2016 The CyanogenMod Project size 1430
# Copyright (C) 2017-2021 The LineageOS Project
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
set -e
export GAPPS_COMMON=common
export VENDOR=gapps
# Load extract_utils and do some sanity checks
MY_DIR="${BASH_SOURCE%/*}"
if [[ ! -d "$MY_DIR" ]]; then MY_DIR="$PWD"; fi
ANDROID_ROOT="$MY_DIR/../.."
export TARGET_ENABLE_CHECKELF=true
HELPER="$ANDROID_ROOT/tools/extract-utils/extract_utils.sh"
if [ ! -f "$HELPER" ]; then
echo "Unable to find helper script at $HELPER"
exit 1
fi
. "$HELPER"
SRC=$1
if [ -z "$SRC" ]; then
echo "Path to system dump not specified! Specify one with --path"
exit 1
fi
# Initialize the helper for common gapps
setup_vendor "$GAPPS_COMMON" "$VENDOR" "$ANDROID_ROOT"
extract "$MY_DIR"/proprietary-files-common.txt "$SRC"
extract "$MY_DIR"/proprietary-files-common-nongrouper.txt "$SRC"
"$MY_DIR"/setup-makefiles.sh

View File

@@ -1,4 +1,3 @@
runtime_resource_overlay { version https://git-lfs.github.com/spec/v1
name: "GmsOverlay", oid sha256:e8c8842a84fa8fb627e777fdc8f6bfef877604f3e37948015152f71334c4a4ef
product_specific: true size 80
}

View File

@@ -1,7 +1,3 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android" version https://git-lfs.github.com/spec/v1
package="com.mtg.gmsoverlay" oid sha256:a9aecfb0bd737c069290e19644562e28dc0efc5b16c47697aab53bb975c78a64
android:versionCode="1" size 313
android:versionName="1.0">
<application android:hasCode="false" />
<overlay android:targetPackage="android" android:priority="1337" android:isStatic="true" />
</manifest>

View File

@@ -1,23 +1,3 @@
!!brut.androlib.apk.ApkInfo version https://git-lfs.github.com/spec/v1
apkFileName: GmsOverlay.apk oid sha256:d19cbf93aed3b3a2c66c515c8fb9928a4caedc5419f176d14df9eeaa88ca045e
doNotCompress: size 432
- resources.arsc
isFrameworkApk: false
packageInfo:
forcedPackageId: '127'
renameManifestPackage: null
resourcesAreCompressed: false
sdkInfo:
minSdkVersion: '35'
targetSdkVersion: '35'
sharedLibrary: false
sparseResources: true
unknownFiles: {}
usesFramework:
ids:
- 1
tag: null
version: 2.8.1
versionInfo:
versionCode: '1'
versionName: '1.0'

View File

@@ -1,78 +1,3 @@
<?xml version="1.0" encoding="utf-8"?> version https://git-lfs.github.com/spec/v1
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> oid sha256:2db56397a699438c32dde7f1b6677020833641910e99645f31c12743b990f224
<!-- Apps that are authorized to access shared accounts --> size 4819
<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">
<item>com.android.settings</item>
<item>com.android.providers.settings</item>
<!-- Add packages here -->
<item>com.android.vending</item>
<item>com.google.android.gms</item>
</string-array>
<!-- 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 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. -->
<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>
<!-- Flag indicating which package name can access the persistent data partition -->
<string name="config_persistentDataPackageName" translatable="false">com.google.android.gms</string>
</resources>

View File

@@ -1,4 +1,3 @@
runtime_resource_overlay { version https://git-lfs.github.com/spec/v1
name: "GmsSettingsOverlay", oid sha256:05a562621f17beb2037b0117cee39e588292a06c033b18bcb37f19184f9dd576
product_specific: true size 88
}

View File

@@ -1,7 +1,3 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android" version https://git-lfs.github.com/spec/v1
package="com.mtg.gmssettingsoverlay" oid sha256:d806e7c86147cf93a3e3a30da0dcbe6afdc0da9b63462d5bfb01e39573d993b7
android:versionCode="1" size 334
android:versionName="1.0">
<application android:hasCode="false" />
<overlay android:targetPackage="com.android.settings" android:priority="1337" android:isStatic="true" />
</manifest>

View File

@@ -1,23 +1,3 @@
!!brut.androlib.apk.ApkInfo version https://git-lfs.github.com/spec/v1
apkFileName: GmsSettingsOverlay.apk oid sha256:f53fdf2a70a19d2b27daf3492628a4f5dfaa09afeaf5344a0ef49f3d1866a6ff
doNotCompress: size 440
- resources.arsc
isFrameworkApk: false
packageInfo:
forcedPackageId: '127'
renameManifestPackage: null
resourcesAreCompressed: false
sdkInfo:
minSdkVersion: '35'
targetSdkVersion: '35'
sharedLibrary: false
sparseResources: true
unknownFiles: {}
usesFramework:
ids:
- 1
tag: null
version: 2.8.1
versionInfo:
versionCode: '1'
versionName: '1.0'

View File

@@ -1,14 +1,3 @@
<?xml version="1.0" encoding="utf-8"?> version https://git-lfs.github.com/spec/v1
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> oid sha256:dfc457a9eff2f53cf38c788263c2738f0bf793ad60560f1b363bb42d486d6055
<!-- BT Slice EXTRA_INTENT. To support Settings 2 panel, BT slice can't use PendingIntent.send(). Therefore, here defines the Slice EXTRA_INTENT. --> size 1371
<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>
</resources>

View File

@@ -1,4 +1,3 @@
runtime_resource_overlay { version https://git-lfs.github.com/spec/v1
name: "GmsSettingsProviderOverlay", oid sha256:1c01949936b92a2e83e350a2671723bedaa54f4015a8c5c5de09899d90762770
product_specific: true size 96
}

View File

@@ -1,7 +1,3 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android" version https://git-lfs.github.com/spec/v1
package="com.mtg.gmssettingsprovideroverlay" oid sha256:7acb6e32e5928bf585988b438bb8a8e873073acd01d1273e061a544dfe4b2723
android:versionCode="1" size 352
android:versionName="1.0">
<application android:hasCode="false" />
<overlay android:targetPackage="com.android.providers.settings" android:priority="1337" android:isStatic="true" />
</manifest>

View File

@@ -1,23 +1,3 @@
!!brut.androlib.apk.ApkInfo version https://git-lfs.github.com/spec/v1
apkFileName: GmsSettingsProviderOverlay.apk oid sha256:a492281f8c8e039b8d21a6a78f8a7320042f0c116e5c6dd23b5a7f4e3caee25f
doNotCompress: size 448
- resources.arsc
isFrameworkApk: false
packageInfo:
forcedPackageId: '127'
renameManifestPackage: null
resourcesAreCompressed: false
sdkInfo:
minSdkVersion: '35'
targetSdkVersion: '35'
sharedLibrary: false
sparseResources: true
unknownFiles: {}
usesFramework:
ids:
- 1
tag: null
version: 2.8.1
versionInfo:
versionCode: '1'
versionName: '1.0'

View File

@@ -1,3 +1,3 @@
<resources> version https://git-lfs.github.com/spec/v1
<string name="def_backup_transport">com.google.android.gms/.backup.BackupTransportService</string> oid sha256:5220d0cb854464903d8ca0e95f9aac956bd081e4871e4f0510c45175d9abcbc3
</resources> size 128

View File

@@ -1,4 +1,3 @@
runtime_resource_overlay { version https://git-lfs.github.com/spec/v1
name: "GmsSetupWizardOverlay", oid sha256:7f726726386cbaa613e33bad396cf04f0ef888367df6549d26c673c70b9cf32c
product_specific: true size 91
}

View File

@@ -1,7 +1,3 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android" version https://git-lfs.github.com/spec/v1
package="com.mtg.gmssetupwizardoverlay" oid sha256:55a9e61facbd1af346a0c904b5b7b332382a39bbc47f45214d63b97935c49355
android:versionCode="1" size 347
android:versionName="1.0">
<application android:hasCode="false" />
<overlay android:targetPackage="com.google.android.setupwizard" android:priority="1337" android:isStatic="true" />
</manifest>

View File

@@ -1,23 +1,3 @@
!!brut.androlib.apk.ApkInfo version https://git-lfs.github.com/spec/v1
apkFileName: GmsSetupWizardOverlay.apk oid sha256:dbadb1c5e4c7fc6076c14e5cc7ec96b1dd55192d4d30ba4fffad34a92fe4f6f8
doNotCompress: size 443
- resources.arsc
isFrameworkApk: false
packageInfo:
forcedPackageId: '127'
renameManifestPackage: null
resourcesAreCompressed: false
sdkInfo:
minSdkVersion: '35'
targetSdkVersion: '35'
sharedLibrary: false
sparseResources: true
unknownFiles: {}
usesFramework:
ids:
- 1
tag: null
version: 2.8.1
versionInfo:
versionCode: '1'
versionName: '1.0'

View File

@@ -1,8 +1,3 @@
<?xml version="1.0" encoding="utf-8"?> version https://git-lfs.github.com/spec/v1
<resources> oid sha256:d2ec5d8f7121dc3b7b1ed1aabf7219412677e21871277cbf8f09682463e2f55e
<bool name="dynamic_color_enabled">true</bool> size 354
<bool name="enable_partner_experiment">true</bool>
<bool name="enable_quick_enhanced_biometrics_flow">true</bool>
<bool name="extended_partner_config_enabled">true</bool>
<bool name="full_dynamic_color_enabled">true</bool>
</resources>

View File

@@ -1,33 +1,3 @@
#!/bin/bash version https://git-lfs.github.com/spec/v1
oid sha256:1c3b8b437b5d22f4d0725637f3a6e520192194bdb899d0e32d6037a08c2d1d06
set -e size 1104
GARCH=$1
GOUT=$2
APKTOOL=$GAPPS_TOP/build/apktool/apktool_2.8.1.jar
APKSIGNER=$GAPPS_TOP/build/sign/apksigner.jar
APK_KEY_PK8=$GAPPS_TOP/build/sign/testkey.pk8
APK_KEY_PEM=$GAPPS_TOP/build/sign/testkey.x509.pem
SCRIPT_DIR=$(dirname "$0")
cd "$SCRIPT_DIR"
OVERLAYS=$(for dir in $(ls -d */); do echo ${dir%%/}; done)
for OVERLAY in $OVERLAYS; do
PARTITION=$(grep -Eo "\w+_specific: true" $OVERLAY/Android.bp | sed "s/_specific.*$//")
OVERLAY_TARGET_DIR="$GOUT/system/$PARTITION/overlay/"
OVERLAY_TARGET="$OVERLAY_TARGET_DIR/$OVERLAY.apk"
test -d $OVERLAY_TARGET_DIR || mkdir -p $OVERLAY_TARGET_DIR
java -Xmx2048m -jar $APKTOOL b $OVERLAY --use-aapt2 >> $GLOG 2>&1
touch -amt 200901010000.00 \
$OVERLAY/build/apk/resources.arsc \
$OVERLAY/build/apk/AndroidManifest.xml
zip -j $OVERLAY_TARGET -n .arsc \
$OVERLAY/build/apk/resources.arsc \
$OVERLAY/build/apk/AndroidManifest.xml >> $GLOG 2>&1
java -Xmx2048m -jar $APKSIGNER sign --key $APK_KEY_PK8 --cert $APK_KEY_PEM $OVERLAY_TARGET
rm $OVERLAY_TARGET.idsig
done

View File

@@ -1,5 +1,3 @@
product/app/SpeechServicesByGoogle/SpeechServicesByGoogle.apk;PRESIGNED version https://git-lfs.github.com/spec/v1
product/app/talkback/talkback.apk;PRESIGNED oid sha256:57d5585fe8a8a4a59cd93d726ec9da61bf4304b1d1e2a6f83fc058df18628dee
product/priv-app/Velvet/Velvet.apk;PRESIGNED size 240
system_ext/priv-app/SetupWizard/SetupWizard.apk;OVERRIDES=Provision;PRESIGNED

View File

@@ -1,3 +1,3 @@
product/priv-app/GmsCore/GmsCore.apk;PRESIGNED version https://git-lfs.github.com/spec/v1
product/priv-app/Phonesky/Phonesky.apk;PRESIGNED oid sha256:bf47cb3e960f0da5c89fcaf713f357e0c55c27f354bced238cc4104ca799c07e
product/lib/libjni_latinimegoogle.so|cff48167aeff1d47e624b100138a8ad01cb2967b size 174

View File

@@ -1,7 +1,3 @@
product/app/MarkupGoogle_v2/MarkupGoogle_v2.apk;PRESIGNED|474ca0e1fb0e6340b647142b3f493055fcb3990f version https://git-lfs.github.com/spec/v1
product/app/SpeechServicesByGoogle/SpeechServicesByGoogle.apk;PRESIGNED oid sha256:7557d44a17bbb3600ae78630ff97c44edf1acf4ac00da6986842dfe762aab551
product/app/talkback/talkback.apk;PRESIGNED size 452
product/priv-app/Velvet/Velvet.apk;PRESIGNED
product/priv-app/VelvetTitan/VelvetTitan.apk;OVERRIDES=Velvet;PRESIGNED|bb7c2f3fadfee4dda509daba285fec3dfffeed7e
system_ext/priv-app/SetupWizard/SetupWizard.apk;OVERRIDES=Provision;PRESIGNED

View File

@@ -1,4 +1,3 @@
product/priv-app/GmsCore/GmsCore.apk;PRESIGNED version https://git-lfs.github.com/spec/v1
product/priv-app/Phonesky/Phonesky.apk;PRESIGNED oid sha256:2960742841476009f72801b756c3ab377673c263e211bb71df52bdb89c69bd93
product/lib/libjni_latinimegoogle.so|cff48167aeff1d47e624b100138a8ad01cb2967b size 254
product/lib64/libjni_latinimegoogle.so|08ca8391a1816da0c417a3882e72dabb4091fd3c

View File

@@ -1,4 +1,3 @@
product/etc/sysconfig/wellbeing.xml version https://git-lfs.github.com/spec/v1
oid sha256:f3700f07aa10ca88998ad34267e6140c4404cb938992e6e5c0cb3183448e6c96
product/priv-app/GoogleRestore/GoogleRestore.apk;PRESIGNED size 147
product/priv-app/Wellbeing/Wellbeing.apk;PRESIGNED

View File

@@ -1,29 +1,3 @@
product/app/GoogleCalendarSyncAdapter/GoogleCalendarSyncAdapter.apk;PRESIGNED version https://git-lfs.github.com/spec/v1
product/app/GoogleContactsSyncAdapter/GoogleContactsSyncAdapter.apk;PRESIGNED|ec9673f50e4c4dfd2bfcb784d2d8082ef48d1e23 oid sha256:dcb1b2f9943529f43cfe92672a97f9654b87ed8ebe39e314e9c060ef91f57e50
product/app/PrebuiltExchange3Google/PrebuiltExchange3Google.apk;PRESIGNED|043cb74798bf137d2dd1a69c7bca0a6702ad88a2 size 1523
product/priv-app/AndroidAutoStub/AndroidAutoStub.apk;PRESIGNED
product/priv-app/GooglePartnerSetup/GooglePartnerSetup.apk;PRESIGNED
product/framework/com.google.android.dialer.support.jar;PRESIGNED
product/etc/default-permissions/default-permissions-google.xml
product/etc/default-permissions/default-permissions-mtg.xml|b0e11fec4c6d134e205a856733bc89d95f2f24c9
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|b8bcdbc95f03e6c3e50a015c092d5a4b3fc878d7
product/etc/security/fsverity/gms_fsverity_cert.der
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
system_ext/priv-app/GoogleFeedback/GoogleFeedback.apk;PRESIGNED
system_ext/priv-app/GoogleServicesFramework/GoogleServicesFramework.apk;PRESIGNED
system_ext/etc/permissions/privapp-permissions-google-system-ext.xml

View File

@@ -1,3 +1,3 @@
product/priv-app/Velvet/Velvet.apk;PRESIGNED version https://git-lfs.github.com/spec/v1
oid sha256:2599ff49ba2a6ab4855e7d77962a1feac06afa6ffdf386b729249939f3d4c0fb
system_ext/priv-app/SetupWizard/SetupWizard.apk;OVERRIDES=Provision;PRESIGNED size 124

View File

@@ -1,4 +1,3 @@
product/priv-app/GmsCore/GmsCore.apk;PRESIGNED version https://git-lfs.github.com/spec/v1
product/priv-app/Phonesky/Phonesky.apk;PRESIGNED oid sha256:5f7dcd371ab27a3fc94ce65d30ff859e490461ea9e658457a2279643a71f6e12
product/lib/libjni_latinimegoogle.so|40e731390e8372196db987b1d7fd83c204b42e41 size 254
product/lib64/libjni_latinimegoogle.so|67772ec6576feb79748440f765cad6321aef63d0

View File

@@ -1,100 +1,3 @@
#!/bin/bash version https://git-lfs.github.com/spec/v1
# oid sha256:0b9de5964acb92eaf8a3a588671c78488f670c33350443c294a1e3503e355237
# Copyright (C) 2016 The CyanogenMod Project size 2894
# 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

Some files were not shown because too many files have changed in this diff Show More