partner_gms: migrate Android.mk to Android.bp, fix vendorsetup.sh paths

Replace all Android.mk prebuilt rules with Android.bp android_app_import
modules. presigned: true in Soong guarantees APK signatures are untouched
(no signapk run, alignment-safe zipalign only), which is required so
microG/FDroid retain their own certs rather than being re-signed with the
platform key.

Fix vendorsetup.sh download paths to match the reorganised directory
structure: GmsCore and GsfProxy moved under apps/GMS/, FDroidPrivilegedExtension
moved under apps/FDroid/FDroidPrivilegedExtension/. The download_apk helper
now accepts an explicit destination path instead of deriving it from the
component name.

Also stage the directory renames and removal of the unused products/ stubs.
This commit is contained in:
oxmc
2026-06-15 02:26:02 -07:00
parent 8a7f7977ad
commit 68030a2d02
25 changed files with 159 additions and 180 deletions
+31
View File
@@ -0,0 +1,31 @@
prebuilt_etc {
name: "additional_repos.xml",
src: "additional_repos.xml",
sub_dir: "org.fdroid.fdroid",
product_specific: true,
}
prebuilt_etc {
name: "additional_repos.json",
src: "additional_repos.json",
sub_dir: "org.fdroid.fdroid",
product_specific: true,
}
android_app_import {
name: "FDroid",
apk: "FDroid.apk",
presigned: true,
dex_preopt: {
enabled: false,
},
product_specific: true,
optional_uses_libs: [
"androidx.window.extensions",
"androidx.window.sidecar",
],
required: [
"additional_repos.xml",
"additional_repos.json",
],
}
-28
View File
@@ -1,28 +0,0 @@
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := FDroid
LOCAL_SRC_FILES := FDroid.apk
LOCAL_MODULE_CLASS := APPS
LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX)
LOCAL_CERTIFICATE := PRESIGNED
# these lines may break builds before 19.1 so make them conditional
ifneq ($(call math_gt_or_eq, $(PLATFORM_SDK_VERSION), 31),)
LOCAL_OPTIONAL_USES_LIBRARIES := androidx.window.extensions androidx.window.sidecar
endif
LOCAL_PRODUCT_MODULE := true
LOCAL_DEX_PREOPT := false
include $(BUILD_PREBUILT)
include $(CLEAR_VARS)
LOCAL_MODULE := additional_repos.xml
LOCAL_MODULE_CLASS := ETC
LOCAL_MODULE_PATH := $(TARGET_OUT_PRODUCT_ETC)/org.fdroid.fdroid
LOCAL_SRC_FILES := additional_repos.xml
include $(BUILD_PREBUILT)
include $(CLEAR_VARS)
LOCAL_MODULE := additional_repos.json
LOCAL_MODULE_CLASS := ETC
LOCAL_MODULE_PATH := $(TARGET_OUT_PRODUCT_ETC)/org.fdroid.fdroid
LOCAL_SRC_FILES := additional_repos.json
include $(BUILD_PREBUILT)
@@ -0,0 +1,18 @@
prebuilt_etc {
name: "privapp-permissions-org.fdroid.fdroid.privileged.xml",
src: "privapp-permissions-org.fdroid.fdroid.privileged.xml",
sub_dir: "permissions",
product_specific: true,
}
android_app_import {
name: "FDroidPrivilegedExtension",
apk: "FDroidPrivilegedExtension.apk",
presigned: true,
privileged: true,
dex_preopt: {
enabled: false,
},
product_specific: true,
required: ["privapp-permissions-org.fdroid.fdroid.privileged.xml"],
}
-21
View File
@@ -1,21 +0,0 @@
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := privapp-permissions-org.fdroid.fdroid.privileged.xml
LOCAL_MODULE_CLASS := ETC
LOCAL_MODULE_PATH := $(TARGET_OUT_PRODUCT_ETC)/permissions
LOCAL_SRC_FILES := $(LOCAL_MODULE)
include $(BUILD_PREBUILT)
include $(CLEAR_VARS)
LOCAL_MODULE := FDroidPrivilegedExtension
LOCAL_SRC_FILES := FDroidPrivilegedExtension.apk
LOCAL_MODULE_CLASS := APPS
LOCAL_PRIVILEGED_MODULE := true
LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX)
LOCAL_CERTIFICATE := PRESIGNED
LOCAL_REQUIRED_MODULES := privapp-permissions-org.fdroid.fdroid.privileged.xml
LOCAL_PRODUCT_MODULE := true
LOCAL_DEX_PREOPT := false
include $(BUILD_PREBUILT)
+32
View File
@@ -0,0 +1,32 @@
prebuilt_etc {
name: "privapp-permissions-com.android.vending.xml",
src: "privapp-permissions-com.android.vending.xml",
sub_dir: "permissions",
product_specific: true,
}
prebuilt_etc {
name: "default-permissions-com.android.vending.xml",
src: "default-permissions-com.android.vending.xml",
sub_dir: "default-permissions",
product_specific: true,
}
android_app_import {
name: "FakeStore",
apk: "FakeStore.apk",
presigned: true,
privileged: true,
dex_preopt: {
enabled: false,
},
product_specific: true,
optional_uses_libs: [
"androidx.window.extensions",
"androidx.window.sidecar",
],
required: [
"privapp-permissions-com.android.vending.xml",
"default-permissions-com.android.vending.xml",
],
}
-32
View File
@@ -1,32 +0,0 @@
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := privapp-permissions-com.android.vending.xml
LOCAL_MODULE_CLASS := ETC
LOCAL_MODULE_PATH := $(TARGET_OUT_PRODUCT_ETC)/permissions
LOCAL_SRC_FILES := $(LOCAL_MODULE)
include $(BUILD_PREBUILT)
include $(CLEAR_VARS)
LOCAL_MODULE := default-permissions-com.android.vending.xml
LOCAL_MODULE_CLASS := ETC
LOCAL_MODULE_PATH := $(TARGET_OUT_PRODUCT_ETC)/default-permissions
LOCAL_SRC_FILES := $(LOCAL_MODULE)
include $(BUILD_PREBUILT)
include $(CLEAR_VARS)
LOCAL_MODULE := FakeStore
LOCAL_SRC_FILES := FakeStore.apk
LOCAL_MODULE_CLASS := APPS
LOCAL_PRIVILEGED_MODULE := true
LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX)
LOCAL_CERTIFICATE := PRESIGNED
LOCAL_REQUIRED_MODULES := privapp-permissions-com.android.vending.xml default-permissions-com.android.vending.xml
LOCAL_PRODUCT_MODULE := true
# this line will break builds before 19.1 so make them conditional
ifneq ($(call math_gt_or_eq, $(PLATFORM_SDK_VERSION), 31),)
LOCAL_OPTIONAL_USES_LIBRARIES := androidx.window.extensions androidx.window.sidecar
endif
LOCAL_DEX_PREOPT := false
include $(BUILD_PREBUILT)
+50
View File
@@ -0,0 +1,50 @@
prebuilt_etc {
name: "privapp-permissions-com.google.android.gms.xml",
src: "privapp-permissions-com.google.android.gms.xml",
sub_dir: "permissions",
product_specific: true,
}
prebuilt_etc {
name: "default-permissions-com.google.android.gms.xml",
src: "default-permissions-com.google.android.gms.xml",
sub_dir: "default-permissions",
product_specific: true,
}
prebuilt_etc {
name: "sysconfig-com.google.android.gms.xml",
src: "sysconfig-com.google.android.gms.xml",
sub_dir: "sysconfig",
product_specific: true,
}
prebuilt_etc {
name: "microg.xml",
src: "microg.xml",
product_specific: true,
}
android_app_import {
name: "GmsCore",
apk: "GmsCore.apk",
presigned: true,
privileged: true,
dex_preopt: {
enabled: false,
},
product_specific: true,
uses_libs: ["com.android.location.provider"],
optional_uses_libs: [
"org.apache.http.legacy",
"androidx.window.extensions",
"androidx.window.sidecar",
],
overrides: ["com.qualcomm.location"],
required: [
"privapp-permissions-com.google.android.gms.xml",
"default-permissions-com.google.android.gms.xml",
"sysconfig-com.google.android.gms.xml",
"microg.xml",
],
}
+9
View File
@@ -0,0 +1,9 @@
android_app_import {
name: "GsfProxy",
apk: "GsfProxy.apk",
presigned: true,
dex_preopt: {
enabled: false,
},
product_specific: true,
}
-50
View File
@@ -1,50 +0,0 @@
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := privapp-permissions-com.google.android.gms.xml
LOCAL_MODULE_CLASS := ETC
LOCAL_PRODUCT_MODULE := true
LOCAL_MODULE_PATH := $(TARGET_OUT_PRODUCT_ETC)/permissions
LOCAL_SRC_FILES := $(LOCAL_MODULE)
include $(BUILD_PREBUILT)
include $(CLEAR_VARS)
LOCAL_MODULE := default-permissions-com.google.android.gms.xml
LOCAL_MODULE_CLASS := ETC
LOCAL_PRODUCT_MODULE := true
LOCAL_MODULE_PATH := $(TARGET_OUT_PRODUCT_ETC)/default-permissions
LOCAL_SRC_FILES := $(LOCAL_MODULE)
include $(BUILD_PREBUILT)
include $(CLEAR_VARS)
LOCAL_MODULE := sysconfig-com.google.android.gms.xml
LOCAL_MODULE_CLASS := ETC
LOCAL_MODULE_PATH := $(TARGET_OUT_PRODUCT_ETC)/sysconfig
LOCAL_SRC_FILES := $(LOCAL_MODULE)
include $(BUILD_PREBUILT)
include $(CLEAR_VARS)
LOCAL_MODULE := microg.xml
LOCAL_MODULE_TAGS := optional
LOCAL_MODULE_CLASS := ETC
LOCAL_MODULE_PATH := $(TARGET_OUT_PRODUCT_ETC)/
LOCAL_SRC_FILES := $(LOCAL_MODULE)
include $(BUILD_PREBUILT)
include $(CLEAR_VARS)
LOCAL_MODULE := GmsCore
LOCAL_SRC_FILES := GmsCore.apk
LOCAL_MODULE_CLASS := APPS
LOCAL_PRIVILEGED_MODULE := true
LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX)
LOCAL_CERTIFICATE := PRESIGNED
LOCAL_OVERRIDES_PACKAGES := com.qualcomm.location
LOCAL_REQUIRED_MODULES := privapp-permissions-com.google.android.gms.xml default-permissions-com.google.android.gms.xml sysconfig-com.google.android.gms.xml microg.xml
# these lines will break builds before 19.1 so make them conditional
ifneq ($(call math_gt_or_eq, $(PLATFORM_SDK_VERSION), 31),)
LOCAL_USES_LIBRARIES := com.android.location.provider
LOCAL_OPTIONAL_USES_LIBRARIES := org.apache.http.legacy androidx.window.extensions androidx.window.sidecar
endif
LOCAL_PRODUCT_MODULE := true
LOCAL_DEX_PREOPT := false
include $(BUILD_PREBUILT)
-11
View File
@@ -1,11 +0,0 @@
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := GsfProxy
LOCAL_SRC_FILES := GsfProxy.apk
LOCAL_MODULE_CLASS := APPS
LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX)
LOCAL_CERTIFICATE := PRESIGNED
LOCAL_PRODUCT_MODULE := true
LOCAL_DEX_PREOPT := false
LOCAL_REPLACE_PREBUILT_APK_INSTALLED := $(LOCAL_PATH)/$(LOCAL_MODULE).apk
include $(BUILD_PREBUILT)
-1
View File
@@ -1 +0,0 @@
-include $(LOCAL_PATH)/gms.mk
-1
View File
@@ -1 +0,0 @@
-include $(LOCAL_PATH)/gms.mk
-1
View File
@@ -1 +0,0 @@
-include $(LOCAL_PATH)/gms.mk
-1
View File
@@ -1 +0,0 @@
-include $(LOCAL_PATH)/gms.mk
-1
View File
@@ -1 +0,0 @@
-include $(LOCAL_PATH)/gms.mk
-1
View File
@@ -1 +0,0 @@
-include $(LOCAL_PATH)/gms.mk
+19 -32
View File
@@ -5,12 +5,11 @@ set -e
echo "vendor/partner_gms/vendorsetup.sh called"
# download_apk <source_url> <destination_apk_path>
download_apk() {
local source_apk=$1
local component_name=$2
local destination_apk
local destination_apk=$2
destination_apk="apps/$component_name"/"$component_name".apk
if [ -f "$destination_apk" ]; then
echo "$destination_apk exists: not downloading"
## To Do
@@ -24,55 +23,43 @@ download_apk() {
get-fdroid-components() {
local fdroid_repo="https://f-droid.org/repo/"
local name apk_to_download versioncode id
local versioncode id apk_to_download
# F-Droid client app
name="FDroid"
versioncode=$(cat "apps/$name"/.version_code)
versioncode=$(cat "apps/FDroid/.version_code")
id="org.fdroid.fdroid"
apk_to_download="$fdroid_repo"/"$id"_"$versioncode".apk
download_apk "$apk_to_download" "apps/FDroid/FDroid.apk"
# echo "$name apk_to_download: $apk_to_download"
download_apk "$apk_to_download" "$name"
# FDroid Privileged Extension
name="FDroidPrivilegedExtension"
versioncode=$(cat "apps/$name"/.version_code)
# FDroid Privileged Extension (nested under apps/FDroid/)
versioncode=$(cat "apps/FDroid/FDroidPrivilegedExtension/.version_code")
id="org.fdroid.fdroid.privileged"
apk_to_download="$fdroid_repo"/"$id"_"$versioncode".apk
# echo "$name apk_to_download: $apk_to_download"
download_apk "$apk_to_download" "$name"
download_apk "$apk_to_download" "apps/FDroid/FDroidPrivilegedExtension/FDroidPrivilegedExtension.apk"
}
get-microg-components() {
local microg_repo_base="https://github.com/microg"
local name apk_to_download versioncode id
local versioncode id apk_to_download
microg_release=$(cat ".microg_release")
# GmsCore
name="GmsCore"
versioncode=$(cat "apps/$name"/.version_code)
# GmsCore (nested under apps/GMS/)
versioncode=$(cat "apps/GMS/GmsCore/.version_code")
id="com.google.android.gms"
apk_to_download="$microg_repo_base"/GMSCore/releases/download/"$microg_release"/"$id"-"$versioncode".apk
# echo "$name apk_to_download: $apk_to_download"
download_apk "$apk_to_download" "$name"
download_apk "$apk_to_download" "apps/GMS/GmsCore/GmsCore.apk"
# FakeStore
name="FakeStore"
versioncode=$(cat "apps/$name"/.version_code)
versioncode=$(cat "apps/FakeStore/.version_code")
id="com.android.vending"
apk_to_download="$microg_repo_base"/GMSCore/releases/download/"$microg_release"/"$id"-"$versioncode".apk
# echo "$name apk_to_download: $apk_to_download"
download_apk "$apk_to_download" "$name"
download_apk "$apk_to_download" "apps/FakeStore/FakeStore.apk"
# GsfProxy the file we want is
#`https://github.com/microg/android_packages_apps_GsfProxy/releases/download/v0.1.0/GsfProxy.apk`
name="GsfProxy"
versioncode=$(cat "apps/$name"/.version_code)
apk_to_download="$microg_repo_base"/android_packages_apps_GsfProxy/releases/download/"$versioncode"/"$name".apk
# echo "$name apk_to_download: $apk_to_download"
download_apk "$apk_to_download" "$name"
# GsfProxy (nested under apps/GMS/)
# file: https://github.com/microg/android_packages_apps_GsfProxy/releases/download/v0.1.0/GsfProxy.apk
versioncode=$(cat "apps/GMS/GsfProxy/.version_code")
apk_to_download="$microg_repo_base"/android_packages_apps_GsfProxy/releases/download/"$versioncode"/GsfProxy.apk
download_apk "$apk_to_download" "apps/GMS/GsfProxy/GsfProxy.apk"
}
# This script is called from the root directory, so we need to cd