From 19af72d14ace6b7ce7ef590e87547628f6471a43 Mon Sep 17 00:00:00 2001
From: Oizaro <75915943+Oizaro@users.noreply.github.com>
Date: Sun, 27 Jun 2021 21:53:47 +0200
Subject: [PATCH] Update to latest upstream
---
.gitignore | 6 ++-
build.gradle | 1 +
.../api/credentials/CredentialRequest.java | 2 +
play-services-core/build.gradle | 3 +-
.../src/main/AndroidManifest.xml | 9 +++-
.../chimera/container/DynamiteContext.java | 27 ++++++----
.../{ui => auth}/CredentialPickerActivity.kt | 2 +-
.../org/microg/gms/auth/CredentialsService.kt | 53 +++++++++++++++++++
play-services-cronet-core/build.gradle | 34 ++++++++++++
.../src/main/AndroidManifest.xml | 11 ++++
.../gms/cronet_dynamite/ModuleDescriptor.java | 37 +++++++++++++
settings.gradle | 2 +
12 files changed, 171 insertions(+), 16 deletions(-)
rename play-services-core/src/main/kotlin/org/microg/gms/{ui => auth}/CredentialPickerActivity.kt (98%)
create mode 100644 play-services-core/src/main/kotlin/org/microg/gms/auth/CredentialsService.kt
create mode 100644 play-services-cronet-core/build.gradle
create mode 100644 play-services-cronet-core/src/main/AndroidManifest.xml
create mode 100644 play-services-cronet-core/src/main/java/com/google/android/gms/dynamite/descriptors/com/google/android/gms/cronet_dynamite/ModuleDescriptor.java
diff --git a/.gitignore b/.gitignore
index 6932dd10..ec5fff5e 100644
--- a/.gitignore
+++ b/.gitignore
@@ -7,4 +7,8 @@ build/
user.gradle
local.properties
.directory
-play-services-core/release
\ No newline at end of file
+play-services-core/release
+
+.settings
+.classpath
+.project
\ No newline at end of file
diff --git a/build.gradle b/build.gradle
index 6b3fc1e3..ab8b41f9 100644
--- a/build.gradle
+++ b/build.gradle
@@ -4,6 +4,7 @@
*/
buildscript {
+ ext.cronetVersion = '91.0.4472.120'
ext.safeParcelVersion = '1.7.0'
ext.kotlinVersion = '1.4.32'
diff --git a/play-services-api/src/main/java/com/google/android/gms/auth/api/credentials/CredentialRequest.java b/play-services-api/src/main/java/com/google/android/gms/auth/api/credentials/CredentialRequest.java
index 35340b01..d5cbf928 100644
--- a/play-services-api/src/main/java/com/google/android/gms/auth/api/credentials/CredentialRequest.java
+++ b/play-services-api/src/main/java/com/google/android/gms/auth/api/credentials/CredentialRequest.java
@@ -32,6 +32,8 @@ public class CredentialRequest extends AutoSafeParcelable {
@Field(4)
private CredentialPickerConfig credentialHintPickerConfig;
+ private CredentialRequest() { }
+
public CredentialRequest(boolean passwordLoginSupported, String[] accountTypes, CredentialPickerConfig credentialPickerConfig, CredentialPickerConfig credentialHintPickerConfig) {
this.passwordLoginSupported = passwordLoginSupported;
this.accountTypes = accountTypes;
diff --git a/play-services-core/build.gradle b/play-services-core/build.gradle
index fe05de71..1e6f0b93 100644
--- a/play-services-core/build.gradle
+++ b/play-services-core/build.gradle
@@ -26,6 +26,7 @@ dependencies {
// implementation "su.litvak.chromecast:api-v2:0.10.4"
implementation "info.armills.chromecast-java-api-v2:api-v2-raw-request:0.10.4-raw-request-1"
+ implementation project(':play-services-cronet-core')
implementation project(':play-services-core-proto')
implementation project(':play-services-core:microg-ui-tools') // deprecated
implementation project(':play-services-api')
@@ -62,7 +63,7 @@ android {
targetSdkVersion androidTargetSdk
ndk {
- abiFilters "armeabi-v7a", "arm64-v8a", "x86", "x86_64"
+ abiFilters "armeabi-v7a", "arm64-v8a", "x86"
}
}
diff --git a/play-services-core/src/main/AndroidManifest.xml b/play-services-core/src/main/AndroidManifest.xml
index 95cbc125..1447b73a 100644
--- a/play-services-core/src/main/AndroidManifest.xml
+++ b/play-services-core/src/main/AndroidManifest.xml
@@ -277,7 +277,7 @@
android:exported="true" />
@@ -285,6 +285,12 @@
+
+
+
+
+
+
@@ -470,7 +476,6 @@
-
diff --git a/play-services-core/src/main/java/com/google/android/gms/chimera/container/DynamiteContext.java b/play-services-core/src/main/java/com/google/android/gms/chimera/container/DynamiteContext.java
index 7f104fbe..8484447b 100644
--- a/play-services-core/src/main/java/com/google/android/gms/chimera/container/DynamiteContext.java
+++ b/play-services-core/src/main/java/com/google/android/gms/chimera/container/DynamiteContext.java
@@ -28,6 +28,8 @@ public class DynamiteContext extends ContextWrapper {
private Context gmsContext;
private DynamiteContext appContext;
+ private ClassLoader classLoader;
+
public DynamiteContext(DynamiteModuleInfo moduleInfo, Context base, Context gmsContext, DynamiteContext appContext) {
super(base);
this.moduleInfo = moduleInfo;
@@ -38,19 +40,22 @@ public class DynamiteContext extends ContextWrapper {
@Override
public ClassLoader getClassLoader() {
- StringBuilder nativeLoaderDirs = new StringBuilder(gmsContext.getApplicationInfo().nativeLibraryDir);
- if (Build.VERSION.SDK_INT >= 23 && Process.is64Bit()) {
- for (String abi : Build.SUPPORTED_64_BIT_ABIS) {
- nativeLoaderDirs.append(File.pathSeparator).append(gmsContext.getApplicationInfo().sourceDir).append("!/lib/").append(abi);
+ if (classLoader == null) {
+ StringBuilder nativeLoaderDirs = new StringBuilder(gmsContext.getApplicationInfo().nativeLibraryDir);
+ if (Build.VERSION.SDK_INT >= 23 && Process.is64Bit()) {
+ for (String abi : Build.SUPPORTED_64_BIT_ABIS) {
+ nativeLoaderDirs.append(File.pathSeparator).append(gmsContext.getApplicationInfo().sourceDir).append("!/lib/").append(abi);
+ }
+ } else if (Build.VERSION.SDK_INT >= 21) {
+ for (String abi : Build.SUPPORTED_32_BIT_ABIS) {
+ nativeLoaderDirs.append(File.pathSeparator).append(gmsContext.getApplicationInfo().sourceDir).append("!/lib/").append(abi);
+ }
+ } else {
+ nativeLoaderDirs.append(File.pathSeparator).append(gmsContext.getApplicationInfo().sourceDir).append("!/lib/").append(Build.CPU_ABI);
}
- } else if (Build.VERSION.SDK_INT >= 21) {
- for (String abi : Build.SUPPORTED_32_BIT_ABIS) {
- nativeLoaderDirs.append(File.pathSeparator).append(gmsContext.getApplicationInfo().sourceDir).append("!/lib/").append(abi);
- }
- } else {
- nativeLoaderDirs.append(File.pathSeparator).append(gmsContext.getApplicationInfo().sourceDir).append("!/lib/").append(Build.CPU_ABI);
+ classLoader = new PathClassLoader(gmsContext.getApplicationInfo().sourceDir, nativeLoaderDirs.toString(), new FilteredClassLoader(originalContext.getClassLoader(), moduleInfo.getMergedClasses(), moduleInfo.getMergedPackages()));
}
- return new PathClassLoader(gmsContext.getApplicationInfo().sourceDir, nativeLoaderDirs.toString(), new FilteredClassLoader(originalContext.getClassLoader(), moduleInfo.getMergedClasses(), moduleInfo.getMergedPackages()));
+ return classLoader;
}
@Override
diff --git a/play-services-core/src/main/kotlin/org/microg/gms/ui/CredentialPickerActivity.kt b/play-services-core/src/main/kotlin/org/microg/gms/auth/CredentialPickerActivity.kt
similarity index 98%
rename from play-services-core/src/main/kotlin/org/microg/gms/ui/CredentialPickerActivity.kt
rename to play-services-core/src/main/kotlin/org/microg/gms/auth/CredentialPickerActivity.kt
index 1209a900..ee7d332f 100644
--- a/play-services-core/src/main/kotlin/org/microg/gms/ui/CredentialPickerActivity.kt
+++ b/play-services-core/src/main/kotlin/org/microg/gms/auth/CredentialPickerActivity.kt
@@ -3,7 +3,7 @@
* SPDX-License-Identifier: Apache-2.0
*/
-package org.microg.gms.ui
+package org.microg.gms.auth
import android.app.Activity
import android.os.Bundle
diff --git a/play-services-core/src/main/kotlin/org/microg/gms/auth/CredentialsService.kt b/play-services-core/src/main/kotlin/org/microg/gms/auth/CredentialsService.kt
new file mode 100644
index 00000000..e50c5e9e
--- /dev/null
+++ b/play-services-core/src/main/kotlin/org/microg/gms/auth/CredentialsService.kt
@@ -0,0 +1,53 @@
+/*
+ * SPDX-FileCopyrightText: 2021, microG Project Team
+ * SPDX-License-Identifier: Apache-2.0
+ */
+
+package org.microg.gms.auth
+
+import android.os.Bundle
+import android.util.Log
+import com.google.android.gms.auth.api.credentials.CredentialRequest
+import com.google.android.gms.auth.api.credentials.internal.*
+import com.google.android.gms.common.api.CommonStatusCodes
+import com.google.android.gms.common.api.Status
+import com.google.android.gms.common.internal.GetServiceRequest
+import com.google.android.gms.common.internal.IGmsCallbacks
+import org.microg.gms.BaseService
+import org.microg.gms.common.GmsService
+
+const val TAG = "GmsCredentials"
+
+class CredentialsService : BaseService(TAG, GmsService.CREDENTIALS) {
+ override fun handleServiceRequest(callback: IGmsCallbacks, request: GetServiceRequest, service: GmsService) {
+ callback.onPostInitComplete(CommonStatusCodes.SUCCESS, CredentialsServiceImpl(), Bundle())
+ }
+}
+
+class CredentialsServiceImpl : ICredentialsService.Stub() {
+ override fun request(callbacks: ICredentialsCallbacks, request: CredentialRequest) {
+ Log.d(TAG, "request($request)")
+ callbacks.onStatus(Status.CANCELED)
+ }
+
+ override fun save(callbacks: ICredentialsCallbacks, request: SaveRequest) {
+ Log.d(TAG, "save($request)")
+ callbacks.onStatus(Status.CANCELED)
+ }
+
+ override fun delete(callbacks: ICredentialsCallbacks, request: DeleteRequest) {
+ Log.d(TAG, "delete($request)")
+ callbacks.onStatus(Status.CANCELED)
+ }
+
+ override fun disableAutoSignIn(callbacks: ICredentialsCallbacks) {
+ Log.d(TAG, "disableAutoSignIn()")
+ callbacks.onStatus(Status.SUCCESS)
+ }
+
+ override fun generatePassword(callbacks: ICredentialsCallbacks, request: GeneratePasswordRequest) {
+ Log.d(TAG, "generatePassword($request)")
+ callbacks.onStatus(Status.SUCCESS)
+ }
+
+}
\ No newline at end of file
diff --git a/play-services-cronet-core/build.gradle b/play-services-cronet-core/build.gradle
new file mode 100644
index 00000000..9c0b280b
--- /dev/null
+++ b/play-services-cronet-core/build.gradle
@@ -0,0 +1,34 @@
+/*
+ * SPDX-FileCopyrightText: 2021, microG Project Team
+ * SPDX-License-Identifier: Apache-2.0
+ */
+
+apply plugin: 'com.android.library'
+apply plugin: 'maven-publish'
+apply plugin: 'signing'
+
+dependencies {
+ implementation("org.microg:cronet-api:$cronetVersion")
+ implementation("org.microg:cronet-common:$cronetVersion")
+ implementation("org.microg:cronet-native:$cronetVersion")
+}
+
+android {
+ compileSdkVersion androidCompileSdk
+ buildToolsVersion "$androidBuildVersionTools"
+
+ defaultConfig {
+ versionName version
+ minSdkVersion androidMinSdk
+ targetSdkVersion androidTargetSdk
+ }
+
+ lintOptions {
+ disable 'MissingTranslation'
+ }
+
+ compileOptions {
+ sourceCompatibility = 1.8
+ targetCompatibility = 1.8
+ }
+}
diff --git a/play-services-cronet-core/src/main/AndroidManifest.xml b/play-services-cronet-core/src/main/AndroidManifest.xml
new file mode 100644
index 00000000..93245ce8
--- /dev/null
+++ b/play-services-cronet-core/src/main/AndroidManifest.xml
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
diff --git a/play-services-cronet-core/src/main/java/com/google/android/gms/dynamite/descriptors/com/google/android/gms/cronet_dynamite/ModuleDescriptor.java b/play-services-cronet-core/src/main/java/com/google/android/gms/dynamite/descriptors/com/google/android/gms/cronet_dynamite/ModuleDescriptor.java
new file mode 100644
index 00000000..c46af5c9
--- /dev/null
+++ b/play-services-cronet-core/src/main/java/com/google/android/gms/dynamite/descriptors/com/google/android/gms/cronet_dynamite/ModuleDescriptor.java
@@ -0,0 +1,37 @@
+/*
+ * SPDX-FileCopyrightText: 2021, microG Project Team
+ * SPDX-License-Identifier: Apache-2.0
+ */
+
+package com.google.android.gms.dynamite.descriptors.com.google.android.gms.cronet_dynamite;
+
+import java.util.Arrays;
+import java.util.List;
+
+public class ModuleDescriptor {
+ public static final String MODULE_ID = "com.google.android.gms.cronet_dynamite";
+ public static final int MODULE_VERSION = 2;
+ public static final List MERGED_CLASSES = Arrays.asList(
+ "org.chromium.net.ApiVersion",
+ "org.chromium.net.BidirectionalStream",
+ "org.chromium.net.CallbackException",
+ "org.chromium.net.CronetEngine",
+ "org.chromium.net.CronetException",
+ "org.chromium.net.CronetProvider",
+ "org.chromium.net.ExperimentalBidirectionalStream",
+ "org.chromium.net.ExperimentalCronetEngine",
+ "org.chromium.net.ExperimentalUrlRequest",
+ "org.chromium.net.ICronetEngineBuilder",
+ "org.chromium.net.InlineExecutionProhibitedException",
+ "org.chromium.net.NetworkException",
+ "org.chromium.net.NetworkQualityRttListener",
+ "org.chromium.net.NetworkQualityThroughputListener",
+ "org.chromium.net.QuicException",
+ "org.chromium.net.RequestFinishedInfo",
+ "org.chromium.net.UploadDataProvider",
+ "org.chromium.net.UploadDataProviders",
+ "org.chromium.net.UploadDataSink",
+ "org.chromium.net.UrlRequest",
+ "org.chromium.net.UrlResponseInfo"
+ );
+}
diff --git a/settings.gradle b/settings.gradle
index cd6649aa..9ce0de99 100644
--- a/settings.gradle
+++ b/settings.gradle
@@ -12,6 +12,8 @@ include ':play-services-api'
include ':play-services-core-proto'
+include ':play-services-cronet-core'
+
include ':play-services-core:microg-ui-tools' // Legacy
include ':play-services-core'