6 Commits
vic ... sigma

Author SHA1 Message Date
LuK1337
f75a18fd21 Use zip for packing overlays
No idea why, but CI ends up with overlays containing files in the wrong
order.
2023-10-25 22:02:45 +02:00
Paul Keith
aafacd12da gapps: Use apktool to build RRO overlays
The following fields in the AndroidManifest.xml are different:

Built in AOSP-tree version:
android:compileSdkVersion="32"
android:compileSdkVersionCodename="12"
platformBuildVersionCode="32"
platformBuildVersionName="12"

Build with apktool version:
android:compileSdkVersion="23"
android:compileSdkVersionCodename="6.0-2438415"
platformBuildVersionCode="23"
platformBuildVersionName="6.0-2438415"
2023-09-22 12:23:05 -05:00
Paul Keith
d547c37698 Regenerate makefiles 2022-09-06 19:50:28 -05:00
Paul Keith
b5fc70df6b Move permissions for Android Auto to a separate XML
This means we can update the XML without manual changes

This reverts commit 17fa00ca06.
This reverts commit 69cf9bae03.
2022-09-06 10:12:58 -05:00
Paul Keith
65fde8a768 Fix not pinning default-permissions-google.xml 2022-08-28 23:58:08 -05:00
Paul Keith
4c9625b681 Fix default permissions for Android Auto
This should fix Android Auto not working until permissions
are manually granted.
2022-08-28 22:53:06 -05:00
16 changed files with 108 additions and 76 deletions

3
.gitignore vendored
View File

@@ -1,5 +1,8 @@
# out directory # out directory
out/ out/
# rro build artifacts
overlay/**/build/
# gapps log # gapps log
gapps_log gapps_log

Binary file not shown.

View File

@@ -7,18 +7,23 @@
# var # var
# #
DATE=$(date -u +%Y%m%d_%H%M%S) DATE=$(date -u +%Y%m%d_%H%M%S)
TOP=$(realpath .) export GAPPS_TOP=$(realpath .)
ANDROIDV=12.1.0 ANDROIDV=12.1.0
SDKV=32 SDKV=32
GARCH=$1 GARCH=$1
CPUARCH=$GARCH CPUARCH=$GARCH
[ ! -z "$2" ] && CPUARCH=$2 [ ! -z "$2" ] && CPUARCH=$2
OUT=$TOP/out OUT=$GAPPS_TOP/out
BUILD=$TOP/build BUILD=$GAPPS_TOP/build
METAINF=$BUILD/meta METAINF=$BUILD/meta
COMMON=$TOP/common/proprietary COMMON=$GAPPS_TOP/common/proprietary
GLOG=$TOP/gapps_log export GLOG=$GAPPS_TOP/gapps_log
ADDOND=$TOP/addond.sh ADDOND=$GAPPS_TOP/addond.sh
SIGNAPK=$GAPPS_TOP/build/sign/signapk.jar
ZIP_KEY_PK8=$GAPPS_TOP/build/sign/testkey.pk8
ZIP_KEY_PEM=$GAPPS_TOP/build/sign/testkey.x509.pem
## ##
# functions # functions
@@ -41,16 +46,16 @@ function create() {
echo "ARCH= $GARCH" >> $GLOG echo "ARCH= $GARCH" >> $GLOG
echo "OS= $(uname -s -r)" >> $GLOG echo "OS= $(uname -s -r)" >> $GLOG
echo "NAME= $(whoami) at $(uname -n)" >> $GLOG echo "NAME= $(whoami) at $(uname -n)" >> $GLOG
PREBUILT=$TOP/$GARCH/proprietary PREBUILT=$GAPPS_TOP/$GARCH/proprietary
test -d $OUT || mkdir $OUT; test -d $OUT || mkdir $OUT;
test -d $OUT/$GARCH || mkdir -p $OUT/$GARCH test -d $OUT/$GARCH || mkdir -p $OUT/$GARCH
test -d $OUT/$GARCH/system || mkdir -p $OUT/$GARCH/system test -d $OUT/$GARCH/system || mkdir -p $OUT/$GARCH/system
echo "Build directories are now ready" >> $GLOG echo "Build directories are now ready" >> $GLOG
echo "Compiling RROs" echo "Compiling RROs"
$TOP/overlay/build_overlays.sh $GARCH $OUT/$GARCH $GAPPS_TOP/overlay/build_overlays.sh $GARCH $OUT/$GARCH
echo "Getting prebuilts..." echo "Getting prebuilts..."
echo "Copying stuff" >> $GLOG echo "Copying stuff" >> $GLOG
cp $TOP/toybox-$GARCH $OUT/$GARCH/toybox >> $GLOG cp $GAPPS_TOP/toybox-$GARCH $OUT/$GARCH/toybox >> $GLOG
cp -r $PREBUILT/* $OUT/$GARCH/system >> $GLOG cp -r $PREBUILT/* $OUT/$GARCH/system >> $GLOG
cp -r $COMMON/* $OUT/$GARCH/system >> $GLOG cp -r $COMMON/* $OUT/$GARCH/system >> $GLOG
echo "Generating addon.d script" >> $GLOG echo "Generating addon.d script" >> $GLOG
@@ -72,10 +77,10 @@ function zipit() {
cd $OUT/$GARCH cd $OUT/$GARCH
zip -r /tmp/$BUILDZIP . >> $GLOG zip -r /tmp/$BUILDZIP . >> $GLOG
rm -rf $OUT/tmp >> $GLOG rm -rf $OUT/tmp >> $GLOG
cd $TOP cd $GAPPS_TOP
if [ -f /tmp/$BUILDZIP ]; then if [ -f /tmp/$BUILDZIP ]; then
echo "Signing zip..." echo "Signing zip..."
java -Xmx2048m -jar $TOP/build/sign/signapk.jar -w $TOP/build/sign/testkey.x509.pem $TOP/build/sign/testkey.pk8 /tmp/$BUILDZIP $OUT/$BUILDZIP >> $GLOG java -Xmx2048m -jar $SIGNAPK -w $ZIP_KEY_PEM $ZIP_KEY_PK8 /tmp/$BUILDZIP $OUT/$BUILDZIP >> $GLOG
else else
echo "Couldn't zip files!" echo "Couldn't zip files!"
echo "Couldn't find unsigned zip file, aborting" >> $GLOG echo "Couldn't find unsigned zip file, aborting" >> $GLOG
@@ -103,7 +108,7 @@ function getmd5() {
if [ -x $(which realpath) ]; then if [ -x $(which realpath) ]; then
echo "Realpath found!" >> $GLOG echo "Realpath found!" >> $GLOG
else else
TOP=$(cd . && pwd) # some darwin love GAPPS_TOP=$(cd . && pwd) # some darwin love
echo "No realpath found!" >> $GLOG echo "No realpath found!" >> $GLOG
fi fi

BIN
build/sign/apksigner.jar Normal file

Binary file not shown.

View File

@@ -1,5 +0,0 @@
PRODUCT_MAKEFILES := \
$(LOCAL_DIR)/lineage_gapps_arm.mk \
$(LOCAL_DIR)/lineage_gapps_arm64.mk \
$(LOCAL_DIR)/lineage_gapps_x86.mk \
$(LOCAL_DIR)/lineage_gapps_x86_64.mk

View File

@@ -1,9 +0,0 @@
$(call inherit-product, build/target/product/aosp_arm.mk)
include vendor/lineage/build/target/product/lineage_generic_target.mk
TARGET_NO_KERNEL_OVERRIDE := true
PRODUCT_NAME := lineage_gapps_arm
PRODUCT_SOONG_NAMESPACES += vendor/gapps/overlay

View File

@@ -1,9 +0,0 @@
$(call inherit-product, build/target/product/aosp_arm64.mk)
include vendor/lineage/build/target/product/lineage_generic_target.mk
TARGET_NO_KERNEL_OVERRIDE := true
PRODUCT_NAME := lineage_gapps_arm64
PRODUCT_SOONG_NAMESPACES += vendor/gapps/overlay

View File

@@ -1,12 +0,0 @@
$(call inherit-product, build/target/product/aosp_x86.mk)
include vendor/lineage/build/target/product/lineage_generic_target.mk
PRODUCT_SDK_ADDON_NAME :=
PRODUCT_SDK_ADDON_SYS_IMG_SOURCE_PROP :=
TARGET_NO_KERNEL_OVERRIDE := true
PRODUCT_NAME := lineage_gapps_x86
PRODUCT_SOONG_NAMESPACES += vendor/gapps/overlay

View File

@@ -1,12 +0,0 @@
$(call inherit-product, build/target/product/aosp_x86_64.mk)
include vendor/lineage/build/target/product/lineage_generic_target.mk
TARGET_NO_KERNEL_OVERRIDE := true
PRODUCT_SDK_ADDON_NAME :=
PRODUCT_SDK_ADDON_SYS_IMG_SOURCE_PROP :=
PRODUCT_NAME := lineage_gapps_x86_64
PRODUCT_SOONG_NAMESPACES += vendor/gapps/overlay

View File

@@ -7,6 +7,7 @@ PRODUCT_SOONG_NAMESPACES += \
PRODUCT_COPY_FILES += \ 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-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/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/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-google-product.xml:$(TARGET_COPY_OUT_PRODUCT)/etc/permissions/privapp-permissions-google-product.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/security/fsverity/gms_fsverity_cert.der:$(TARGET_COPY_OUT_PRODUCT)/etc/security/fsverity/gms_fsverity_cert.der \

View File

@@ -0,0 +1,23 @@
<?xml version='1.0' encoding='utf-8' standalone='yes' ?>
<exceptions>
<exception
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.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,2 +0,0 @@
soong_namespace {
}

View File

@@ -0,0 +1,23 @@
!!brut.androlib.apk.ApkInfo
apkFileName: GmsOverlay.apk
doNotCompress:
- resources.arsc
isFrameworkApk: false
packageInfo:
forcedPackageId: '127'
renameManifestPackage: null
resourcesAreCompressed: false
sdkInfo:
minSdkVersion: '32'
targetSdkVersion: '32'
sharedLibrary: false
sparseResources: true
unknownFiles: {}
usesFramework:
ids:
- 1
tag: null
version: 2.8.1
versionInfo:
versionCode: '1'
versionName: '1.0'

View File

@@ -0,0 +1,23 @@
!!brut.androlib.apk.ApkInfo
apkFileName: GmsSettingsProviderOverlay.apk
doNotCompress:
- resources.arsc
isFrameworkApk: false
packageInfo:
forcedPackageId: '127'
renameManifestPackage: null
resourcesAreCompressed: false
sdkInfo:
minSdkVersion: '32'
targetSdkVersion: '32'
sharedLibrary: false
sparseResources: true
unknownFiles: {}
usesFramework:
ids:
- 1
tag: null
version: 2.8.1
versionInfo:
versionCode: '1'
versionName: '1.0'

View File

@@ -5,24 +5,26 @@ set -e
GARCH=$1 GARCH=$1
GOUT=$2 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") SCRIPT_DIR=$(dirname "$0")
cd "$SCRIPT_DIR" cd "$SCRIPT_DIR"
OVERLAYS=$(for dir in $(ls -d */); do echo ${dir%%/}; done) OVERLAYS=$(for dir in $(ls -d */); do echo ${dir%%/}; done)
croot 2>/dev/null || cd ../../../ for OVERLAY in $OVERLAYS; do
PARTITION=$(grep -Eo "\w+_specific: true" $OVERLAY/Android.bp | sed "s/_specific.*$//")
source build/envsetup.sh OVERLAY_TARGET_DIR="$GOUT/system/$PARTITION/overlay/"
breakfast gapps_$GARCH OVERLAY_TARGET="$OVERLAY_TARGET_DIR/$OVERLAY.apk"
m installclean test -d $OVERLAY_TARGET_DIR || mkdir -p $OVERLAY_TARGET_DIR
mkdir -p $OUT # $OUT may not exist yet, but we need to start creating the log file now java -Xmx2048m -jar $APKTOOL b $OVERLAY --use-aapt2 >> $GLOG 2>&1
m $OVERLAYS | tee $OUT/.log zip -j $OVERLAY_TARGET -n .arsc \
$OVERLAY/build/apk/resources.arsc \
RELOUT=$(echo $OUT | sed "s#^${ANDROID_BUILD_TOP}/##") $OVERLAY/build/apk/AndroidManifest.xml >> $GLOG 2>&1
LOC="$(cat $OUT/.log | sed -r -e 's/\x1B\[([0-9]{1,2}(;[0-9]{1,2})?)?[m|K]//g' -e 's/^\[ {0,2}[0-9]{1,3}% [0-9]{1,6}\/[0-9]{1,6}\] +//' \ java -Xmx2048m -jar $APKSIGNER sign --key $APK_KEY_PK8 --cert $APK_KEY_PEM $OVERLAY_TARGET
| grep '^Install: ' | grep "$RELOUT" | cut -d ':' -f 2)" rm $OVERLAY_TARGET.idsig
FILES=$(echo $LOC | tr " " "\n" | sed "s#.*${RELOUT}##" | sort | uniq)
for TARGET in $FILES; do
mkdir -p $(dirname $GOUT/$TARGET) && cp $OUT/$TARGET $GOUT/$TARGET
done done

View File

@@ -8,6 +8,7 @@
-product/framework/com.google.android.dialer.support.jar;PRESIGNED -product/framework/com.google.android.dialer.support.jar;PRESIGNED
product/etc/default-permissions/default-permissions-google.xml product/etc/default-permissions/default-permissions-google.xml
product/etc/default-permissions/default-permissions-mtg.xml|b0e11fec4c6d134e205a856733bc89d95f2f24c9
product/etc/permissions/com.google.android.dialer.support.xml product/etc/permissions/com.google.android.dialer.support.xml
product/etc/permissions/privapp-permissions-google-product.xml product/etc/permissions/privapp-permissions-google-product.xml