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:
@@ -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",
|
||||
],
|
||||
}
|
||||
@@ -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"],
|
||||
}
|
||||
@@ -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)
|
||||
|
||||
@@ -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",
|
||||
],
|
||||
}
|
||||
@@ -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)
|
||||
|
||||
@@ -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",
|
||||
],
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
android_app_import {
|
||||
name: "GsfProxy",
|
||||
apk: "GsfProxy.apk",
|
||||
presigned: true,
|
||||
dex_preopt: {
|
||||
enabled: false,
|
||||
},
|
||||
product_specific: true,
|
||||
}
|
||||
@@ -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)
|
||||
@@ -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 +0,0 @@
|
||||
-include $(LOCAL_PATH)/gms.mk
|
||||
@@ -1 +0,0 @@
|
||||
-include $(LOCAL_PATH)/gms.mk
|
||||
@@ -1 +0,0 @@
|
||||
-include $(LOCAL_PATH)/gms.mk
|
||||
@@ -1 +0,0 @@
|
||||
-include $(LOCAL_PATH)/gms.mk
|
||||
@@ -1 +0,0 @@
|
||||
-include $(LOCAL_PATH)/gms.mk
|
||||
@@ -1 +0,0 @@
|
||||
-include $(LOCAL_PATH)/gms.mk
|
||||
+19
-32
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user