Skip to content

Commit a430489

Browse files
committed
Add Cronet
1 parent 2e64427 commit a430489

File tree

8 files changed

+109
-11
lines changed

8 files changed

+109
-11
lines changed

.gitignore

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,3 +7,7 @@ build/
77
user.gradle
88
local.properties
99
.directory
10+
11+
.settings
12+
.classpath
13+
.project

build.gradle

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
*/
55

66
buildscript {
7+
ext.cronetVersion = '91.0.4472.120'
78
ext.nlpVersion = '2.0-alpha6'
89
ext.remoteDroidGuardVersion = '0.1.2'
910
ext.safeParcelVersion = '1.7.0'

play-services-core/build.gradle

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@ dependencies {
4343
implementation project(':play-services-base-core')
4444
implementation project(':play-services-base-core-ui')
4545
implementation project(':play-services-conscrypt-provider-core')
46+
implementation project(':play-services-cronet-core')
4647
implementation project(':play-services-location-core')
4748
implementation project(':play-services-vision-core')
4849
withNearbyImplementation project(':play-services-nearby-core')

play-services-core/src/main/java/com/google/android/gms/chimera/container/DynamiteContext.java

Lines changed: 16 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,8 @@ public class DynamiteContext extends ContextWrapper {
2828
private Context gmsContext;
2929
private DynamiteContext appContext;
3030

31+
private ClassLoader classLoader;
32+
3133
public DynamiteContext(DynamiteModuleInfo moduleInfo, Context base, Context gmsContext, DynamiteContext appContext) {
3234
super(base);
3335
this.moduleInfo = moduleInfo;
@@ -38,19 +40,22 @@ public DynamiteContext(DynamiteModuleInfo moduleInfo, Context base, Context gmsC
3840

3941
@Override
4042
public ClassLoader getClassLoader() {
41-
StringBuilder nativeLoaderDirs = new StringBuilder(gmsContext.getApplicationInfo().nativeLibraryDir);
42-
if (Build.VERSION.SDK_INT >= 23 && Process.is64Bit()) {
43-
for (String abi : Build.SUPPORTED_64_BIT_ABIS) {
44-
nativeLoaderDirs.append(File.pathSeparator).append(gmsContext.getApplicationInfo().sourceDir).append("!/lib/").append(abi);
45-
}
46-
} else if (Build.VERSION.SDK_INT >= 21) {
47-
for (String abi : Build.SUPPORTED_32_BIT_ABIS) {
48-
nativeLoaderDirs.append(File.pathSeparator).append(gmsContext.getApplicationInfo().sourceDir).append("!/lib/").append(abi);
43+
if (classLoader == null) {
44+
StringBuilder nativeLoaderDirs = new StringBuilder(gmsContext.getApplicationInfo().nativeLibraryDir);
45+
if (Build.VERSION.SDK_INT >= 23 && Process.is64Bit()) {
46+
for (String abi : Build.SUPPORTED_64_BIT_ABIS) {
47+
nativeLoaderDirs.append(File.pathSeparator).append(gmsContext.getApplicationInfo().sourceDir).append("!/lib/").append(abi);
48+
}
49+
} else if (Build.VERSION.SDK_INT >= 21) {
50+
for (String abi : Build.SUPPORTED_32_BIT_ABIS) {
51+
nativeLoaderDirs.append(File.pathSeparator).append(gmsContext.getApplicationInfo().sourceDir).append("!/lib/").append(abi);
52+
}
53+
} else {
54+
nativeLoaderDirs.append(File.pathSeparator).append(gmsContext.getApplicationInfo().sourceDir).append("!/lib/").append(Build.CPU_ABI);
4955
}
50-
} else {
51-
nativeLoaderDirs.append(File.pathSeparator).append(gmsContext.getApplicationInfo().sourceDir).append("!/lib/").append(Build.CPU_ABI);
56+
classLoader = new PathClassLoader(gmsContext.getApplicationInfo().sourceDir, nativeLoaderDirs.toString(), new FilteredClassLoader(originalContext.getClassLoader(), moduleInfo.getMergedClasses(), moduleInfo.getMergedPackages()));
5257
}
53-
return new PathClassLoader(gmsContext.getApplicationInfo().sourceDir, nativeLoaderDirs.toString(), new FilteredClassLoader(originalContext.getClassLoader(), moduleInfo.getMergedClasses(), moduleInfo.getMergedPackages()));
58+
return classLoader;
5459
}
5560

5661
@Override
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
/*
2+
* SPDX-FileCopyrightText: 2021, microG Project Team
3+
* SPDX-License-Identifier: Apache-2.0
4+
*/
5+
6+
apply plugin: 'com.android.library'
7+
apply plugin: 'maven-publish'
8+
apply plugin: 'signing'
9+
10+
dependencies {
11+
implementation("org.microg:cronet-api:$cronetVersion")
12+
implementation("org.microg:cronet-common:$cronetVersion")
13+
implementation("org.microg:cronet-native:$cronetVersion")
14+
}
15+
16+
android {
17+
compileSdkVersion androidCompileSdk
18+
buildToolsVersion "$androidBuildVersionTools"
19+
20+
defaultConfig {
21+
versionName version
22+
minSdkVersion androidMinSdk
23+
targetSdkVersion androidTargetSdk
24+
}
25+
26+
lintOptions {
27+
disable 'MissingTranslation'
28+
}
29+
30+
compileOptions {
31+
sourceCompatibility = 1.8
32+
targetCompatibility = 1.8
33+
}
34+
}
35+
36+
apply from: '../gradle/publish-android.gradle'
37+
38+
description = 'microG service implementation for play-services-cronet'
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<!--
3+
~ SPDX-FileCopyrightText: 2021, microG Project Team
4+
~ SPDX-License-Identifier: Apache-2.0
5+
-->
6+
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
7+
package="org.microg.gms.net.core">
8+
9+
<application>
10+
</application>
11+
</manifest>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
/*
2+
* SPDX-FileCopyrightText: 2021, microG Project Team
3+
* SPDX-License-Identifier: Apache-2.0
4+
*/
5+
6+
package com.google.android.gms.dynamite.descriptors.com.google.android.gms.cronet_dynamite;
7+
8+
import java.util.Arrays;
9+
import java.util.List;
10+
11+
public class ModuleDescriptor {
12+
public static final String MODULE_ID = "com.google.android.gms.cronet_dynamite";
13+
public static final int MODULE_VERSION = 2;
14+
public static final List<String> MERGED_CLASSES = Arrays.asList(
15+
"org.chromium.net.ApiVersion",
16+
"org.chromium.net.BidirectionalStream",
17+
"org.chromium.net.CallbackException",
18+
"org.chromium.net.CronetEngine",
19+
"org.chromium.net.CronetException",
20+
"org.chromium.net.CronetProvider",
21+
"org.chromium.net.ExperimentalBidirectionalStream",
22+
"org.chromium.net.ExperimentalCronetEngine",
23+
"org.chromium.net.ExperimentalUrlRequest",
24+
"org.chromium.net.ICronetEngineBuilder",
25+
"org.chromium.net.InlineExecutionProhibitedException",
26+
"org.chromium.net.NetworkException",
27+
"org.chromium.net.NetworkQualityRttListener",
28+
"org.chromium.net.NetworkQualityThroughputListener",
29+
"org.chromium.net.QuicException",
30+
"org.chromium.net.RequestFinishedInfo",
31+
"org.chromium.net.UploadDataProvider",
32+
"org.chromium.net.UploadDataProviders",
33+
"org.chromium.net.UploadDataSink",
34+
"org.chromium.net.UrlRequest",
35+
"org.chromium.net.UrlResponseInfo"
36+
);
37+
}

settings.gradle

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ include ':play-services-wearable-proto'
2222

2323
include ':play-services-base-core'
2424
include ':play-services-conscrypt-provider-core'
25+
include ':play-services-cronet-core'
2526
include ':play-services-location-core'
2627
include ':play-services-maps-core-mapbox'
2728
include ':play-services-maps-core-vtm'

0 commit comments

Comments
 (0)